My course project will focus ensemble routing. In this post, I’d like to introduce what ensemble routing is. Then I’ll talk about my progress in the future posts.
As today’s data centers have hundreds of thousands of servers, scalability is a main design goal for data center networks. A major challenge is how to efficiently interconnect servers and provide efficiently traffic management for a huge amount of traffic flows from multiple tenants.
Ensemble routing provided an efficient way to dynamically manage a huge amount of traffic flows in data center networks. The core idea of ensemble routing is to operate on the granularity of flow ensembles, rather than individual flows. A flow ensemble is a collection of flows, each of which follows the same routing path. Each flow, identified by the tenant ID and packet header tuple, is classified into a traffic class, which determines the QoS treatment for the flow, and a hash class, which is simply calculated by a hash function. The traffic class and the hash class determine the routing class of the flow, i.e., the flow ensemble the flow belongs to. By operating on the flow ensembles, ensemble routing greatly reduces management overhead and is scalable to manage a huge amount of traffic flows. Ensemble routing uses Virtual Local Area Networks (VLANs) to provide routing networks. It needs to effectively assign each flow ensemble, or routing class, to VLANs. The goal is to optimize network utilization for multiple tenants through load balancing.