網路程式設計系列 之TCP和UDP基礎知識

2022-03-24 02:03:37 字數 865 閱讀 1780

date: 2019-3-5

1、參考

下面兩篇文章關於tcp和udp的講解很好,可以參考:

tcp、udp以及http的簡單講解

tcp和udp的區別和優缺點

2、tcp和udp的區別

一、tcp與udp區別總結:

1、tcp面向連線(如打**要先撥號建立連線);udp是無連線的,即傳送資料之前不需要建立連線

2、tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;udp盡最大努力交付,即不保證可靠交付

tcp通過校驗和,重傳控制,序號標識,滑動視窗、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。

3、udp具有較好的實時性,工作效率比tcp高,適用於對高速傳輸和實時性有較高的通訊或廣播通訊。

4.每一條tcp連線只能是點到點的;udp支援一對一,一對多,多對一和多對多的互動通訊

5、tcp對系統資源要求較多,udp對系統資源要求較少。

二、為什麼udp有時比tcp更有優勢?

udp以其簡單、傳輸快的優勢,在越來越多場景下取代了tcp,如實時遊戲。

(1)網速的提公升給udp的穩定性提供可靠網路保障,丟包率很低,如果使用應用層重傳,能夠確保傳輸的可靠性。

(2)tcp為了實現網路通訊的可靠性,使用了複雜的擁塞控制演算法,建立了繁瑣的握手過程,由於tcp內建的系統協議棧中,極難對其進行改進。

採用tcp,一旦發生丟包,tcp會將後續的包快取起來,等前面的包重傳並接收到後再繼續傳送,延時會越來越大,基於udp對實時性要求較為嚴格的情況下,採用自定義重傳機制,能夠把丟包產生的延遲降到最低,儘量減少網路問題對遊戲性造成影響。

網路程式設計 TCP和UDP

在網路通訊協議下不同計算機上執行的程式,可以進行資料傳輸 ip位址 ip位址可以唯一標識網路中的裝置 埠埠號可以標識裝置中的應用程式 協議常見udp tcp 方法名說明 datagramsocket 建立資料報套接字並將其繫結到本機位址上的任何可用埠 datagrampacket byte buf,...

python網路程式設計 udp和tcp

udp伺服器import socket s socket.socket socket.af inet,socket.sock dgram s.bind 192.168.1.103 8888 while true data,addr s.recvfrom 1024 print s s str addr...

網路程式設計 UDP丶TCP

2.接收方 3.傳送方 二.tcp 2.伺服器端 3.客戶端 udp 面向無連線通訊 傳送端不需接收端確認是否能接收 資料不安全,效率高 1.常用方法 inetaddress datagrampacket datagramsocket 2.接收方 測試時應先啟動接收方,再啟動傳送方 用於接收資料的緩...