5.2 计算机网络之传输层UDP协议
生活随笔
收集整理的這篇文章主要介紹了
5.2 计算机网络之传输层UDP协议
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1.用戶數據報協議UDP概述及特點優勢
- 2.UDP首部格式
- 3.當傳輸層從IP層收到UDP數據報時
- 4.UDP校驗
1.用戶數據報協議UDP概述及特點優勢
為什么應用開發人員寧愿在UDP之上構建應用,也不選擇TCP?既然TCP提供可靠的服務,而UDP不提供,那么TCP總是首選嗎?答案是否定的,因為有很多應用更適合用UDP,主要是因為UDP具有如下優點:
1)UDP無須建立連接。
- UDP不會引入建立連接的時延。
- 試想如果DNS運行在TCP而非UDP.上,那么DNS的速度會慢很多。
- HTTP使用TCP而非UDP,是因為對于基于文本數據的Web網頁來說,可靠性是至關重要的。
2)無連接狀態。
- TCP需要在端系統中維護連接狀態。此連接狀態包括接收和發送緩存、擁塞控制參數和序號與確認號的參數。
- 而UDP不維護連接狀態,也不跟蹤這些參數。
- 因此,某些專用應用服務器使用UDP時,一般都能支持更多的活動客戶機。
3)分組首部開銷小。
- TCP有20B的首部開銷,而UDP僅有8B的開銷。
4)應用層能更好地控制要發送的數據和發送時間。
- UDP沒有擁塞控制,因此網絡中的擁塞不會影響主機的發送效率。
- 某些實時應用要求以穩定的速度發送,能容忍一些數據的丟失,但不允許有較大的時延,而UDP正好滿足這些應用的需求。
5)UDP常用于一次性傳輸較少數據的網絡應用
- 如DNS、SNMP等,因為對于這些應用,若采用TCP,則將為連接創建、維護和拆除帶來不小的開銷。
- UDP也常用于多媒體應用(如IP電話、實時視頻會議、流媒體等),顯然,可靠數據傳輸對這些應用來說并不是最重要的,但TCP的擁塞控制會導致數據出現較大的延遲,這是它們不可容忍的。
6)UDP提供盡最大努力的交付,即不保證可靠交付
- 但這并不意味著應用對數據的要求是不可靠的,因此所有維護傳輸可靠性的工作需要用戶在應用層來完成。
- 應用實體可以根據應用的需求來靈活設計自己的可靠性機制。
7)UDP是面向報文的。
- 發送方UDP對應用層交下來的報文,在添加首部后就向下交付給IP層,
既不合并,也不拆分,而是保留這些報文的邊界; - 接收方UDP對IP層交上來UDP用戶數據報,在去除首部后就原封不動地交付給上層應用進程,一次交付一個完整的報文。
- 因此報文不可分割,是UDP數據報處理的最小單位。
2.UDP首部格式
各字段意義如下:
- 1)源端口。源端口號。在需要對方回信時選用,不需要時可用全0。
- 2)目的端口。目的端口號。這在終點交付報文時必須使用到。
- 3)長度。UDP數據報的長度(包括首部和數據),其最小值是8 (僅有首部)。
- 4)校驗和。檢測UDP數據報在傳輸中是否有錯。有錯就丟棄。該字段是可選的,當源主機不想計算校驗和時,則直接令該字段為全0。
3.當傳輸層從IP層收到UDP數據報時
根據首部中的目的端口,把UDP數據報通過相應的端口.上交給應用進程
如果接收方UDP發現收到的報文中的目的端口號不正確(即不存在對應于端口號的應用進程),那么就丟棄該報文,并由ICMP發送“端口不可達”差錯報文給發送方。
4.UDP校驗
- 偽首部和全0字節是不發送的,僅供校驗使用
總結
以上是生活随笔為你收集整理的5.2 计算机网络之传输层UDP协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5.1 计算机网络之传输层(传输层提供的
- 下一篇: block作用域与流程控制(块block