CS 4270 / CS 8803 SDN, Fall 2014
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.
This course provides a path for students with a broad diversity in backgrounds to learn programming and computer science, including those considering a computer science major. Students will use a problem-driven approach to build complex, interactive software systems. The course includes an introduction to a wide variety of issues relating to software, including design, problem-solving, development processes, and broader issues such as security, performance, and ethics.
Contact:
Class Location and Time:
CCB 102. Fridays, 1:00pm-4:00pm
Technology Requirements:
You are
strongly encouraged to bring a laptop to every class.
Classroom time will be used for lecture, discussion, and in-class lab time.
The first half of each session will be devoted to paper and topic discussion. You should read the paper, watch the videos, and participate in online discussion before coming to class.
The "lab" portion of the course will allow for class-time to gain hands-on experience with SDN-related tools and concepts.
Assignments for the course will be lab-based programming assignments, building off of the Mininet software developed at Stanford University, which can run SDNs in emulated environments on networks of virtual machines. We will provide a course virtual machine with most (if not all) of the necessary software installed.
Grading is based on participation, completion of the lab assignments, a quiz, and the final project.
Participation includes:
Date | Modules | Hands-On Activity | Readings |
August 29 | Module 1: History and evolution of SDN | ||
September 5 | Module 2: Control and data plane separation | ||
September 12 | |||
September 19 | |||
September 26 | Module 5: Programmable Data Planes | ||
October 3 | |||
October 10 | |||
October 17 | |||
October 17 | Project Office Hours | ||
October 24 | Interim Project Presentations | ||
November 7 | Project Office Hours | ||
November 14 | In-Class Quiz | ||
November 21 | Final Project Presentations |
History
Control and Data Plane Separation
Control Plane
Network Virtualization
Data Plane
Programming SDNs
Verification
Use Cases