> For the complete documentation index, see [llms.txt](https://sliu583.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sliu583.gitbook.io/blog/networking/index/cs-268-adv-network/sdn/how-sdn-will-shape-networking.md).

# How SDN will shape networking

### SDN: An Industry Change&#x20;

* 1980s&#x20;
  * Specialized applications, specialized OS, specialized hardware&#x20;
  * Vertically integrated, closed, proprietary&#x20;
* Then&#x20;
  * Open interface, rapid innovation, huge industry&#x20;
* Availability of merchant switching chips&#x20;
  * On top of there: multiple control planes&#x20;
  * ![](/files/hMPrDjmiBhY1p8AIeFhI)
* SDN
  * ![](/files/WyB7X0DnZmmqwCIz8lvi)
* Example&#x20;
  * Interesting comparisons across OSPF (245 pages), Distributed System (101 pages), Dijkstra's Algorithm (4 pages)&#x20;
  * Start by building a distributed system!&#x20;
    * ![](/files/YmJuF1gM80veJdDapPvZ)
    * Replication comes at a cost (complexity, not elegant)&#x20;
    * Instead&#x20;
      * ![](/files/cyqgElkg0SSK4jvMLDIU)
      * Being refactored through different abstractions and different interfaces; make it easier to introduce new functionalities over time&#x20;
* **Openflow Forwarding Abstraction**&#x20;
  * Standardization have the benefits to give abstractions (but in a pragmatic way; perfection is not the goal here)&#x20;
  * ![](/files/g2OCQHj5cgWBCB7fxFrV)
  * Match Action Table&#x20;
    * ![](/files/jlD43GJba9w64nEW4mD3)
    * Actually all layers of the network is doing this&#x20;
    * As general as possible to match any header that you define&#x20;
    * How to use minimal sets of actions (meaningful set of primitives); leaving rooms for chip vendors to be able to implement it in hardware, and box vendors to differentiate by adding additional features / capabilities&#x20;
  * Protocol independent&#x20;
  * Backward compatible&#x20;
  * Technology independent&#x20;
    * Switches, routers, WiFi APs&#x20;
* SDN in development&#x20;
  * ![](/files/EX9a0AegJUrx1KX6ZO8r)

### How SDN will shape networking

#### 1. Empower network owners / operators&#x20;

* <mark style="color:green;">Customize networks to local needs</mark>
  * e.g. Add distributed load balancing&#x20;
    * What if we can jointly optimize path and server?&#x20;
    * Easy for testing&#x20;
* Eliminate unneeded features
  * Features not needed in the network, can increase reliability&#x20;
* Creation of virtual, isolated networks&#x20;
  * Isolate sets of users, multi-tenancy

#### 2. Increase the pace of innovations&#x20;

* <mark style="color:green;">Innovation at software speed</mark>&#x20;
  * Define the operations in software&#x20;
  * Can start doing much of the testing in software&#x20;
  * E.g. Mininet: Rapid for prototyping&#x20;
    * Light weight emulation; take any of these pieces, move them over machines and cores&#x20;
    * ![](/files/bZbI1oCGYV2qlZ6A6R7T)
    * Fast
      * Emulate network with 10s of switches on one laptop
      * Emulate network with 1000s of switches in server rack&#x20;
    * Rapid transfer&#x20;
      * Deploy unmodified code directly into live network
* Standards (if any) will follow software development&#x20;
* Technology exchange with partners&#x20;
  * Across boundaries, combine the boundaries use BGP etc.&#x20;
* Technology transfer from universities&#x20;

#### 3.  Diversify the supply chain

* A variety of software suppliers&#x20;
* Common hardware abstraction, with extensions&#x20;

#### 4. Build a robust foundation&#x20;

* Standardized forwarding abstraction
* Provable network properties at every step&#x20;
  * E.g. header space analysis: static checking&#x20;
  * Network transfer function: set of Bollean expressions&#x20;
  * Only relies on \<match, action>
  * Can prove reachability&#x20;
