# 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;
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2Fr9CdbqAxiaysDp8CSTtz%2Fimage.png?alt=media\&token=ce43978c-4f50-4f5a-a9e4-7f2b0fc2a160)
* SDN
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2F7wyC9Jl72vhUq5VSnx0f%2Fimage.png?alt=media\&token=031037b3-b9a0-4081-9bd2-4581a776341d)
* 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;
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FBjd8UwrfZTEwvd91X4Nw%2Fimage.png?alt=media\&token=601db6ee-f420-4c00-b98c-81171f05eb66)
    * Replication comes at a cost (complexity, not elegant)&#x20;
    * Instead&#x20;
      * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2F2qKTruMfpeorqnwUJptY%2Fimage.png?alt=media\&token=b2fabf56-a4e9-4242-9f49-eddfef692a78)
      * 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;
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FDFwORtoOwWN94WSuFlhw%2Fimage.png?alt=media\&token=32b5e2df-c80c-4c23-a48b-93f511b6e0f8)
  * Match Action Table&#x20;
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FjMDQaavU2lIzfzdp86n7%2Fimage.png?alt=media\&token=03262d20-ef22-4035-a12c-41fb75623472)
    * 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;
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FvN62zEEnoAc3RSYdOZRY%2Fimage.png?alt=media\&token=95cbbc86-14d6-4cb6-b19e-d6b195d69108)

### 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;
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FOIxCCfuzOxbwYbsH7lLY%2Fimage.png?alt=media\&token=80588208-6ebc-43dd-9ff4-e891a3d43124)
    * 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;
