Programma delle lezioni
Capitolo 1
- Lezioni
del 8 e 9 marzo 2004
Internet 'nuts and bolts': host e router;
link di comunicazione; protocollo di comunicazione; reti di accesso
e backbone di rete; topologia fisica e
logica;
struttura dell'Internet: Internet Service Providers e loro
interconnessione, Neutral Access
Points;applicazioni
di rete.
Servizio di trasporto connection-oriented
e
connectionless;packet switching e circuit-switching; sorgenti CBR e
VBR;
codifica PCM della voce; confronto tra packet switching e circuit
switching;
effetto delle dimensioni del pacchetto sulle prestazioni di rete.
- Lezioni
del 15 e 16 marzo 2004
Reti a circuito virtuale. Introduzione ai
mezzi trasmissivi: trasmissione su un canale,doppino telefonico,
cavo coassiale, fibra ottica, trasmissione su mezzo radio; reti di
accesso:
accesso dial-up, ADSL, tramite LAN, accesso mobile (WLAN, sistemi
cellulari),
link satellitari (satelliti geostazionari e costellazioni LEO), accesso
HFC. Misure delle prestazioni di rete: banda, ritardo, perdita dei
pacchetti.
Motivi della perdita dei pacchetti. Componenti del ritardo: ritardo di
processing, ritardo di coda, ritardo di trasmissione, ritardo di
propagazione.
Esempi sul diverso impatto del ritardo di trasmissione e di
propagazione
in diversi scenari; ritardo di coda in funzione dell'intensita' di
traffico. Pricipi delle architetture a livelli (dispense Prof. Aldo
Roveri, pag. 1--43, dispense del 2001), stack protocollare TCP/IP.
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.
Problematiche di caching: vantaggi e
problemi.
Cache coherency, cache replacement e varie soluzioni.
Cache gerarchiche e protocolli per il
colloquio
tra cache della gerarchia (protocollo ICP). Cache busting e possibili
soluzioni.
Content Delivery Networks: problematiche ed un esempio di soluzione
(Akamai).
Applicazioni peer-to-peer. Modello centralizzato (Napster) e
distribuito
(KazaA).
TELNET (concetto di Network Virtual
Terminal,
negoziazione di opzioni). Come leggere un RFC: esempio su TELNET. File
Transfer Protocol (connessione di controllo e connessione dati, comandi
FTP e risposte, esempio di interazione FTP,segnalazione in banda e
fuori
banda, protocolli stateless e stateful). Posta elettronica: user agents
e mail servers; colloquio tra i mail servers: SMTP(Simple Mail Transfer
Portocol) e suo funzionamento con esempi. Formato dei messaggi di posta
elettronica. MIME (Multipurpose Internet Mail Extensions):obiettivi,
codifiche
usate. Protocolli di accesso alla mailbox: POP3 e IMAP. Per tutti i
protocolli:
funzionamento, formato dei messaggi, differenze rispetto ad HTTP.
Capitolo
3
Introduzione al livello di trasporto:
livello
di trasporto connectionless e connection-oriented: caratteristiche.
Cosa
cambia nel colloquio tra processi applicativi che utilizzano un
servizio
di trasporto connection-oriented o connectionless?. Protocollo di
trasporto
connectionless UDP, caratteristiche, formato dei datagrammi UDP,
multiplazione
e demultiplazione, checksumming, dimensione massima di un datagramma
UDP,
applicazioni a cui UDP offre il servizio di trasporto e perchè.
Utilizzo dello pseudo-header per calcolare il checksumming UDP: una
anomalia
nell'architettura a livelli? Impatto di disabilitare il checksumming.
UDP e applicazioni m ultimediali real-time.
Servizio di trasporto
connection-oriented: TCP. Sudivisione dello stream
applicativo in segmenti. Differenze tra
UDP e TCP. Formato dei segmenti TCP. Ruolo dei campi porta sorgente e
destinazione,
checksumming, lunghezza dell'header, opzioni, campo 'reserved'.
Problematiche
di trasferimento affidabile dei dati: errori nella trasmissione e
perdita
dei pacchetti, quale l'effettivo impatto e quali i motivi; Forward
Error
Correction e protocolli di Automatic Repeat Request, caratteristiche ed
applicabilità dei due approcci. Automatic Repeat Request: caso
di
un canale ideale senza perdita di pacchetti e senza errori. Canale con
errori: ruolo degli ACK e dei NAK. Necessità di sequence numbers
per distinguire tra trasmissioni di segmenti diversi. E' possibile
eliminare
i NAK? Cosa occorre? Caso di un canale con perdita dei pacchetti:
utilizzo
di timeout. Protocollo stop & wait. Necessità di sequence
numbers
anche per i messaggi di riscontro. Dimensione del campo sequence number
nel caso del protocollo Stop & Wait.
Protocolli di ARQ a finestra: protocollo
Go-Back-N
e protocollo Selective Repeat. Come settare il numero di bit per
memorizzare
i sequence number in Selective Repeat e perchè. Protocollo
per la trasmissione affidabile dei dati in TCP: trasmissione di uno
stream
di byte, acknowledgment cumulativi, trasmissione di ACK con
piggybacking,
delayed ACKs, effetto dei timeout. Valutazione prestazionale del
throughput
nel caso di protocolli stop&wait o a finestra. Protocollo per la trasmissione affidabile dei
dati in TCP: un ibrido tra Go-Back-N e Selective Repeat.
Dimensionamento della finestra
in TCP. Retransmission Timeout (RTO): impatto sulle
prestazioni e algoritmo per calcolarlo. Problema di Karn e soluzione.
- Lezioni
del 4 e 7 maggio 2004
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: ethree-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.