linked lists, graphs) • Algorithms and computation complexity • Thinks "programmatically", the programmer understands: ◦ Programming languages syntax and libraries ◦ Breaking big problems into small problems ◦ Paradigms (Imperative, OO, Functional)
(network, compute, storage) • Define a state of how things should run and interconnect • Then build a set of programs (and/or configs) that does that • Has programming knowledge to augment it's capabilities
Application send a message Data Stream 4 Firewall filter traffic Data Segments 3 Router routing decisions IP Packets 2 Switch local forwarding MAC Frames • Open Systems Interconnection (OSI) based • Usually dedicated hardware for each function
ease software implementation of network protocols • The physical layer is mostly unchanged (optical fiber, wireless) • Mostly affects the data link, network, and transport layers • Can inspect up to the application layer (DPI) • Turns the legacy networking into a new model • Splitting of the control and data forwarding functions
switching between designated nodes • Interaction with legacy protocols for external communication (BGP, OSPF…) • SDN Applications such as NAT, Firewalls, Load Balancers
southbound protocols) • Generates patterns/code that the devices under it can understand • Establishes the connection between the Application Layer and the Infrastructure layer • It’s written in common programing languages (Java, Python…)
accepts rules or patterns from the controller • Get the network status such as topology, statistics, throughput ◦ Link Layer Discovery Protocol ◦ This data is sent back to the controller • Usually the edge nodes • Common to be virtualized (OpenvSwitch)
No NOS, just hardware • White-box switch ◦ Same as the previous ◦ Usually open source hardware • Brite-box switch ◦ NOS, hardware and software support included • Known brands for this type of hardware ◦ Edge-Core, Mellanox, Broadcom, Barefoot Tofino (NOS = Network Operating System)
hardware components • Cost of upgrading if you already have a working infrastructure • Personnel training • Non mature protocols • Perhaps no cost/benefit for small scale networks (yet)
Fabric Programming ◦ Pure SDN-enabled devices, no legacy hardware or routing protocols (no RIB) ◦ (e.g. every virtual or physical switch is OpenFlow enabled, Cisco ACI) • Overlay ◦ Mixed SDN and legacy networks (uses FIB) ◦ (e.g. VMware NSX, OpenStack Neutron) • Hybrid ◦ Legacy hardware that supports an optional SDN controller ◦ (e.g. Ubiquiti UniFi)
Foundation) ◦ Modified content of ◦ https://courses.edx.org/courses/course-v1:LinuxFoundationX+LFS165x+2T2018/course/ ◦ https://creativecommons.org/licenses/by/4.0/ (CC BY 4.0) • [2] Software Defined Networking at Scale (Google) ◦ Notes taken from ◦ https://ai.google/research/pubs/pub42948 ◦ There was a video presentation that I can’t find