前提:
农村地区,高带宽Internet连接的选择不多。到目前为止,最快的是卫星互联网,但价格昂贵(包括设备和每月费用,而且存在延迟问题),因此,多个家庭希望共享它。
这本身很简单-为每个家庭(VLAN或物理端口)设置一个带有子网的路由器,阻止它们之间的通信,并配置调制解调器以路由到那些子网或设置双NAT。
问题:
TCP正常工作的方式意味着每个TCP连接或多或少将获得可用带宽的1 / n,其中n是连接数。因此,如果一个家庭/用户创建大量连接,那么他们将在整个连接中获得更大的份额。这不是特别公平-拥有饱和的联系,每个家庭应获得平等的份额。另一方面,当没有其他人在使用连接时,应该可以使用全部带宽。
例如,假设有4个家庭共享12Mbit / s的下行连接。如果其中之一正在下载/流式传输/以任何方式传输,则它们应该能够使用完整的12Mbit / s(或足够接近的速度)。如果有2个家庭正在使用该连接,则无论一个家庭是否正在下载1个文件,而另一个家庭正在下载11个文件,则每个家庭应获得6Mbit / s的速度(在没有任何带宽管理的情况下,每个文件将以大约1Mbit / s的速度下载)3个家庭分别达到4Mbit / s,依此类推。
到目前为止,我得出的结论是:
实施这样的策略(对于下游)的最佳位置是在细管的另一端,即ISP。显然,在这种情况下这是不可能的,因此最好能够以某种方式近似它。但是如何?是否有支持这样的现成路由器?我可以配置Linux或BSD机顶盒吗?它不一定是防弹的-行为不正常的TCP服务器或激进的UDP服务可能会绕开我最终可以做的任何事情-但它应适用于大多数流量的常见情况,这些流量包含许多符合RFC的规定TCP连接。
需要明确的是,我并不是在讨论对特定应用程序进行优先级排序,而是在聚合进出特定以太网设备或IP地址范围的流量。为某些流量提供比其他流量更高的优先级似乎得到了很好的支持,但是当尝试将带宽平均分配给流量类别时,情况并不清楚。
网络上的流量整形方面有很多写得不好/毫无意义的反省/否则就是无知的信息。关于路由器硬件的文档非常不确定,因此我似乎无所适从。
据我了解,使TCP以这种方式运行的方法实际上是模拟比实际可用的管道略窄的管道,并人为地丢弃数据包以使其退回。因此,我认为在上面的示例中通过人为地丢弃任何额外的数据包为每个人提供准确的3Mbit / s相当简单。这实际上并没有真正有效地使用连接,因为大多数时候都有可用容量。
有什么方法可以满足我的要求?我在说错吗?我(或者更确切地说,是有问题的家庭)愿意为此花钱-无论是价格适中的现成路由器/设备,还是运行Linux或BSD发行版的通用设备。