The internet network layer was historically implemented via a distributed, per-router control approach.
- Monolothic router containing switching hardware, runs proprietary implementation of Internet standard protocols (IP, RIP, IS-IS, OSPF, BGP) in proprietary router OS (Cisco, etc.)
- Different “middleboxes” for different network layer functions (firewalls, load balances, NAT boxes)
We wanted to rethink the network control plane such that a standard interface was used - free operators from vendor lock-in.
With a software-defined networking (SDN) control plane, a remote controller computes and installs forwarding tables in routers:

In an SDN, the control plane is logically centralized.
- Easier network management
- Virtually centralized setup provides easier network management
- Avoid router misconfigurations
- Greater flexibility with traffic flows
- Table-based forwarding allow for “programming” routers
- Centralized “programming” is easier, as router tables can be computed centrally ⇒ distribute
- Can replicate control over several machiens for resilience
- Distributed “programming” is more difficult - need to compute tables from distributed algorithm in each router
- Open (non-proprietary) implementation of control plane

Another advantage with SDN is the ability to do traffic engineering:


Overall view of components of SDN architecture:
