天天看點

【Network】之 UDP

文章目錄

  • ​​一、特性​​
  • ​​(1)優點​​
  • ​​(2)帶來的問題​​
  • ​​二、應用場景​​
$ nslookup
> baidu.com
Server:   127.0.0.53
Address:  127.0.0.53#53

Non-authoritative answer:
Name: baidu.com
Address: 220.181.38.148
Name: baidu.com
Address: 39.156.69.79      

​wirshark​

​ 如圖:

【Network】之 UDP

一、特性

​UDP​

​​設計簡單。

在協定頭中,隻有端口号、包長度和校驗碼等少量資訊,總共 8個位元組。

如圖:

【Network】之 UDP

(1)優點

  • ​UDP​

    ​​攜帶的淨資料較多。由于​

    ​UDP​

    ​​協定頭長度還不到​

    ​TCP​

    ​頭的一般。
  • 省去了建立連接配接的負擔。由于​

    ​UDP​

    ​​沒有​

    ​Seq​

    ​​号和​

    ​Ack​

    ​号等概念,無法維持一個連接配接。

(2)帶來的問題

  1. 不在乎雙發方​

    ​MTU​

    ​ 的大小
它拿到應用層的資料之後,直接打上 ​

​UDP​

​頭就交給下一層了。

若超過 ​

​MTU​

​​ 怎麼辦?

發送方的網絡層負責分片,接收方收到分片後再組裝起來,這個過程會消耗資源。

  1. ​UDP​

    ​沒有重傳機制
丢包需要由應用層來處理
【Network】之 UDP
【Network】之 UDP
  1. 分片機制存在弱點,會成為黑客的攻擊目标
接收方根據每個包裡的 ​

​More fragments​

​​ 的​

​flag​

​​,把分片組裝起來。

​​

​1​

​​表示後續還有分片,​

​0​

​表示這是最後一個分片(可以組裝了)

若黑客持續快速地發送 ​

​flag​

​​為​

​1​

​​的​

​UDP​

​包,接收方一直無法把這些包組裝起來,就有可能耗盡記憶體。

二、應用場景

(1) 網頁或者APP的通路

例如:​

​QUIC​

​(Quick UDP Internet Connections,快速 UDP 網際網路連接配接)

QUIC:是一種基于 ​

​UDP​

​改進的通信協定,其目的是降低網絡通信的延遲,提供更好的使用者互動體驗

QUIC 在應用層上,自己實作了:快速連接配接建立、減少重傳時延、自适應擁塞控制

(2)流媒體的協定

直播,講究實時,過時的包丢了就丢了。

(3)實時遊戲

遊戲對實時要求較為嚴格的情況下,采用自定義的可靠 UDP 協定,自定義重傳政策,能夠把丢包産生的延遲降到最低,盡量減少網絡問題對遊戲性造成的影響。

(4)​

​IoT​

​物聯網

物聯網領域終端資源少,很可能隻是個記憶體非常小的嵌入式系統,維護​

​TCP​

​協定代價過大。

繼續閱讀