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