有趣的是,ICMP报文在UDP数据包发出3.5ms后返回,这与第七章中观察到的Ping响应的往返时间相近。
4.4BSD系统对ICMP报文的处理机制
由于ICMP涵盖范围广泛,从致命错误到信息错误,因此即使在同一个系统实现中,对每个ICMP报文的处理方式也不尽相同。图6-12与图6-3内容一致,展示了4.4BSD系统对每个潜在ICMP报文的处理方式。
图6-12 4.4BSD系统对ICMP报文的处理
| 类型代码 | 描述 | 处理方法 |
|---|---|---|
| 0 | 回显应答 | 用户进程 |
| 3 | 目的不可达 | |
| | 0 网络不可达 | “无路由到达主机” |
| | 1 主机不可达 | “无路由到达主机” |
| | 2 协议不可达 | “连接被拒绝” |
| | 3 端口不可达 | “连接被拒绝” |
| | 4 需要分片但设置了不分片比特DF | “报文过长” |
| | 5 源站路由选择失败 | “无路由到达主机” |
| | 6 目的网络未知 | “无路由到达主机” |
| | 7 目标主机未知 | “无路由到达主机” |
| | 8 源主机被隔离(已弃用) | “无路由到达主机” |
| | 9 目的网络被强制禁止 | “无路由到达主机” |
| | 10 目标主机被强制禁止 | “无路由到达主机” |
| | 11 由于服务类型TOS,网络不可达 | “无路由到达主机” |
| | 12 由于服务类型TOS,主机不可达 | “无路由到达主机” |
| | 13 由于过滤,通信被强制禁止 | (忽略) |
| | 14 主机权限不足 | (忽略) |
| | 15 优先级中止生效 | (忽略) |
| 4 | 源站抑制(quench) | TCP由内核处理,UDP则忽略 |
| 5 | 重定向 | |
| | 0 对网络重定向 | 内核更新路由表 |
| | 1 对主机重定向 | 内核更新路由表 |
| | 2 对服务类型和网络重定向 | 内核更新路由表 |
| | 3 对服务类型和主机重定向 | 内核更新路由表 |
| 8 | 回显请求 | 用户进程 |
| 9 | 路由器通告 | 用户进程 |
| 10 | 路由器请求 | 用户进程 |
| 11 | 超时 | |
| | 0 传输期间生存时间为0 | 用户进程 |
| | 1 在数据报组装期间生存时间为0 | 用户进程 |
| 12 | 参数问题 | |
| | 0 错误的IP首部(包括各种错误) | “协议不可用” |
| | 1 缺少必要选项 | “协议不可用” |
| 13 | 时间戳请求 | 内核生成应答 |
| 14 | 时间戳应答 | 用户进程 |
| 15 | 信息请求(已弃用) | (忽略) |
| 16 | | |
暂无评论