Software Networking

Overview

This course introduces the concept of “softwarized network,” i.e., novel network infrastructures where the software plays an increasingly important role. Course topics include the  general architecture of a network device (e.g., data and control plane, fast/slow path), programmable data planes, and novel paradigms such as SDN/NFV and network orchestration. Finally, it will present the Linux networking stack, which is increasingly important due to the massive usage of this operating system in virtualized environments.

This course, offered in English starting from this academic year, is available to all Computer Engineering (master-level degree) students at Politecnico di Torino. This site refers to Academic Year 2023/2024.


Prerequisites

General knowledge about computer networks. Detailed knowledge about the IP protocol and the most important protocols of the TCP/IP suite. Capability to design IP networks and familiarity with routing. Capability to analyze network traffic, particularly with respect to the most important protocols of the TCP/IP suite. Basic knowledge on computer architecture and operating systems.


Lecturers

The course is taught by Fulvio Risso and Federico Parola.


Class recordings

Lectures of this class are registered and made available on the official teaching portal at Politecnico di Torino. Recordings are available only to enrolled students. Recording are made in a “best effort” way; some class recordings may not be available due to technical problems (e.g., a crash in professor's laptop) or for copyright problems (e.g., seminars given from non-Polito people).


Slack Workspace

To facilitate the interactions among students, and from students and professors, we created a dedicated Slack workspace. Please join at https://swnet-polito.slack.com/join/signup .


Lab and exercises

This course includes four labs, focusing on the most important topics presented in the lectures. Routing labs will include configuration and troubleshooting of network devices, which is useful to understand how routing protocols react to external solicitations. Software labs will include creation of basic packet processing software (e.g., inspection of HTTP traffic) and service chains.

In addition, some exercises are available focusing on the most important topics of the course.

Labs represent a key helper to pass (successfully) the exam. Please note that the exam often includes some questions related to the lab.

Labs will be delivered through CrownLabs; please make sure you have a valid account.


Personal projects

Students with high average mark (>27/30) can ask to replace the exam with a special project. The project can focus on either research, engineering, or bibliographic topics. In most cases it requires a short presentation (30 mins) in which the student discusses the achieved results.

The list of proposed projects is available at the Project page.


Exams

The exam includes a variable mix of exercises, open-answer questions, and closed-answer questions. In addition, a practical exercise to be carried out directly on CrownLabs is also possible.

Students whose grade exceeds a given threshold have the possibility to ask for an additional oral examination. This consists in one question, whose outcome can improve or worsen the grade of the written examination.

More details about exam rules are available in the slides presented at the beginning of the course.


Textbooks

Unfortunately no textbook is available for this course. Slides and labs will be delivered during the course are are available in the Syllabus page.