据我所知,有两种方法可以获得单向网络延迟的近似值:
如果还有其他方法欢迎分享。但我的问题是:估计单向延迟的更合适方法是什么?什么方法会更准确?
要使用 NTP 计算单向网络延迟,只有一台计算机必须运行 NTP 服务。另一个只需充当 NTP 客户端,创建 NTP 数据包并从另一个查询时间,这可以使用带有 NTP 客户端模块的任何编程语言(例如 Java、Python 等)来完成。网络延迟是两台计算机的时钟之间的相对时间的增量,而不是一个时钟相对于另一个时钟的绝对时间。
如果您将 NTP 查询数据包发送到远程 NTP 服务器,那么您可以根据本地时钟的时间和结果响应中远程服务器的时间来计算往返延迟。
往返延迟 d 和时钟偏移 c 为:
delay = (t4 - t1) - (t3 - t2)
clock offset = (t2 - t1 + t3 - t4)/2
如 NTP 标准中所定义,“上面隐含的假设是单向延迟在统计上是往返延迟的一半,并且客户端和服务器时钟的固有漂移率很小并且接近相同值”。