为什么互联网速度是可变的而不是固定的数字?

Mei*_*lsa 16 networking internet-connection internet-speed

假设你有 10mbps 的速度。那么为什么当您从 Internet 下载某些内容时,您的速度不会固定在 10mbps,而是在您下载时从 2-9mbps 变化?为什么互联网速度会这样?例如,GPU 和 CPU 等硬件组件以固定数量全速运行,那么为什么网络速度不一样呢?

Mok*_*bai 47

您与本地 ISP 之间的连接大多以固定连接速度工作。主要问题是您正在与 Internet 上的其他人竞争资源的访问权限。

您在本地网络上的以太网连接将是固定的 100Mbps 或 1gbps,与本地网络上的另一台机器之间的传输将以该速度进行。如果速度下降,那么很可能是由于当时一台或两台机器试图做其他事情,要么在驱动器上寻找其他东西,要么 CPU 在其他地方忙。在大部分空闲的机器上,您几乎可以全速进行批量传输。传输的小文件达到延迟限制,您可以传输小数据块的速度比任何一方处理(查找、读取、写入等)的速度都快。

互联网也有类似的问题,但你也在与其他用户竞争。它们都有来自服务器的需求,它们都使用相同的管道在不同的时间内传输不同数量的数据。

与使用不同 ISP 的邻居相比,您的 ISP 可能具有不同的服务器路径,他们通过 Internet 的路径可能更快或更有效。你去其他地方的路可能比他们的好。路径可能会不断变化。互联网更像是一个实时变化的网络,它可以检测瓶颈,解决漏洞和丢失问题,寻找当前的最佳路线,并且只保证数据将到达终点,而不是如何到达那里。

速度随着需求、路线和环境的变化而变化。一旦数据离开路由器或调制解调器,您就无法控制数据。

Wifi 会受到很多环境噪音的影响,例如婴儿监视器、耳机、其他 wifi 网络等,它的速度可能会声称很高,但有时会有些不可预测。

  • 互联网只是_尝试_获取您的数据;没有任何保证。 (20认同)
  • 此外,无论您下载什么,都会被分成一堆数据包。发送方会尽可能地发送数据包(但它可能会同时向一群其他人发送数据包 - 您认为在任何给定的时间内有多少用户在使用谷歌搜索?)。数据包会发送给您,但不能保证它们都采用相同的路径,甚至无法保证任何特定的数据包都能到达您的手中。(但是有内置的超时和重新发送机制,所以它最终应该都会给你。)这是看起来很简单的事情之一,但事实并非如此。 (9认同)
  • @user1686:数据包重新排序是 TCP 的一个小问题。它具有明确的序列编号,因此客户端可以按正确的顺序放回数据包。如果 TCP 数据包丢失,TCP 还允许接收方请求重新发送。这是速度变化的另一个原因。 (3认同)

Ton*_*nny 11

您的本地连接的最大速度为 10 Mb/s。

但是连接另一端的数据源呢?这可能比您的连接更快或更慢。
如果速度较慢,则无法以 10 Mb/s 的速度向您传送数据。

(请记住,世界范围内许多类型的 Internet 连接都是不对称的。对于大多数用户来说,下载比上传快得多。)

除此之外,在您(或您的 ISP)控制之外的整个互联网中也存在瓶颈。

因此,您的 ISP 可以为您提供最大速度,但您的实际速度取决于更多因素,并且通常会低于您的理论最大值。

我碰巧有一个相对较快的 Docsis 电缆连接,下行速度为 500 Mb/s,上行速度为 40 Mb/s。你已经可以看出,虽然理论上我可以以 500 Mb/s 的速度下载,但我只能以 40 Mb/s 的速度上传。因此,如果我向我的邻居发送某些内容(也在与同一 ISP 的这种连接上,因此来自任何其他内容的干扰最小),他将只能以 40 Mb/s 的速度接收它,因为我无法提供比这更快的速度。

事实上:尽管理论上我可以以 500 Mb/s 的速度下载,但我很少能超过 300 Mb/s。我必须努力工作,同时使用多台计算机同时下载各种东西。这主要是因为互联网上提供下载的各种服务都有自己的上传速度限制。
其中一些限制取决于硬件/ISP。其他人则在他们的一端由软件控制,因为他们不希望一个快速下载的客户占用了他们一端的所有可用上传带宽,而不会为其他客户留下任何东西。因此,他们将客户可用的上传限制为合理的最大值。

  • 我发现服务器的限制通常是瓶颈,因为大多数下载甚至达不到 100Mb/s。如果您曾经尝试过下载 ISO,这一点很明显,如果不通过种子下载绕过提供商的限制,就不可能下载。一个 4GB 的 iso 可能需要几分钟才能通过 torrent 下载,而如果我只是通过传统方法下载,则可能需要数小时甚至数天。 (2认同)
  • @gsquaredxc 我也更喜欢 torrens(如果可能的话)。由于有许多并行源,因此不仅吞吐量要高得多,而且种子也可以随时进行错误检查和纠正。使用 https(s) 和/或 ftp,您需要在下载后进行校验和,如果它不好,您可以再次进行整个下载,并希望它第二次通过 OK。 (2认同)
  • @gsquaredxc:这可能与您的 ISO 来源有关。免费的 Linux 下载服务器不会有很多带宽,这是价格带来的。Steam 游戏的下载速度通常会比这更快,但 Steam 是一项商业服务。 (2认同)

