ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议( TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。
ICMP报文是在IP数据报内部被传输的,如图6 - 1所示。
ICMP 的正式规范参见RFC 792 [Posterl 1981b ]。
ICMP报文的格式如图6 - 2所示。所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。下面我们将逐个介绍各种报文格式。
类型字段可以有1 5个不同的值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件。
检验和字段覆盖整个ICMP报文。使用的算法与我们在3 . 2节中介绍的IP首部检验和算法相同。ICMP的检验和是必需的。
在本章中,我们将一般地讨论ICMP报文,并对其中一部分作详细介绍:地址掩码请求和应答、时间戳请求和应答以及不可达端口。我们将详细介绍第2 7章Ping程序所使用的回应请求和应答报文和第9章处理IP路由的ICMP报文。
各种类型的ICMP报文如图6 - 3所示,不同类型由报文中的类型字段和代码字段来共同决定。
本文转自loveme2351CTO博客,原文链接:http://blog.51cto.com/loveme23/16768 ,如需转载请自行联系原作者