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
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
- Usecases: Private Cloud Perspective, Service Provider Perspective, entrerprise networking, MPLS VPN, VXLAN, tunneling, SD-WAN
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
4 - Project assignment and development (teamwork, under the assistance of a project tutor)
5 - Software checks and project testing (teamwork, under the assistance of a project tutor)
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
Video recordings of most lectures will be available to all students.