今天使用wireshark除錯乙個ping功能,使用icmp過濾串,發現ping本地子網乙個不存在的ip位址,wireshark沒有捕獲到任何的icmp資料報。而當ping另外乙個子網不存在的ip位址,wireshark捕獲到了icmp資料。分析如下:
一. ping本地子網的ip位址
1. 獲取目標ip的mac位址(arp協議),若沒有獲取到目標ip的mac位址,ping失敗
2. 若獲取目標ip的mac位址成功,設定乙太網頭的源mac位址及目的mac位址分別為源ip的mac位址和目標ip的mac位址,傳送icmp資料報。
二. ping不同子網的ip位址
1. 獲取閘道器ip的mac位址(arp協議),若沒有獲取到目標ip的mac位址,ping失敗
2. 若獲取閘道器ip的mac位址成功,設定乙太網頭的源mac位址及目的mac位址分別為源ip的mac位址和閘道器ip的mac位址,傳送icmp資料報。
因為ping本地子網乙個不存在的ip位址時首先傳送arp獲取mac位址,而我設定wireshark的過濾串為icmp,所以沒有察覺到arp資料。而獲取mac位址失敗,故不會再傳送icmp資料。
另外需要記住icmp協議也為ip協議,與tcp、udp為同級協議。
ICMP協議和ICMP協議
一 icmp協議 因為ip協議不提供可靠的傳輸服務,也不提供端到端或點到點的確認,如果出錯可以通過icmp報告來看,它是在ip模組中實現。tcp ip協議設計的icmp協議就是為了彌補ip協議的不足。它是tcp ip協議族的乙個子協議,用於在ip主機 路由器之間傳遞控制訊息。控制訊息指網路通不通 主...
使用Jcap捕獲資料報
使用jpcap可以發包,使用jnetpcap可以接收和過濾包。現在專案中遇到的問題總結如下。如果是在window下則必須在path路徑下存在jnetpcap.dll和jpcap.dll檔案,如果是在linux環境下,可以將jnetpcap.so和jnetpcap.so存放到 usr lib目錄下即可...
ICMP協議分析
icmp報文 icmp應用 icmp安全性 icmp的兩級封裝 更加詳細地看一下資料報的格式吧。用來傳送icmp 報文的ip 資料報上實際上有不少字段。但是實際上與icmp 協議相關的只有7 個子段。1 協議 2 源ip 位址 3 目的ip 位址 4 生存時間 這四個包含在ip 首部的字段。5 型別...