CSCI-564 | Project 2: Using Software Defined Networks to address compute resource locality and compute resource sharing



OpenFlow, Software Defined Networking (SDN), Distributed data, Data plane, Distributed control plane, Policy-based routing (PBR), Flow, Data center, Open source, Routing protocols


The number of devices being deployed has significantly increased in the last couple of years. In 2014 about 16 billion wireless connected devices were installed, this was about 20% more than in 2013. The estimate is that the number of devices will more than double from the current level, with 40.9 billion forecasted for 2020 \ref{iot2014growth}. This is due to a number of different factors, such as basic economics (price of components), IPv6 proliferation, and simplification of edge networking.

The growth of the deployment of devices is not a homogeneous deployment of devices, but rather many discrete different types of devices that have various characteristics. These characteristics are exhibited through the constraints under which the devices were designed. For example, mobile phones have to trade off power consumption with computational power. The more processing power a mobile phone has the more power it will consume.

To address these constraints research (Shi 2014) has been done leveraging computing resources that don’t have the power constraint and inhibit different characteristics. Essentially, we could match disparate characteristics together. To maintain useability and device capabilities it’s critical that offloading computation or accessing resources does not introduce latency.

The latency that tends to be the largest is networking and finding available resources. The resources can be generically defined as cloud shared resources. These factors are correlated as networks route traffic to the cloud resources. Network latency gets introduced due to protocol overhead and the number of hops within a route. Additionally, the networking infrastructure has no concept of the load of the cloud resources.

The networking infrastructure is designed for resilience, which was part of the original Internet design, and focuses on routing packages through the network in an efficient manner. There are link state route optimization protocols such as IS-IS and Open Shortest Path First (OSPF) (Network Working Group 1998), that both implement the Dijkstra SPF Algorithm. Both protocols distribute routing information between routes to optimize networking routes. However, they don’t take into account computing, data locality, and resource availability. This is where SDN is of relevance to us.

Software Defined Networking

Networking is inherently a complex area where many different protocols have been designed to address different concerns. One of the key successes in networking is the design of the Internet and the use of the layers in the OSI model. This model allowed for a layered abstraction, where each layer is responsible for a different part of communications. For example, the physical network layer is abstracted such that higher layers don’t have to concern themselves with the details of 1000BASE-T or any other physical medium. The OSI model has defined interfaces between the layers so that it will allow for flexibility.

In the area of routing within a network, as mentioned in the previous section, different protocols can be used that are not compatible with each other. The protocols have different approaches to determining the state of the network, which is important to understand how packages are routed through the network. These protocols have grown more complex and less dynamic and their design was not based on implementing an abstraction first.

SDN takes the approach of first defining the abstractions of reusable component to handle networking. These abstractions help simplify the networking and allows for innovation at different levels, the same way the OSI model allowed for this. A key here is the abstraction of the control plane, which is the the part that controls the state of the network. The state determines how packages are routed from point A to point B. Through abstraction SDN allows the creating of this state to be done through software, e.g. managing the control plane. This simplifies the job of a controller that wants to modify the state of the network based on say the availability of computing resources.

In the next section we’ll talk about the different levels of abstraction that SDN provides.