Skip to content
Calcrivo

ECMP Distribution Calculator

Calculate per-path traffic share when load-balancing across multiple equal-cost paths (ECMP).

Inputs

Mbps

Real hash-based distribution is rarely perfectly even; typical skew is 5-15%.

Ideal Traffic per Path

1,000.00Mbps

Most-Loaded Path (with skew)

1,100.00Mbps

Least-Loaded Path (with skew)

900.00Mbps

Recommended per-Path Capacity

1,100.00Mbps

Step by step

  1. Values used

    Total Traffic = 4,000 Mbps; Number of Equal-Cost Paths = 4; Hash Imbalance = 10

  2. ECMP per-path traffic

    per_path_traffic = total_traffic / num_paths

  3. Ideal Traffic per Path

    = 1,000.00 Mbps

  4. Most-Loaded Path (with skew)

    = 1,100.00 Mbps

  5. Least-Loaded Path (with skew)

    = 900.00 Mbps

  6. Recommended per-Path Capacity

    = 1,100.00 Mbps

How it works

Equal-Cost Multipath (ECMP) spreads traffic across several paths of identical routing cost by hashing packet header fields (typically source/destination IP and port, the 5-tuple) to deterministically pick a path per flow, keeping all packets of a given flow on the same path to avoid reordering. In theory this divides total traffic evenly by the number of paths, but real hash functions produce some skew because flow sizes vary and the number of flows is finite, so this calculator models that imbalance and reports both the ideal even split and a realistic worst-case per-path load.

Formula

ECMP per-path traffic

per_path_traffic = total_traffic / num_paths

T_total
Total traffic to be load-balanced
n
Number of equal-cost paths

Frequently Asked Questions

Why doesn't ECMP split traffic exactly evenly across all paths?

ECMP hashes each individual flow (typically keyed on the 5-tuple: source/destination IP, source/destination port, protocol) to a single path to preserve packet ordering within that flow, rather than splitting bytes evenly across paths. With a finite number of flows of varying sizes, the hash distribution across paths is statistically even only in aggregate over many flows — a few very large flows can still land unevenly.

Why does ECMP keep a flow on the same path instead of spreading each flow across all links?

TCP (and most applications) perform poorly when packets from the same connection arrive out of order, since reordering triggers unnecessary retransmissions or reassembly delay. By hashing on a consistent flow key, ECMP guarantees every packet in a flow takes the same path, preserving in-order delivery while still balancing overall traffic across paths at the flow level.

How many equal-cost paths does a typical network use?

It depends on the topology and the routing protocol's support, but data center fabrics commonly use ECMP across 4, 8, 16, or more equal-cost paths (e.g. in a leaf-spine/Clos topology) to maximize aggregate bandwidth and provide resilience, while smaller enterprise networks might only have 2 equal-cost uplinks.

You might also need