Advanced Topic 44 of 50 Computer Networks
Software-Defined Networking
Separating control logic from forwarding hardware.
How it works
Software-defined networking separates the control plane, which decides where traffic goes, from the data plane, which forwards packets, and centralizes control in software. A controller has a global view of the network and programs switches through an interface such as OpenFlow or P4, installing flow rules. This allows automation, programmable policies and rapid changes without configuring each device by hand.
Step-by-step walkthrough
- The control plane is centralized in a controller.
- Applications describe policies.
- The controller pushes forwarding rules to switches.
- Switches only forward packets by those rules.
- Changing the network is now a software update.
Where it is used
Data-center fabrics, cloud virtual networks, wide-area traffic engineering such as Google's B4 and campus automation use SDN. Network functions can run as software.
Common pitfall
The controller can be a single point of failure or bottleneck, so it needs clustering and careful design. Security of the control channel is critical. Scalability of flow tables limits some designs. Debugging requires visibility into both the intent and the installed rules, and skills shift toward software engineering and APIs.
Where it fits in the course
Software-Defined Networking is topic 44 of 50 in Computer Networks, rated Advanced. It follows WebSockets. The next topic is Network Virtualization.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Computer Networks quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Computer Networks quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Software-Defined Networking?
Where do people use Software-Defined Networking?
What is the most common mistake with Software-Defined Networking?
What should I learn before this topic?
How can I practice it?
Is Software-Defined Networking hard to learn?
How long does it take to learn Software-Defined Networking?
Which topics are related to Software-Defined Networking?
What should I study after Software-Defined Networking?
Related topics
- WebSockets (Computer Networks)
- Network Virtualization (Computer Networks)
- QUIC and HTTP/3 (Computer Networks)
- MPLS (Computer Networks)
- Software Development Life Cycle (Software Engineering)
- Mobile Networking (Mobile, Embedded & IoT)
- Software Documentation (Software Engineering)