Increasing bandwidth with multiple NICs

If I have two NICs in my system and both are connected to different ISP with different IP addresses, can I distribute my network traffic on them to increase my Bandwidth. I have already looked at solutions like net-bonding, where we create a logical interface presented to the applications and the two NIC are bonded together.

Also I have seen solutions which uses SCTP or SCPS-TP protocol instead of TCP.

My predicament is that I have to use a solution present in the application domain. Suppose I am writing a software for multiple client systems, I would not want them to change their tcp with sctp or go too deep with bonding (also with netbonding, it works only if the IPs are from the same network).

What are the critical issues in designing such a solution?


Since they're on distinct networks, there isn't a way to aggregate or bond the two connections together, however you can load balance the outgoing connections so that the first TCP/IP request goes out Interface a, the second out Interface B, third out a... etc.

Unfortunatly you didn't state what OS you're using, as I don't know how to do this in Windows / MacOS / Solaris / etc, i'll only link to the linux solution.

Here's a guide for settings up the routes on linux

You should be able to do similar on the outbound setting up the routing on whatever OS it is.

On the other hand, if you need to load balance the incomming connections, the suggest for round robin DNS is the proper solution that Adam Davis suggested.

Wikipedia on round-robin DNS


Probably the cheapest way to do that is to use DNS in a round robin fashion.

Don't bond the two interfaces - let them have different IP addresses, and set up the DNS servers to alternate between the two IP addresses.

It's not in the application domain as you requested, but it might actually be easier to do.

-Adam