On Tue, Sep 10, 2024 at 11:52 AM Carlos E. R. <robin.listas@telefonica.net> wrote:
On 2024-09-10 11:00, Roger Oberholtzer wrote:
On Mon, Sep 9, 2024 at 6:43 PM <tabris@tabris.net> wrote:
Why ALB? Assuming that outgoing throughput is a concern, balance-rr is better. The upside to stuff like ALB and other L3+L4 or L2 hashing methods is to avoid packet reordering issues. But I did the math a few years back, and iirc at 10Gbit there has to be a difference of ~50ft to reorder a stream of 64byte packets. Checking with WolframAlpha: 64bytes/(10Gbit/sec) = ~51nsec or ~50ft. For most purposes and something running on a standard CPU, balance-rr is simpler. This doesn't apply to ASICs and other network silicon though...
I will try balance-rr. I still think that the issue is elsewhere. But I really do not know.
The mode must only effect the packet sender logic. The reading logic must at all times be accepting data on any of the bonded connections. The reader has no way of knowing what decision the sender made about which NIC to send the data on. So it must always be reading on all bonded NIC.
IIRC on the receiving end there are issues like how to handle packages out of order (trigger an error, or wait a bit). Or, is it possible that the next package arrives on a different cable.s T
I cannot see that it is a problem so much as how bonded interfaces in general must work. By their very design, packets move between the NIC. There must be a standard definition for how this works, or bonded interfaces could not be a thing. In 'standard' TCP, packers can come out of order. If a packet seems not to have arrived ad at the destination, a request for that missing packet is made. When this happens, the packets will have arrived out of order. The sender can never forget a packet until it knows the other size has received it. This happened much more often with the old COAX cables. I think it is much less common with RJ45-type connections. But that is what TCP provides. UDP is more the wild west. -- Roger Oberholtzer