目录
网际控制报文协议(ICMP)
一、ICMP 基础特性
二、ICMP 报文分类及作用
差错报告报文
询问报文
网际控制报文协议(ICMP)
ICMP(Internet Control Message Protocol,网际控制报文协议)是 TCP/IP 体系结构网际层的核心协议,旨在优化 IP 数据报转发效率,提升交付成功率。其报文分为 差错报告报文 和 询问报文,具体如下:
一、ICMP 基础特性
功能定位:主机或路由器通过 ICMP 发送 差错报告报文(反馈传输问题)与 询问报文(获取网络信息),报文需封装在 IP 数据报中传输。
限制条件:以下情况 不应发送 ICMP 差错报告报文:
(1)对已有 ICMP 差错报告报文不再二次发送,避免无限循环。
(2)若 IP 数据报第一个分片出错,后续分片的差错报告不发送(因后续分片必然无效)。
(3)多播地址的 IP 数据报不发送(多播面向多接收者,报告无实际意义)。
(4)特殊地址(如 127.0.0.0 环回地址、0.0.0.0 本网络)的 IP 数据报不发送。
典型应用:
PING(分组网间探测):通过发送 ICMP 回送请求报文,测试目标主机是否可达及往返时间(RTT)。
Traceroute(跟踪路由):利用 ICMP 超时差错报文,追踪 IP 数据报从源到目的的完整路径,辅助网络故障排查。
二、ICMP 报文分类及作用
差错报告报文
终点不可达:当路由器或主机无法交付 IP 数据报时,向源点发送该报文,反馈目标不可达信息。
源点抑制:网络拥塞导致 IP 数据报被丢弃时,向源点发送此报文,通知其降低发送速率,缓解拥塞。
时间超过(超时):路由器收到 TTL = 1 的 IP 数据报时,丢弃该数据报并向源点发送此报文,表明数据报传输超期。
参数问题:路由器或目的主机发现 IP 数据报首部字段值不正确时,丢弃数据报并发送此报文,反馈首部参数错误。
改变路由(重定向):路由器向主机发送该报文,告知主机下次使用更优路由,优化数据报传输路径。
询问报文
回送请求和回答:用于测试目的主机是否可达,以及获取其相关状态(如 PING 工具的核心机制)。
时间戳请求和回答:主要用于时钟同步,通过请求与应答的时间差测量时间,校准网络设备时钟。