Programma delle lezioni

Capitolo 1

Capitolo 2
Breve storia dell'Internet; comitati di standardizzazione preposti alla standardizzazione dei protocolli dell'Internet. Livello applicativo: applicazioni client-server, concetto di porta. Applicazioni che richiedono un servizio connection-oriented e applicazioni che richiedono un servizio di trasporto connectionless (e perche'). Breve storia del web e sue componenti. Differenza tra applicazione di rete e protocollo di rete. HTTP: web client, web servers, web proxies, HTTP v1.0 (le diverse fasi per scaricare o caricare su un server una pagina-mapping tra indirizzo simbolico e IP, apertura di una connessione TCP, scambio di messaggi; formati dei messaggi HTTP, campi di tali messaggi e loro significato;  motivi del degrado delle prestazioni nel caso di HTTP non-persistent). Get condizionato in HTTP, persistent HTTP (v1.1), tipi di proxy e loro uso, caching e caching gerarchico, autenticazione in HTTP, cookies, pagine Web dinamiche e pagine attive. Motori di ricerca e spiders.
DNS:organizzazione dei domini, server DNS autoritativi, DNS primario e seocndario, protocollo DNS, formato dei messaggi, perche' DNS usa UDP come livello di trasporto. Uso del DNS da parte di un client web.

Capitolo 3
Valutazione prestazionale del throughput  nel caso di protocolli stop&wait o a finestra. Impatto del RTT, della dimensione della finestra, del protocollo utilizzato sulle prestazioni. Trasmissione continua sul canale: dimensionamento della finestra in funzione del prodotto banda-ritardo. controllo di flusso. Meccanismo adottato in TCP per il controllo di flusso. Relazione tra la dimensione del buffer di ricezione e la max dimensione della finestra in TCP. Limite sulla dimensione della finestra: numero di bit del campo window. Opzione per scalare di un fattore la dimmensione della finestra di TCP. Problema del blocco della sorgente in seguito alla saturazione del buffer di ricezione e soluzione. Problema della silly window syndrome e soluzioni. Applicazioni interattive e TCP: algoritmo di Nagle. Flag di PUSH e URGENT data in TCP. Instaurazione di una connessione TCP: three-way handshaking, scelta dell'initial sequence numbering, scelta del maximum segment lifetime. Problema dei due eserciti. Chiusura di una connessione TCP. Controllo di congestione: effetto della congestione sulle prestazioni di TCP, possibile collasso della rete. Meccanismi per l'individuazione della congestione ed il suo controllo: slow start, congestion avoidance, fast retransmit, fast recovery. TCP Tahoe e TCP Reno: confronto. TCP fairness. Problema dell'unfairness tra flussi TCP e flussi UDP.

Capitolo 4
Lezioni dell' 11,17, 18 e 24 maggio 2004
Funzionalità del livello di rete. Modello datagram e a circuito virtuale pro e contro. Qualche nozione sui grafi (modellizazione della topologia della rete con un grafo, determinazione dei cammini minimi, del minimo albero ricoprente). Algoritmi per la determinazione dei cammini minimi Dijkstra e Bellman-Ford. Algoritmi di routing statici e dinamici; link state e distance vector. Funzionamento degli algoritmi link state. Scelta delle metriche: problema dell'instabilità del routing. Algoritmi di routing intradomain: RIP (problema del count-to-infinity: poison reverse, trigger updates), RIPv2, OSPF. Algoritmi di routing interdomain: BGP. Flooding.
Indirizzamento IP.Inoltro diretto e indiretto. Submetting e supernetting. Problema dell'esaurimento degli indirizzi IP. Soluzioni: CIDR, NAT, IPv6. Differenze tra IPv6 e IPv4 e motivazioni. Formato dei pacchetti IP. Protocollo ICMP. Mapping tra indirizzi IP e MAC address: protocollo ARP. Allocazione dinamica degli indirizzi IP: protocollo DHCP.

Capitolo 5

Lezioni del 25 e 28 maggio 2004