BSD系统对ICMP消息的处理-软件无线电原理与应用第二版
在4.4BSD系统中,对于Internet控制报文协议(ICMP)的不同类型消息有着不同的处理方式。由于ICMP涵盖的范围广泛,从致命错误到信息性错误,即使在同一系统的实现中,每个ICMP消息的处理也各不相同。图6-12展示了4.4BSD系统对每种可能的ICMP消息的处理方法。
在图6-12中,我们可以看到与图6-3相同的处理流程,显示了4.4BSD系统如何响应不同类型的ICMP消息。例如:
- 回显应答(Type 0): 当发送方请求回显应答时,用户进程会接收到一个确认消息。这通常用于测试网络连通性或诊断问题。
- 目的不可达(Types 1-3): 这些错误类型指示了通信路径上的问题,可能是由于网络不可达、主机不可达或协议不兼容等原因。在这种情况下,内核会根据情况更新路由表或者忽略该消息。
- 分片相关报文(Type 4): 如果发送的IP数据包太大,需要被分割成多个较小的数据段进行传输时,会触发此类型的ICMP消息。4.4BSD系统会检查是否设置了不分片比特,并根据需要进行处理。
- 源站选路失败(Types 5-7): 这些错误类型表明发送方尝试访问的路径或目标不可达,可能是由于网络、主机或服务类型不兼容等原因。内核会根据情况更新路由表或者忽略该消息。
- 重定向报文(Type 8和9): 当路由器发现更短的路径时,会向发送者发出重定向报文。4.4BSD系统会利用这些信息来更新路由表,以优化数据包传输路径。
- 超时报告(Types 10-12): 当传输期间生存时间为0或数据包组装期间生存时间为0时,内核会生成超时报告并通知用户进程。
- 参数问题报文(Types 13和14): 如果IP首部存在问题或者缺少必要选项,内核将返回协议不可用的错误消息。
- 时间戳相关报文(Type 15-16): 当发送方请求时间戳时,内核会生成应答;而当接收到时间戳应答时,用户进程会进行处理。
- 信息请求和应答(Types 17-19, deprecated): 这些消息类型在4.4BSD系统中被忽略,因为它们已被更现代的机制所取代。
综上所述,4.4BSD系统对ICMP消息的处理策略是多样化的,根据不同错误类型采取相应的措施,以确保网络的稳定性和可靠性。
用户评论