Software Defined Networking

Comprehensive study notes, diagrams, and exam preparation for Software Defined Networking.

Software Defined Networking

Definition

Software Defined Networking (SDN) is a modern network architecture that separates the control plane from the data plane, allowing network behavior to be centrally controlled through software rather than being managed independently by each physical device. In traditional networking, routers and switches make forwarding decisions and also maintain their own control logic. In SDN, this intelligence is moved to a centralized SDN controller, while the network devices mainly forward packets according to instructions they receive.

This separation makes networks programmable, flexible, scalable, and easier to manage, especially in environments where devices, traffic, and services change frequently, such as IoT systems, cloud computing, data centers, and enterprise networks. For example, in an IoT-based smart home, SDN can prioritize security camera traffic over low-priority sensor updates so that critical data moves faster and more reliably.


Main Content

1. Control Plane and Data Plane Separation

Control plane

  • : This is the decision-making part of the network. It determines where traffic should go, what rules should be applied, and how packets should be handled. In SDN, this logic is removed from individual switches and routers and placed in the controller.

Data plane

  • : This is the forwarding part of the network. It simply sends packets along the paths determined by the controller. Devices in the data plane do not need to perform complex decision-making, which makes them simpler and faster.

In traditional networks, every router makes its own routing decisions based on local information. In SDN, the controller has a broader view of the entire network, so it can make better decisions. For example, if an IoT network has temperature sensors, smart cameras, and wearable devices, the controller can route each type of traffic differently based on priority, bandwidth, or security needs.

A simple conceptual view of this separation:

[Applications]
      |
      v
[SDN Controller]
      |
      v
[Switches / Routers / IoT Gateways]
      |
      v
[End Devices / Sensors / Actuators]

This design is especially useful in IoT because many devices are resource-constrained and cannot perform heavy networking tasks. By shifting intelligence to the controller, SDN reduces complexity at the edge and improves centralized management.

2. SDN Controller and Network Programmability

SDN controller

  • : The controller is the brain of the SDN architecture. It maintains a global view of the network, collects information from network devices, and decides how traffic should be handled. It can install flow rules, monitor traffic, and respond to network changes quickly.

Network programmability

  • : SDN allows administrators and applications to control network behavior using software and APIs. This means the network can be automatically configured, optimized, and adapted without manually changing each device.

The controller can be implemented using platforms such as OpenDaylight, ONOS, Floodlight, and similar software-based systems. Network applications can communicate with the controller using northbound APIs, while the controller communicates with devices using southbound protocols such as OpenFlow.

Example: In an IoT factory, if many machines suddenly start sending data at the same time, the controller can automatically increase bandwidth allocation for industrial sensors and temporarily reduce traffic for non-critical systems. This dynamic adjustment would be difficult to do manually on every device.

Programmability is one of the biggest strengths of SDN because it allows networks to behave like software systems. Instead of configuring devices one by one, network policies can be written as code, updated centrally, and deployed quickly.

3. OpenFlow, Flow Tables, and SDN Architecture

OpenFlow protocol

  • : OpenFlow is one of the most important protocols associated with SDN. It provides a way for the controller to communicate with switches and install rules that define how packets should be forwarded.

Flow tables

  • : SDN-enabled switches use flow tables to store match-action rules. A packet is matched against rules based on fields such as source IP, destination IP, MAC address, port number, or protocol type. If a match is found, the switch performs the action specified in the rule.

A typical SDN architecture includes:

Application layer

  • : Network applications such as load balancing, security policy enforcement, traffic engineering, and monitoring tools.

Control layer

  • : The SDN controller that translates application requirements into network rules.

Infrastructure layer

  • : Physical or virtual switches, routers, gateways, and forwarding devices.

How flow rules work:

  • If a packet matches a rule, it may be forwarded to a port, dropped, modified, or sent to the controller.
  • If no rule exists, the switch may forward the first packet to the controller for decision-making.
  • The controller then installs a new flow rule so that future packets are handled automatically.

Example: In a smart campus IoT network, the controller can create a rule that allows environmental sensors to send data only to the campus monitoring server, while blocking unknown devices from sending traffic to the internal network. This improves both control and security.


Working / Process

1. Network devices detect traffic

  • When a packet arrives at an SDN switch, the switch checks its flow table to see whether a matching rule already exists.
  • If a rule exists, the switch forwards the packet immediately according to the rule.
  • If no rule exists, the packet may be sent to the controller for decision-making.

2. Controller analyzes the network and decides actions

  • The SDN controller maintains a global network view by collecting statistics, topology information, and device status.
  • It evaluates policies such as security rules, bandwidth requirements, latency requirements, and application priorities.
  • Based on these policies, it decides where packets should go and what actions should be applied.

3. Controller installs flow rules and manages traffic

  • The controller sends flow rules back to the switch using a southbound protocol like OpenFlow.
  • The switch stores these rules in its flow table and applies them to future packets automatically.
  • The controller can continuously update, remove, or modify rules to adapt to traffic changes, failures, or new application needs.

A simple process flow:

Packet arrives -> Switch checks flow table -> Match found? 
      | yes
      v
Forward packet
      |
     no
      v
Send to controller -> Controller decides rule -> Install rule -> Forward packet

This process enables fast, centralized, and policy-driven networking. In IoT environments, where thousands of devices may connect and disconnect frequently, SDN makes it easier to manage dynamic communication patterns, prioritize urgent traffic, and respond to security threats in real time.


Advantages / Applications

Centralized control and simplified management

  • Network administrators can manage the whole network from one controller instead of configuring each device separately.
  • This is especially useful in large IoT deployments with many sensors, gateways, and edge devices.

Dynamic traffic optimization and better performance

  • SDN can reroute traffic based on congestion, failures, or application priority.
  • For example, emergency alerts from healthcare IoT devices can be given higher priority than routine monitoring data.

Improved security and automation

  • SDN can quickly isolate compromised devices, block suspicious traffic, and enforce security policies across the network.
  • It is widely used in smart homes, smart cities, industrial IoT, cloud data centers, and enterprise networks where automated control and real-time policy enforcement are important.

Summary

  • SDN separates network control from packet forwarding.
  • A central controller manages and programs the network.
  • SDN is useful for flexible, automated, and efficient networking in IoT.
  • Important terms to remember: control plane, data plane, SDN controller, OpenFlow, flow table