鉴于基础设施的理论限制通常远高于 ISP 的销售速度,我一直在寻找 ISP 如何设法限制用户的网络速度。我偶然发现了 TCP 慢启动算法,这让我想到 ISP 可能会杀死一些 ACK 以迫使 TCP 堆栈进入线性增长模式,并在达到合同速度限制后最终进入接近零的增长。
我的理论正确吗?如果是这样,您如何限制诸如 UDP 之类的无 ACK 协议?
鉴于基础设施的理论限制通常远高于 ISP 的销售速度,我一直在寻找 ISP 如何设法限制用户的网络速度。我偶然发现了 TCP 慢启动算法,这让我想到 ISP 可能会杀死一些 ACK 以迫使 TCP 堆栈进入线性增长模式,并在达到合同速度限制后最终进入接近零的增长。
我的理论正确吗?如果是这样,您如何限制诸如 UDP 之类的无 ACK 协议?
简短回答:不,ISP 不使用 TCP 慢启动作为限制客户带宽的主要方式。
长答案:ISP 可以通过多种方式限制分配给特定客户的带宽,但根据我的经验,调整 TCP 旋钮远远低于可能的方法列表。如果您是 ISP,您可以在较低的网络层控制流量(而不是通过ONE第 4 层协议的特定行为来控制它)。在第 2 层和第 3 层处理流量通常更便宜、更快,因此在那里这样做更有意义。
如果您真的想了解有关此主题的更多信息,我建议您阅读有关服务质量 (QOS) 的内容。首先,查看关于 QOS 的维基百科文章,并很好地掌握基本概念和术语。
然后,当您准备好深入研究时,请阅读有关 QOS的Cisco DocWiki 文章。这对 Cisco IOS 上 QOS 实施的具体技术和机制有更深入的了解。
最后,如果您想要一个包含大量有关服务提供商 QOS 的好信息的真正密集的演示文稿,请阅读 Cisco 的精彩演示文稿:优化语音、视频和数据的服务提供商网络。但是,根据您当前的专业知识水平,希望对所使用的术语和技术进行大量的谷歌搜索和学习。
@Machinarius,@Brett Lykins几乎已经回答了您的问题,但没有具体提及任何技术。
如果您想进一步澄清,那么两种非常常用的主要技术是根据签约的服务和客户要求进行整形和监管。您将在@Brett Lykins提供的链接中阅读这些内容。
举一个简单的实际例子,假设我们的示例客户采用 10Mbps 的连接,但物理链路可以以 100Mbps 的速度运行。
使用整形时,如果客户流量试图超过 10Mbps,流量开始在缓冲区中排队(假设缓冲区大小无限)并以不超过 10Mbps 的速率缓慢释放。所以这意味着客户没有任何数据包丢失,但他们的延迟/RTT 会增加,因为他们试图发送比他们给定的更多的流量,所以它正在排队。TCP 等协议会降低传输速度,因为当流量被缓冲而不会丢失数据包时,发送/接收 ACK 需要更长的时间。然而,设备没有无限量的 RAM,因此即使使用整形数据包丢失也会发生,因为缓冲区已满。
如果您通读@Brett Lykins提供的链接,您将看到可以对流量进行分类和标记,然后根据 QoS 策略进行处理,这样在发生拥塞时,进入的“重要”流量比不太重要的流量更不可能被丢弃.
管制或“速率限制”只是在连接上设置 10Mbps 硬限制的一种情况,如果通过的流量试图超过这个硬限制,那么数据包将根据正在使用的任何算法作为 WRED/RED 被丢弃/拖尾。
如上所述,当使用管制时,可以设置多个队列并在不同的流量优先级之间分配 10Mbps 的允许量等。要注意的主要区别是管制通常是一个硬限制,而整形将尝试以牺牲 RTT 为代价缓冲流量。