1. 程式人生 > >UDP的主要特點、首部格式及功能

UDP的主要特點、首部格式及功能

       UDP協議全稱是使用者資料報協議,在網路中它與TCP協議一樣用於處理資料包,是一種無連線的協議。在OSI模型中,在第四層——傳輸層,處於IP協議的上一層。UDP有不提供資料包分組、組裝和不能對資料包進行排序的缺點,也就是說,當報文傳送之後,是無法得知其是否安全完整到達的。UDP用來支援那些需要在計算機之間傳輸資料的網路應用。包括網路視訊會議系統在內的眾多的客戶/伺服器模式的網路應用都需要使用UDP協議。

       使用者資料報協議UDP只在IP得到資料報服務至上增加了很少一點的功能,這就是複用和分用的功能以及差錯檢測的功能。

1.UDP的主要特點

(1)  UDP是無連線的

,即傳送資料之前不需要建立連線,因此減少了開銷和傳送資料之前的時延。

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

(3)  UDP是面向報文的。傳送方的UDP對應用程式交下來的報文,在新增首部後就向下交付IP層。UDP對應用層交下來的報文,既不合並,也不拆分,而是保留這些報文的邊界。因此,應用程式必須選擇合適大小的報文。


(4)  UDP沒有擁塞控制,因此網路出現的擁塞不會使源主機的傳送速率降低。很多的實時應用(如IP電話、實時視訊會議等)要去源主機以恆定的速率傳送資料,並且允許在網路發生擁塞時丟失一些資料,但卻不允許資料有太多的時延。UDP正好符合這種要求。

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

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

注意:

(1)  不使用擁塞控制功能的UDP有可能會引起網路產生嚴重的擁塞問題。

(2)  一些使用UDP的實時應用程序本身可以在不影響應用的實時性的前提下,增加一些提高可靠性的措施,如採用前向糾錯重傳已丟失的報文

2.UDP的首部格式

       使用者資料報UDP有兩個欄位:資料欄位和首部欄位。首部欄位很簡單,只有8個位元組,由四個欄位組成,每個欄位的長度都是兩個位元組。各欄位的意義如下:

(1)  源埠      源埠號。在需要對方回信時選用。不需要時可用全0。

(2)  目的埠    目的埠號。 這在終點交付報文時必須要使用到。

(3)  長度        UDP使用者資料報的長度,其最小值是8(僅有首部)

(4)  檢驗和      檢測UDP使用者資料報在傳輸中是否有錯。有錯就丟棄。

       一個UDP模組必須提供產生和驗證檢驗和的功能,但是一個應用程式在使用UDP服務時,可以自由選擇是否要求產生校檢和。在計算校檢和時,要在UDP使用者資料報之前增加12位元組的偽首部。校檢和就是按照這個臨時的UDP使用者資料報來計算的。

       UDP計算校檢和的方法和計算IP資料報首部校檢和的方法相似。但不同的是:IP資料報的校檢和只校檢IP資料報的首部,但UDP的校檢和使把首部和資料部分一起都校檢。

3.UDP的複用和分用

       當運輸層從IP層收到UDP資料報時,就根據首部中的目的埠,把UDP資料報通過相應的埠,上交到最後的終點——應用程序。下圖是UDP基於埠分用的示意圖。


       基於埠的複用示意圖與上圖相似,只是資料報的傳輸方向相反。


       如果接收方UDP發現收到的報文中的目的埠號不正確(即不存在對應於該埠號的應用程序),就丟棄該報文,並由網際控制報文協議ICMP傳送“埠不可達”差錯報文給傳送方。

參考資料:

1.《計算機網路》