Equal-cost Multi-path routing
Equal-cost multi-path (ECMP) routing is a technique used to forward packets to a single destination over multiple best paths that have an equal cost or metric. This can be achieved using any IGP, as well as using BGP with appropriate load balancing mechanisms.
Although efficient, used alone it can cause problems if employed on a "per packet" basis, due to the fact that it can result in excessive packet reordering and problems with differing MTU values for each path. This is highly undesirable for protocols such as TCP, and for applications such as VoIP.
Alternative load balancing strategies have been proposed and employed, that involve the assignment of flows using hashing flow-related data in the packet header. This is designed to avoid problems by sending packets from any particular flow via the same path.
Regardless of the routing protocol being used, it is possible to ensure a per-destination or per-packet load balancing algorithm. This can be used to resolve issues involving asynchronous routing, or out of order packet delivery.