1. UDP報文封裝
一個典型的使用UDP協議封裝的數據包,包括以太網MAC頭+網絡層IP數據頭+傳輸層UDP頭+要傳輸的數據。詳見下圖所示:
2. UDP報文結構
UDP(User Data Protocol,用戶數據報協議)是一個簡單的面向數據報的運傳輸層協議。它不提供可靠性,只是把應用程序傳給IP層的數據報發送出去,但是不能保證它們能到達目的地。由于UDP在傳輸數據報前不用再客戶和服務器之間建立一個連接,且沒有超時重發等機制,所以傳輸速度很快
UDP報文結構如下圖示:
UDP報文結構各字段功能如下示:
源端口號 :表示發送端端口號,字段長16位;在需要對方回信時選用,不需要時可設為0
目標端口號 :表示接收端端口號,字段長16位;在終點交付報文時要使用到
總長度 :UDP用戶數據報的長度,其最小值是8(僅有首部),發送一個帶0字節數據的UDP數據報是允許的。值得注意的是,UDP長度字段是冗余的;IPV4頭部包含了數據報的總長度,同時IPV6頭部包含了負載長度。因此,一個UDP/IPV4數據報的長度等于IPV4數據報的總長度減去IPV4頭部的長度;一個UDP/IPV6數據報的長度等于包含在IPV6頭部中的負載長度(payload length)字段的值減去所有擴展頭部(除非使用了超長數據報)的長度。這兩種情況下,UDP長度字段應該與從IP層提供的信息計算得到的長度是一致的
校驗和 :檢測UDP用戶數據報在傳輸中是否有錯。有錯就丟棄
3. Wireshark抓包分析
將Socket API編程模型一文中的UDP Server工程源碼下載到開發板中,用網線將PC和開發板相連接,開啟一個UDP客戶端;打開wireshark軟件,監聽IP地址192.168.1.10后,在UDP客戶端發送數據
wireshark抓取到相應的UDP數據包,可以看到源端口號、目標端口號、總長度、校驗和以及數據
-
封裝
+關注
關注
128文章
8349瀏覽量
144376 -
UDP
+關注
關注
0文章
330瀏覽量
34354 -
UDP協議
+關注
關注
0文章
70瀏覽量
12979 -
數據包
+關注
關注
0文章
269瀏覽量
24806 -
傳輸層
+關注
關注
0文章
30瀏覽量
11008
發布評論請先 登錄
相關推薦





Linux下的UDP協議編程

UDP協議,UDP協議是什么意思
udp協議及包格式是什么

評論