UDP協議解析 以及和TCP協議的區別


UDP(User Data Protocol)是傳輸層的用戶數據報協議,有復用和分用以及差錯檢測的功能。  

  1) 多路復用(針對發送主機):從不同套接字收集數據塊,並為每個數據塊封裝上首部信息,生成報文段,傳遞到網絡層

  2) 多路分解(針對接收主機):將報文段中的數據交付到正確的套接字

 

UDP協議主要特點:

  1.UDP是無連接的,發送數據之前不需要建立連接(結束之后自然也不用釋放連接),減少了開銷和發送數據的時延

  2.UDP使用盡最大努力交付,即不保證可靠交付,不需要維持復雜的連接狀態表

  3.UDP是面向報文的,對應用層交下來的報文,添加首部后直接向下交付為IP層,既不合並,也不拆分,保留這些報文的邊界。對IP層交上來 UDP用戶數據報,在去除首部后就原封不動地交付給上層應用進程,報文不可分割,是UDP數據報處理的最小單位。

UDP協議優勢:

  1.UDP沒有擁塞控制,網絡出現的擁塞不會使源主機的發送速率降低,在允許網絡發生擁塞時丟失一些數據並且維持較低的時延時,UDP符合這種要求

  2.UDP支持一對一,一對多,多對一和多對多的交互通信

  3.UDP的首部開銷小,只有8個字節,比TCP的20個字節首部要短

UDP的首部格式:

用戶數據報UDP有兩個字段:數據字段和首部字段。

首部字段由四個字段組成,每個字段的長度都是兩個字節,以下:

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

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

  (3)長度           UDP用戶數據報的長度,最小值為8(僅有首部字段)

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

UDP傳輸數據過程:

  當數據層從IP層收到UDP數據報時,就根據首部中的目的端口,把UDP數據報通過相應的端口,上交到最后的終點。

  如果接收方UDP發現收到的報文中的目的端口號不正確,就會丟棄報文,並由ICMP(控制報文協議)發送“端口不可達”差錯報文給發送方

UDP協議應用場景:

  要發送的內容少,一個數據包就能發送全部內容。

  即時通信(聊天對數據准確性和丟包要求比較低,但速度必須快),在線視頻( 速度一定要快,保證視頻連續,但是偶爾花了一個圖像幀,人們還是能接受的),網絡語音電話(VoIP 語音數據包一般比較小,需要高速發送,偶爾斷音或串音也沒有問題)等等。

UDP協議與TCP協議的區別:

  1.TCP協議是有連接的,開始傳輸實際數據之前TCP的客戶端和服務器端必須通過三次握手建立連接,會話結束之后也要結束連接。而UDP是無連接的

  2.TCP協議保證數據按序發送,按序到達,提供超時重傳來保證可靠性,但是UDP不保證按序到達,甚至不保證到達,只是努力交付,即便是按序發送的序列,也不保證按序送到

  3.TCP有流量控制和擁塞控制,UDP沒有,網絡擁堵不會影響發送端的發送速率

  4.TCP是一對一的連接,而UDP則可以支持一對一,一對多,多對多,一對多的通信

  5.TCP協議首部資源消耗多,TCP首部需20個字節(不算可選項),UDP首部字段只需8個字節

  6.TCP面向的是字節流的服務,UDP面向的是報文的服務

 


免責聲明!

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



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