1. 程式人生 > >趣談網路協議---UDP協議:因性善而簡單,難免碰到“城會玩”

趣談網路協議---UDP協議:因性善而簡單,難免碰到“城會玩”

TCP 和 UDP 有哪些區別? TCP是面向連線的,UDP是面向無連線的。

所謂的建立連線,是為了在客戶端和服務端維護連線,而建立一定的資料結構來維護雙方互動的狀態,用這樣的資料結構來保證所謂的面向連線的特性。

例如:

  • TCP提供可靠交付。通過TCP連線傳輸的資料,無差錯、不丟失、不重複、並且按序到達。
  • TCP是面向位元組流的。UDP是基於資料報的。
  • TCP是可以有擁塞控制的。
  • TCP是一個有狀態服務。

UDP 包頭是什麼樣的? 在這裡插入圖片描述

UDP三大使用場景 1、需要的資源少,網路比較好的內網,或對於丟包不敏感的應用。DHCP基於UDP,一般獲取IP地址都是內網請求,且一次請求不到沒有關係。TFTP基於UDP,作業系統 映象下載時用到TFTP,沒有作業系統系統的時候,不適合維護複雜的狀態機。

2、不需要一對一溝通,可以廣播的應用。DHCP時廣播協議。D類地址是組播地址,VXLAN,需要組播,也基於UDP。

3、需要處理速度快,時延低,可以容忍少數丟包,但要求即便網路擁塞,也毫不退縮。

基於UDP的“城會玩”的五個例子

1、網頁或APP的訪問。QUIC(Quick UDP Internet Connections,快速UDP網際網路連線)基於UDP,在應用層師兄快速連線建立、減少重傳時延,自適應擁塞控制。

2、流媒體協議。

3、實時遊戲。

4、IoT物理網。因為物聯網終端資源少。

5、行動通訊領域。因為行動通訊網路協議本身比較複雜,TCP顯得多餘了。