🤖 AI Summary
This work addresses the scalability limitations of traditional flow-level load balancing in data center networks, which stems from switches maintaining per-flow state. To overcome this, the authors propose a fully host-driven, fine-grained load balancing scheme that offloads flow-segment identification and path selection entirely to end hosts. By leveraging SRv6 for stateless forwarding in switches, the approach eliminates the need for per-flow state in the data plane. It further introduces a path load estimation model based on in-flight bytes and a dynamic flow-segment timeout mechanism. Experimental results demonstrate that, under fixed-size flow scenarios, the proposed method reduces tail latency by 15% compared to random flow-segment balancing and by 33% relative to ECMP. Significant improvements in multipath utilization and overall performance are also observed under real-world application workloads.
📝 Abstract
This paper proposes a fully host-driven method for flowlet balancing with Segment Routing over IPv6 (SRv6). In modern data center networks, load balancing plays a pivotal role in efficiently utilizing multiple paths. Flowlet balancing offers finer granularity in traffic splitting than ECMP and is therefore expected to achieve higher performance. However, deploying flowlet balancing in practice is still challenging due to the scalability issue of switches having to maintain per-flow state. In our approach, hosts detect flowlets in their outgoing traffic and steer them onto specific paths using SRv6. The switches behave as SRv6 nodes in a stateless manner. Each host distributes its flowlets as evenly as possible across paths. As a metric for this load balancing, we introduce a simple model that estimates in-flight bytes on each path. We implemented the proposed method on Linux and evaluated it on a testbed with an SRv6-capable router. The results show that, under fixed-size flows, the proposed method reduces tail latency by 15% and 33% compared with random flowlet balancing and ECMP, respectively. Furthermore, combining the method with dynamically adjusted flowlet timeouts also improves performance under two application workloads.