ICMP提供工作原理是
ICMP提供一致易懂的出錯報告信息。發(fā)送的出錯報文返回到發(fā)送原數(shù)據(jù)的設備,因為只有發(fā)送設備才是出錯報文的邏輯接受者。發(fā)送設備隨后可根據(jù)ICMP報文確定發(fā)生錯誤的類型,并確定如何才能更好地重發(fā)失敗的數(shù)據(jù)包。但是ICMP唯一的功能是報告問題而不是糾正錯誤,糾正錯誤的任務由發(fā)送方完成。
我們在網(wǎng)絡中經(jīng)常會使用到ICMP協(xié)議,比如我們經(jīng)常使用的用于檢查網(wǎng)絡通不通的Ping命令(Linux和Windows中均有),這個“Ping”的過程實際上就是ICMP協(xié)議工作的過程。還有其他的網(wǎng)絡命令如跟蹤路由的Tracert命令也是基于ICMP協(xié)議的。
ICMP的報文格式是
ICMP報文包含在IP數(shù)據(jù)報中,屬于IP的一個用戶,IP頭部就在ICMP報文的前面,所以一個ICMP報文包括IP頭部、ICMP頭部和ICMP報文,IP頭部的Protocol值為1就說明這是一個ICMP報文,ICMP頭部中的類型(Type)域用于說明ICMP報文的作用及格式,此外還有一個代碼(Code)域用于詳細說明某種ICMP報文的類型,所有數(shù)據(jù)都在ICMP頭部后面。[3]
ICMP報文格式具體由RFC 777[4],RFC 792[2]規(guī)范。