We may earn an affiliate commission when you visit our partners.
Course image
Dr. Nick Feamster

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

Enroll now

What's inside

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.
Read more
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
SDN concepts such as separation of control and data plane are covered
Teaches core concepts of SDN, such as network virtualization and programmable data planes
Taught by the recognized Dr. Nick Feamster of SDN, making it valuable for those who seek credibility and expertise
Provides hands-on experience with SDN control and virtualization, ensuring practical understanding for students
May require prior knowledge in SDN or networking concepts, which could pose a barrier for beginners
Course materials may not be up-to-date with the latest SDN advancements

Save this course

Save Software Defined Networking to your list so you can find it easily later:
Save

Reviews summary

Software defined networking: fundamentals and applications

According to students, Software Defined Networking is a largely positive course that introduces learners to SDN fundamentals. Learners say that instructors deliver well-presented content with plenty of engaging assignments and guest interviews. Students enjoy the course's mix of theory and practical exercises, but some mention that the course could use more interactivity and that the material is slightly outdated. Overall, students say that this course is a good resource for getting started with Software Defined Networking.
Students enjoy this course.
"This is a fantastic course."
"This course has refocused my path in the Networking industry."
"This is a very good course for any one who want to understand SDN."
The programming assignments need improvement.
"The programming assingments are missing"
"I think some sort of help should be given for the assignments."
The course material is outdated.
"The material is slightly outdated."
"The course is starting to become a bit outdated."
"The lectures were created six years ago or more."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Software Defined Networking with these activities:
Review previous networking and computer science concepts
Refreshing your knowledge of foundational concepts will enhance your understanding of SDN, which builds upon these principles.
Browse courses on Networking Basics
Show steps
  • Review notes or textbooks on basic networking concepts, such as IP addressing, routing, and switching.
  • Review key data structures and algorithms used in computer science, such as linked lists, trees, and sorting algorithms.
  • Complete practice problems or quizzes to reinforce your understanding.
Read "Software Defined Networking: A Comprehensive Approach"
This book offers a comprehensive overview of SDN, providing a strong foundation for understanding the course material.
Show steps
  • Read chapters 1-3 to gain a foundational understanding of SDN concepts.
  • Review chapters 4-6 to delve deeper into SDN architecture and protocols.
  • Complete the practice exercises at the end of each chapter to reinforce your knowledge.
Attend a virtual study group on SDN
Engaging with peers in a virtual study group will enhance your understanding through discussions, shared experiences, and support.
Show steps
  • Find a virtual study group or create one with fellow students.
  • Set regular meeting times and prepare topics for discussion.
  • Actively participate in discussions, exchange knowledge, and collaborate on problem-solving.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow tutorials on SDN OpenFlow
These tutorials will provide hands-on experience with the core SDN technology used in the course, enhancing your understanding.
Browse courses on OpenFlow
Show steps
  • Find video tutorials or online courses on SDN OpenFlow basics.
  • Follow along with the tutorials, setting up a basic SDN environment.
  • Experiment with different OpenFlow rules and observe their impact on network traffic.
Work through SDN configuration exercises
These exercises will provide practical experience in configuring and managing SDN networks, improving your problem-solving skills.
Show steps
  • Find practice problems or online resources that provide SDN configuration scenarios.
  • Set up a basic SDN environment using a controller like OpenDaylight or POX.
  • Implement the given configuration tasks and observe the changes in network behavior.
Write a blog post explaining a specific SDN concept
By explaining a specific SDN concept in writing, you will reinforce your understanding and enhance your communication skills.
Show steps
  • Choose an SDN concept that you are familiar with.
  • Research and gather information about the concept.
  • Write a clear and concise blog post explaining the concept in your own words.
  • Share your blog post with others to receive feedback and engage in discussions.
Design and simulate a small SDN network
This project will challenge you to apply the concepts learned in the course to design and simulate a real-world SDN network, fostering your creativity and problem-solving abilities.
Show steps
  • Define the requirements and goals for your SDN network.
  • Choose appropriate SDN controllers and switches for your network.
  • Design the network topology and configure the necessary OpenFlow rules.
  • Simulate the network using tools like Mininet or GNS3 to observe its behavior.
  • Evaluate your design and identify potential improvements.

Career center

