UDP協議


計算機網絡(第七版)閱讀筆記

UDP協議特點

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

(2)UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持復雜的連接狀態表(這里面有許多參數)。

(3)UDP是面向報文的。發送方的UDP對應用程序交下來的報文,在添加首部后就向下交付IP層。UDP對應用層交下來的報文,既不合並,也不拆分,而是保留這些報文的邊界

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

(5)UDP支持一對一、一對多、多對一和多對多的交互通信

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

UDP的首部格式

用戶數據報UDP有兩個字段:數據字段和首部字段。首部字段很簡單,只有8個字節,由四個字段組成,每個字段的長度都是兩個字節。各字段意義如下:

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

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

(3)長度
UDP用戶數據報的長度,其最小值是8(僅有首部)。

(4)檢驗和
檢測UDP用戶數據報在傳輸中是否有錯。有錯就丟棄。

UDP的工作流程

當運輸層從IP層收到UDP數據報時,就根據首部中的目的端口,把UDP數據報通過相應的端口,上交最后的終點——應用進程。如果接收方UDP發現收到的報文中的目的端口號不正確(即不存在對應於該端口號的應用進程),就丟棄該報文,並由網際控制報文協議ICMP發送“端口不可達”差錯報文給發送方。讓發送的UDP用戶數據報故意使用一個非法的UDP端口,結果ICMP就返回“端口不可達”差錯報文,因而達到了測試的目的。請注意,雖然在UDP之間的通信要用到其端口號,但由於UDP的通信是無連接的,因此不需要使用套接字(TCP之間的通信必須要在兩個套接字之間建立連接)。

UDP計算檢驗和的方法

UDP計算檢驗和的方法和計算IP數據報首部檢驗和的方法相似。但不同的是:IP數據報的檢驗和只檢驗IP數據報的首部,但UDP的檢驗和是把首部和數據部分一起都檢驗。在發送方將全零放入檢驗和字段,把偽首部以及UDP用戶數據報看成由許多16位字串接起來,若UDP數據報數據部分不是偶數個字節則要填入一個全零字節(此字節不發送),然后按照二進制反碼計算出16位字的和。將該結果取反碼放到UDP首部的檢驗和字段並發送到接收方,接收方將UDP數據報按二進制取反求16位字和,若全為1則數據無差錯,否則有差錯,丟棄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM