网络层中的 Traceroute
考虑您无法访问网站但可以访问其他网站的情况。您想知道这是否是您的网络、某个中间网络或网络服务器的问题。你怎么想出来的?
您可以使用 Traceroute。
什么是跟踪路由?
Traceroute 是一种广泛使用的命令行实用程序,可用于几乎所有操作系统。它向您展示了到目的地地址的完整路线。它还显示了中间路由器之间花费的时间(或延迟)。不是很棒吗?以下是 Windows 操作系统的示例。
上面的输出是什么意思?
第一列是中间路由器的序列号。在上面的输出中,三个数据包被发送到每一跳,以获得每个路由器的延迟的良好估计。三列显示三个不同数据包所用的时间。最后一列是中间路由器的 IP/名称。
输出显示第一跳的三个延迟,然后是第二跳的延迟,依此类推。
Linux 和其他操作系统中的命令是什么?
如上图所示,在 Windows 中,命令名称为“tracert”,但在 Linux、Unix 和 Apple MAC OS 中,命令名称为“traceroute”。
跟踪路由如何工作?
如下图所示,源和目标之间有中间路由器。
它向目的地发送许多数据包。
第一组数据包(上例中为 3 个数据包)以被第一中间跳丢弃的方式发送,并且从第一中间节点接收控制消息以获得第一跳的时间估计。
第二组数据包(上例中为 3 个数据包)以它们被第二个中间跳丢弃的方式发送,并且从第二个中间节点接收控制消息以获得第一跳的时间估计。
traceroute 如何确保在第 i 个跃点丢弃数据包?
为此,它使用 TTL 字段。对于第一个数据包,TTL 设置为 1,然后设置为 2,依此类推,直到到达目的地。
总时间如何估算?
当数据包被丢弃时,路由器将 ICMP Time Exceeded 消息发送回源。这就是来源计算总时间的方式。
Traceroute 是网络中广泛使用的命令行实用程序。
参考:
https://www.youtube.com/watch?v=wTncuOHQbMw&index=5&list=PLkHsKoi6eZnzJl1qTzmvBwTxrSJW4D2Jj