Learners who complete Software Defined Networking will develop knowledge and skills that may be useful to these careers:
Cloud Architect
As a Cloud Architect, you are responsible for designing, implementing, and managing cloud computing systems. This course will help you build the foundation you need to understand the role of software defined networking in the cloud. You will learn about the benefits and challenges of SDN in the cloud environment.
Network Architect
In the role of Network Architect, you will design, implement, and maintain computer networks. A background in Software Defined Networking is helpful to understand networking systems. This course teaches you 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.
Cloud Engineer
Cloud Engineers build, maintain, and manage cloud computing systems. This course can help you develop the skills you need to succeed in this role. You will learn about the different types of cloud computing services and how to use them to create and deploy applications.
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations teams. This course can help you develop the skills you need to succeed in this role. You will learn about the principles of DevOps and how to use them to improve the efficiency and productivity of your team.
Network Administrator
Network Administrators are responsible for the day-to-day operation of computer networks. This course can help you develop the skills you need to manage, maintain, and troubleshoot networks. You will learn about the history and evolution of SDNs, as well as the challenges and opportunities that this technology offers.
Product Manager
Product Managers are responsible for the development and launch of new products. This course may be useful to you in this role as you will learn about the role of software defined networking in modern products. You will learn how to use SDN to create products that are more efficient, reliable, and secure.
Project Manager
Project Managers plan, execute, and close projects. This course may be useful to you in this role as you will learn about the role of software defined networking in modern projects. You will learn how to use SDN to improve the efficiency and productivity of your projects.
Marketing Manager
Marketing Managers develop and execute marketing campaigns. This course may be useful to you in this role as you will learn about the role of software defined networking in modern marketing. You will learn how to use SDN to create marketing campaigns that are more effective and efficient.
Technical Writer
Technical Writers create documentation for software and hardware products. This course may be useful to you in this role as you will learn about the role of software defined networking in modern technology. You will learn how to use SDN to create documentation that is clear, concise, and accurate.
Network Engineer
Network Engineers plan, implement, and manage computer networks. This course may be useful to you in the role of Network Engineer as you will learn about how software defined networking is changing the way communications networks are managed, maintained, and secured.
Network Security Engineer
Network Security Engineers are responsible for designing, implementing, and maintaining network security systems. This course may be useful for you in this role, as you will learn about the security implications of software defined networking.
Sales Engineer
Sales Engineers help customers to understand and purchase products and services. This course may be useful to you in this role as you will learn about the role of software defined networking in modern sales. You will learn how to use SDN to create sales presentations that are more informative and persuasive.
Business Analyst
Business Analysts help organizations to improve their business processes. This course may be useful to you in this role as you will learn about the role of software defined networking in modern business. You will learn how to use SDN to improve the efficiency and productivity of your organization.
Software Engineer
Software Engineers design, develop, and maintain software systems. This course may be useful to you in this role as you will learn about the role of software defined networking in modern software systems. You will learn how to use SDN to improve the performance, reliability, and security of your applications.
Data Scientist
Data Scientists use data to solve problems and make predictions. This course can help you develop the skills you need to succeed in this role. You will learn how to use data analysis techniques to extract insights from data and how to use those insights to make better decisions.

Reading list

We've selected 18 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Software Defined Networking.
Provides a comprehensive overview of SDN. It good choice for readers who want to learn more about the technical details of SDN.
Practical guide to SDN. It provides a step-by-step guide to implementing SDN in a real-world environment.
Comprehensive guide to OpenFlow. It covers the history, architecture, protocols, and applications of OpenFlow.
While this book doesn't focus on SDN specifically, it will provide background on network management systems as well as network management and monitoring practices and protocols.
Provides a comprehensive overview of computer networks. It valuable resource for anyone who wants to learn more about the underlying principles of networking.
This comprehensive computer networking textbook that provides solid foundational knowledge in computer networking technology and protocols. This could be helpful as background reading before delving into SDN.
This foundational networking textbook provides deep knowledge of the TCP/IP protocol suite and internetworking concepts, giving a solid background before continuing to SDN.
Provides a comprehensive overview of TCP/IP, the protocol suite that is used on the Internet. It valuable resource for anyone who wants to learn more about the technical details of TCP/IP.
The IETF standards organization that develops and maintains the protocols used on the Internet. This website provides a wealth of information about the IETF and its work.
Comprehensive guide to computer networks. It covers the history, principles, and applications of computer networks.
Comprehensive guide to data communications and networking. It covers the history, principles, and applications of data communications and networking.
Beginner's guide to networking. It covers the history, principles, and applications of networking.
Comprehensive guide to the Internet Protocol. It covers the history, principles, and applications of the Internet Protocol.
Comprehensive guide to the TCP/IP protocol suite. It covers the history, principles, and applications of the TCP/IP protocol suite.
Children's book that is not related to software defined networking.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Software Defined Networking.
AI-Agents: Automation & Business with LangChain & LLM Apps
Less relevant
Managing Marketing in the Hospitality and Tourism Industry
Less relevant
Western and Chinese Art: Masters and Classics
Less relevant
Basics of Cisco Networking
Less relevant
Automotive Engine Fundamentals | 汽车发动机原理
Less relevant
Water and Wastewater Treatment Engineering:...
Less relevant
Product Design, Prototyping, and Testing
Less relevant
Powering Resilient Communities: A Holistic Approach to...
Less relevant
New Relic One: Observability From Beginner to Advanced
Less relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser