On 21-mrt-2006, at 17:25, Scott Leibrand wrote:
In some mental modeling I've done sofar, the biggest problem I see in not using TCP congestion control on eachlocator pair is in deciding how much traffic to send over each link.
I've actually worked on some stuff where we load balanced a bunch of traffic over several TCP sessions towards different destinations (where it didn't matter which part of the aggregate traffic ended up where), and the results were interesting. When you get the hang of it, it works pretty well, though. The key issue is that you feed data to the right session/path. If you don't, you run the risk of being limited by the slowest one, and have performance that's even worse than not bonding the paths.
When I think about this, this may not be all that easy if only the sending side knows about what we're doing. You probably need to use selective acknowledgments and you may still trigger fast retransmit often and take TCP processing at the receiver off of the fast path.
And you'd have to be really careful to make sure that the unmodified side doesn't see confusing RTT estimates.
I suppose you could use both links equally, which would allow you to use (# of links) * (the bandwidth of the slower link) rather than the sum of thebandwidths of all the links.
But that's exactly what you don't want. What if you have a 10 Mbit link and a 100 Mbit link? Then using 10 Mbit over both gives you 20 total, while the fast link alone can give you 100. What you really want is 110.