如何实际测量端到端延迟

网络工程 路由
2022-02-22 09:35:02

所以我有 5 个节点 A、B、C、D、E。客户端,E 服务器,其余是路由器,我想测量 A 和 E 之间的端到端延迟。我能想出的唯一解决方案是在 A 中获取时间戳,将其放在标题中,再获取另一个时间戳在 E 处,当它收到数据包并从服务器的时间戳中减去客户端时间戳。

有没有更科学的方法我不知道?

我可以总结处理延迟+4*传输延迟,但我需要计算它,不能使用理论工作。

提前致谢。我还看到没有延迟相关的标签,很有趣。

4个回答

我能想到的测量两个 TCP/IP 端点之间的往返网络时间的最准确方法是使用每个网络接口上的分路器捕获网络流量,并使用大型单向 TCP 数据传输。这将向您显示每个端点确认数据所花费的时间,并且还将为您提供通过网络确认的时间。从另一个中取出一个,您会得到一个数量级的数字,该数字精确到捕获设备的分辨率和任何抽头延迟。

如果 TCP/IP 不是你的包,其他非 IP 协议可能会有类似的技术可用。

测量单向延迟更难,因为您需要在每一端的计时设备之间获得非常准确的时间同步。

不确定IP SLA是否适用,从我读过的内容来看,它用于测量网络性能,可以解决您的问题

您可以使用ping来衡量往返时间。在两个方向上的网络延迟是对称的假设下,您可以除以二,可能在减去估计的处理延迟之后。对于非对称延迟网络,这将不起作用,并且无法仅使用网络(没有外部时钟同步系统)来测量一次行程。看到这个很好的答案

我认为除了ping. 当然,可以使用其他协议而不是ping使用 ICMP(如 TCP)来执行此操作,但是您将很难找到执行此操作的工具。

捕获源服务器或目标服务器上的 TCP 转储并提取 Wire Shark 中的 TCP 转储。此 wireshark 日志可以清楚地显示 TCP 握手总往返时间。或者,可以清楚地看到从源到目的地和从目的地到源的流量,反之亦然,并且可以分析来自该观察延迟或网络级别延迟的时间戳。