Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PPJ-01 Introduction

Eueung Mulyana
September 29, 2015

PPJ-01 Introduction

PPJ-01 SDN Introduction
http://eueung.github.io/EL5244/
Software Defined Networking

Eueung Mulyana

September 29, 2015
Tweet

More Decks by Eueung Mulyana

Other Decks in Technology

Transcript

  1. This material is mainly a derivative and remix work. Most

    of the texts and illustrations are taken from the talks/lectures given by these networking professors/gurus/ninjas: Scott Shenker, Nick McKeown, Jennifer Rexford, Mike Freedman, Nick Feamster, Guido Appenzeller, Marco Cello, Li Erran Li.
  2. The Internet: A Remarkable Story • Tremendous success – From

    research experiment to global infrastructure • Brilliance of under-specifying – Network: best-effort packet delivery – Programmable hosts: arbitrary applications • Enables innovation – Apps: Web, P2P, VoIP, social networks, … – Links: Ethernet, fiber optics, WiFi, cellular, …
  3. Key to Internet Success: Layers Applications …built on… …built on…

    …built on… …built on… Reliable (or unreliable) transport Best-effort global packet delivery Best-effort local packet delivery Physical transfer of bits
  4. Why Is Layering So Important? • Decomposed delivery into fundamental

    components • Independent but compatible innovation at each layer • A practical success of unprecedented proportions… • …but (also) an academic failure
  5. Inside the ‘Net: A Different Story… • Closed equipment –

    Software bundled with hardware – Vendor-specific interfaces • Over specified – Slow protocol standardization • Few people can innovate – Equipment vendors write the code – Long delays to introduce new features
  6. Built an Artifact, Not a Discipline • Other fields in

    “systems”: OS, DB, DS, etc. – Teach basic principles – Are easily managed – Continue to evolve • Networking: – Teach big bag of protocols – Notoriously difficult to manage – Evolves very slowly
  7. Do We Need Intellectual Progress? • Lots of domain details

    – Plethora of protocols – Heaps of header formats – Big bunch of boxes – Tons of tools • Teaching networking – Practitioners: certification courses, on the job – Undergraduates: how the Internet works
  8. Why Does Networking Lag Behind? • Networks used to be

    simple: Ethernet, IP, TCP…. • New control requirements led to great complexity – Isolation  VLANs, ACLs – Traffic engineering  MPLS, ECMP, Weights – Packet processing  Firewalls, NATs, middleboxes – Payload analysis  Deep packet inspection (DPI) • Mechanisms designed and deployed independently – Complicated “control plane” design, primitive functionality – Stark contrast to the elegantly modular “data plane”
  9. Infrastructure Still Works! • Only because of “our” ability to

    master complexity • This ability to master complexity is both a blessing… – …and a curse!
  10. What Is the problem? • Networking still focused on mastering

    complexity – Little emphasis on extracting simplicity from control plane – No recognition that there’s a difference…. • Extracting simplicity builds intellectual foundations – Necessary for creating a discipline …. – That’s why networking lags behind
  11. On the Other Side … • Machine languages: no abstractions

    – Mastering complexity was crucial – Had to deal with low-level details • Higher-level languages: OS and other abstractions – File system, virtual memory, abstract data types, ... • Modern languages: even more abstractions – Object orientation, garbage collection,… Abstractions  key to extracting simplicity
  12. Why was a good Solution needed? • Networks are hard

    to manage • Networks are hard to evolve • Networks design not based on formal principles
  13. Hard to Manage • Networks are still notoriously hard to

    manage – Network administrators large share of sysadmin staff • Computation and storage have been virtualized – Creating a more flexible and manageable infrastructure – Need skills to manage virtualized assets
  14. Hard to Evolve • Ongoing innovation in systems software –

    New languages, operating systems, etc. • Networks are stuck in the past – Routing algorithms change very slowly – Network management extremely primitive
  15. Lacking on Formal Principles • OS courses teach fundamental principles

    – Mutual exclusion and other synchronization primitives – Files, file systems, threads, and other building blocks • Networking courses teach a big bag of protocols • No formal principles, just general design guidelines
  16. Lacking on Formal Principles • Networks used to be simple

    – Basic Ethernet/IP straightforward, easy to manage • New control requirements have led to complexity – ACLs, VLANs, TE, Middleboxes, DPI,… • The infrastructure still works... – Only because of our great ability to master complexity • Ability to master complexity both blessing and curse
  17. On the Other Side … (again) • Machine languages: no

    abstractions • Higher-level languages: OS and other abstractions • Modern languages: even more abstractions Abstractions simplify programming Easier to write, maintain, reason about programs Abstractions are the way we extracted simplicity So, what role do abstractions play in networking?
  18. The Two Networking Planes • Data plane: processing and delivery

    of packets with local forwarding state – Forwarding state + packet header  forwarding decision • Control plane: compute the state in routers (forwarding state) – Determines how and where packets are forwarded – Routing, traffic engineering, firewall state, … – Implemented with distributed protocols, manual configuration (and scripting) or centralized computation • These different planes require different abstractions
  19. Remember … • Networks used to be simple: Ethernet, IP,

    TCP…. • New control requirements led to great complexity – Isolation  VLANs, ACLs – Traffic engineering  MPLS, ECMP, Weights – Packet processing  Firewalls, NATs, middleboxes – Payload analysis  Deep packet inspection (DPI) • Mechanisms designed and deployed independently – Complicated “control plane” design, primitive functionality – Stark contrast to the elegantly modular “data plane”
  20. (Too) Many Control Plane Mechanisms • Variety of goals: –

    Routing: distributed routing algorithms – Isolation: ACLs, VLANs, Firewalls,… – Traffic engineering: adjusting weights, MPLS,… • No modularity, limited functionality • Control Plane: mechanism without abstraction – Too many mechanisms, not enough functionality
  21. TL;DR • Networking is “Intellectually Weak” • Networking is behind

    other fields • Networking is about the mastery of complexity • Good abstractions tame complexity • Interfaces are instances of those abstractions • No abstraction => increasing complexity • We are now at the complexity limit
  22. Credit • Scott Shenker, The Future of Networking and the

    Past of Protocols • Nick McKeown, Stanford University, Many Talks/Articles • Jennifer Rexford, COS 597E, Princeton University • Mike Freedman, COS 461, Princeton University • Nick Feamster, https://www.coursera.org/course/sdn • Li Erran Li, COMS 6998-10, Univ. of Columbia • Marco Cello, SDN Talk @ CNR, Univ. Genova • Guido Appenzeller, Network Virtualization in Multi- tenant Datacenters, VMware