第六章 ICMP Internet控制报文协议

ICMP报文是在 IP数据报内部被传输的。

下面各种情况都不会导致产生 ICMP差错报文:

1) ICMP差错报文(但是 ICMP查询报文可能会产 ICMP差错报文

2) 目的地址是广播地址或多播地址( D类地址)的IP数据报。

3) 作为链路层广播的数据报。

4) IP分片的第一片

5) 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地 址或多播地址。

这些规则是为了防止过去允许 ICMP差错报文对广播分组响应所带来的广播风暴。

6.4     ICMP时间戳请求与应答

ICMP时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计 算的毫秒数,协调的统一时间( Coordinated Universal Time, UTC )(早期的参考手册认为 UTC是格林尼治时间)。这种 ICMP报文的好处是它提供了毫秒级的分辨率,而利用其他方法 从别的主机获取的时间(如某些 Unix系统提供的 rdate命令)只能提供秒级的分辨率。由于 返回的时间是从午夜开始计算的,因此调用者必须通过其他方法获知当时的日期,这是它的 一个缺陷。

还可以用另一种方法来获得时间和日期。

1) 1.12节中描述了日期服务程序和时间服务程序。前者是以人们可读的格式返回当前 的时间和日期,是一行 ASCII字符。可以用 telnet命令来验证这个服务:另一方面,时间服务程序返回的是一个 32bit的二制进数值,表示自 UTC190011 午夜起算的秒数。这个程序是以秒为单位提供的日期和时间(前面我们提过的 rdate命令 使用的是 TCP时间服务程序)。

2) 严格的计时器使用网络时间协议(NTP,该协议在 RFC 1305 中给出了描述 [Mills

1992]。这个协议采用先进的技术来保证 LANWAN上的一组系统的时钟误差在毫秒 级以内。对计算机精确时间感兴趣的读者应该阅读这份 RFC文档。

3) 开放软件基金会(OSF)的分布式计算环境(DCE)定义了分布式时间服务(DTS),它也提供计算机之间的时钟同步。文献 [Rosenberg, Kenney and Fisher 1992]提供了该服 务的其他细节描述。

4) 伯克利大学的 Unix系统提供守护程序 timed(8),来同步局域网上的系统时钟。不像NTPDTStimed不在广域网范围内工作。

6.5     ICMP端口不可达差错

注意, ICMP报文是在主机之间交换的,而不用目的端口号。

你可能感兴趣的:(第六章 ICMP Internet控制报文协议)