因特网控制报文协议 Internet Control Message Protocol
用于主机路由器之间彼此交流网络层信息
- 差错报告:不可到达的主机、网络、端口、协议
- 请求/应答
位于 IP 之上
Traceroute
(1)源端发送 IP 分组
- TTL 策略:
- 源端发送一系列 IP 分组,首个分组 TTL=1,第二个 TTL=2,依次递增。
- 每组 TTL 发送 3 次(图中标注“对每个 TTL 作三次”),用于计算平均 RTT 并减少误差。
- 分组行为:
- 当分组到达第 n 个路由器时,TTL 减 1 后变为 0,路由器丢弃该分组。
- 路由器向源端返回ICMP 超时报文(Type=11, Code=0),报文中包含该路由器的IP 地址和名称(如可解析)。
(2)源端处理 ICMP 报文
- RTT 计算: 源端根据发送分组与接收 ICMP 报文的时间差,计算到该路由器的往返时间(RTT)。
- 路径记录:
通过 ICMP 报文中的路由器信息,逐步构建路径列表(如:
Hop 1: 192.168.1.1, RTT=5ms
)。
(3)终止条件
Traceroute 在以下情况停止发送分组:
- 到达目的主机:
- 当 IP 分组的 TTL 足够大时,分组到达目的主机。
- 目的主机返回ICMP 端口不可达报文(Type=3, Code=3)(因 Traceroute 默认使用无效端口触发此响应)。
- 收到目标响应: 源端收到目的主机的 ICMP 报文后,确认路径探测完成,终止流程。