Skip to main content
Till KTH:s startsida Till KTH:s startsida

FIK3619 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.


For course offering

Spring 2024 Start 18 Mar 2024 programme students

Application code


Headings with content from the Course syllabus FIK3619 (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 using a low-level approach (rule-based) and a high-level approach (e.g., using Pyretic)
  • evaluate a sample SDNs performance and reliability
  • explain network virtualization
  • describe techniques used for verification and debugging of SDNs
  • describe Network Functions Virtualization components and how they work together
  • explain how to create new network services using SDN and NFV
  • 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.

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


Forskningsartiklar/Research articles

Examination and completion

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

Grading scale

P, F


  • EXA1 - Examination, 7.5 credits, grading scale: P, 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.

Doctoral students need to first obtain minimum C on each of the sub-parts at the course, as shown below. In addition, doctoral students need to write a minimum six-page report using a 12pt font describing the relationship between their research and SDN/NFV. Alternatively, the examiner can provide a report topic.
Master-level requirements are as follows:
PRO1 - Project Assignments, 2.5, grade scale: A, B, C, D, E, FX, F
SEM1 - Paper Summaries, 2.5, grade scale: A, B, C, D, E, FX, F
TEN1 - Written Exam, 2.5, grade scale: A, B, C, D, E, FX, F
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 room in Canvas

Registered students find further information about the implementation of the course in the course room in Canvas. A link to the course room can be found under the tab Studies in the Personal menu at the start of the course.

Offered by

Main field of study

This course does not belong to any Main field of study.

Education cycle

Third cycle

Add-on studies

No information inserted

Postgraduate course

Postgraduate courses at EECS/Communication Systems