Load-sharing vs Load-balancingJune 3, 2009
The terminology load sharing vs. load balancing are commonly misunderstood terms in the networking industry. Most people use the term load-balancing when they in fact referring to load sharing.
So what is Load Balancing?
Definition: Load balancing is a concept that aims to make a network more efficient. Load balancing distributes of traffic load evenly across a network with multiple-paths, in order to get optimal resource utilization, maximize throughput and minimize response time. Thus load-balancing will split the traffic down the configured paths equally towards the destination. E.g., with two 768 kpbs links and 800 kpbs traffic at any point, conceptually with load-balancing each path should have 400 kpbs worth of traffic. But is that what happens?
How does Load Sharing differ?
Definition: Load sharing is inherent to the forwarding process of a router to share the forwarding of traffic, if the routing table has multiple paths to a destination. If equal paths, the forwarding process will decide the manner of forwarding and forward packets based on the load-sharing algorithm used. This still bears the possibility of unbalanced forwarding. If unequal paths, the traffic is distributed inversely proportionally to the cost of the routes. That is, paths with lower costs (metrics) are assigned more traffic, and paths with higher costs are assigned less traffic.
Despite the idea of load balancing, it is not always true. Load sharing is technically more correct terminology, in that traffic is shared across multiple paths even if in a unequal fashion. If you were to look at two comparing traffic graphs, with load balancing the two graphs should be near identical, but in reality with load sharing they might be similar but the traffic flow pattern would be different.
So why the big deal in classifying the difference between the two?
Them non-technical folks and perception. Because to have multiple links sharing the exact same amount of bandwidth is only possible in very specific scenarios, where-as almost ALL other instances are load-sharing not load-balancing.
Another very important fact to keep in mind is that any load-sharing/load-balancing configurations are UNI-directional, influencing traffic in one direction. If the return traffic had to be balanced in the same manner, the same configuration would be needed in the opposite direction.