一、概述
ICMP(网络层)是互联网的标准协议,但ICMP不是高层协议,ICMP封装在IP数据报中,作为数据部分,它是为了更有效地转发IP数据报和提高交付成功的机会。
二、报文格式
ICMP报文作为IP层数据报的数据,加上数据报首部,组成IP数据报发出去。
三、ICMP报文的种类
ICMP报文的种类分为两种,即为ICMP差错报告报文和ICMP询问报文。
ICMP报文的前四个字节是统一的格式,共三个字段:类型,代码和检验和。接着的4个字节的内容与ICMP的类型有关。最后面是数据字段,其长度取决于ICMP的类型。下表给出了几种常用的ICMP报文类型。
ICMP差错报文共有四种:
1、终点不可达: 当路由器或主机不能交付数据报时就向源点发送终点不可报文。
2、时间超过: 当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点预先在规定的时间内不能收到一个数据包的全部数据报片时,就把已收到数据报片丢掉,,并向源点发送时间超过报文。
3、参数问题: 当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,就向源点发送参数问题报告。
4、改变路由(重定向): 路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可能路过更好的路由)。
常见的ICMP询问报文有两种:
1、回送请求和回答。
2、时间戳请求与回答。
参考资料:《计算机网络》 作者:谢希仁 电子工业出版社