mike -

you can use etherchannel and other ethernet bonding mechanisms to  
increase the aggregate link capacity for a server. this can also be  
used between routers and switches.  from where i'm sitting you both  
appear suffering from an incomplete understanding of how this stuff  
actually works on the wire.  you're both right and wrong but for a  
few different reasons. :)

a few points to keep in mind -

  - NICs do have transmit and receive buffers that are used to store  
data until it can be processed by the local IP stack.

  - data is not split N ways across the bonded interfaces and re- 
assembled. the discerning reader will note that such a configuration  
would create a new bottleneck. instead flows[1] are usually sent out  
a particular link and some hashing mechanism is used to insure that  
load is evenly distributed across all of the links in the channel  
group.  a single logical interface is, however, presented to the OS  
and the switch to which such a configuration is connected.

- yes, your friend is confusing processing rates and transfer rates.   
the two are loosely coupled, but there are  mechanisms to make the 2  
entirely independent of each other.

- a computer can have multiple IP and MAC addresses.  some of us even  
add multiple loopback interfaces to evil ends on our workstations/ 
servers. ;-)

more and more servers are supporting ethernet bonding mechanisms ala  
EtherChannel or PAgP/LACP.  performance is improved.

On Sep 28, 2005, at 3:58 AM, Mike Olson wrote:

> Could someone please settle an argument between my friend,
> and I?  Is it possible to increase the transfer rate
> between two computers by putting two network interface
> cards (NICs) in each computer, and putting two Ethernet
> connections on each computer, and connecting the two
> computers with two Ethernet cables?  I said that it would
> not, and may even slow transfer rates because the
> processor is switching between two NICs.  Also, since each
> computer can have only one IP address since each MAC
> address is unique, and that computer will process the
> packets of information it receives one at a time.  He
> thinks that the NICs have buffers in them that allow the
> packets of information to be stored until the CPU
> processes them.  So according to him, you can send a chunk
> of data faster by splitting it in half, sending the halves
> over two cables, and receive the halves with the other
> computer and NICs, and put the chunk of data back together
> again.  He thinks that transfer rates would increase if
> you increased the CPU speed, since each CPU could split
> the info and put it back together faster, and faster.  I
> told him that transfer rates are dependent upon the rate
> of your NIC and your transfer medium (ex. Ethernet,
> optical, wireless) and cannot be affected by simply adding
> more NICs and transfer mediums between two computers.  I
> think he's confusing processing rates with transfer rates.
> Whose right?
>

{ snipped - misc. signatures }

references
----------

[1] - where a flow may be defined by a unique pairing of things such  
as SRC/DEST MAC or SRC/DEST IP address or L4 protocol elements.  care  
needs to be given to the selection of hash algorithm on the part of  
the implementation to prevent polarization.  but i digress.

-- 
steve ulrich                       sulrich at botwerks.org
PGP: 8D0B 0EE9 E700 A6CF ABA7  AE5F 4FD4 07C9 133B FAFC