影响数据包需要传输的时间变化的主要因素是什么?

网络工程 硬件
2022-02-12 03:19:08

很容易看出,通过 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.

我可以想象以下组件会影响时间:

  1. 我的本地机器:我想如果我经常使用我的网络,数据包可能在队列中,并且可能需要一些时间才能被读取。
  2. 从我的机器到路由器的空气:我猜我的计算机发送到路由器的无线电波传播得更快/更慢取决于(a)温度和(b)有多少设备以相同的频率发送东西。
  3. 我的本地路由器:我们有大约 10 台设备连接到我们的本地 WLAN 路由器。与我的机器类似,我猜数据包是按顺序发送的(或者至少并行量是有限的)。
  4. 中间的路由器:类似于我的本地路由器
  5. 我的客户端和 pool.ntp.org 之间的电缆:类似于我的本地

但是增加方差的最大因素是什么?

(请注意,我没有问大部分时间花在哪里 - 我想这只是(5))

1个回答

一般来说,变化是由排队引起的。实际的传输延迟往往是相对恒定的。


我的本地机器:我想如果我经常使用我的网络,包可能会排在队列中,并且可能需要一些时间才能被读取。

确实。

从我的机器到路由器的空气:我猜我的计算机发送到路由器的无线电波传播得更快/更慢取决于(a)温度和(b)有多少设备以相同的频率发送东西。

无线电波的实际传播时间可以忽略不计,像 ping 数据包这样小的传输时间也可以忽略不计。

但是,您的计算机可能必须等到通道畅通后才能传输。如果信道高度拥塞,这可能会增加明显的延迟。

我的本地路由器:我们有大约 10 台设备连接到我们的本地 WLAN 路由器。和我的机器类似,我猜包是按顺序发送的(或者至少并行量是有限的)。

对。

此外,如果您在家庭或小型企业网络上,与您的 ISP 的连接可能通过共享媒体,例如有线电视同轴电缆或 GPON。因此,除了在自己的队列中等待数据包外,路由器可能还必须在共享介质的其他用户之间等待轮到它。

中间的路由器:类似于我的本地路由器

是的,路由器和交换机中有更多潜在的排队。

我的客户端和 pool.ntp.org 之间的电缆:类似于我的本地

如今,电缆本身通常是点对点的,但可能有一些设备,例如以太网交换机、ATM 交换机、MPLS 路由器、承载隧道数据包的 IP 路由器等,它们不会出现在跟踪路由中,但仍然有队列。