为什么在 Ookla 的速度测试中选择单线程或多线程连接时,连接速度是否不稳定很重要?

为什么在 Ookla 的速度测试中选择单线程或多线程连接时,连接速度是否不稳定很重要?

在 Ookla 的速度测试中(在其网站或应用程序上),用户可以选择在单线程或多线程连接之间进行速度测试。

根据来源:

有些连接无法通过单个连接达到全速,或者速度非常不稳定,而多个连接可以让我们更轻松地“填满”可用带宽。在较快的线路上尤其如此。

但是,在单线程连接和多线程连接之间进行选择时,连接速度是否不稳定有什么关系呢?这会如何影响速度测试的测试结果呢?

答案1

为了回答这个问题,必须了解 TCP/IP 连接是如何建立的。

数据并非如人们想象的那样连续发送。还有一个控制机制来了解数据是否真正发送完毕。

为了实现这一点,通信过程如下:服务器分块发送数据,客户端通过回复接收到的数据量来确认数据。

为了让服务器知道它可以发送多少数据,它将按如下方式发送数据:首先发送 1 个字节的数据,客户端回复:1。然后发送 2 个字节,客户端回复:2,然后发送 4 个字节,然后发送 8 个、16 个、32 个,数据量呈指数增加。

当线路不稳定时,客户端可能无法接收所有数据,从而回复错误的号码。

例如,服务器发送了 4096 个字节的数据,但客户端收到了 3165 个字节。服务器知道出了问题,将忽略最后一次传输,并开始重新发送最后 4096 个字节。但它不会再次发送所有 4096 个字节,而是开始发送 1 个,然后是 2 个,然后是 4 个,然后是 8 个,等等……

服务器还会测量每个数据块的发送和接收时间,当服务器注意到需要花费相当长的时间才能收到回复时,即使返回了正确的数据量,它也会知道已达到速度限制,并将继续发送该数据量,而不会提高速度。此策略可实现最佳数据传输。

如果连接不稳定,但只建立了一个连接,则数据量会更高,因为一个 1 兆位的连接每个块的数据量要比多个同时超过 1 兆位的连接多。如果同时有 4 个连接,则每个块的大小为 1/4 兆位。较小的块大小意味着不稳定连接出现问题的可能性较小,并且考虑到不稳定连接会将传输速率重置为 0 以重试,如果 4 个连接中的 1 个被重置,其余 3 个将保持全速,甚至可能略有增加以进行补偿。

鉴于如今当您连接到互联网上的服务器时,您几乎总是通过多个连接进行连接,如果 speedtest 只进行一个连接,那么不稳定的连接将不会显示与实际结果相比正确的数据。

请记住,在互联网速度很快的情况下,这些速度重置会很快发生,以至于您不会看到所表示的图表一直下降到 0,除非连续出现大量数据损坏,因此速度会下降到非常低的速度。

所以 TL;DR:不稳定的连接将导致这样的情况:如果返回了错误的接收字节,则连接速度会被重置,从而在速度测试中产生非常扭曲的图像。

相关内容