目錄
UDP 用戶數據協議 (User Datagram Protocal)
用戶數據報協議UDP只在IP的數據報服務之上增加了很少一點的功能,這就是複用和分用的功能以及差錯檢測的功能。
1.主要特點:
(1)不可靠信道
UDP使用盡最大努力交付。
(2)無連接
傳送數據之前不需要先建立連接,目標主機的運輸層收到之後不用給出確認。
(3)是面向報文的
對應用層下來的報文 和 對IP網絡層交上來的報文 都不進行改動,直接添加或去除首部後進行下一步操作。
若報文太長,交付給IP層後會進行分片,降低了IP層效率;
報文太短,會使得交付給IP層後的IP數據報的首部相對長度太長。
(4)沒有擁塞控制
網絡出現擁塞後不會降低源主機的發送速率,對某些實時應用很重要。
如IP電話、實時視頻會議等。
允許在網絡擁塞時丟失一些數據,但不允許數據有太大的時延。
(5)支持 一對一、一對多、多對一、多對多的交互通信。
(6)首部開銷小,只有8個字節。
1.2一些實際應用經驗:
2.UDP首部格式:
UDP報文由數據字段和首部字段組成。
首部有8字節,由四個字段組成每個自訴案兩個字節:
(1)源端口 源端口號。在需要對方回信時選用。不需要時可用全0。
(2)目的端口 目的端口號。這在終點交付報文時必須使用。
(3)長度 UDP用戶數據報的長度,其最小值是8(僅有首部)。
(4)檢驗和 檢測UDP用戶數據報在傳輸中是否有錯。有錯就丟棄。
注意:
1.如果接收方UDP發現收到的報文中的目的端口號不正確(即不存在對應於該端口號的應用進程),
就丟棄該報文,並由網際控制報文協議ICMP發送“端口不可達”差錯報文給發送方。
2.首部中的檢驗和在計算時,要在UDP用戶數據報之前增加12個字節的僞首部。
只是在計算檢驗和時臨時添加的,既不向下傳遞也不向上遞交。
3.僞首部的第3字段是全零;第4字段是IP首部中的協議字段的值;第5字段是UDP用戶數據報的長度。
3.檢驗和的計算
UDP的檢驗和是把首部和數據部分一起都檢驗。
發送方:
1.首先是先把全零放入檢驗和字段。
2.再把僞首部以及UDP用戶數據報看成是由許多16位的字串接起來的。
若UDP用戶數據報的數據部分不是偶數個字節,則要填入一個全零字節(但此字節不發送)。
3.然後按二進制反碼計算出這些16位字的和。
4.將此和的二進制反碼寫入檢驗和字段後,就發送這樣的UDP用戶數據報。
接受方:
1.把收到的UDP用戶數據報連同僞首部(以及可能的填充全零字節)一起,按二進制反碼求這些16位字的和。
2.當無差錯時其結果應爲全1。否則就表明有差錯出現,接收方就應丟棄這個UDP用戶數據報
(也可以上交給應用層,但附上出現了差錯的警告)。
不難看出,這種簡單的差錯檢驗方法的檢錯能力並不強,但它的好處是簡單,處理起來較快。
這樣的檢驗和,既檢查了UDP用戶數據報的源端口號和目的端口號以及UDP用戶數據報的數據部分,又檢查了IP數據報的源IP地址和目的地址。