在以太網(wǎng)類設(shè)備開發(fā)中經(jīng)常存在一些奇怪網(wǎng)絡(luò)問題或者使用問題,拿NA111串口服務(wù)器設(shè)備舉例,在某些使用環(huán)境中,設(shè)備能獲取到IP地址(使用DHCP),但是無法連接目標服務(wù)器,檢查參數(shù)配置沒問題,使用電腦可以連接服務(wù)器,此時很難判定是哪里的問題,一般情況下用戶可節(jié)能直接判定設(shè)備有問題,但是實際上可能并非如此,此時如果能抓到網(wǎng)口的mac層報文,便可以分析問題原因。
目前筆者最常用的抓包工具wireshark,Wireshark抓包工具攜帶了強大的數(shù)據(jù)分析及過濾功能,支持大多數(shù)的網(wǎng)絡(luò)協(xié)議解析,下面介紹軟件的基本使用過程:
打開軟件,通過選擇網(wǎng)卡(下左),即可進入日志界面(下右),抓取選擇的網(wǎng)卡的數(shù)據(jù)
Wireshark的輸入欄可以輸入過濾命令,其命令與常用的c++/c#/js等語言的邏輯一致:
支持判定符號:等于“==”,或“||”,非“!”,與”&&”,支持括號優(yōu)先級“()”
支持代碼補全,但需要知道基本的類名。常用的過濾條件如下
類型 | 實例 | 含義 |
tcp.port == 1883 | 僅顯示端口為1883的tcp報文(不區(qū)分源端口還是目標端口) | |
udp | udp.length == 60 | 僅顯示長度為60的udp報文 |
ip | ip.addr==192.0.2.1 | 僅顯示制定IP地址的報文 |
eth | eth.addr == 84-c2-e4-36-03-6b | 僅顯示制定mac地址的報文 |
使用組合條件可以更加準確的濾出想要的報文。
下圖所示為過濾端口為80的tcp報文,軟件可以自動識別數(shù)據(jù)幀為http,并將header,url,payload部分自動拆解開來,從拆解的信息中可以獲取源和目標的ip、端口、mac地址,窗口信息等,右擊選中的條目還可以看到完整的payload部分,下圖中顯示了抓取的http報文,由于追蹤的事http流,他甚至關(guān)聯(lián)了上下文
(1)、筆者在開發(fā)NA111串口服務(wù)器設(shè)備時發(fā)現(xiàn),串口服務(wù)器設(shè)備MQTT模式連接華為云的時候會出現(xiàn)能連接服務(wù)器但是無法發(fā)布訂閱消息的情況,但是使用測試軟件mqt.fx可以實現(xiàn),解決此問題便是通過抓包對比分析報文發(fā)現(xiàn)的,當時使用目標IP地址以及目標端口進行過濾,發(fā)現(xiàn)如下:
設(shè)備連接后的首次訂閱報文中,message identifier:0
但是mqtfx連接后的首次訂閱報文中,message identifier:1
后通過查閱mqtt相關(guān)協(xié)議以及mqtt庫的實例代碼發(fā)現(xiàn),id必須從1起始,最終解決此問題
(2)、在部分NA111串口服務(wù)器的售后問題中,用戶使用http連接服務(wù)器出現(xiàn)問題,發(fā)現(xiàn)數(shù)據(jù)post到服務(wù)器,服務(wù)器無法正常返回200回復(fù),而是返回400,但是使用Apipost等工具并無問題,一般情況下,這種問題一般是header參數(shù)填寫錯誤產(chǎn)生的,也和實際的服務(wù)器解析規(guī)則相關(guān),但是客戶并不知道服務(wù)器需要哪些header,此時在客戶的電腦上安裝wireshark,通過過濾制定的端口以及目標服務(wù)器,使用Apipost工具發(fā)送數(shù)據(jù),通過追蹤數(shù)據(jù)流的辦法,可以查到header部分
再通過網(wǎng)絡(luò)調(diào)試工具連接到目標服務(wù)器,拷貝上述報文,通過逐步刪除header中的參數(shù)行,觀察服務(wù)器的返回報文,可以去除無效行,最后將header中剩余行填入設(shè)備參數(shù)中,完成http參數(shù)配置,最后實現(xiàn)連接
使用具備鏡像功能的交換機,如tplink的TL-SG2005、水星的SG105PRO,均可以實現(xiàn)鏡像端口功能,按照下圖,連接設(shè)備與電腦,設(shè)置好鏡像端口,同樣使用wireshark抓取電腦網(wǎng)口的數(shù)據(jù),通過過濾mac地址,ip等,即可實現(xiàn)對設(shè)備與服務(wù)器之前的通信報文抓取。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(微信號:cdebyte)進行了解,也可以直接撥打400電話咨詢技術(shù)專員!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務(wù)郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號-3