use*_*686 10

这取决于几个因素。在某些情况下,您看到相当静态的速度,例如,我在家里通过 ADSL 下载了非常稳定的(如果很糟糕)8 Mbps,当我在工作中复制文件时,我通常会看到大约 980 Mbps 的几乎平坦的图形。

  1. 某些连接类型具有固定速率,例如以太网连接协商一次 1 Gbps 并坚持使用。但是,其他连接类型——例如通过无线电、电力线或其他“不太可靠”的媒体运行的连接类型——会根据环境自动调整其链接速率,例如信号强度、丢包率和/或损坏的数据包。

    因此,如果您使用 Wi-Fi,当人们四处走动并吸收您的信号时,链接速率会迅速下降;即使在稳定的条件下,它仍然不会保持静止,因为您的设备偶尔会探测更高的速率,认为它们不好,然后返回。(有关广泛使用的示例,请参阅“Minstrel”算法。)这同样适用于 LTE 和其他“无线 ISP”连接。

  2. 许多连接被超额订阅。例如,在办公室中,即使您个人拥有 1 Gbps 以太网端口,它也可能进入交换机,然后该交换机为整个办公室共享 1 Gbps 上行链路。因此,如果您的邻居也开始大量下载,这将导致您的下载速度突然减半,因为你们两个必须共享单个千兆位链接。类似地,在 FTTH 中,可能有 50 个邻居都在通过超额订阅的上行链路下载游戏或观看 4K Netflix——他们每个人都获得了总可用速度的一部分。随着他们的使用发生变化(例如视频流停止),其他人可用的比例也会发生变化。

    The same can occur at any point – it could be that the server is trying to squeeze 200 downloads through its uplink, and it could be that the connection between two ISPs is getting congested during this time of day. So if hundreds of customers are downloading the same thing over the same 10 Gbps connection, they will all see varying speeds as connections come and go and the proportion of the link that each user gets keeps changing.

  3. Downloads over TCP use a congestion control algorithm to make sure the sender doesn't just flood the network with data, but sends it at a rate which the receiver can accept. Most of the commonly-used algorithms will reduce the transmission rate upon seeing packet loss, then slowly ramp it up again. Some servers could be using an outdated or mistuned algorithm which overreacts and reduces the transmission speed much more than it needs to.

    (有时会发生相反的情况,拥塞控制算法没有正确反应,例如“如果检测到丢包BBR[v1]不会退避。但在这种情况下,丢包是由拥塞引起的。由于 BBR[v1] 有没有办法区分拥塞相关的和非拥塞相关的丢失,点(B)实际上是交叉的,这会导致大量的数据包丢失”


Chr*_*ore 7

正如已故参议员史蒂文斯所说,互联网是一系列管子。

“十部电影流过那个,那个互联网,你自己的个人互联网会发生什么?我前几天刚收到......我的工作人员在周五早上 10 点发送了一个互联网。我昨天收到了[星期二]。为什么?因为它与所有这些在互联网上进行的商业活动纠缠在一起。[...] 他们希望通过互联网提供大量信息。再说一次,互联网不是你随便扔掉的东西有什么东西。它不是一辆大卡车。它是一系列管子。如果你不明白,这些管子可以装满,如果他们装满了,当你把你的信息放进去时,它会排队,它会任何将大量材料、大量材料放入该管的人都会延迟。” https://en.wikipedia.org/wiki/Series_of_tubes

虽然这段演讲在当时被无情地嘲笑,但这并不是一个糟糕的比喻。
如果我们考虑在超级碗半场表演中关于市政污水被淹没的古老神话,它甚至会有所帮助。

您正在争夺稀缺资源。如果其他人都在同时竞争,延迟就会增加。如果传输的数据多于电子管的处理能力,则必须进行备份。
在一个非常简单的示例中,我们有一个路由器和一条电缆。如果您是唯一访问该网络的人,路由器将尽可能快地路由您的数据包——利用电缆的整个带宽。但是,当您的室友登录进行“研究”时,现在您正在共享该电缆,而路由器只会在 50% 的时间内为您提供电缆,而将其余时间分配给您的室友。你的表观速度减半。