Route load balancing can be classified as Equal-Cost Multiple Path (ECMP) or Unequal-Cost Multiple Path (UCMP).
ECMP evenly load-balances traffic over multiple equal-cost paths to a destination, irrespective of bandwidth. Equal-cost paths have the same cost to the destination.
When the bandwidth of these paths differs greatly, the bandwidth usage is low. On the network shown in Figure 1, traffic is load-balanced over three paths, with the bandwidth of 10 Mbit/s, 20 Mbit/s, and 30 Mbit/s, respectively. If ECMP is used, the total bandwidth can reach 30 Mbit/s, but the bandwidth usage can only be 50%, the highest.
UCMP load-balances traffic over multiple equal-cost paths to a destination based on bandwidth ratios. All paths carry traffic based on their bandwidth ratios. As shown in Figure 2. This increases bandwidth usage.
Trunk load balancing does not have ECMP or UCMP, but has similar functions. For example, if interfaces of different rates, for example, GE and FE interfaces, are bundled into a trunk interface, and weights are assigned to the trunk member interfaces, traffic can be load-balanced over trunk member links based on link weights. This is implemented in a similar way as UCMP. By default, the trunk member interfaces have the same weight of 1. The default implementation is similar to ECMP, but all member interfaces can only have the lowest forwarding capability among all.