如何更准确地测量单向网络延迟?

问题描述 投票:0回答:1

据我所知,有两种方法可以获得单向网络延迟的近似值:

  1. 第一个选项是测量网络的双向延迟并将其除以 2。这样您就可以获得“粗略”的时间估计。
  2. 第二种方法是利用网络时间协议,两台计算机使用同步时钟来测量单向延迟。

如果还有其他方法欢迎分享。但我的问题是:估计单向延迟的更合适方法是什么?什么方法会更准确?

java latency ntp
1个回答
1
投票

要使用 NTP 计算单向网络延迟,只有一台计算机必须运行 NTP 服务。另一个只需充当 NTP 客户端,创建 NTP 数据包并从另一个查询时间,这可以使用带有 NTP 客户端模块的任何编程语言(例如 Java、Python 等)来完成。网络延迟是两台计算机的时钟之间的相对时间的增量,而不是一个时钟相对于另一个时钟的绝对时间。

如果您将 NTP 查询数据包发送到远程 NTP 服务器,那么您可以根据本地时钟的时间和结果响应中远程服务器的时间来计算往返延迟。

  • t1 = 请求出发时客户端的起始本地时间 服务器
  • t2 = 请求到达时服务器的接收时间 客户
  • t3 = 响应离开时服务器的传输时间 为客户
  • t4 = 客户端收到 NTP 消息的本地时间

往返延迟 d 和时钟偏移 c 为:

     delay = (t4 - t1) - (t3 - t2)
     clock offset = (t2 - t1 + t3 - t4)/2

NTP 标准中所定义,“上面隐含的假设是单向延迟在统计上是往返延迟的一半,并且客户端和服务器时钟的固有漂移率很小并且接近相同值”。

© www.soinside.com 2019 - 2024. All rights reserved.