Software-Defined Networking is a framework for network architecture design that allows efficient programmatic management of a number of network devices to allow for dynamic configuration. This is achieved through the separation of network devices into three planes:

  • The application plane programmatically communicate their network requirements to the control plane is responsible for the configuration of the network, possibly responding in realtime to traffic patterns
  • The control plane manages logistics and tactical decisions such as routing and flow control. This plane provides an interface used for centralised management.
  • The data plane separate from forwarding of packets in a data plane.


The goals of Software Defined Networking are to:

  1. Virtualise network devices.
  2. Allow orchestration of any number of devices centrally.
  3. Introduce programmability to allow changing behaviour on-the-fly.
  4. Enable dynamic scaling based on performance targets.
  5. Enable automation of common operations, reducing manual involvement or troubleshooting, downtime due to human error.
  6. Observability allowing monitoring the network's performance.
  7. Optimise for performance based on collected metrics.
  8. Multi-tenancy should provide isolation to different tenant.
  9. Service integration to allow centralised management of all
  10. Facilitate openness through abstraction, and a common interface.


  • Centralisation of control plane makes SDN easier to implement, but isn't required. Distributed solutions may be necessary for legacy equipment and high availability operation.
  • Removal of control plane may be harmful -- division of control plane between a centralised controller and distributed forwarders is yet to be defined.
  • How do you handle diversity of protocols? OpenFlow may not be the best solution for all devices.


  • SDN controllers are appliances, either virtual or physical, which accept a desired configuration state for the network and translate it into a series of configuration changes to be applied on different devices within the network. They're comprised of two interfaces:
    • Can be GUI or API driven.
    • Acts as a translator between operators and the network devices, configuring them appropriately.
    • Can respond in realtime to health metrics.
  • Control plane has Northbound and Southbound interfaces:
    • Up/North to the management plane.
    • Down/South to the data plane.
  • These are separate from traffic flow on the data plane:
    • North/South for cl`ient/server.
    • East/West between peers.
  • SD-WAN applies SDN to wide area networks.
  • SD-LAN applies SDN to local area networks.
  • SDMN applies SDN to cellular networks, moving protocol implementations to software to allow use of generic hardware.

Network Functions Virtualisation

SDN is rooted in NFV, and the term often refers to unified management of both physical and virtual equipment. Networking Functions Virtualisation describes replacing specialised networking appliances with software running on commodity hardware, with the goal of simplifying provisioning of new appliances, reducing capital expenditure on hardware purchases and operational expenditure on specialised staffing to maintain the hardware.

Specialised hardware might include:

  • Switches
  • Routers
  • Firewalls
  • Load balancers
  • Intrusion Detection/Protection Systems
  • WAN concentrators
  • Carrier equipment

This presents a trade off: specialised hardware such as ASICs and FPGAs may offer improved efficiency, but there are economies of scale associated with commoditised hardware that may outweigh these.

Service chaining

Network Service Chaining (also known as SFC) uses SDN to connect network services like NAT, IDP and firewalls on OSI model layers 4-7

  1. Implementations
  2. Overlay