我有两台Linux机器,我希望通过绑定链接进行连接。
一台机器有两个UMTS调制解调器(DN:5mbit UL:1.2mbit)作为网关,另一台机器有光纤(DL:100Mbit UL:20mbit)作为其网关。
我可以成功创build2个OpenVPN通道(每个UMTS调制解调器一个,使用iptables规则),并将Linux绑定驱动程序(模式0,循环分配)应用到这些通道。
到现在为止还挺好。 绑定接口通过两个聚合的VPN通道连接两台Linux机器,在这里我可以ping每台机器,传输文件等等。
我的问题是债券的带宽。 理论上带宽应该加倍,但事实上,它是相同的,独立于绑定内的VPN连接的数量。
在具有两个UMTS调制解调器的机器中,当我仅使用一个VPN时,可以使用带宽接近DN的另一台机器:5mbit UL:1.2mbit。 在绑定接口内部使用2个VPN,每个通道的带宽接近DN:2.5mb,UL:0.6mbit,所以整体带宽是相同的,无论是使用一个还是两个VPN通道。
当我使用TCP或UDP传输数据时会发生这种情况,所以这不是一个协议问题。
有没有其他人也经历过这个?
提前致谢。
最后我find了这个问题的(明显的)原因。
“如果你有一个低带宽的networking链接,那么把几个并行链接组成一个带宽更高的组合链接是一件很容易的事情,但是如果你有一个networking链路的延迟很差,那么没有任何一笔钱可以把任何数量的链接成为一个具有良好延迟的链接。“ @它是延迟,愚蠢,斯图亚特柴郡,1996年5月。
由于VPN延迟约为110ms,链路的最大带宽约为4.8mbps(根据http://bradhedlund.com/2008/12/19/how-to-calculate-tcp-throughput-for-long-距离链接/ )
为了检查这个我在实践中的testing,我把每个UMTS调制解调器带宽降低到2mbps DL和1.2mbps UL(使用wonderdershaper整形stream量),得到3.65mbps DL和2mbps UL聚合带宽。
继续,如果聚合带宽不超过延迟所带来的最大带宽,我可以使用VPN绑定,否则会浪费资源。
我怀疑返回的stream量与数据在链路之间达到平衡,所以build议首先testing绑定接口上的上行链路速度。
你为什么不增加TCP窗口大小,就像你的链接说的那样? 如果你把尺寸加倍,你应该能够达到所需的带宽。