1. 程式人生 > >【計算機網絡】3.2 無連接運輸:UDP

【計算機網絡】3.2 無連接運輸:UDP

緩存 info 多路分解 參數 href name 比較 outline 檢測

第三章第二節 無連接運輸:UDP

UDP(用戶數據報協議,User Datagram Protocol),它只是做了運輸層協議能夠做的最少工作,除了多路復用和多路分解及一些差錯檢測外,它幾乎沒有做任何東西。參考前文:計算機網絡2.1

Outline

  • UDP的優勢
  • UDP報文段格式

Notes

## UDP的優勢

  • 應用層能更好發控制要發送的數據和發送時間:當網絡應用進程有數據傳遞給UDP時,UDP馬上就會將此數據打包成UDP報文段,並把它交付給網絡層,從而把數據發送出去。而TCP的擁塞機制會讓視頻會議等功能的體驗變得很差。
  • UDP無需握手:在使用UDP時,在發送報文段之前,發送方和接收方的運輸層實體之間沒有進行握手,所謂的握手,就是發送方和接收方通過發送一些特定的報文段來互相確認,從而為發送做準備。無需握手就不會引入建立連接的時延,所以DNS運行在UDP之上而不是TCP之上。
  • UDP無連接狀態:TCP需要在端系統中維護連接狀態。此連接狀態包括接收和發送緩存、擁塞控制參數、序號與確認序號等參數。而UDP不維護連接狀態,也不跟蹤這些參數。因此,使用UDP的服務器能支持更多的活動客戶機。
  • 分組首部開銷小:由於UDP提供的服務少,只提供多路分解和多路復用和校驗功能,所以其首部字段少,只有8個字節,而TCP的首部有20個字節。

## UDP報文段格式

技術分享圖片

UDP報文段結構由RFC 768定義,如上圖所示,UDP首部只有4個字段,每個字段由兩個字節組成。

  • 源端口號: 本機(客戶端)的應用程序的套接字所對應的端口號,服務器端可利用此端口號向客戶端發送數據。
  • 目的端口號: 服務端上的應用進程的套接字所對應的端口號,例如HTTP服務器的80端口。
  • 長度:指明了首部和數據部分的UDP報文段的總長度,單位為字節,即首部+數據。
  • 檢驗和: 提供了差錯檢測功能,即檢驗和用於確定當UDP報文段從源到達目的時,其中的比特是否發生了改變

【UDP檢驗和】

  • 發送方
    • 將段的內容視為16-bit整數
    • 校驗和計算:計算所有整數的和,進位加在和的後面,將得到的值按位求反,得到校驗和
    • 發送方將校驗和放入校驗和字段
  • 接收方
    • 計算所得到段的檢驗和,並將其余檢驗和字段進行比較
    • 如果不相等,則檢驗出錯誤,但若想等也可能有錯誤。

【計算機網絡】3.2 無連接運輸:UDP