Can bonding 2 interfaces double the speed?

Solution 1:

LACP will not split packets across multiple interfaces for a single stream/thread. For example a single TCP stream will always send/receive packets on the same NIC.

See the following post for reference:

Link aggregation (LACP/802.3ad) max throughput

Hope this helps.

Solution 2:

The way Link Aggregation works is by using a hashing algorithm to decide which packets should go out which port.

Packets from the same source MAC address, to the same destination MAC address, will always go out the same port.

Some Link Aggregation implementations support using layer 3 (IP addresses) and even layer 4 (TCP/UDP Port number) as part of the hash, but this is not that common.

This is why you only get 1 gbit/sec when transferring files from 1 server to another.

If the OS and Switch will both support layer 3, you can get more speed by using multiple IP addresses. However because of the way the hashing algorithm works, there is a 50/50 chance that both streams will end up going out the same link.

Solution 3:

My understanding of network bonding is that you cannot exceed the link speed of the member interfaces in one connection. A connection will stick to one interface in the bond after it is established.

However, connections are now split between the two interfaces. If you were to have two connections running from server A to server B, then the connections shouldn't start bottle-necking each other as far as bandwidth goes because they will be traveling across different interfaces. Your total bandwidth using multiple connections should be 2Gb/s, but each connection will be limited to a maximum of 1Gb/s.