【計算機網絡】3.2 無連接運輸:UDP
阿新 • • 發佈:2018-08-12
緩存 info 多路分解 參數 href name 比較 outline 檢測
第三章第二節 無連接運輸:UDP
UDP(用戶數據報協議,User Datagram Protocol),它只是做了運輸層協議能夠做的最少工作,除了多路復用和多路分解及一些差錯檢測外,它幾乎沒有做任何東西。參考前文:計算機網絡2.1
Outline
- UDP的優勢
- UDP報文段格式
Notes
## UDP的優勢
- 應用層能更好發控制要發送的數據和發送時間:當網絡應用進程有數據傳遞給UDP時,UDP馬上就會將此數據打包成UDP報文段,並把它交付給網絡層,從而把數據發送出去。而TCP的擁塞機制會讓視頻會議等功能的體驗變得很差。
- UDP無需握手:在使用UDP時,在發送報文段之前,發送方和接收方的運輸層實體之間沒有進行握手,所謂的握手,就是發送方和接收方通過發送一些特定的報文段來互相確認,從而為發送做準備。無需握手就不會引入建立連接的時延,所以DNS運行在UDP之上而不是TCP之上。
- UDP無連接狀態:TCP需要在端系統中維護連接狀態。此連接狀態包括接收和發送緩存、擁塞控制參數、序號與確認序號等參數。而UDP不維護連接狀態,也不跟蹤這些參數。因此,使用UDP的服務器能支持更多的活動客戶機。
- 分組首部開銷小:由於UDP提供的服務少,只提供多路分解和多路復用和校驗功能,所以其首部字段少,只有8個字節,而TCP的首部有20個字節。
## UDP報文段格式
UDP報文段結構由RFC 768定義,如上圖所示,UDP首部只有4個字段,每個字段由兩個字節組成。
- 源端口號: 本機(客戶端)的應用程序的套接字所對應的端口號,服務器端可利用此端口號向客戶端發送數據。
- 目的端口號: 服務端上的應用進程的套接字所對應的端口號,例如HTTP服務器的80端口。
- 長度:指明了首部和數據部分的UDP報文段的總長度,單位為字節,即首部+數據。
- 檢驗和: 提供了差錯檢測功能,即檢驗和用於確定當UDP報文段從源到達目的時,其中的比特是否發生了改變。
【UDP檢驗和】
- 發送方
- 將段的內容視為16-bit整數
- 校驗和計算:計算所有整數的和,進位加在和的後面,將得到的值按位求反,得到校驗和
- 發送方將校驗和放入校驗和字段
- 接收方
- 計算所得到段的檢驗和,並將其余檢驗和字段進行比較
- 如果不相等,則檢驗出錯誤,但若想等也可能有錯誤。
【計算機網絡】3.2 無連接運輸:UDP