ICMP传递差错报文以及其他需要注意的信息

类型字段描述特定类型的ICMP报文,代码字段进一步描述不同的条件。

发送ICMP差错报文时要包含产生该差错的IP数据报的IP首部和之后的前8个字节(包括了TCP或UDP源端口号和目的端口号),这样接收ICMP差错报文的模块就可以将它与某个协议(IP首部)和用户进程(端口号)联系起来。

产生ICMP差错报文的前提是不产生广播风暴(以前ICMP差错报文对广播分组响应导致网络长时间被大量的广播数据包所占用)。

 


端口不可达报文是ICMP差错报文中的目的不可到达报文中的一种,如下图所示:

类型(3): ICMP端口不可达差错代码是3。

代码(0-15):有16种不同类型的I C M P不可达报文。

 


ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码(与RARP类似)。请求和应答报文格式:

ICMP报文中的标识符和序列号字段由发送端设定,并在应答中将被返回。这样,发送端就可以把应答与请求进行匹配。


ICMP时间戳请求允许系统向另一个系统查询当前的时间,返回值是自午夜开始计算的毫秒数(UTC)。可精确到毫秒。请求和应答报文格式:

请求端填写发起时间戳,然后发送报文。应答系统收到请求报文时填写接收时间戳,在发送应答时填写传送时间戳。