《wireshark(版本1.99.8)抓包(1)》

司小幽發表於2016-01-25
通過wireshark(版本1.99.8)抓ICMP資料包
1.關於ping:
ping使用的是ICMP,本篇文章是通過wireshark捕獲從本機ping到360官網的icmp資料包的例項。

2.啟動抓包
①本次例項選擇的是360官網:www.360.com作為ping的物件,由於起初預設的wireshark捕獲篩選器規則並沒有ICMP,這裡需要自己新建一個,在篩選器一欄,填寫ip proto\icmp語句即可達到篩選的功能,為了醒目,直接將名稱設定為ICMP only表示只捕獲ICMP資料包。


②首先,先點選wireshark捕獲選項的開始按鈕,隨時等待抓包,然後在cmd命令視窗鍵入ping www.360.com進行操作,可以看到360的IP是125.88.190.156。並且可以看到傳送的四個包全部被接收,其丟包率為0。

③停止抓包,並返回到wireshark主介面後,在應用顯示篩選器一欄鍵入過濾規則:ip src eq 125.88.190.56,表示只顯示源地址為125.88.190.56的報文,如下圖所示:

顯然這是幀號為79的echo (ping )reply包,源地址為125.88.190.56,目的地址為192.168.1.100,ttl為43,該reply包reply的是幀號為69的request包也即如下圖所示的報文。

通過以上兩圖可以看出reply包的TTL值為43,而request包的TTL為64,由此可以大致推算出報文經過了(64-43=21)個路由器。(雖然TTL從字面上翻譯,是可以存活的時間,但實際上TTL是IP資料包在計算機網路中可以轉發的最大跳數。TTL欄位由IP資料包的傳送者設定,在IP資料包從源到目的的整個轉發路徑上,每經過一個路由器,路由器都會修改這個TTL欄位值,具體的做法是把該TTL的值減1,然後再將IP包轉發出去。如果在IP包到達目的IP之前,TTL減少為0,路由器將會丟棄收到的TTL=0的IP包並向IP包的傳送者傳送 ICMP time exceeded訊息。——百度百科
3.資料包分析
進一步分析幀號為79的reply報文,可以看出該包通過了資料鏈路層DLC協議、IP和ICMP共3層協議的封裝。

上圖型別欄位和程式碼欄位分別為“Type:0,Code:0”表示收到的是如下Type=8的ICMP報文(ping),而且在途中沒有異常(例如被路由器丟棄,目標不迴應ICMP或傳輸失敗),而返回的Type=0的ICMP報文,說明這臺主機存在【1】。通過上圖還可以看到回覆應答的報文的時間比較長(和ping百度相比,該ping的Response time為11504.391ms,而ping百度的則僅僅32.492ms)

抓包期間還有個小插曲,就是源IP為未知地的ICMP報文的亂入,剛好用來作為途中異常的對比物件。由於途中出現異常,下圖的型別欄位和程式碼欄位變為了(Type:3,Code:3)均不可達。



4.參考文獻
【1】劉化君等編著 網路安全技術 機械工業出版社 2015年










相關文章