使用traceroute探索网络路径
traceroute
traceroute是诊断网络问题时常用的工具,它可以定位从源主机到目标主机之间经过了哪些路由器,以及到达各个路由器的耗时。当源主机向目标主机发送消息,发现消息无法送达。此时,可能是某个中间节点发生了问题,比如某个路由器因负载过高产生了丢包。通过traceroute可以定位网络包是在哪个节点丢失的。
traceroute将从源发送N个特殊的分组,当第i个路由器收到第i个分组时,该路由器会向源回送一个报文,记录了路由器的名字和地址。traceroute会重复该实验3次。
traceroute (Linux) / tracert (Windows)
tracert www.github.com运行结果
| 跳 | RTT 1 | RTT 2 | RTT 3 | 路由器 / 主机 |
|---|---|---|---|---|
| 1 | 2 ms | 9 ms | 2 ms | HS8145V [192.168.1.1] |
| 2 | 5 ms | 15 ms | 5 ms | 100.65.0.1 |
| 3 | 5 ms | 5 ms | 5 ms | 124.74.22.41 |
| 4 | 25 ms | 6 ms | 17 ms | 101.95.88.138 |
| 5 | * | * | * | 请求超时。 |
| 6 | * | * | * | 请求超时。 |
| 7 | * | * | * | 请求超时。 |
| 8 | 30 ms | 32 ms | 35 ms | 106.38.244.146 |
| 9 | * | * | * | 请求超时。 |
| 10 | * | * | * | 请求超时。 |
| 11 | * | * | * | 请求超时。 |
| 12 | 30 ms | 31 ms | 31 ms | 220.181.38.251 |
知识测验
题目
第2跳显示*,但第3跳和目标主机都响应。下面哪项判断合理?
知识测验
题目
某一跳的探测响应耗时20 ms。这个数值通常表示什么?
动手练习
阅读路径探测,不作过度判断
计算R1与目标的平均往返时间。第二跳沉默是否证明转发完全失败?目标平均往返时间是否等于单向时延?给出一个有依据的结论与一个此结果不能证明的结论。
| 跳 | RTT 1 | RTT 2 | RTT 3 | 响应者 |
|---|---|---|---|---|
| 1 | 2 ms | 3 ms | 4 ms | R1 |
| 2 | * | * | * | — |
| 3 | 15 ms | 18 ms | 21 ms | R3 |
| 4 | 20 ms | 21 ms | 22 ms | 目标 |