Software Defined Networking

Princeton University

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

This course introduces software defined networking, an emerging paradigm in computer networking that allows a logically centralized software program to control the behavior of an entire network.  

Separating a network's control logic from the underlying physical routers and switches that forward traffic allows network operators to write high-level control programs that specify the behavior of an entire network, in contrast to conventional networks, whereby network operators must codify functionality in terms of low-level device configuration.  

Logically centralized network control makes it possible for operators to specify more complex tasks that involve integrating many disjoint network functions (e.g., security, resource control, prioritization) into a single control framework, allowing network operators to create more sophisticated policies, and making network configurations easier to configure, manage, troubleshoot, and debug. 

Syllabus

This course will cover 8 modules (one per week).

Module 1: History and evolution of SDN

Module 2: Control and data plane separation

Module 3: Control Plane

Module 4: Network Virtualization

Module 5: Data Plane

Module 6: Programming SDNs

Modules 7: Verification and Debugging

Module 8: Use Cases and Looking Forward

Recommended Background

Students should have taken at least an undergraduate-level networking course and have programming experience in Python.  Experience with virtual machines and other virtual networking environments may also be useful.

Suggested Readings

There are some useful videos available online; these might be a good starting point for many people:
You may find the additional reading useful for introductory material:

Course Format

The course will consist of a series of video lectures, each about 10 minutes in length.

Assignments for the course are lab-based programming assignments, many of which build off of the Mininet software developed at Stanford University, which can run SDNs in emulated environments on networks of virtual machines.

FAQ

What resources will I need for this class?

We will use the mininet programming environment for many of the assignments for this course.  You will want to develop some proficiency setting up virtual networks in this environment.  In the first portion of the course, we will provide simple mininet tutorials, so it should be fairly easy to come up to speed.  You should, however, have proficiency with basic networking concepts and facility with configuring networking in Linux environments.

What is the coolest thing I'll learn if I take this class?

You’ll learn how to use software programs to perform varying and complex networking tasks, ranging from usage management and resource control to implementation of more complicated network security policies.

Does Princeton award credentials or reports regarding my work in this course?

No certificates, statements of accomplishment, or other credentials will be awarded in connection with this course.

Dates:
  • 25 May 2015, 8 weeks
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb

Reviews

No reviews yet. Want to be the first?

Register to leave a review

Show?id=n3eliycplgk&bids=695438
Included in selections:
System-of-communications-262x136 Computer networks and telecommunications
3 курс МИЭМ ВШЭ, 4 кредита.
NVIDIA
More on this topic:
Slide1 Programming Mobile Applications for Android Handheld Systems
Introduction to the design and implementation of applications for handheld systems...
Posa-mocca Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems
In this course--the second in a trans-institution sequence of MOOCs on Mobile...
Feamstercourseimage Software Defined Networking
In this course, you will learn about software defined networking and how it...
6.00x-listing-banner 6.00x: Introduction to Computer Science and Programming
6.00x is an Introduction to computer science as a tool to solve real-world analytical...
6.00.1x_course_tile_verified_262x136 6.00.1x: Introduction to Computer Science and Programming Using Python
6.00.1x is an introduction to computer science as a tool to solve real-world...
More from 'Engineering & Technology':
Regular_a184ac4b-f773-4ba7-87bb-fb9a23b1792c Causes of Climate Change
Learn the physical processes behind climate variation around the world to better...
Regular_c5aa1f83-404d-435b-8bc7-e2f8aeb1adce What Is the Body?
Get an introduction to the different structures and functions that make up the...
Regular_da4692dd-1c12-4fd1-9ada-87d69700094a Battery Storage: Understanding the Battery Revolution
Explore the world of energy storage and understand the role of batteries.
Regular_dce4ba33-6339-4af2-b880-8f7a60dde10d Battery Storage Technology: Opportunities and Uses
Explore battery storage technology - how and why it works, and how it could...
Regular_206f9502-27e7-46c8-b783-7fd1c1348667 Partnering for Change: Link Research to Societal Challenges
How can we address societal challenges with research? Investigate the principles...
More from 'Coursera':
Success-from-the-start-2 First Year Teaching (Secondary Grades) - Success from the Start
Success with your students starts on Day 1. Learn from NTC's 25 years developing...
New-york-city-78181 Understanding 9/11: Why Did al Qai’da Attack America?
This course will explore the forces that led to the 9/11 attacks and the policies...
Small-icon.hover Aboriginal Worldviews and Education
This course will explore indigenous ways of knowing and how this knowledge can...
Ac-logo Analytic Combinatorics
Analytic Combinatorics teaches a calculus that enables precise quantitative...
Talk_bubble_fin2 Accountable Talk®: Conversation that Works
Designed for teachers and learners in every setting - in school and out, in...

© 2013-2019