Introduzione al corso.
Stratificazione in livelli, livello applicativo.
socket di tipo DGRAM e STREAM; protocollo TCP, 3-Way Handshake, connessione.
Introduzione ai sistemi operativi, terminali e shell.
TCP affidabilità e controllo di flusso, UDP, IPv4 header.
IPv4 indirizzi, netmask, routing mediante prefisso, indirizzi privati; DNS struttura gerarchica dei server, formato datagrammi.
DNS risoluzione ricorsiva e iterativa, configurazione tipica dei server, cache, problemi di sicurezza (cache poisoning).
Uso della shell.
Approfondimenti TCP, RFC6298 calcolo del RTO, RFC6582 Congestion Control.
Laboratorio ping-pong, prima parte.
Rappresentazione del tempo in un sistema di calcolo e sincronizzazione dei clock in rete mediante NTP.
Esecuzione condizionale nella shell; job control. Ripasso puntatori in C/C++, strumenti relativi: valgrind e address-sanitizer.
Laboratorio ping-pong, seconda parte. Invio posta elettronica: SMTP e MIME.
Uso del debugger; syscall per file I/O, file descriptor.
Ricezione posta elettronica: POP3 e IMAP4.
FTP (autenticato e anonimo). ICMP Echo request/reply e applicazione ping. ICMP TTL Exceeded, Port Unreachable e applicazione traceroute.
Laboratorio ping-pong, terza parte. ICMP supporto al routing, Tabelle di Forwarding basate su prefisso, algoritmo decentralizzato.
Routing IP, algoritmi Link State e Distance Vector, OSPF, BGP. Frammentazione in IPv4. Header IPv6 e principali differenze tra v4 e v6.
programmi, compilazione e linking (statico e dinamico). API per la gestione dei processi, in particolare fork, exit e wait.
Esecuzione dei programmi, famiglia di funzioni exec. Redirezione I/O, dup.
Ethernet, evoluzione dello standard IEEE 802.3, indirizzi MAC, CSMA/CD, cavi coassiali e Hub.
Redirezione I/O, pipe. Scheduling: meccanismi e politiche.
Ethernet, versione Switched, apprendimento delle tabelle di switching, attacchi di sicurezza; protocollo ARP.
Descrizione del laboratorio microbash. Algoritmo di scheduling MLFQ.
Attacchi man-in-the-middle mediante ARP Cache Poisoning; Protocollo DHCP. ICMPv6 e protocollo NDP.
Algoritmo CFS. Introduzione al multithreading; primitive di sincronizzazione (mutex)
Implementazione di mutex e problemi legati alla concorrenza
Procollo Ethernet, CSMA/CD
sicurezza, principio del minimo privilegio
IEEE 802.3, versione Hub e versione Switch
esercizi su sicurezza; intro alla gestione della memoria secondaria
Assegnazione laboratorio IncApache 5.0 (parte obbligatoria, versione HTTP/1.0)
implementazione dei file system alla Unix.
Assegnazione laboratorio IncApache 5.1 (parte opzionale, connessioni persistenti e pipelining HTTP/1.1)
Standard IEEE 802.11 (WiFi), CSMA/CA, connessione Infrastructure mediante Access Point, frequenze radio, RTS/CTS.
IEEE 802.11, banda di comunicazione, cifratura WEP, WPA, WPA2, attacchi DoS, confronto tra 802.11 e 802.3.
...continua