1 – Introduction
- Architecture of the Internet.
- The general architecture of modern networks based on Software Defined Networking (SDN): data plane, control plane, network-application plane
2 – Data plane
- Review of Internet and the IP layer
- Router structure: design principles and expected performance
- Elements of interconnection networks: Taxonomy (mono-stage and multi-stage networks). Multistage networks with partial and full interconnection. (mentioning Banyan networks).
- Multi-stage networks: Three-stage networks. Paull and Slepian-Duguid theorem. Multi-stage networks with full interconnection: Clos theorem and recursive construction
- Routing of IP datagrams: Structure of IP addressing. Algorithms with tries. Algorithms based on trees and prefixes. Hardware algorithms
- Packet classification and traffic handling: Classifiers. Classification based on tries. Geometric algorithms. Heuristic algorithms. Network services and quality-of-service parameters
- The OpenFlow switches
3 – Control plane
- Fundamentals of SDN: north and south-bound interfaces, SDN controllers.
- OpenFlow protocol. Alternative South-bound protocols (NETCONF), Restful APIs, Data models (YANG models)
4 – Network application plane
- Network applications: Network Services Abstraction Layer, Measurement and Monitoring
- Introduction to Network Function Virtualization (NFV): NFV Reference Architecture, VNF Interfaces, VNF Scaling
- Virtual Infrastructure managers (introduction to OpenStack). Service orchestrators (MANO model)
- Usecases: virtualization of simple network functions (e.g. routers, firewalls)
In the exercise sessions, guidelines will be provided to students on how to showcase the learned algorithms on simple examples, so to prove the achievement of the learning outcomes related to logic.
1 – Virtualization Lab tools: Virtual Box, MiniNet
2 – SDN controllers: The Ryu framework; ONOS and ODL (introduction)
3 - Skeleton controller to develop the projects
4 – OpenStack: simple intorduction
5 - ADVA NFV orchestration suite
1 - Project assignment and development (teamwork), under the assistance of a project tutor (from ADVA for NFV projects or PoliMi for SDN projects)
2 - Software checks and project testing (teamwork), under the assistance of a project tutor (from ADVA for NFV projects or PoliMi for SDN projects)
The innovative learning action in the course will be provided by the following active-classroom forms:
- Specific topics covered in a flipped-classroom form (e.g. Buffering in packet switching, including: buffering strategies (input, output, shared queueing), scheduling in VOQ switches (algorithms for maximum matching and maximal matching)
- Blended-classroom exercise sessions (after an example explained by the teacher, students solves exercises and present and discuss results)
- Active student participation to the software-laboratory sessions, bringing and working on their own device
- On-line assessment of knowledge (via Kahoot) at the end of each section