TCP 的拥塞控制算法似乎在各个 TCP 流之间公平分配可用带宽。
是否有某种方式可以实现(或更准确地说,强制)公平带宽共享每台主机而不是在路由器上以每个流为基础?用户不应该通过利用多个并发 TCP 流(某些下载管理器和大多数 P2P 客户端就是这么做的)来(轻松地)获取不成比例的带宽份额。
我目前正在运行 DD-WRT 路由器来共享住宅 DSL 线路,目前有可能(无意或恶意地)使用多个并发连接来占用大部分带宽,这会严重影响 VoIP 通话。我尝试过一些 QoS 设置,但不确定如何基于每个 IP 启用公平带宽共享(每个服务不是一种选择,因为大多数流量都是 HTTP)。
更新: 我假设所有流都有 TCP 或类似 TCP 的拥塞控制行为,否则就无法真正控制入站流量。
目前,拥塞控制是针对每个流的,具有多个流的单个用户将导致每个用户的流减慢速度,并且它们最终将稳定在 n 个流的总带宽的 1/n 倍。
现在,我们是否可以修改入站队列和数据包丢弃算法,使每个用户都有一个入站“数据包计数器”,并根据每个用户丢弃数据包,而不是随机丢弃?这样,如果实际上只有某些用户造成了拥塞,则只有他们的流量需要减慢,而不是所有人的流量。