Load balancing is the action of distributing traffic over multiple paths. The router automatically load balances traffic if it has multiple routes to the same destination in the routing table.
RIP, OSPF and ISIS supports only equal cost load balancing, this means that in order to install multiple routes in the routing table they must have the same metric. EIGRP and EBGP support unequal cost load balancing.
The command maximum-paths defines how many paths can concurrently exist for the same prefix in the routing table. To disable load balancing issue the command maximum-paths 1.
Load balancing can be on per packet basis or on a per destination basis. Per destination means that the router distributes packets based on the destination address (source and destination in case of CEF switching). Per packet load balancing means that packets are sent over multiple paths in a round robin fashion.
Load balancing algorithm is determined by the packet switching method used to forward the packets. Switching methods are listed below with supported load balancing algorithm:
Process switching: Supports per packet load balancing only.
Fast switching: Supports per destination load balancing only.
CEF switching: Supports both per packet and destination load balancing.
This was a brief explanation of how load balancing works, more details is comming up.