Font Size: a A A

Simple distributed programming for scalable software-defined networks

Posted on:2016-08-09Degree:Ph.DType:Thesis
University:University of Toronto (Canada)Candidate:Yeganeh, Soheil HassasFull Text:PDF
GTID:2478390017981363Subject:Computer Science
Abstract/Summary:
Software Defined Networking (SDN) aims at simplifying the process of network programming, by decoupling the control and data planes. This is often exemplified by implementing a complicated control logic as a simple control application deployed on a centralized controller. In practice, for scalability and resilience, such simple control applications are implemented as complex distributed applications, that demand significant efforts to develop, measure, and optimize. Such complexities obviate the benefits of SDN.;In this thesis, we present two distributed control platforms, Kandoo and Beehive, that are straightforward to program. Kandoo is a two-layer control plane: (i) the bottom layer is a colony of controllers with only local state, and (ii) the top layer is a logically centralized controller that maintains the network-wide state. Controllers at the bottom layer run only local control applications (i.e., applications that can function using the state of a single switch) near datapath. These controllers handle frequent events and shield the top layer. Using Kandoo, programmers flag their applications as either local or non-local, and the offloading process is seamlessly handled by the platform. Our evaluations show that a network controlled by Kandoo has an order of magnitude lower control channel consumption compared to centralized controllers. We demonstrate that Kandoo can be used to adapt and optimize Transform Control Protocol (TCP) in a large-scale High-Performance Computing (HPC) datacenter with a low network overhead.;Beehive is a more generic proposal built around a programming model that is similar to centralized controllers, yet enables the platform to automatically infer how applications maintain their state and depend on one another. Using this programming model, the platform automatically generates the distributed version of each control application. With runtime instrumentation, the platform dynamically and seamlessly migrates applications among controllers aiming to optimize the control plane. Beehive also provides feedback to identify design bottlenecks in control applications, helping developers enhance the performance of the control plane. Implementing a distributed controller and a simple routing algorithm using Beehive, we demonstrate that Beehive is as simple to use as centralized controllers and can scale on par with existing distributed controllers. Moreover, we demonstrate that Beehive automatically improves control plane's latency by optimizing the placement of control applications without any intervention by network operators.
Keywords/Search Tags:Network, Programming, Control applications, Distributed, Simple, Control plane, Beehive, Controllers
Related items