Hash-based load-balancing techniques are widely used to distribute the load over multiple forwarding paths and preserve the packet sequence of transport-level flows. Forcing a long-lived, i.e., elephant, flow to follow a specific path in the network is a desired mechanism in data center networks to avoid crossing hot spots. This limits the formation of bottlenecks and so improves the network use. Unfortunately, current per-flow load-balancing methods do not allow sources to deterministically force a specific path for a flow. In this paper, we propose a deterministic approach enabling end hosts to steer their flows over any desired load-balanced path without relying on any packet header extension. By using an invertible mechanism instead of solely relying on a hash function in routers, our method allows to easily select the packet’s header field values in order to force the selection of a given load-balanced path without storing any state in routers. We perform various simulations and experiments to evaluate the performance and prove the feasibility of our method using a Linux kernel implementation. Furthermore, we demonstrate with simulations and lab experiments how MultiPath TCP can benefit from the combination of our solution with a flow scheduling system that efficiently distributes elephant flows in large data center networks.
Detal, G., Paasch, C., van der Linden, S., Mérindol, P., Avoine, G., & Bonaventure, O. (2013). Revisiting flow-based load balancing : Stateless path selection in data center networks. Computer Networks, 57(5), 1204-1216. https://doi.org/10.1016/j.comnet.2012.12.011 (Original work published 2013)