- ICMP地址掩码请求和应答以及时间戳请求和应答。这些是典型的请求-应答报文。二者在ICMP报文中都有标识符合序列号。发送端应用程序在标识字段内存入一个唯一的数值,以区别于其他进程的应答。序列号字段使得客户程序可以在应答和请求之间进行匹配。
- ICMP端口不可达差错,一种常见的ICMP差错。对返回的ICMP差错信息进行了分析:导致差错的IP数据报的首部以及后续8个字节。这个信息对应ICMP差错的接收方来说是必要的,可以更多地了解导致差错的原因。这是因为TCP和UDP都在它们的首部前8个字节中存入源端口号和目的端口号。
- 按时间先后的tcpdump输出。
1. 如下列出了5种不发送ICMP差错报文的特殊条件。如果这些条件不满足而我们又在局域网上向一个似乎不存在的端口号发送一份广播UDP数据报,这时会发生什么样的情况?
- 如果在局域网线上有一百个主机,每个都可能在同一时刻发送一个ICMP端口不可达的报文。很多报文的传输都可能发生冲突(如果使用的是以太网),这将导致1秒或2秒的时间里网络不可用。
2. 阅读RFC[Braden 1989a],注意生成一个ICMP端口不可达差错是否为“必须”,“应该” 或者 “可能”。这些信息所在的页码和章节是多少?
- 它是一个“should”。
3. 阅读RFC 1349 [Almquist 1992],看看IP的服务类型字段(见图3-2)是如何被ICMP设置的
- 如我们在图3-2所指出的,发送一个ICMP差错总是讲TOS置为0。发送一个ICMP查询请求可以将TOS置为任何值,但是发送相应的应答必须将TOS置为相同的值。
4. 如果你的系统提供netstat命令,请用它来查接收和发送的ICMP报文类型。
- netstat-s是查看每个协议统计数据的常用方法。在一台收到了4800万个IP数据报的SunOS4.1.1主机(gemini)上,ICMP统计为:
- 21个类型为10的报文是SunOS4.1.1不支持的路由器的请求。也可以使用SNMP,有些系统,如Solaris2.2,可以生产使用SNMP变量名的netstat-s的输出。