ICMP協議介紹
1、ICMP是“Internet Control Message Protocol”(Internet控制消息協議)的縮寫。
它是TCP/IP協議族的一個子協議。用於在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息盡管並不傳輸用戶數據。可是對於用戶數據的傳遞起着關鍵的數據。
2、ICMP報文作為IP層數據報的數據,加上數據報的首部,組成數據報發送出去。
3、ICMP報文的種類有兩種,即ICMP差錯報告報文和ICMP詢問報文。
利用ping 程序分析一個ICMP協議交互過程
CMD下運行 ping www.baidu.com
過濾僅僅顯示ICMP協議
能夠看到windows下ping默認運行4次ping程序,wireshark抓到8個ICMP查詢報文,詳細看一次請求和應答過程
首先先看一個包的格式,由下圖可知。報文由IP首部和ICMP報文組成,先看下IP包的首部和大小
紅色框中藍色為IP首部,共同擁有20字節
下圖為紅色框中的藍色為ICMP報文,共同擁有40個字節
ICMP報文的詳細格式
由此能夠看到剛才的截圖
Type:8
Code:0
Checksum:0x4c90
通過查詢ICMP報文類型可知,Type為8的包為 回射請求(Ping請求)
使用同樣的方法。查看Echo (ping) reply包,得到type類型為0
通過查詢ICMP報文類型可知。Type為0的包為 回射應答(Ping應答)
詳細例如以下圖