1. 程式人生 > >python網路程式設計之——tcp粘包&udp丟包

python網路程式設計之——tcp粘包&udp丟包

一、tcp粘包問題產生的原因: 傳送端為了將多個發往接收端的包,更有效的發到對方,使用了優化方法(Nagle演算法),將多次間隔較小且資料量小的資料,合併成一個大的資料塊,然後進行封包。這樣,接收端,就難於分辨出來了,必須提供科學的拆包機制。

二、兩種情況下會發生粘包 1.傳送端需要等緩衝區滿才傳送出去,造成粘包(傳送資料時間間隔很短,資料了很小,會合到一起,產生粘包) 2.接收方不及時接收緩衝區的包,造成多個包接收(客戶端傳送了一段資料,服務端只收了一小部分,服務端下次再收的時候還是從緩衝區拿上次遺留的資料,產生粘包)

三、解決粘包問題的辦法

四、tcp和udp的區別

tcp有連線,udp沒有連線,tcp傳資料可靠,比udp傳輸效率慢,udp傳資料不可靠,但是效率比tcp高 tcp粘包,udp丟包