圖示講解ICMP協議的抓包解析過程
在前面的文章中,我們對ICMP協議的報文結構已經做了介紹。那么不清楚的朋友們可以參閱一下《ICMP協議的基本結構和報文類型》這篇文章,那么接下來我們主要介紹一下這個協議的解碼過程,首先還是簡單回顧一下這個協議的基本信息。
基本概念
ICMP協議全稱Internet Control Message Protocol,中文名為因特網控制報文協議。它工作在OSI的網絡層,向數據通訊中的源主機報告錯誤。ICMP可以實現故障隔離和故障恢復。
網絡本身是不可靠的,在網絡傳輸過程中,可能會發生許多突發事件并導致數據傳輸失敗。網絡層的IP協議是一個無連接的協議,它不會處理網絡層傳輸中的故障,而位于網絡層的ICMP協議卻恰好彌補了IP的缺限,它使用IP協議進行信息傳遞,向數據包中的源端節點提供發生在網絡層的錯誤信息反饋。
詳細解碼
使用科來網絡分析系統捕獲數據包,我們得到ICMP回顯報文的信息,如圖1所示。
(圖1 科來網絡分析系統抓取的ICMP回顯報文)
我們詳細介紹在圖1中的解碼信息。
類型:8,表示是一個ICMP回顯請求報文;
代碼:0,表示網絡不可達;
校驗和:表示ICMP的0x425C;使用IP校驗和的算法;
標識:0x0400;
序列號:0x0700,每一個ICMP回顯報文都有一個序列號且是遞增的;
數據:表示是一個32字節的數據;
注:以上是一個ICMP回送報文,可以看出了和前面列出的ICMP報文有點不一樣。因為ICMP協議有幾種類型的報文(目標不可達報文,重定向報文,超時報文,回送請求和回送應答報文),每一種報文都相對都有一些區別,這里我們就不在特別介紹。