網絡:W5500 UDP數據包格式注意事項


 1. 主題

使用W5500測試UDP功能,發現收到的數據包和wireshark抓包的數據不同。

原來W5500接收寄存器的數據包並不是網絡上的數據流,而是經過內部處理后展現出來的。

對於這個問題目前沒有查到文檔,技術支持給我的回應是:

寄存器里的數據的格式為: 對方ip(4bytes)  +端口號(2bytes)+ 數據長度 (2bytes)+ UDP數據。

 

2. 問題分析

1)使用TCP助手發送UDP數據,發送3個字節,字符型123.

 

 2. 程序斷點,讀取接收寄存器接收的長度為11字節。前8字節的內容為:C0 A8 01 64 17 70 00 03。

這個正好是源IP,端口,數據長度。 而不是標准UDP協議包頭。

 

3. 使用wireshark抓包。發現數據流並不是上面芯片寄存器的內容。

UDP實際數據包有11個字節,上面W5500寄存器里面讀出來也是11字節。但是內容卻不一樣。

抓包捕獲的前面8個字節是UDP頭,實際數據3個字節,數據為0x31,0x32,0x33。

源地址為192.168.1.100,已經捕獲到。而上面W5500的數據包里面直接給出這個地址。

 

4. 分析UDP數據包格式,對比上面的抓包數據,可以知道,W5500作為一個硬件TCP/IP芯片,內部的邏輯處理已經對數據進行了篩選。

顯示出來的數據都是用戶關心的比如IP,端口,用戶數據長度,用戶數據。用戶無關的網絡協議本身的部分數據已經屏蔽掉了。

但是這些問題在芯片手冊上沒有描述數據輸出是什么格式,確實有遺漏之處,難免讓人有些擔心其嚴謹性。

 


免責聲明!

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



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