Bonding vs load balancing

hey guys,


What the diff between bonding two connections and using PPC or routes?

Generally speaking, bonding happens at a lower level and can potentially more smoothly load-balance. It should generally also guarantee in-order packet delivery.

Bonding can load-balance at a sub-packet level and increase throughput for a single stream of data. Bonded interfaces appear as one higher-bandwidth interface at layer-2, which can simplify routing, etc, in turn reducing CPU usage (except the bonding in turn might increase the CPU, if there isn’t hardware support for it).

Note that I said “can”, some bonding methods may not do some or any of those things.

The other methods either can’t give full bandwidth to a single stream (because that stream will use only one of the paths), or risk out-of-order packet delivery (which shouldn’t actually be a problem in theory for most things, but many stacks don’t handle it well). If you’re using multiple reliable interfaces of the same speed and latency, you probably mostly won’t have out-of-order problems though (but smaller packets could arrive before larger ones if they were sent at nearly the same time).

Sub-packet balancing, simple example: you bonded 3 interfaces of equal speed. The bonding will split incoming packets into thirds, and send a 3rd of a packet down each of the 3 interfaces, which are then reassembled on the other end and sent out the bonded interface as a complete packet. What happens when the interfaces aren’t equal speed and/or have high jitter, and/or the packet isn’t evenly divisable by 3 is left as an exercise for the reader.

Note that the packet still takes the same amount of time to appear at the other end (the speed of light being a constant), but the end of the packet arrives sooner, meaning the next packet can be sent sooner.

Thank you very much :slight_smile: that was very helpfull:


So i could bond two ADSL lines together instead of using PPC?

What method would you use for speed?

I was reading the wiki last night there like 4 or 5, but im nto sure which one uses both interffaces ( liek the last scenario you mentioned when it divides it into 3)



and also do both ends have to be mikrotiks?

or could i bond ether4,5 together and plug that into a switch ( so i will have 200mb/s throughput to router)???

Thanks

In general in order for you to use bonding you need to control both ends of the connection. If you are looking to increase the throughput you have to the ISP for general internet access, you need to contact your ISP to see if they support any form of bonding and if they would even be willing to set it up for you. Most of the time you would also need to have multiple ISP connections from the same provider if they are even willing to set up bonding for you, since there is no way you are getting two separate ISPs to work together like that.

If you are looking to bond traffic to increase throughput to two remote sites, then it is possible only because you control both ends of the connection at that point. But like xxiii mentioned, if you want to set that up, it’s best to have the exact same connection and very low latency links.

Load balancing is just that, you spread the load of multiple connections across many internet connections. No one connection can take up more bandwidth than the current internet connection they are going through, but you can spread multiple connections around thus increasing overall bandwidth. This in general is more what people are looking for and want to do.