ICMP 报文的格式和种类rague | 13 九月, 2007 16:41--------------------------------格式-------------------------------------各种ICMP 报文的前32bits 都是三个长度固定的字段:type 类型字段(8 位)、code 代码字段(8 位)、checksum校验和字段(16位)8bits 类型和8bits 代码字段:一起决定了ICMP 报文的类型
常见的有:类型8、代码 0:回射请求
类型0、代码 0:回射应答
类型11、代码 0:超时
16bits 校验和字段:包括数据在内的整个ICMP 数据包的校验和,其计算方法和IP 头部校验和的计算方法是一样的
下图是一张 ICMP 回射请求和应答报文头部格式对于 ICMP 回射请求和应答报文来说,接下来是16bits 标识符字段:用于标识本 ICMP 进程
最后是16bits 序列号字段:用于判断回射应答数据报
ICMP 报文包含在 IP 数据报中,属于 IP 的一个用户,IP 头部就在 ICMP 报文的前面一个ICMP 报文包括 IP 头部(20 字节)、ICMP 头部(8 字节)和ICMP 报文IP 头部的Protocol 值为1 就说明这是一个ICMP 报文ICMP 头部中的类型(Type)域用于说明ICMP 报文的作用及格式此外还有代码(Code)域用于详细说明某种ICMP 报文的类型所有数据都在ICMP 头部后面
RFC 定义了13 种ICMP 报文格式,具体如下:类型代码类型描述0 响应应答(ECHO-REPLY)3 不可到达4 源抑制5 重定向8 响应请求(ECHO-REQUEST)11 超时12 参数失灵13 时间戳请求14 时间戳应答15 信息请求(*已作废)16 信息应答(*已作废)17 地址掩码请求18 地址掩码应