These terms are used wrongly in so many ways that I sometimes cringe on it. More because I am confused when to relate to what. When you are a beginner you may overlook the difference Load Balancing VS Load Sharing, but you do need to be specific when you are actually asked to implement one.
Load balancing tries to distribute traffic evenly over multiple paths, whereas, load sharing intends to do it (for the lack of a better term) equally. True load balancing is difficult to achieve.
For example, let’s say there were two links (100 mbps and 300 mpbs) and a router needed to send out 600 mbps of traffic. Load balancing would distribute the traffic evenly, sending 300 mbps on each link. On the contrary, load sharing would divide the traffic equally based on the available resources, sending 200 mbps on the slower link and 400 mbps on the faster one. True load balancing is a completely different concept and it is erroneously used in textbooks in place of load sharing which is wrong.
- load-balancing should suggest that the traffic is balanced across different links, for example, 50%-50% when the traffic is sent over 2 links, 33%-33%-33% when the traffic is sent over 3 links, and so on,
- load-sharing should suggest that the traffic is only shared across different links without being necessarily balanced.
PFR (performance routing) or OER (Optimized Edge Routing). This is used for true load balancing.
Performance Routing (PfR) delivers intelligent path control for application-aware routing across the WAN. PfR provides:
- Dynamic selection of the best path for application-based business policies
- Application-based load balancing across paths for full utilization of bandwidth with improved network availability
PfRv3 monitors application performance on a per-flow basis, and applies what is learned to select the best path for that application. Using smart-probe intelligence, flows are monitored passively; probes are sent only when specifically needed to further enhance efficiency. PfRv3 effectively load-balances across paths while delivering the best application-level SLA.
If you are still confused, you can think of load balancing as a round-robin algorithm. A mediator sees two paths and forwards traffic to both paths on FCFS basis. This is load balancing. It will not care which path already has more traffic or congestion, it will simply forward traffic equally.
Load sharing, on the other hand, uses different algorithms for sharing, which can create a possibility of unbalanced traffic but its traffic will be shared rather than balanced. A good example of load sharing is when having two devices connect using two links of different speeds. Let’s say link one is 9Mbit/s, and the other is 3Mbit/s. For every three packets we send through the 9Mbit link, we would want to send one packet down the 3Mbit/s link. The result is that the 9Mbit/s link would send a higher proportion of traffic than the 3Mbit/s link.
Despite the idea of load balancing, it is not always true. Load sharing is technically more correct terminology, in which traffic is shared across multiple paths even if in an unequal fashion.
When talking about either term, load balancing or load sharing, we are talking about a unidirectional method of sharing data through paths to the destination. This is because network layer traffic (layer 3 IP traffic) is connectionless; meaning that each packet that is sent, is a completely independent piece of data. So return traffic can take a totally different path to which is was sent. Reference: https://ccieblog.co.uk/bgp/load-sharing-vs-load-balancing