Introduction to Software-defined Networking (Winter 2014/2015)

From NET Wiki
Jump to navigation Jump to search

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 Lecture Hands-On SDN I 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 Exercises

Date Exercises Due
During Course Exercise 5 (Mininet Setup)
10.04.2015 Exercise 1 (Introduction), Exercise 2 (Python Basics)
17.04.2015 Exercise 3 (SDN II), Exercise 6 (Mininet Topologies)
30.04.2015 Exercise 4 (Python SDN Simulator), Exercise 7 (Mininet Controllers), Exercise 8 (FlowVisor)

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)
  • Separation of Control and Data Plane
    • Group 3: 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 4: 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)
  • Controllers
    • Group 5: 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)
  • OpenFlow
    • Group 6: 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)
  • Network Virtualization
    • Group 7: 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)

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.