很容易看出,通过 Internet 传输的数据包所花费的时间不是固定的,即使两个通信伙伴没有改变位置并且之间的路由也可能没有改变:
$ ping pool.ntp.org
PING pool.ntp.org (129.70.132.37) 56(84) bytes of data.
64 bytes from stratum2-4.NTP.TechFak.NET (129.70.132.37): icmp_seq=1 ttl=50 time=29.0 ms
64 bytes from stratum2-4.NTP.TechFak.NET (129.70.132.37): icmp_seq=2 ttl=50 time=29.3 ms
64 bytes from stratum2-4.NTP.TechFak.NET (129.70.132.37): icmp_seq=3 ttl=50 time=36.0 ms
64 bytes from stratum2-4.NTP.TechFak.NET (129.70.132.37): icmp_seq=4 ttl=50 time=25.1 ms
64 bytes from stratum2-4.NTP.TechFak.NET (129.70.132.37): icmp_seq=5 ttl=50 time=26.9 ms
64 bytes from stratum2-4.NTP.TechFak.NET (129.70.132.37): icmp_seq=6 ttl=50 time=26.2 ms
64 bytes from stratum2-4.NTP.TechFak.NET (129.70.132.37): icmp_seq=7 ttl=50 time=32.0 ms
当我在本地运行约 5 分钟时,我可以看到最小值为29.0 ms,最大值为179.7 ms.
我可以想象以下组件会影响时间:
- 我的本地机器:我想如果我经常使用我的网络,数据包可能在队列中,并且可能需要一些时间才能被读取。
- 从我的机器到路由器的空气:我猜我的计算机发送到路由器的无线电波传播得更快/更慢取决于(a)温度和(b)有多少设备以相同的频率发送东西。
- 我的本地路由器:我们有大约 10 台设备连接到我们的本地 WLAN 路由器。与我的机器类似,我猜数据包是按顺序发送的(或者至少并行量是有限的)。
- 中间的路由器:类似于我的本地路由器
- 我的客户端和 pool.ntp.org 之间的电缆:类似于我的本地
但是增加方差的最大因素是什么?
(请注意,我没有问大部分时间花在哪里 - 我想这只是(5))