A distinguishing characteristic of a software-defined network is separation of the network's control plane from its data plane. Especially when the granularity of control is an individual network flow, such separation entails frequent communications between these two planes. This communication pattern demands the same level of resilience from the control plane as that from the data plane, and thus calls into question the conventional out-of-band control network design as used in many existing SDN systems. Peregrine is an Ethernet-based software-defined network that was originally designed as the internal network of a container computer, and unifies storage access, inter-server communication, and network control into a single network comprising only commodity off-the-shelf Ethernet switches. To fully utilize all available physical network links, Peregrine treats the physical network as an explicitly routed mesh and equalizes the loads of its links using a global load-balancing routing algorithm running on a centralized controller. The in-band control architecture of Peregrine leads to two issues: (1) how to evolve a Peregrine network from its initial bootstrapping mode to the explicit routing mode at run time, and (2) how to support fast fail-over for physical failures that break both the control and data plane. This paper describes how Peregrine addresses these two issues, and shows its effectiveness with performance measurements collected from a fully operational test-bed.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.