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.pyfrom 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.pyfrom 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(
)
tcpserverfrom 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快取以節約資源。位址解...