Equal-cost multi-path routing

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Equal-cost multi-path routing (ECMP) is a routing strategy where next-hop packet forwarding to a single destination can occur over multiple "best paths" which tie for top place in routing metric calculations. Multipath routing can be used in conjunction with most routing protocols, since it is a per-hop decision that is limited to a single router. It potentially offers substantial increases in bandwidth by load-balancing traffic over multiple paths; however, there can be significant problems in its deployment in practice.[1] RFC 2991 discusses multipath routing in general. IEEE 802.1Qbp (part of IEEE 802.1) defines ECMP as an IEEE standard.[2]

Load balancing by per-packet multipath routing is generally deprecated due to the impact of rapidly changing latency, packet reordering and maximum transmission unit (MTU) differences within a network flow, which can disrupt the operation of many Internet protocols, most notably TCP and path MTU discovery. RFC 2992 analyzes one particular multipath routing strategy involving the assignment of flows to bins by hashing flow-related data in the packet header, which is designed to avoid these problems by sending all packets from any particular network flow down a single deterministic path, while balancing multiple flows over multiple paths in general.[3]

In many situations, ECMP may not offer any real advantage over best-path routing: for example, if the multiple best next-hop paths to a destination re-converge downstream into a single low-bandwidth path (a common scenario), it will merely add complexity to the traffic paths to that destination without improving available bandwidth. ECMP may also interact negatively with other routing algorithms where the physical topology of the system differs from the logical topology, for example in systems that employ VLANs at layer 2, or virtual circuit-based architectures such as ATM or MPLS.

See also[edit]

References[edit]

External links[edit]