读取 traceroute 的结果

Dav*_*ion 2 traceroute

当您tracert www.example.com在命令提示符下使用时,返回的信息究竟告诉您什么,以及它如何获取该信息。到目前为止,我只使用 traceroute 来获取网站的 IP 地址,而没有真正考虑过 traceroute 的更大目的。

Sla*_*ast 5

traceroute 的输出显示源主机(您发出命令的地方)和目标主机(命令行中指定的主机)之间的每个“跳跃”。对于每个跃点,它将显示距离(跃点数)、IP 地址和/或关联的主机名(使用反向解析确定的主机名)以及源主机和特定跃点主机之间的延迟/延迟。

你可能会看到一些奇怪的东西。例如,您可能会看到在给定距离内列出的不止一台主机。另一个示例是,您可能会看到在给定距离内未列出任何主机,而是在更远的位置列出主机。这些是用于执行跟踪路由的方法的工件。

该工具通过发送一系列使用人工“生存时间”(TTL) 构造的 UDP 数据包来获取此信息。数据包的 TTL 用于确保路由循环不会导致无限流量。当数据包通过路由器时,它将递减该数据包的 TTL。TTL 最终将达到零,此时数据包将被丢弃。当这种情况发生时,大多数路由器也会向丢弃的数据包的来源发送一个特殊的数据包,表明无法到达目的地,只是为了帮助。此数据包是 ICMP(Internet 控制消息协议)目标不可达消息。

Traceroute 以 1 的 TTL 开始,并使用此 TTL 发送三个 UDP 数据包。然后它侦听目标不可达消息。它将显示消息来自何处(主机)、该主机响应所需的时间(延迟),以及当该主机指示无法以如此低的 TTL 到达您的目标时的 TTL 是多少。然后重复执行,直到收到一条不同的消息,表明目标主机上的 UDP 端口没有任何内容在侦听。