概述:
當(dāng)網(wǎng)絡(luò)或者路由出現(xiàn)問題時,IP層可以處理的問題:
1. ? ? 因路由配置導(dǎo)致的路由回路,可通過設(shè)置TTL(Time To Live,目前一般該數(shù)值設(shè)置為跳轉(zhuǎn)的路由個數(shù))防止循環(huán)路由
2. ? ? P數(shù)據(jù)報分片重組時,信宿機(jī)會為數(shù)據(jù)報設(shè)置緩沖區(qū),但是當(dāng)某個分片丟失時,該存儲區(qū)不會被清楚。因此設(shè)置超時機(jī)制,防止因上述情況導(dǎo)致的存儲區(qū)浪費(fèi)
3. ? ? 當(dāng)信宿機(jī)不可達(dá)或者關(guān)機(jī),或者信宿機(jī)無法識別IP首部協(xié)議字段時,數(shù)據(jù)報被丟失
除去上述情況,仍有其他網(wǎng)絡(luò)或路由問題需要解決。而這些問題正是I CMP(Internet Control Message Protocol)需要解決的。
1. ? ? 擁塞控制:路由器處理能力有限,在短時間收到大量IP數(shù)據(jù)報時,路由器需要通知源端減緩IP數(shù)據(jù)報發(fā)送;
2. ? ? 最優(yōu)路由路徑選擇
3. ? ? 判斷信宿機(jī)是否可達(dá)
4. ? ? 同步路由器時鐘
報文格式
由首部與數(shù)據(jù)組成,首部包含類型。
報文封裝:

報文類型:

其中需要測試網(wǎng)絡(luò)聯(lián)通性時,可以使用回送請求和回送應(yīng)答報文
ICMP應(yīng)用
ping程序
ping程序即是基于ICMP回送請求和回送應(yīng)答,來檢測目的站是否可達(dá)。
ping還可以制定TTL,超時時間等參數(shù)
tracert程序
目前是同的traceroute,利用了IP首部的TTL字段以及ICMP超時報文。將IP數(shù)據(jù)報首部的TTL字段設(shè)置為1時,該數(shù)據(jù)報經(jīng)過第一個路由器后TTL字段遞減為0,這個路由器會返回一個ICMP超時報文。這個報文封裝在IP數(shù)據(jù)報中,源端可以提取獲得源IP地址。只有,TTL以1為單位遞增,最終獲取路由中所有IP地址。
tracert針對每一跳都偵測三次
當(dāng)然這種方案,在目標(biāo)屏蔽了ICMP回送請求報文時,將無法收到ICMP回送應(yīng)答報文。