- 目的:為了更有效地轉(zhuǎn)發(fā)IP數(shù)據(jù)報(bào)和提高交付成功的機(jī)會(huì)。
- ICMP允許主機(jī)或路由器“報(bào)告差錯(cuò)情況”和“提供有關(guān)異常情況的報(bào)告”。
- ICMP報(bào)文裝在IP數(shù)據(jù)報(bào)中,是IP層的協(xié)議。

ICMP報(bào)文格式
- 報(bào)文中的“代碼”字段是為了進(jìn)一步區(qū)分某種類型中的幾種不同情況。
- “檢驗(yàn)和”用來檢驗(yàn)整個(gè)ICMP報(bào)文。
- ICMP報(bào)文有兩種:差錯(cuò)報(bào)告報(bào)文、詢問報(bào)文。
差錯(cuò)報(bào)告報(bào)文類型
- 終點(diǎn)不可達(dá):當(dāng)主機(jī)或路由器不能交付數(shù)據(jù)報(bào)時(shí),向源點(diǎn)發(fā)送此類報(bào)文。
- 源點(diǎn)抑制:當(dāng)路由器或主機(jī)由于擁塞而丟棄數(shù)據(jù)報(bào)時(shí),就向源點(diǎn)發(fā)送此類報(bào)文,使源點(diǎn)知道應(yīng)當(dāng)放慢數(shù)據(jù)報(bào)的發(fā)送速率。
- 時(shí)間超過:當(dāng)路由器收到TTL為0的數(shù)據(jù)報(bào)時(shí),丟棄它的同時(shí)向源點(diǎn)發(fā)送此類報(bào)文。當(dāng)終點(diǎn)在規(guī)定時(shí)間內(nèi)不能收到一個(gè)數(shù)據(jù)報(bào)的全部報(bào)片時(shí),就將已收到的報(bào)片丟棄,并向源點(diǎn)發(fā)送此類報(bào)文。
- 參數(shù)問題:當(dāng)路由器或主機(jī)收到的數(shù)據(jù)報(bào)的首部中有的字段不正確時(shí),丟棄該數(shù)據(jù)報(bào),并向源點(diǎn)發(fā)送此類報(bào)文。
- 改變路由:路由器通過此類報(bào)文告知主機(jī)下次將數(shù)據(jù)報(bào)發(fā)送給其他路由器(更好的路由)。
ICMP詢問報(bào)文類型
- 回送請(qǐng)求和回答:主機(jī)或路由器向特定的目的主機(jī)發(fā)出詢問,收到報(bào)文的主機(jī)給源主機(jī)或路由器發(fā)送“應(yīng)答報(bào)文”??梢詼y試目的主機(jī)是否可達(dá)和了解其有關(guān)狀態(tài)。
- 時(shí)間戳請(qǐng)求和回答:請(qǐng)某個(gè)主機(jī)或路由器回答當(dāng)前日期和時(shí)刻,回答報(bào)文中含有“從1900年1月1日到當(dāng)前時(shí)刻經(jīng)歷的秒數(shù)”。
ICMP應(yīng)用舉例
ping:用來測試兩個(gè)主機(jī)之間的連通性。
traceroute(tracert):用來探測一個(gè)分組從源點(diǎn)到終點(diǎn)的路徑。