Introduction to Software-defined Networking (Winter 2014/2015)
Details
Workload/ECTS Credits: | 150h, 5 ECTS |
Module: | AI: M.Inf.1130: Software-defined Networks (SDN); ITIS: 3.31 |
Lecturer: | David Koll |
Teaching assistant: | --- |
Time: | March 16-20; 09.00-17.00 |
Place: | IfI 2.101 |
UniVZ | [1] |
Course Overview
Software-defined networking (SDN) has recently attracted both researchers in academia and big players in communication technologies, and is currently probably the 'hottest' topic in computer networking. In this course, we will discuss the basics of SDN.
The course is organized as a block course as follows (for the detailed structure, please see this table): Initially, two lectures introducing the main motivation, concepts and state-of-the-art of SDN will be given. Afterwards, we will have a short peak into the most recent research from both industry and academia, which is going to define the future of SDN. In this session, students will select one paper of interest that they will present towards the end of the course. The course then continues with an introduction to Mininet [2], and students are expected to perform some basic experiments on creating and using a virtual network based on Mininet. After the experimentations, students will present the paper they selected earlier.
For all parts of the course, exercises will be provided, in which students must obtain at least 50% of the total points to be admitted to the examination of this course. The exam is taken by submitting a report of 10-15 pages summarizing the lessons learned during the lectures and exercises as well as the research papers investigated (a LaTeX template will be provided). Depending on the number of attendees, several parts will be conducted in teams of students.
The course Advanced Software-defined Networking (M. Inf.1230) will follow a similar structure to provide a more profound knowledge of SDN.
Schedule
Date | Morning Session | Type | Afternoon Session | Type |
16.03.2015 | Software-defined Networking I | Lecture | Introduction to Python I (and exercises) | Lecture / Practical |
17.03.2015 | Software-defined Networking II | Lecture | Introduction to Python II (and exercises) | Lecture / Practical |
18.03.2015 | Current Research in SDN / Paper Reading | Lecture | Hands-On SDN I / Paper Reading | Practical |
19.03.2015 | Hands-On SDN II | Practical | Hands-On SDN III | Practical |
20.03.2015 | Practical Tutoring / Presentation Preparation | Practical | Presentations | Seminar |
Exercises
Number | Topic |
Exercise 1 | Introduction |
Exercise 2 | Python Basics |
Exercise 3 | SDN Control Plane |
Exercise 4 | An SDN Simulator in Python |
Exercise 5 | Mininet Setup |
Exercise 6 | Mininet Topologies |
Exercise 7 | Mininet and SDN Controllers |
Exercise 8 | Mininet and FlowVisor |
Due Dates for Documents (E-Mail to David)
Date | Exercises Due | Identifier |
10.04.2015 | Exercise 1 (Introduction), Exercise 2 (Python Basics) | SDN-EX-104 |
17.04.2015 | Exercise 3 (SDN II), Exercise 6 (Mininet Topologies) | SDN-EX-174 |
30.04.2015 | Final Report | SDN-FR |
NOTE: Please submit multiple files compressed in one ZIP archive by E-Mail to David. For text documents, submit in PDF format.
The subject line of your email should be the corresponding identifier from the table above followed by your name.
Example: Alice wants to submit Exercises 3 and 6. She compresses all the files she created for the exercise into one ZIP archive and sends the archive to David before April 17. She uses the subject line "SDN-EX-174 Alice"
NOTE: Your final report should include:
- Exercise 4 (Python SDN Simulator), Exercise 7 (Mininet Controllers), Exercise 8 (FlowVisor)
- One review form for each paper you were assigned during the course.
- The slides you used for presenting your papers in class.
Paper Reading Groups
- SDN Infrastructures
- Group 1: Building a Software-defined Internet Exchange
- Gupta et al, "SDX: A Software-defined Internet Exchange" (ACM SIGCOMM 2014)
- Stringer et al, "Cardigan: SDN Distributed Routing Fabric Going Live at an Internet Exchange"
- Group 2: USING SDN in Wide Area Networks - Microsoft vs Google:
- Hong et al, "Achieving High Utilization with Software-Driven WAN" (ACM SIGCOMM 2013)
- Jain et al, "B4: Experience with a Globally-deployed Software Defined WAN" (ACM SIGCOMM 2013)
- Group 1: Building a Software-defined Internet Exchange
- Separation of Control and Data Plane
- Group 3: Performance of the Control Plane
- Wang et al, "Scotch: Elastically Scaling up SDN Control-Plane using vSwitch based Overlay" (ACM CoNEXT 2014)
- Liu et al, "Ensuring Connectivity via Data Plane Mechanisms" (USENIX NSDI 2013)
- Group 4: Hybrid Software-defined Networks
- Sivamaram et al, "No Silver Bullet: Extending SDN to the Data Plane" (ACM HotNets 2013)
- Schiff et al, "Reclaiming the Brain: Useful OpenFlow Functions in the Data Plane" (ACM HotNets 2013)
- Vissicchio et al, "Sweet Little Lies: Fake Topologies for Flexible Routing" (ACM HotNets 2013)
- Group 5: Update Consistency
- Reitblatt et al, "Abstractions for Network Update" (ACM SIGCOMM 2012)
- Mahajan et al, "On Consistent Updates in Software Defined Networks" (ACM HotNets 2013)
- Group 3: Performance of the Control Plane
- Controllers
- Group 6: Distributed Controllers
- Schmid et al, "Exploiting Locality in Distributed SDN Control" (ACM HotSDN 2013)
- Dixit et al, "Towards an Elastic Distributed SDN Controller" (ACM HotSDN 2013)
- Berde et al, "ONOS: Towards an Open, Distributed SDN OS" (ACM HotSDN 2014)
- Group 6: Distributed Controllers
- OpenFlow
- Group 7: Measurement of OpenFlow
- Kuzniar et al, "A SOFT Way for OpenFlow Switch Interoperability Testing" (ACM CoNEXT 2012)
- Canini et al, "A NICE Way to Test OpenFlow Applications" (USENIX NSDI 2012)
- Group 8: Challenging OpenFlow
- Hu et al, "Explicit Path Control in Commodity Data Centers: Design and Applications", (USENIX NSDI 2015)
- Group 7: Measurement of OpenFlow
- Network Virtualization
- Group 9: Virtualization in Datacenters
- Koponen et al, "Network Virtualization in Multi-tenant Datacenters" (USENIX NSDI 2014)
- Ghorbani et al, "Towards Correct Network Virtualization" (ACM HotSDN 2014)
- Group 10: Advances in Network-Slicing
- Shabibi et al, "OpenVirteX: Make Your Virtual SDNs Programmable (ACM HotSDN 2014)
- Jin et al, "CoVisor: A Compositional Hypervisor for Software-Defined Networks (USENIX NSDI 2015)
- Group 9: Virtualization in Datacenters
Requirements
- Basic knowledge in computer networking is required
- Students will benefit from knowledge in Python (however, the skills required for the course will be taught!)
- Each participant is required to actively attend the course and earn 50% of the points of the exercise.
- Written report at the end of the course
Reading List
If you are interested in reading into some material before the course starts, NEC maintains a somewhat up-to-date reading list.