Rete Internet Prof. Giuseppe Bianchi A/A 2001-2002 Il corso, indirizzato a studenti senza alcuna preparazione preliminare nel settore delle reti di telecomunicazione, si propone di fornire un’introduzione alle applicazioni ed ai protocolli della Rete Internet. L’approccio adottato è “topdown”. In primo luogo si descrivono le applicazioni di rete, con particolare riferimento al World Wide Web, e si insegna a sviluppare applicazioni distribuite mediante socket JAVA. Quindi, si analizzano in dettaglio i protocolli di trasporto. Infine, si affronta il problema dell’indirizzamento ed instradamento in Internet e dei relativi protocolli. Il limite principale del corso e’ la mancanza di tempo sufficiente per fornire dettagli relativi alle tecnologie di rete e datalink sottostanti il livello IP (tali conoscenze sono rimandate a corsi successivi). Il corso e’ organizzato in 6 settimane di lezione/esercitazione (8 ore/settimana), e permette di acquisire 5 crediti formativi. PARTE A: Applicazioni 1) Architettura e standardizzazione di Internet – Cenni storici, architettura di Internet, tecnologie dominanti di accesso e backbone, protocolli ed attivita’ di standardizzazione. Servizi connection-oriented e connectionless; commutazione di circuito, circuito virtuale, commutazione di pacchetto. 2) Sviluppo di applicazioni Internet – Protocolli client-server, indirizzamento delle applicazioni (numeri di porta, demultiplazione); Il concetto di socket; Socket TCP e UDP; programmazione di applicazioni distribuite con JAVA. 3) World wide web - Procedure relative ad una richiesta di pagina in WWW (DNS lookup, connessione TCP, protocollo HTTP, gestione di più oggetti in HTML). HTTPv1.0 in dettaglio (formato dei messaggi di richiesta e risposta, header piu’ comuni, risposte condizionate, gestione dei contenuti). Similitudini e differenze con altre applicazioni (e-mail, file transfer). 4) Domain Name System – Naming in Internet, gestione dei nomi, domini e zone, name servers. Risoluzione di nomi mediante DNS, tipologie di query e formato dei messaggi, esempi con il software Nslookup. PARTE B: Trasporto 5) User Datagram Protocol – Servizi offerti da UDP. Header, dimensione dei datagrammi,controllo di errore (e pseudo-header). Cenni a RTP. 6) Introduzione a TCP – Servizi offerti da TCP. Segmenti, modalita’ di ritrasmissione, numeri di sequenza. Pipelining (sliding window), valutazione delle prestazioni (throughput, latenza) e confronto con Stop&Wait. Gestione della connessione in TCP. 7) Algoritmi di TCP – (a) Controllo di flusso a finestra: descrizione del meccanismo TCP, prestazioni ottenibili, window scale option, gestione di casi di serve bloccato (persist timer), applicazioni interattive (Silly window sindrome, algoritmo di Nagle). (b) Controllo di errore in TCP: identificazione degli errori mediante Retransmission TimeOut, Settaggio adattativo dell’RTO (algoritmo RFC793, algoritmo di Jacobson), problema di Karn e soluzione, NACK impliciti mediante algoritmo di fast retransmit (c) controllo della congestione in TCP: problema e cenni storici, slow start e congestion avoidance (TCP Tahoe), fast retransmit e recovery (TCP Reno), cenni a TCP NewReno e TCP Vegas, fairness. PARTE C: Rete 8) Introduzione all’indirizzamento IP – Notazione binaria e dotted decimal, concetti elementari di instradamento (direct forwarding, indirect forwarding). Indirizzi di classe A, B, C, e tabelle di instradamento. 9) Instradamento diretto: ARP e RARP –Protocollo ARP, ARP cache, proxi ARP e router trasparenti. Ottenere un indirizzo IP: il protocollo Reverse ARP, cenni a BOOTP e DHCP. 10) Subnetting e supernetting – indirizzamento gerarchico, subnet mask, instradamento con subnet; esempi di subnetting di reti. Variable Length Subnet Mask (VLSM): descrizione ed esempi, requisiti sui protocolli di routing, requisiti sugli algoritmi di routing table lookup (longest match forwarding). Classless Inter-Domain Routing (CIDR): motivazioni, soluzione CIDR, requisiti sui protocolli di routine, exception routes. 11) IP e ICMP – header IP, campi TOS, TTL, protocol, opzioni record route e source route. Formato del pacchetto ICMP, tipi e codici principali. Funzionamento dei programmi traceroute e ping. Frammentazione in IP, algoritmo di path MTU discovery. 12) Routing in IP – (causa mancanza di tempo, solo cenni nell’A/A 2001-2002): routing statico e dinamico, Sistemi autonomi, protocolli intra-domain ed inter-domain. Protocolli “distance vector”: funzionamento, protocolli RIP1 e RIP2. Protocolli “link state”: funzionamento, cenni al protocollo OSPF. Cenni a BGP. L’esame consiste in un progetto di applicazione distribuita sviluppato in linguaggio JAVA (prova in itinere), una prova scritta (comprensiva di domande a risposta multipla, esercizi e domande teoriche) ed una prova orale a discrezione del docente. Testo di riferimento: - James F.Kurose, Keith W.Ross, “Internet e Reti di Calcolatori” – McGraw-Hill Testi supplementari raccomandati: - Behrouz A. Forouzan, Sophia Chung Fegan – “I protocolli TCP/IP” – McGraw-Hill - Joseph. Tannenbaum, “Reti di Calcolatori” Lucidi delle lezioni: - disponibili sul sito http://cerbero.elet.polimi.it/people/bianchi/didatt/internet (attualmente non operativo appena disponibile verra’ indicato il nome del nuovo sito) Testi e siti di consultazione: - Stevens, “TCP/IP Illustrated” - RFC su www.ietf.org - Standardizzazione web: www.w3.org