UDP協議的特點及UDP頭部結構

參考:王道《計算機網絡複習指導》
UDP協議的特點:
(1)UDP無需建立連接。因此UDP不會引入建立連接的時延。試想如果DNS運行在TCP之上而不是UDP,則DNS的速度會滿很多。HTTP使用TCP而不是UDP,是因爲基於文本數據的Web網頁來說,可靠性是至關重要的。
什麼是DNS? DNS(Domain Name System,域名系統),萬維網上作爲域名和IP地址相互映射的一個分佈式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過域名,最終得到該域名對應的IP地址的過程叫做域名解析(或主機名解析)。

(2)無連接狀態。TCP需要在端系統中維護連接狀態。此連接狀態包括接受和發送緩存、擁塞控制參數和確認號和序號的參數。而UDP不維護連接狀態,也不跟蹤這些參數,因此某些專用應用服務器使用UDP時,一般都能支持更多的活動客戶機。

(3)分組首部開銷更小。TCP有20字節的的首部開銷,而UDP只有8個字節的首部開銷。

(4)應用層能夠更地控制要發送的數據和發送時間。UDP沒有擁塞控制,因此網絡中的擁塞也不會影響主機的發送效率。某些實時應用(如直播)要求以穩定的速度發送,能容忍一些數據的丟失,但不允許有較大的時延,而UDP正好可以滿足這些應用的需求。

(5)UDP常用於一次性傳輸比較小數據的網絡應用,如DNS、SNMP等,因爲對於這些應用,若採用TCP,則將爲創建連接、維護和拆除而帶來不小的開銷。UDP也常用於多媒體應用(如IP電話、實時視頻會議、流媒體等),顯然,可靠數據傳輸對於這些應用來說並不是最重要的,但TCP的擁塞控制會導致數據出現較大的延遲,這是它們不可容忍的。

(6)UDP提供盡最大努力的交付,即不保證可靠交付,但並不意味着應用對數據的要求是不可靠的,因此需要維護傳輸可靠性的工作需要用戶在應用層來完成。應用實體可以根據應用需求來靈活設計自己的可靠性機制。

(7)UDP是面向報文的的。發送方UDP對應用層交下來的報文,在添加首部後就交付給IP層,既不合並,也不拆分,而是保留這些報文的邊界;接受方UDP對IP層交上來的用戶數據報,在去除首部後就原封不動的交付給上層的應用進程,一次交付一個完整的報文,因此報文不可分割,是UDP數據處理的最小單位。

UDP頭部結構


頭部結構中各部分的作用:
(1)16位源端口號 記錄源端口號,在需要對方回信時選用。不需要時可用全0。
(2)16位目的端口號 記錄目標端口號。這在終點交付報文時必須要使用到。
(3)長度 UDP數據報的長度(包括數據和首部),其最小值爲8B(即僅有首部沒有數據的情況)。
(4)校驗和 檢測UDP數據報在傳輸中是否有錯,有錯就丟棄。該字段時可選的,當源主機不想計算校驗和,則直接令該字段爲全0。當傳輸層從IP層收到UDP數據報時,就根據首部中的目的端口,把UDP數據報通過相應的端口,上交給進程。如果接收方UDP發現收到的報文中目的端口號不正確(即不存在對應端口號的應用進程),就丟棄該報文,並由ICMP發送“端口不可達”差錯報文交給發送方。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章