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? 
> 

If your network cards support trunking, then you could do this. The two 
network cards would effectively act as a single network card with a 
single IP Address. So you would effectively have a 200Mbps link rather 
than 2 100Mbps links. Your switch would also need to support trunking.

You would need more CPU to fill a bigger pipe, there is significant work 
  involved in TCP/IP communications. However, some NICs have the ability 
to offload a lot of the processing involved with TCP/IP network 
communications, I don't know that it really involves buffers, more 
offloading the TCP/IP transmission stuff from the CPU to the NIC.

I think your friend is right, though not necessarily for the reasons he 
believes.

Josh