淺談TCP和UDP協議的區別

疯狂Python發表於2024-08-22
**傳輸模式**

TCP協議:資料流(DataStream)
    --沒有訊息邊界,比如服務端給客戶端發來2048位元組大小的資料,而客戶端設定的一次最大接收大小為1024,這時候就意味著還有1024沒能接收過來,要再接收一次。
      所以容易出現粘包的情況。所謂粘包,就是資料都粘在一起了。


UDP協議:資料包(DataGram)
    --永遠不會存在粘包現象,因為UDP資料存在訊息邊界,在其報文頭裡包含有客戶端的IP地址和埠這樣的資訊,還以上面的例子舉例:
      比如服務端給客戶端發來2048位元組大小的資料,而客戶端設定的一次最大接收大小為1024,這時候就意味著還有1024沒能接收過來,此時剩下的內容客戶端再也接收不過來了,
      因為UDP認為已經傳送結束了。

所以說啊,一般都用TCP協議,因為可靠。UDP協議是一種不可靠的協議,容易丟包。

相關文章