Skip to main content

IK2220 Software Defined Networking (SDN) and Network Functions Virtualization (NFV) 7.5 credits

Choose semester and course offering

Choose semester and course offering to see current information and more about the course, such as course syllabus, study period, and application information.

Headings with content from the Course syllabus IK2220 (Spring 2019–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

Software Defined Networking (SDN) and Network Functions Virtualization (NFV) are at the core of the dramatic transformation of today’s networks. SDN makes it possible to quickly deploy exciting and highly relevant new protocols, without requiring extensive hardware changes. Additionally, SDN makes it possible to implement complex functionality in the SDN controllers, thus reducing the cost of the network elements (i.e., switches and routers). The introduction of SDN is expected enable the Internet to scale to higher and higher data rates, while existing approaches to realizing higher data rates leads to excessive costs and power consumption. NFV aims to decrease the costs for network operators. NFV utilizes open source software running on commodity, off-the-shelf hardware rather than highly specialized, vertically integrated solutions produced by a small number of vendors. The combination of SDN and NFV makes it possible to quickly deploy new services for large numbers of users in both wired and wireless networks.

Intended learning outcomes

The aim of the course is to give the students a deep understanding of two important, emerging network technologies: Software Defined Networking (SDN) and Network Functions Virtualization (NFV).

After have accomplished the course the student should be able to:

  • describe the key benefits of SDN, in particular those benefits brought about by the separation of data and control planes
  • describe the SDN data plane
  • explain in detail the operation of the SDN control plane
  • configure an SDN-friendly network emulator
  • program a sample SDN for a given task
  • explain network virtualization
  • describe techniques used for verification and debugging of SDNs
  • describe Network Functions Virtualization components and how they work together
  • describe the role and functionality of middleboxes in networks and how they are managed
  • configure an example service using SDN and NFV
  • describe techniques to enable applications to control the underlying network using SDN
  • give examples of and describe current research problems within SDN and NFV.

Course disposition

The course consists of 4 hours of lectures and 16 hours of discussion of research papers. The teacher(s) will present all the basic material and then assign carefully selected research papers to be presented by the students in class. Each student will be required to read and write a paper summary (evaluation) of each of the assigned papers before presenting the paper and participating in a discussion of the paper during class. The course will also include assignments in the form of small projects.

Literature and preparations

Specific prerequisites

Students who attend this course are required to have passed IK2215 (Advanced Internetworking) or have equivalent knowledge in Internetworking and Computer Communications.

Good programming knowledge (C++, Java, or Python but preferably all).

Recommended prerequisites

No information inserted


No information inserted


Research articles

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale

A, B, C, D, E, FX, F


  • PRO1 - Project Assignments, 2.5 credits, grading scale: A, B, C, D, E, FX, F
  • SEM1 - Paper Summaries, 2.5 credits, grading scale: A, B, C, D, E, FX, F
  • TEN1 - Written Exam, 2.5 credits, grading scale: A, B, C, D, E, FX, F

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

The examiner may apply another examination format when re-examining individual students.

The course is divided into the following three parts:

Written exam (A-F)

Paper summaries (evaluations) (A-F)

Project assignments (A-F)

The final grade is based on the combination of the result of the above three components and all three parts must be successfully passed order to receive a passing final grade.

To receive a grade of “E”, the student should be able to describe and explain the relevant design principles for protocols, methods, and devices for both SDN and NFV, as well as be able to apply these protocols and methods to real networks.

To receive a higher grade, the student should also be able to critically evaluate and assess different approaches, as well as be able to compare and explain advantages and disadvantages of various system and network designs.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted


Ethical approach

  • All members of a group are responsible for the group's work.
  • In any assessment, every student shall honestly disclose any help received and sources used.
  • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

Further information

Course web

Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.

Course web IK2220

Offered by

Main field of study

Computer Science and Engineering, Electrical Engineering

Education cycle

Second cycle

Add-on studies

No information inserted


Dejan Kostic (

Supplementary information

In this course, the EECS code of honor applies, see: