1. 程式人生 > >傳輸層協議——UDP協議

傳輸層協議——UDP協議

使用者資料報協議UDP:

UDP在傳送資料之前不需要先建立連線。遠地主機的運輸層在收到UDP報文後,不需要給出任何確認。

1、UDP的特點:

(1)UDP是無連線的。即傳送資料之前不需要建立連線(當然,傳送資料結束時也沒有連線可釋放),因此減少了開銷和傳送資料之前的時延。

(2)UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的連線狀態表。

(3)UDP是面向報文的。對應用程式交下來的報文在新增首部後就向下交付IP層。對應用層交下來的報文即不合並也不拆分,而是保留這些報文的邊界。即UDP一次交付一個完整的報文。


傳送端應用程式每執行一次寫操作,UDP模組就將其封裝成一個UDP資料報傳送。接收端必須及時針對每一個UDP資料報執行讀操作,否則就會丟包。並且,如果使用者沒有足夠的應用程式緩衝區來讀取UDP資料,則UDP資料將被截斷。



(4)UDP沒有擁塞控制,因此網路出現的擁塞不會使源主機的傳送效率降低。

(5)UDP支援一對一、一對多、多對一、和多對多的互動通訊。

(6)UDP的首部開銷小,只有8個位元組,比TCP的20個位元組的首部要短。

2、UDP的首部格式



  • 源埠:佔2位元組,源埠號。需要對方回信時選用,不需要時可用全0

  • 目的埠:佔2位元組,目的埠號,這在終點交付報文時必須要使用到

  • 長度:佔2位元組,UDP使用者資料報的長度,最小值為8(僅有首部)

  • 檢驗和:佔2位元組,檢驗UDP使用者資料報在傳輸中是否有錯,有錯就丟棄

  • 計算檢驗和時要在UDP使用者資料報之前增加12個位元組的偽首部

  • 偽首部不是UDP使用者資料報真正的首部,只是在計算檢驗和時臨時新增,變成臨時UDP使用者資料報

  • UDP計算檢驗和方法和IP資料報首部檢驗和方法相似,但IP資料報的檢驗和只檢驗IP資料報的首部,UDP的檢驗和把首部和資料部分一起檢驗