sequenceDiagram
participant A as 源主机
participant R1 as 路由器1
participant R2 as 路由器2
participant B as 目标主机
Note over A: traceroute 发送UDP(或ICMP),TTL=1
A->>R1: UDP包 (TTL=1)
R1-->>A: ICMP Time Exceeded
Note over A: 增加TTL=2
A->>R2: UDP包 (TTL=2)
R2-->>A: ICMP Time Exceeded
Note over A: TTL逐步增加直到目标主机
A->>B: UDP包 (TTL=n)
B-->>A: ICMP Port Unreachable (到达目标)
traceroute 通过发送不同 TTL 的包,等待 ICMP 超时报文响应。
tracepath 机制相似,但它通过 Linux 内核自动处理 socket 行为,不需要手动 root 或手动构造包。