網間控制報文協議
網間控制報文協議
網間控制報文協議簡稱ICMP(Internet Control Message Protocol ),TCP/IP協議族中的一種協議,位於IP層,用於傳輸網路中的控制信息。ICMP允許出錯消息的生成、檢測分組和與 IP相關的信息郵件。
目錄
簡稱ICMP Internet Control Message Protocol
TCP/IP協議族中的一種協議,位於IP層,用於傳輸網路中的控制信息。ICMP允許出錯消息的生成、檢測分組和與 IP相關的信息郵件。
實例
IP協議的目的比較明確,它只是儘力地、最快地傳遞數據到目的站點,因此很難診斷錯誤情況,必須通過另外的協議返回相應的信息。針對網間層的錯誤診斷、擁塞控制、路徑控制和查詢服務四大功能,ICMP提供相應的報文。例如:當一個分組無法到達目的站點或TTL超時后,路由器就會廢除這個分組,同時向源站點返回一個目的站點不可達的ICMP報文;另外,當網路擁塞(congestion)時,路由器就會廢除過載的分組,同時向源站點返回一個源站點抑制的報文。RFC 792中定義了ICMP協議。
如圖2.15所示,ICMP報文是封裝在IP數據報的數據區中發送的,因此並不能保證它的可靠性。為了避免重複報告所引起的“雪崩”現象,ICMP報文不再引發ICMP報文。
┌──────┬───────┐
│ICMP頭標│ICMP數據區│ICMP報文
└──────┴───────┘
┌────┬──────────────┐
│IP頭標│ IP數據區 │IP數據報
└────┴──────────────┘
圖2.15 ICMP報文的封裝
2.7.1 ICMP報文格式
ICMP報文分成頭標和數據區兩部分,其中頭標包含類型、代碼和校驗和三個域。ICMP報文格式如圖2.16所示。
0 1 2 3
01234567890123456789012345678901
┌───┬───┬───────┐
│ 類型│代碼 │校驗和 │
├───┴───┴───────┤
│ 數據 │
├───────────────┤
│ ··· │
└───────────────┘
圖2.16 ICMP報文格式
計算校驗和的演演算法與IP報頭校驗和的演演算法相同,也是16位二進位反碼和的反碼。但要注意的是,它是整個ICMP數據報的校驗和而不僅僅是頭標的校驗和;類型域是一個單位元組整數,它指出報文的類型;代碼域也是一個單位元組整數,它提供關於報文類型更進一步的信息。表2-3定義了15個ICMP報文類型。
0││12│
3││12│
4││12│
5││12│
8││12│
9││12│
10││12│
11││12│
(t001)