網際網路筆記之TCP UDP協議詳解

2021-10-09 01:56:07 字數 3254 閱讀 9937

udp協議簡介

應用層與tcp/udp的關係

網際網路提供的運輸服務

tcp服務

udp套接字程式設計

tcp套接字程式設計

tcp:transmission control protocal傳輸控制協議

tcp的功能user datagram prorocol:使用者資料報協議

udp的功能

套接字應用程式開發者對於運輸層的控制僅限於:

總的來說,運輸層能夠為應用程式提供四種服務:

1.可靠資料傳輸

2.吞吐量

**頻寬:**即網路頻寬,在單位時間(一般指的是1秒鐘)內能傳輸的資料量。

可用吞吐量:傳送程序能夠向接收程序交付位元的速率。

3.定時

4.安全性應用

資料丟失

頻寬時間敏感

檔案傳輸

不能丟失彈性不

電子郵件

不能丟失彈性不

web文件

不能丟失

彈性(幾kbps)

不容忍丟失

音訊(幾kbps~1mbps)

是,100ms

容忍丟失

同上是,幾秒

互動式遊戲

容忍丟失

幾kbps~10kbps

是,100ms

智慧型手機訊息

不能丟失

彈性不確定

面向連線的服務

可靠的資料傳送服務

擁塞控制機制

tcp安全

udp服務 應用

支撐的運輸協議

電子郵件

tcp遠端終端訪問

tcpweb

tcp檔案傳輸

tcp流式多**

tcp網際網路**

tcp / udp

簡單的udp client-server程式

udpclient.py

from socket import

*servername =

'hostname'

//主機名

serverport =

12000

//埠號

clientsocket = socket(af_inet,sock_dgram)

//設定為sock_dgram即**udp型別**

message =

raw_input

('input sentence:'

)slientsocket.sendto(message.encode(),

(servername,serverport)

)//傳送

modifiedmessage , serveraddress = clientsocket.recvfrom(

2048

)//取快取長度2048作為收入,同時有資訊和位址項

clientsocket.close(

)//關閉套接字

udpserver.py
from socket import

*serverport =

12000

//埠號

serversocket = socket(af_inet,sock_dgram)

serversocket.bind(

'',serverport)

//將埠號與伺服器套接字繫結

print

("the server is ready to receive"

)while

true

: message , clientaddress = serversocket.recvfrom(

2048)

modifiedmessage = modifie(message.decode())

//呼叫函式處理資料

serversocket.sendto(modifiedmessage.encode(

),clientaddress)

tcpclient.py
from socket import

*servername =

'servername'

serverport =

12000

clientsocket = socket(af_inet, sock_stream)

//設定為sock_stream型別,則為tcp型別套接字而非udp

clientsocket.connect(

(servername,serverport)

)//需要先連線伺服器

sentence =

raw_input

('input sentence:'

)clientsocket.send(sentence.encode())

modifiedsentence = clientsocket.recv(

1024

)//與udp不同,只接收位址

print

('from serrver:'

,modifiedsentence.decode)

clientsocket.close(

)

tcpserver
from socket import

*serverport =

12000

serversocket = socket(af_inet,sock_stream)

serversocket.bind((''

,serverport)

)serversocket.listen(1)

//設定請求連線的最大數為1

print

('the server is ready to receive'

)while

true

: connectionsocket , addr = serversocket.accept()

sentence = connectionsocket.recv(

1024

).decode()

capitalizedsentence = motify(sentence)

connectionsocket.send(capitalizedsentence.encode())

connectionsocket.close(

)

網際網路協議

常見的應用層協議使用的埠號 http tcp 80 http協議使用的tcp協議的80埠,下同 共享資料夾 tcp 445 smtp tcp 25 pop3 tcp 110 telnet tcp 23 sql tcp 1433 dns udp 53 服務和應用層協議之間的關係 通過目標埠識別計算機相...

網際網路協議

爭取做乙個懂點網路概念且有趣的程式設計師。tcp ip是網際網路採用的協議標準,它是乙個協議系列,包含了100多個協議,用來將各種計算機和資料通訊裝置組成計算機網路,tcp和ip是最基本 最重要的兩個核心協議,因此,通常用tcp ip協議來代表整個網際網路協議系列 即tcp ip的定義 tcp ip...

網際網路協議

tcp協議 arp協議屬於網路層協議。用途是根據ip位址計算出mac位址。主機傳送資訊時將包含目標ip位址的arp請求廣播到網路上的所有主機,並接收返回訊息,以此確定目標的實體地址 收到返回訊息後將該ip位址和實體地址存入本機arp快取中並保留一定時間,下次請求時直接查詢arp快取以節約資源。位址解...