如何找出网络的 TCP/UDP 延迟?

网络工程 通讯协议 UDP 潜伏 国际会议
2021-07-13 22:38:12

很多人经常建议你使用ping命令来找出你的网络延迟。但这是错误的,是您经常在 Internet 上的文章中找到的神话。ICMP ping 从来没有被设计为找出延迟,因为它被赋予非常低的路由优先级,并且 ICMP 数据包可能会通过与 TCP/UDP 数据包发送的路径完全不同的路径进行路由。选择用于发送 ICMP 数据包的路由可能更长,并且被其他流量占用很高,因此它们永远不会给你真正的结果。ICMPping旨在检查与服务器的连接。我想找到 TCP/UDP 路由的延迟。是否可以?

2个回答

如果您问是否可以使用 TCP 或 UDP 数据包测量延迟,答案是肯定的。您可以在服务器上安装一些软件来生成 TCP/UDP 流,您可以从中测量延迟。如果您有更新的 Cisco 路由器,您可以使用称为 IP SLA 的功能,路由器将在其中生成流量。

所有这些都假设您可以在目标服务器上安装软件,或者您可以访问路由器。Ping 的优点是不需要额外的软件。

您还可以使用 Wireshark 或类似工具捕获实时流量并分析数据包流以计算延迟。

@ronmaupin 提到的所有警告仍然适用——延迟随着交通状况的变化而不断变化。除非您使用的服务器专门用于此目的,否则它们不断变化的负载会影响您的结果。

在实践中,您的担忧通常不是一个重要因素。但这里有一种方法可以确认:

须藤 nmap --packet-trace -p 80 主机名

发送 (0.4506s) [..] RCVD (0.4990s) [..]

这显示了同步和同步确认之间的 49 毫秒延迟。当然,这包括客户端和服务器上的 CPU 时间,但在进行主动测量时这是不可避免的。