Round robin load balancing refers to the load balancing algorithm whereby the scheduling is done on a one-by-one basis where the scheduler takes turns to service the links with “equal load”. The equal load can be measured with respect to Internet sessions (identified by the tuple of source/destination protocol and port numbers) whereby each new session identified by a new tuple is scheduled onto the WAN link that is next in line to receive load.
As an example if a load balancing router has 3 WAN links, say WAN1, WAN2 and WAN3, and is set in round robing load balancing mode, then the sessions coming into the router will be scheduled onto each WAN link in an equal manner and in sequence. Out of the 6 sessions arriving (say session-1 through session-6), session-1 will be scheduled on WAN1, session-2 will be scheduled on WAN2, session-3 on WAN3, session-4, again onto WAN1 and so-on, therefore distributing all 6 sessions equally (2 per WAN in this case) over the available 3 WAN links.
Round robin load balancing is a simple load balancing algorithm that has been used not only in link load balancing but also in many other context where scheduling is necessary. However, we will keep our discussion of round robin load balancing to the WAN load balancing framework in this article. Round robin load balancing is a simple method that can be useful in scenarios where the WAN links are from the same provider with similar characteristics (i.e. speed, latency, packet-loss etc). In these cases, scheduling the sessions equally over the available WAN links is the best you can do provided that your router is limited to session level granularity for aggregation.
In cases of a fixed ratio between WAN links, a modified version of the round robin algorithm, namely, weighted round robin can be used. Weighted round robin is similar to round robin, with a weight factor that increases the number of sessions that a WAN link gets according to its assigned weight. The weighted round robin load balancing can be used in scenarios where there is a fixed relation between the WAN links, say WAN1 is 2.4 times faster than the WAN2, then the same 2.4 factor can be represented in assigning load balancing weights to the WAN links.
Both regular round robin load balancing as well as the weighted round robing load balancing have their limitations and shortcomings however. As you can imagine, depending on the size of the sessions, the scheduler may easily miss the mark, as the number of sessions may not be an accurate representation of the real load. As an example you can envision one of the sessions being a large file download vs the rest being short-lived sessions. From the round robing load balancing algorithm perspective, they represent equal load on the WAN links, where clearly that is not the case.
If your router is equipped with much more modern aggregation algorithms such as Broadband Bonding, then the granularity of aggregation can be packet level, whereby even a single session can be split up into smaller sized components. This will provide the ability to schedule equal sized components between the available WAN links according to their capacity and therefore achieve a much more accurate load balancing compared to a legacy round robin load balancer (weighted or not).
Another advantage of a Broadband Bonding router is the fact that the load can be redistributed over the WAN links even for on-going live sessions. Since the on-going sessions’ smaller components are scheduled in real-time, the broadband bonding schedule can make on-the-fly adjustments and therefore create a better aggregation performance.
Additionally, the packet level broadband bonding opens the opportunity for session management, where a disruption in any of the WAN links will not cause any of the sessions to break (which would have been the case in a round robing load balancing scheme). In essence, the broadband bonding algorithm will be able to re-schedule the components that may have lost over the problem WAN link, onto the other WAN links according to this aggregation algorithm and therefore will be able to keep the sessions alive.
Cahit Akin, CEO, Mushroom Networks, Inc.
Mushroom Networks is the provider of SD-WAN (Software Defined WAN) and NFV solutions capable of Broadband Bonding that enables self-healing WAN networks that route around network problems such as latency, jitter and packet loss.