天天看點

使用者資料封包協定(UDP)

UDP是一種基于IP協定的不可靠網絡傳輸協定,在IP資料的位置如下圖所示。

使用者資料封包協定(UDP)

UDP資料在IP資料的位置

1.UDP協定的特點

  1. UDP是無連接配接的,即傳輸資料時不需要建立或釋放連接配接,減少了開銷和發送資料之前的時延。
  2. UDP使用盡最大努力傳遞,即不保證可靠傳遞。
  3. UDP是面向封包的。對應用程式交下來的封包在添加首部後就向下傳遞IP層。對應用層交下來的封包即不合并也不拆分,而是保留這些封包的邊界。即UDP一次傳遞一個完整的報。
  4. UDP沒有擁塞控制。
  5. UDP支援一對一、一對多、多對一和多對多的互動通信。
  6. UDP的首部開銷小,隻有8位元組。
  • UDP協定是TCP/IP的傳輸層協定的部分,與TCP 的傳輸不一樣,它提供無連接配接的、不可靠的傳輸服務。UDP協定把應用程式需要傳遞的資料發送出去,不提供發送資料包的順序;接收方不向發送方發送接收的确認資訊,如果出現丢包或者重包的現象,也不會向發送方發送回報,是以不能保證使用UDP協定的程式發送的資料一定到達了接收方或者到達接收方的資料順序和發送方的緻性。
  • 使用UDP協定傳輸資料的應用程式,必須自已建構發送資料的順序機制和發送接收的确認機制,以此來保證發送資料的正确到達,保證接收資料的順序與發送資料的一緻性,也就是說,應用程式必須根據UDP的缺點提供解決方案。
  • UDP協定相比較TCP協定執行時的速度要比TCP快得多,對系統造成的負載低。在高負載的系統( 例如伺服器)或者系統資源受限的系統(例如嵌入式系統)上應用比較多,在不需要可靠傳輸的應用程式上有比較廣泛的應用,例如流媒體的傳輸、域名伺服器、嵌入式機頂盒系統等。

2.UDP資料報首部格式

使用者資料封包協定(UDP)

UDP資料報首部格式

  1. 源端口:占2位元組,源端口号。需要對方回信時選用,不需要時可用全0。
  2. 目的端口:占2位元組,目的端口号。
  3. 長度:占2位元組,UDP使用者資料報的長度,最小值為8(僅有首部)
  4. 檢驗和:占2位元組,檢驗UDP使用者資料報在傳輸中是否有錯,有錯就丢棄
  5. 計算檢驗和時要在UDP使用者資料報之前增加12個位元組的僞首部
  6. 僞首部不是UDP使用者資料報真正的首部,隻是在計算檢驗和時臨時添加,變成臨時UDP使用者資料報。
  7. UDP計算檢驗和方法和IP資料報首部檢驗和方法相似,但IP資料報的檢驗和隻檢驗IP資料報的首部,UDP的檢驗和把首部和資料部分一起檢驗。

3.UDP資料的傳輸過程

  • 如圖所示為使用UDP協定的應用程式的資料傳輸過程,使用者資料由主機A發送給主機B,資料封裝在UDP的資料部分。
使用者資料封包協定(UDP)

UDP協定層的使用者資料傳輸過程

  • 發送的過程是個封包的過程。 主機A上,在傳輸層,使用者發送的資料增加UDP頭部,使用者資料封裝在UDP的資料部分。在IP層增加IP的頭部資料,UDP的資料和頭部都封裝在IP層的資料部分。IP層将資料傳輸給網絡裝置的驅動程式,以太網增加頭部和尾部後,發送到以太網上。
  • 接收資料的過程是一個解封包的過程。主機B上,驅動程式從以太網上接收到資料,然後将資料去除頭部和尾部并進行CRC校驗後,将正确的資料傳遞給IP層。IP層剝去IP頭,進行校驗,将資料發送給其上層UDP層。UDP則将UDP的標頭剝去,根據應用程式的辨別符判斷是否發送給此應用程式。在主機B上的應用程式會得到幹淨的有效資料,然後進行處理。

繼續閱讀