Software Defined Networking

The University of Chicago via Coursera

Go to Course: https://www.coursera.org/learn/sdn

Introduction

**Course Review: Software Defined Networking on Coursera** ### Overview The "Software Defined Networking" course offered on Coursera is an exemplary program tailored for individuals looking to understand how software-defined networking (SDN) transforms communications networks. As networks become more complex, the need for effective management, security, and maintenance has never been more paramount. This course adopts a systematic approach, guiding participants through the core concepts of SDN, its development, and its practical applications. ### Course Structure The course is structured into eight comprehensive modules, each designed to build on the knowledge acquired in the previous weeks. Here’s a detailed breakdown: **Week One: Introduction to SDN** The course kicks off with a broad overview of SDN, introducing its history and evolution. This week sets the stage for understanding the transition to this technology and its relevance in today’s networking landscape. **Week Two: Control and Data Plane Separation** Participants will delve into the motivations behind separating the control and data planes, including the challenges and opportunities this architectural shift presents. This week is crucial for grasping the foundational concepts that underlie SDN. **Week Three: OpenFlow and SDN Controllers** This week focuses on hands-on experience with OpenFlow, a crucial SDN protocol, and various SDN controllers. Learners will explore different controller choices, their tradeoffs, and how to customize control-plane behavior, which is essential for practical implementations. **Week Four: Network Virtualization** Understanding network virtualization is vital, and this module provides insight into its purpose and relationship with SDN. By the end of this week, you will appreciate how virtualization complements SDN to enhance network efficiency. **Week Five: Programmable Data Planes** As the course progresses, this module introduces programmable data planes and innovative technologies associated with them. By now, learners will have a solid grounding in control and virtualization, enabling them to grasp more complex concepts. **Week Six: Programming Languages for SDN** This week concentrates on programming languages essential for SDN programmability. Focusing on Pyretic, a language from the Frenetic family, participants will learn how to use these tools to create responsive network policies. This module is crucial for developers and engineers aiming to implement SDN solutions effectively. **Week Seven: Applications of SDN** Delving into real-world applications, learners will explore how SDN is applied in data center networking, interdomain routing, and even home networks. This practical application knowledge cements the theoretical insights gained in earlier weeks. **Week Eight: Kinetic Control Framework** The concluding module introduces Kinetic, a domain-specific language for automatic verification of control programs. Participants are encouraged to compare their experiences with Pyretic and Pox, enhancing their understanding of different programming paradigms in SDN. ### Pros and Cons **Pros:** - **Comprehensive Curriculum:** The eight-week structure allows for an in-depth exploration of both theoretical concepts and practical applications. - **Hands-On Learning:** Emphasis on using tools like Pyretic and OpenFlow ensures that learners gain valuable hands-on experience, which is crucial for mastering SDN. - **Real-World Relevance:** The course's focus on practical applications in various networking domains makes it highly relevant for those looking to implement SDN solutions. **Cons:** - **Technical Complexity:** Some learners may find the technical aspects and programming components challenging, especially if they lack prior experience in networking or software development. - **Self-Paced Nature:** As a self-paced course, some participants may struggle to maintain motivation or miss out on collaborative learning opportunities that live sessions would typically provide. ### Recommendation I highly recommend the "Software Defined Networking" course for IT professionals, network engineers, and anyone interested in emerging networking technologies. If you're looking to upskill in the field of networking and want to stay ahead of the curve as industries increasingly adopt SDN, this course will provide you with the foundational knowledge and hands-on experience necessary to thrive. With its well-structured syllabus, real-world applications, and focus on practical tools, this course is a valuable investment in your professional development. Whether you're aiming to enhance your current skills or pivot into a new role within the realm of networking, enrolling in this course is a step in the right direction.

Syllabus

Week One

This week, I'll introduce an overview of the course and then dive into the history and evolution of SDNs.

Week Two

In this module, you will learn about the motivation and history behind the separation of the control and data plane, as well as the challenges and opportunities that this architectural paradigm offers.

Week Three

In this lesson, you will gain experience with OpenFlow/SDN control, gain some exposure to different SDN controllers, learn about the tradeoffs of using different SDN controllers, and gain some experience of using SDN to customize control-plane behavior.

Week Four

By the end of this module, you should have a good understanding of what network virtualization is, what it is used for, and how it relates to software defined networking.

Week Five

This module is relatively independent from some of the other modules, as programmable data planes involve new types of technology. Still, you should by now have a very good understanding of SDN-based control and virtualization. OpenFlow's design was somewhat of an accident of the hardware support that was available at the time. More recently, people are exploring how programmable hardware can help us design a control protocol with the benefit of being able to change the data plane.

Week Six

In this part of the course, you'll learn about programming languages and controllers that make this programmability possible. We will focus on one language in particular, Pyretic, which is from the Frenetic family of languages. We will also look at a runtime and northbound API called Resonance, which allows network programmers to write policies that respond to changing network conditions (e.g., security events, shifts in peak vs. off-peak time, traffic fluctuations or link failures).

Week Seven

In this module, we will apply that knowledge to explore how SDN can be used to solve problems in various networking domains. We'll start by looking at data-center networking, where SDN has arguably gained the strongest foothold (to date). We'll then explore applications of SDN to interdomain routing, where new applications and deployments are emerging. Finally, we'll explore the application of SDN in home networks, which has seen some preliminary work, deployments, and ideas.

Week Eight

In this module, we'll be looking at another control framework built using Pyretic called "Kinetic". Kinetic is a domain-specific language embedded in Pyretic that allows programmers and network operators to automatically verify the correctness properties of the control program. Your previous experience with Pox and Pyretic should provide you with very useful experience and perspective for comparing the three ways of programming a controller. In the assignment, we ask you to compare Kinetic to either Pox or Pyretic, so the experience you gained from those assignments should prove very useful.

Overview

In this course, you will learn about software defined networking and how it is changing the way communications networks are managed, maintained, and secured.

Skills

Reviews

One of the best courses offered by Coursera. Thank you for providing knowledge for free. I am grateful to you guys.

Good and informative for basics of SDN. Wish to work on more programming exercises especially on data plan,

I actually enjoyed learning this course and it will definitely help me in my future en devours

Standardized syllabus and this course is highly recommended for Networking Professionals. Requesting to add more ETSI NFV content. Thank you,

Overall, the content is good. However, contents and assignments need to be updated.