ICMP經常被認為是IP層的一個組成部分。它傳遞差錯報文以及其他需要注意的信息。ICMP報文通常被IP層或更高層協議(TCP或UDP)使用。一些ICMP報文把差錯報文返回給用戶進程。
ICMP報文是在IP數據報內部被傳輸的,如圖6-1所示。ICMP的正式規范參見RFC792[Posterl1981b]。ICMP報文的格式如圖6-2所示。所有報文的前4個字節都是一樣的,但是剩下的其他字節則互不相同。下面我們將逐個介紹各種報文格式。類型字段可以有15個不同的值,以描述特定類型的ICMP報文。某些ICMP報文還使用代碼字段的值來進一步描述不同的條件。檢驗和字段覆蓋整個ICMP報文。使用的算法與我們在3.2節中介紹的IP首部檢驗和算法相同。ICMP的檢驗和是必需的。