IGP Load Sharing Dynamic - Flowlets
Introduction
Dynamic load sharing allows to distribute TCP flows to different paths without introducing packet reordering.
Overview
- Concept introduced by Harnessing TCP’s Burstiness with Flowlet Switching paper.
- Dynamic load balancing is trying to solve for elephant TCP flow that are long lived flows vs mice, short lived flows.
- It changes egress links for within the same TCP Flow but still prevents packet reordering as usually seen with other algorithms that don't maintain the same path for each flow.
- This is accomplish by allowing to switch the output link only when the burst of packets is switched after a certain threshold that would guarantee same order. The latency from sender to receiver is enough of time for a flowlet to wait before switching links to eliminate reordering. The order of flowlets send would still allow for better utilization of the links but prevent reordering.
- Minimal time required to wait is the delay up to the convergence point in the network and not end to end latency, which can optimize the link utilization even more.
- Threshold per each link can be configured to utilized them no just evenly but for desired percentage like 70%/10%/10%.
- To accomplish this each route has to keep a state of the flowlets and check if it can be switched to another link or not based on the time expired between bursts of flows.
Additional Resources
Cisco ACI Load Balancing
Adaptive Flowlet Slicing - Juniper Blog.
Improving ECMP Load Balancing with Flowlets - IP Space Blog.