如何在跟踪路由中找到数据包丢失的根源?

如何在跟踪路由中找到数据包丢失的根源?

每当我 ping 我的网站时,都会持续出现 5% 的数据包丢失。但是,ping google 等其他网站不会出现数据包丢失。我真的不喜欢我的网络服务器丢包,但我不确定这是否只是路由或我的服务器的问题,或者需要联系我的托管服务提供商。

我基本上需要的是类似 traceroute 的东西,但它也能检查数据包丢失。Linux 和/或 OpenBSD 上有这样的工具吗?

答案1

mtr像(这样的工具https://www.bitwizard.nl/mtr/)(Linux 手册页FreeBSD) 应该可以解决问题。

但请注意,解释输出可能很棘手!确保您理解所看到的内容...

答案2

Traceroute 仅显示路径的一半:从执行 traceroute 的主机到目的地的路径。要获取完整路径,必须登录远程服务器,然后执行 traceroute 返回本地系统。如果您在 Web 服务器上拥有 root 权限,则执行 tcpdump 来监视来自本地主机的 ICMP echo 请求将告诉您它们是否全部到达那里。然后,从 Web 服务器将 ping 发送回本地主机,并计算这些 ping 的数量。

如果服务器的 CPU 占用率很高,它将不会响应 ICMP 请求。RSVP 和其他协议可能将 ICMP 的 QoS 设置为非常低的优先级,因此可能需要检查两台主机之间的实际流量传输情况。数据包丢失会导致数据流明显挂起;如果文件传输没有暂停,则不存在数据包丢失。

相关内容