1
bazingaterry 2016-10-25 10:05:40 +08:00 via iPhone
有,路由器支持链路叠加即可。
|
2
raysonx 2016-10-25 10:41:32 +08:00
如果 site A 到 B 有多条 TCP 连接,是可以把不同的连接均衡到不同链路上的。
但是,如果是同一条 TCP 连接的话, TCP 在设计上一条连接只有一个 source IP 和一个 destination IP ,如果你的 site A 不同链路 IP 是不同的,就无法单纯通过 TCP 解决了。当然,套层隧道还是可以的。 UDP 本身无连接,只要你设计好上层协议毫无压力。 |
3
est 2016-10-25 10:50:50 +08:00
tcp 是内核实现的。。。内核做 module 也是可行的。。只不过需要 root 。很多 openvz 的可能各种兼容性问题。。。
还有就是代码写的不好就 kernel panic 了。。 要多链路多 demultiplexing 的方案还是有的,基于 UDP 和 IP 的应该都有。免费开源的就不知道咯。 |
4
jedihy 2016-10-25 11:11:35 +08:00
多路 TCP 没你想的那么简单,目前在学术界是一个热门的研究领域,在数据中心网络中有部分已经在使用了。
举一个简单的例子,多路 TCP 那么多乱序的怎么去拼接?广域网内各链路拥塞程度不一样,整个传输性能瓶颈会卡在最慢的那条流上,如何避免,重发?拥塞窗口怎么控制?丢一个包降多少窗口?是不是会增加丢包率?每条流权重是不是一样,不一样的话怎么控制? |
5
flyfishcn 2016-10-25 15:04:34 +08:00
带宽叠加都是基于多连接的。基于链路聚合这种的只能完成 OSI 二层下的内容。一旦涉及协议了,单连接是无法聚合的。
|
6
bybyte 58 天前
有的,我试过,一个 tcp 链接通过多个链路发出,实现思路就是在本地把 tcp 打散为基于 udp 的可靠协议,例如 kcp ,然后 udp 想怎么发就怎么发了,通过 N 个链路转发都行,只要发到目的地,然后把 udp 再转回去就行了,即使其中任意一条链路断开或者延迟都不影响这一整条 tcp 链接都断开,但是这样做就会浪费很大的带宽,但是提高了可用性
|