How SDN will shape networking

https://www.youtube.com/watch?v=c9-K5O_qYgA

SDN: An Industry Change

  • 1980s

    • Specialized applications, specialized OS, specialized hardware

    • Vertically integrated, closed, proprietary

  • Then

    • Open interface, rapid innovation, huge industry

  • Availability of merchant switching chips

    • On top of there: multiple control planes

  • SDN

  • Example

    • Interesting comparisons across OSPF (245 pages), Distributed System (101 pages), Dijkstra's Algorithm (4 pages)

    • Start by building a distributed system!

      • Replication comes at a cost (complexity, not elegant)

      • Instead

        • Being refactored through different abstractions and different interfaces; make it easier to introduce new functionalities over time

  • Openflow Forwarding Abstraction

    • Standardization have the benefits to give abstractions (but in a pragmatic way; perfection is not the goal here)

    • Match Action Table

      • Actually all layers of the network is doing this

      • As general as possible to match any header that you define

      • 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

    • Protocol independent

    • Backward compatible

    • Technology independent

      • Switches, routers, WiFi APs

  • SDN in development

How SDN will shape networking

1. Empower network owners / operators

  • Customize networks to local needs

    • e.g. Add distributed load balancing

      • What if we can jointly optimize path and server?

      • Easy for testing

  • Eliminate unneeded features

    • Features not needed in the network, can increase reliability

  • Creation of virtual, isolated networks

    • Isolate sets of users, multi-tenancy

2. Increase the pace of innovations

  • Innovation at software speed

    • Define the operations in software

    • Can start doing much of the testing in software

    • E.g. Mininet: Rapid for prototyping

      • Light weight emulation; take any of these pieces, move them over machines and cores

      • Fast

        • Emulate network with 10s of switches on one laptop

        • Emulate network with 1000s of switches in server rack

      • Rapid transfer

        • Deploy unmodified code directly into live network

  • Standards (if any) will follow software development

  • Technology exchange with partners

    • Across boundaries, combine the boundaries use BGP etc.

  • Technology transfer from universities

3. Diversify the supply chain

  • A variety of software suppliers

  • Common hardware abstraction, with extensions

4. Build a robust foundation

  • Standardized forwarding abstraction

  • Provable network properties at every step

    • E.g. header space analysis: static checking

    • Network transfer function: set of Bollean expressions

    • Only relies on <match, action>

    • Can prove reachability

Last updated