Subject: Re: connection bonding?
To: None <tech-net@netbsd.org>
From: Gert Doering <gert@greenie.muc.de>
List: tech-net
Date: 12/08/2005 23:38:22
In tech-net, der Mouse wrote:

>but still load-balances sanely.  In NetBSD kernel terms, I wonder if
>all the member interfaces could be made to share the same output queue?
>You'd mostly get lack of reordering *and* still have real
>load-balancing, it seems to me.

Unfortunately, even that will not prevent reordering.

Consider: 
  packet 1 is 1500 bytes big, and pushed to network card 1.
  packet 2 is 64 bytes big, and pushed immediately afterwards to card 2.

The start of packet 1 will likely arrive earlier at the switch on the
other end than the start of packet 2.

Depending on the speed of your network cards and the link, I see it 
as fairly likely that the *end* of packet 2 will actually arrive 
earlier, and so (from the switch's view) packet 2 has arrived first
-> and when being forwarded out the destination port, packet 2 will
go first.


I agree that IP stacks should cope with it, but in fact, they don't,
and performance suffers.

Other protocols are even worse, IBM SNA usually aborts session
immediately if packets are lost (and reordering is counted as 
"lost")...

gert
-- 
gert@greenie.muc.de   fax: +49-89-35655025   http://alpha.greenie.net/mgetty/

No sooner said than done -- so acts your man of worth.
               --Quintus Ennius