一、ICMP传递差错报文和其他需要查询的的报文。ICMP报文通常被IP层或者更高层的(TCP UDP)使用。而且一些ICMP报文把差错报文返回给用户进程。
二、ICMP报文分为:查询报文和差错报文。不同类型的由报文中的类型字段和代码字段来共同决定,对于ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文,即如果产生的ICMP报文出现错误,则不会因为这个错误的ICMP报文再产生ICMP报文,这是因为如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止的循环下去。
三、下列情况不会产生ICMP差错报文:
1)ICMP差错报文(ICMP查询报文肯能会产生ICMP差错报文);
2)目的地址是广播地址或多播地址的IP数据报;
3)作为链路层广播的数据报;
4)不是IP分片的第一片;
5)源地址不是单个主机的数据报;就是说源地址为零地址换回地址、广播地址或多播地址不会产生ICMP差错数据报。
四、ICMP地址掩码请求和应答
ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码。
五、ICMP时间戳请求与应答
ICMP时间戳请求允许系统向另一个系统查询当前的时间。返回的值是自午夜(00:00)开始计算的毫秒数,协调统一的时间,ICMP报文的好处是提供了毫秒级的分辨率,缺陷是无法通过此种方法获得当时的日期。
六、ICMP端口不可达错误
这是ICMP目的不可达报文的一种。