使用Packet Sniffer抓包和分析(z-stack協議)


 

以下內容僅是自己學習總結,可能會有錯誤,有發現問題的歡迎指正(圖片可以自己放大,還是比較清晰的)。

 

1、協調器上電,其他設備均不上電,抓包如下:

通過觀察可以發現,協調器建立網絡成功后,會以15秒為周期告知自己的網絡連接狀態,

 

2、關閉協調器,路由器上電,抓包如下:

路由器會不斷的發送Beacon request來請求網絡信息。

 

3、為了抓完整的包,先將協調器上電,然后再將路由器上電,抓完整組網包如下:

 

從頭開始看,

1)首先協調器建立好網絡,並且以15S的間隔廣播自己的網絡連接狀態NWK Link Status

2)路由器連續發了3個Beacon request,協調器分別回應了3次,

3)然后路由器將自己的MAC地址信息加入,發送了Association request,即請求連接,協調器回復一個ACK信號

4)路由器將自己的MAC地址信息加入(0x00124B000AF859CD),發送了Data request,協調器再回復一個ACK信號

5)協調器根據Data request,給路由分配一個short addr(0x4D13)發送給路由器(0x0000)。路由器收到后給予一個ACK回應

6)接着路由器和協調器分別廣播一個APS CLUSTER ID = 0x0013的數據信息

7)組網已經全部完成,這時候路由器和協調器分別會以15秒的間隔不斷的廣播自己的網路狀態,

8) 此時,用戶可以發送自己的數據,我這里發送數據是截圖的最后一幀(上面截圖沒有截完全,下面是上面最后一幀截圖的補充),可以觀看,MAC payload即MAC層接收到的數據,

    它左右的信息是物理層PHY頭部解析后的表現形式,MAC payload又解析成了NWK頭部和NWK payload(MAC payload黃色區域右邊),同樣NWK payload又分解成了

    APS頭部和APS payload(NWK payload黃色區域右邊),觀察這些數據,發現不正是我們在用戶程序里面自己定義的端點號,簇ID,和數據內容嗎,這些數據我們將在自己的程序中解析並且處理

    我這里的端點號是0x0B,簇ID是0x0002,prifile ID 是0x0F05,數據內容是EA EB 4D 13 D9 5B F8 0A 00 4B 12 00(EA EB是頭部,4D 13是路由器的短地址,D9 5B F8 0A 00 4B 12 00是路由器的長地址;僅測試使用,所以數據格式叫簡單,沒有數據長度,數據校驗等信息)

 

9)以上過程就完成了路由器,協調器組網,並且數據傳送的整個過程。


免責聲明!

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



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