Sei sulla pagina 1di 711
James F. Kurose , Keith V V seconda edizio ne web SY site James F. Kurose Keith W. Ross INTERNET E RETI di Calcolatori seconda edizione Milano + New York * San Francisco * Washingion D.C, + Auckland Bogola + lsbos * London * Madrid © Mexico City * Montreal New Delhi * Son Juan * Singopore * Sydney * Tokyo * Toronto Gli Autori Jim Kurose Jim Kurose professore di Computer Science presso la University of Massachusetts, ad Amherst. Per otto volte ha ricevuto I’ Outstanding ‘Teacher Award dalla National Technological University, gli é stato anche assegnato I Outstanding Teacher Award dal College of Natural Science and Mathematics dell’ University of Massachusetts e, ne] 1996, I’ Outstanding Teacher Award dalla Northeast Association of Graduate Schools. Ha ricevuto anche un GE Fellowship, un IBM Faculty Development Award ¢ un Lilly Teaching Fellowship. I Prof. Kurose é stato editor in chief della IEEE Transactions on Communications e della IEEE/ACM Transactions on Networking. Fa parte dei comitati di programma di IEEE Infocom, ACM SIGCOMM e ACM SIGMETRICS. Ha ottenuto il Ph.D in Computer Science presso la Columbia University. Keith Ross Keith Ross @ professore nel Multimedia Communications Department pres- so ’Eurécom Institute. Dal 1985 al 1997 & stato Professore alla University of Pennsylvania dove insegnava sia al Department of System Engineering sia alla Wharton School of Business. Nel 1999 é stato tra i fondatori dell’ Internet startup Wimba.com. II Prof. Ross ha pubblicato oltre 50 articoli e scritto due libri. E stato edito- rialista di cinque importanti riviste e ha fatto parte dei comitati di program- ma dei maggiori congressi dedicati alle reti, IEEE Infocom e ACM SIG- COMM compresi. E stato supervisore di oltre 10 tesi per PhD. I suoi interessi per la ricerca e l’insegnamento comprendono multimedia networking, teorie dell’apprendimento asincrono, strategie di caching su Web, streamline audio e video e modelli di traffico. Ha ricevuto il Ph.D dalla University of Michigan. Presentazione della seconda edizione italiana T soli due anni trascorsi dall’uscita della prima edizione (2001) sono una chiara dimo- strazione del suecesso incontrato dall’impostazione che gli Autori hanno a suo tempo scelto e che gia @ richiamata nel titolo originale Computer networking: a top-down approach featuring the Internet. ‘Come gid osservato nella presentazione della prima edizione in lingua italiana, in questo titolo viene richiamato un argomento che ha ricevuto grande attenzione e che ha visto la comparsa di una lunga lista di altre opere, almeno con riferimento alla let- teratura tecnica internazionale, cresciuta in particolare negli anni "90 a seguito della “tivoluzione” delle tecnologic dell’informazione. E stato percid naturale chiedersi quali fossero le motivazioni e le specificita dell’ opera al suo primo apparire. Gli Au- tori le hanno rivendicate con orgoglio e in effetti il libro appariva, gia dalla prima edi- zione, nuovo, “fresco” nell’impostazione ¢ nello sviluppo. Innanzitutto si trattava di un libro “aggiomato”, nel senso che tutta la sua concezione assimilava ¢ rifletteva l'e- voluzione delle reti di calcolatori, quale si era manifestata negli anni 90. Parlare di “eti di calcolatori” equivaleva in quel momento a trattare Internet, affermavano gli Autori. Poteva sembrare drastico ma, soprattutto per un libro che si proponeva come testo di base, una rassegna pid completa (anche storicamente) di tecnologie avrebbe potuto ingenerare confusione nel lettore e appiattire la sua visione delle realta siste- mistica e tecnologica. Infatti, le comunicazioni tra calcolatori, sia per applicazioni di dati tradizionali sia per finalita multimediali, erano e sono attualmente veicolate vir- tualmente nella loro totalita dai protocolli della famiglia TCP/IP. L’aspetto formativo, con particolare riferimento all’ acquisizione dei principi di base della comunicazione a pacchetto, era ed 2 tuttora completamente soddisfatto dal “caso” Internet: il libro quindi, gia dalla prima edizione, manifestava chiaramente il suo carattere di testo di base finalizzato a fornire i concetti fondamentali dell’interconnessione in rete e della comunicazione a pacchetto. Inoltre, era il primo testo che usava la tradizionale ripartizione per strato architet- turale degli argomenti secondo un approccio “in discesa”. I principi ¢ la loro applica- zione, i protocolli e le relative tecnologie erano introdotti a partire dall’ applicazione, via via scendendo verso gli strati che riguardano funzioni di trasporto da estremo a estremo, di rete, di gestione del collegamento e di trasmissione. Questa organizzazio- ne aveva e ha numerosi vantaggi, evidenziati dagli Autori ed effettivamente riscon- trabili da chiunque abbia esperienza didattica sull’argomento. Infatti ’applicazione era ed é il punto di vista dell’ utente, con riferimento a tutti i lettori potenziali di que- sto testo. Cominciare a capire i problemi dell’ interconnessione in rete di processi e di sistemi poteva e pud tuttora risultare pit! naturale se si comincia con l’esame del fun- zionamento delle parti che sono pitt vicine all’utente (le applicazioni) e se si affronta Ja realizzazione di esempi applicativi. Era in fondo una versione dell’ approccio sinte- tizzato dal detto “facendo si impara”. Un punto di forza di Internet, in questo caso da un punto di vista didattico, risiede proprio nel fatto che la rete & “fata” di software, almeno dallo strato di rete in su. Cid si presta egregiamente alla realizzazione “in ca- sa” di esempi realistici, cio? permette il vero e proprio “fare” interconnessione in rete (networking) Presentazione della seconda edizione italiana Di questa possibilita gli Autori si sono avvalsi fin dall’inizio estesamente, anche gra- zie a un ricco sito Web associato al libro e disponibile in gran parte ai lettori della versione italiana del testo. In particolare, il sito & ricco di programmi, di esercizi e di domande, utili per una (auto)valutazione del grado di apprendimento. B anche previ- sta una sezione riservata ai docenti, con possibilita di ausili alla didattica (ucidi, esercizi con relative soluzioni, esperienze di laboratorio). Altre novita “minori”, ma non meno utili e stimolanti con punti di interesse parti- colare, erano ¢ sono tuttora: (a) i riquadri “Principi in pratica” che illustrano come le conoscenze di base trovino applicazione nei protocolli e nei sistemi; (b) un ampio e aggiornato capitolo dedicato alla sicurezza, e cio’ a uno dei temi suscettibili di mag- giori sviluppi nelle reti di caleolatori e di telecomunicazioni in generale; (¢) il lin- guaggio piano e informale, mantenuto anche nella versione italiana, con una esposi- zione a tratti anche accattivante, comunque esauriente, mai superficiale e condita di numerosi esempi; (d) le interviste e le note storiche (sul sito Web), che danno una di- mensione umana e una visione prospettica dell’ evoluzione tecnologica. Circa il pubblico di lettori a cui il libro si rivolge, gia la prima edizione era certa- mente concepita per usi didattici nel quadro di insegnamenti sull’argomento, ma la presenza di un notevolissimo materiale ausiliario ne rendeva possibile anche una uti- lizzazione per un apprendimento da autodidatta. Il livello della trattazione e la com- pletezza, tenendo conto del bagaglio minimo di conoscenze matematiche richieste, lo rendevano e Jo rendono tutora adatto per corsi di base sull’interconnessione in rete nelle Universita, anche nel primo anno degli attuali primi livelli di Laurea, Lo stesso testo poteva ¢ pud essere usato come riferimento anche in corsi specialistici degli ul- timi anni della Scuola Media Superiore. Questa seconda edizione, lasciando invariati gli aspetti peculiari e i pregi sopra sottolineati con riferimento alla prima edizione, introduce alcuni aggiornamenti. che riflettono le rapide variazioni nelle tecniche di interconnessione in rete verificatesi negli ultimi anni. In particolare, viene incluso e viene ampliato il contenuto sulla coo- perazione in rete di tipo “peer- to-peer”, sulle reti di distribuzione di contenuti, sull’TP mobile, sulle reti “wireless” (con riguardo particolare alla tecnologia Bluetooth), sul protocollo di instradamento BGP, sulle applicazioni per la multimedialita e sulla sicu- rezza di rete. Si tratta quindi di argomenti che indubbiamente arricchiscono il mate- riale gid disponibile e che rendono quest’opera, oltre che un utile strumento per un’introduzione didattica alle tematiche svolte, anche un prezioso mezzo di aggiorna- mento professionale. I problemi alla fine di ogni capitolo sono stati aggiorati, cost come il materiale presente sul sito Web (www.ateneonline.it/kurose) Aldo Roveri Universita di Roma “La Sapienza” Roma, 29 aprile 2003 Prefazione all’edizione americana Benvenuti alla seconda edizione di Internet e reti di calcolatori. Dal momento della pubblicazione della prima edizione tre anni fa, questo libro @ stato adottato in centi- naia di istituti e universita e utilizzato da decine di migliaia di studenti e specialisti in tutto il mondo. Abbiamo avuto notizie da molti di questi lettori e siamo stati sopraf- fatti dai riscontri positivi. Pensiamo che una ragione importante di questo sucesso & che il libro offre un approccio innovative allo studio del computer networking. Vi chiederete: perché un nuovo approccio? Negli anni recenti siamo stati testimoni di due cambiamenti rivolu- zionati nel campo delle reti di calcolatori, cambiamenti che non hanno trovato riscon- tro nei testi pubblicati negli anni ’80 e 90. Primo, Intemet ha conquistato il predomi- nio dell’universo delle reti di calcolatori. Qualsiasi seria e attuale trattazione delle re- tidi calcolatoti deve essere affrontata con la mente rivolta a Internet. Secondo, negli ultimi dieci anni I’area di maggior sviluppo delle reti 2 stata quella dei servizi e delle applicazioni, sviluppo che si pud valutare con l’apparizione del Web, I'uso ubiquita- rio del servizio di posta elettronica, lo streaming audio ¢ video, la telefonia Internet, ICQe commercio online. Cosa c’é di nuovo nella seconda edizione? Abbiamo fatto dei cambiamenti nella seconda edizione, ma abbiamo anche mantenu- to inalterati quelli che crediamo (e che i professori e studenti che hanno usato il libro hanno confermato) essere gli aspetti pid! importanti del libro: il suo approccio top- down, la sua focalizzazione su Internet, la sua attenzione sia ai principi sia alla prati- ca, il suo stile accessibile ¢ I'approccio all’apprendimento dei temi di computer networking. Questa seconda edizione & stata aggiomata per riflettere i rapidi cambia- menti nel campo del networking negli scorsi anni. Essa comprende materiale nuovo e espanso sul networking da pari a pari, sulle reti per la distribuzione di contenuti, sulla mobilita e mobile IP, sulle reti wireless, su BGP, sulle reti multimediali, sulla sicurez~ za delle reti, e molto altro. L'intero testo ¢ i riferimenti sono stati aggiornati sulla ba- se dei cambiamenti intervenuti ¢ delle segnalazioni dai lettori della prima edizione. Sono anche stati aggiunti ulteriori esercizi. In questa edizione sono presenti anche nuovi esercizi di laboratorio (incluso uno molto interessante sullo streaming di flussi video utilizzando RTP e RTSP). Destinatari Questo libro di testo si rivolge ai corsi di base sulle reti di calcolatori che si svolgono nel triennio dei corsi di laurea di ingegneria dell’ area dell’informazione. In termini di linguaggi di programmazione, il libro suppone solo che gli studenti abbiano qualche esperienza con C, C**, 0 Java. Uno studente che ha programmato solo in C 0 C"* € non in Java non dovrebbe avere alcuna difficolt& nel seguire il materiale di program- mazione delle applicazioni, anche se ® proposto in un contesto Java. Benché questo xiv Prefazione all'edizione americana testo sia pitt preciso e analitico di molti altri testi introduttivi al funzionamento delle reti, esso di rado usa concetti matematici che non siano stati introdotti nelle scuole superior. Abbiamo fatto uno sforzo deliberato per evitare I'uso di calcoli avanzati, concetti di probabilita o processi stocastici. Il testo potra anche essere utile per i corsi di formazione nell’ industria delle telecomunicazioni.. Cosa ha di unico questo libro? L’argomento del computer networking & enormemente vasto e complesso; coinvolge un gran numero di concetti, protocolli e tecnologie che si intrecciano in modo com- plicato, Per far fronte all’importanza e alla complessiti suddette, molti testi dedicati alle reti sono spesso organizzati intorno agli “strati” di un’architettura di rete. Con un’ organizzazione a strati, gli studenti possono apprezzare la complessita del funzio- namento di una rete di calcolatori: imparano concetti e protocolli relativi a una parte dell’architettura considerando nel contempo la visione generale e come le diverse parti costituiscono il quadro d’insieme. Per esempio, molti testi sono organizzati se- condo l’architettura OSI a sette strati. La nostra esperienza personale conferma che, da una prospettiva pedagogica, un approccio a strati di questo tipo @ in realt& alta- mente desiderabile per l’insegnamento. Ciononostante, abbiamo trovato che l’ap- proccio di insegnamento tradizionale dal basso in alto, cio® dallo strato fisico verso lo strato di applicazione, non & quello migliore per un moderno corso sul funzionamen- to delle reti di calcolatori. Un approccio dall'alto in basso A differenza degli altri testi di computer networking, questo & organizzato dall’alto in basso: vale a dire, esso inizia dallo strato di applicazione e traccia Ia sua strada verso lo strato fisico. Quest’ approccio presenta molti importanti vantaggi. Primo, da enfasi allo strato di applicazione, che ha rappresentato la pid importante “area di crescita” nel funzionamento delle reti di calcolatori. Infatti, molte delle pid recenti rivoluzioni nel computer networking (inclusi Web, streaming audio e video e distribuzione di contenuti) hanno avuto luogo nello strato di applicazione. Nel preparare la prima edi- zione di questo libro, eravamo convinti che nel campo del funzionamento delle reti lo strato di applicazione sarebbe rimasta la pitt importante area di crescita, in termini sia di ricerca sia di sviluppo reale. Gli anni trascorsi hanno confermato la correttezza del- Ja nostra ipotesi. Un’enfasi precoce sull’argomento strato di applicazione differisce dall’approccio seguito in molti altri testi, che presentano solo poco (o nullo) materia- le dedicato alle applicazioni di rete, ai loro requisiti, ai paradigmi dello strato di ap- plicazione (per esempio, client/server) e alle interfacce con I’applicazione. Secondo, la nostra esperienza di docenti conferma che l’insegnamento delle ap- plicazioni per il funzionamento della rete all’inizio del corso costituisce una forte motivazione per gli allievi, che sono entusiasti di apprendere come operano le appli- cazioni su reti interconnesse (networking applications): quelle stesse applicazioni, come e-mail e Web, che molti studenti usano quotidianamente. Una volta che lo stu- dente ha capito le applicazioni, egli pud comprendere i servizi di rete necessari a sup- Prefazione all'edizione americana xv portarle. Lo studente pud allora, a sua volta, esaminare i vari modi in cui questi servi- Zi possono essere forniti e implementati negli strati pit bassi. Il trattare precocemente Je applicazioni fornisce quindi la motivazione per la parte restante del libro. ‘Terzo, l'approccio dall’alto in basso permette ai docenti di introdurre presto lo sviluppo delle applicazioni di rete. I discenti non solo vedono come funzionano ap- plicazioni e protocolli, ma imparano anche quanto @ facile creare le proprie applica- zioni e i protocolli dello strato di applicazione. Altri testi introduttivi sul funziona- mento delle reti di calcolatori non trattano lo sviluppo dell’ applicazione e la pro- grammazione del socket. (Sebbene esistano testi dedicati alla programmazione in re~ te, questi non sono libri di testo introduttivi al networking.) Fornendo esempi di pro- grammazione in Java dei socket, evidenziamo l'idea centrale senza confondere gli studenti con codici complessi. Gli studenti degli ultimi anni delle scuole superiori ¢ dei corsi di laurea in telecomunicazioni e scienza dei calcolatori non dovrebbero ave- re difficolta nel seguire il codice Java. Quindi, attraverso I’ approccio dall'alto in bas- 0, i discenti affrontano subito l’esposizione delle nozioni di interfacce con ’applica- zione (API), modelli di servizio ¢ protocolli: concetti importanti che si ritroveranno in tutti gli strati successivi. Internet come argomento centrale Come indicato nel titolo, in questo testo domina Internet. Molti dei testi esistenti dan- no un peso significativo a una varieta di reti di telecomunicazioni e suite di protocol- li, e trattano Internet come una delle tante tecnologie per il networking. Noi, invece, poniamo Internet al centro, ¢ usiamo i protocolli di Internet come veicolo per studia~ re alcuni dei concetti fondamentali del networking. Ma perché scegliere di centrare il discorso su Internet? Perché non scegliere qualcuna delle altre tecnologie, per esem- pio ATM? Primo, il networking @ attualmente sinonimo di Internet. Questo non era valido 5-10 anni fa, quando si faceva un gran parlare delle LAN ATM e delle applica- zioni direttamente interfacciate con ATM (senza passare per TCP/IP). Ma ora siamo arrivati al punto in cui praticamente tutto il traffico di dati é trasportato da Internet (0 intranet). Oggi, il solo altro tipo di rete in competizione con Internet la rete telefonica a commutazione di circuito. E questo competitore potrebbe anche sparire. Sebbene og- gi la maggior parte del traffico vocale sia trasportato dalle reti telefoniche, i costrutto- i degli equipaggiamenti per il funzionamento delle reti ¢ gli operatori delle compa- gnie telefoniche si stanno attualmente preparando per una trasmigrazione verso la tecnologia Internet. Un altro vantaggio dato dall'importanza conferita a Intemet & che la maggior parte degli studenti é curiosa di imparare cid che riguarda Internet e i suoi protocolli. Questi studenti usano Internet quotidianamente (come minimo per inviare e-mail ¢ navigare sul Web) e ascoltano ripetute storie su come Internet sia una tecnologia rivo- luzionaria e sconvolgente che sta cambiando profondamente il mondo. Data I'enorme rilevanza di Internet, gli studenti sono naturalmente curiosi su quel che c’ «sotto il cofano»; quindi, @ facile per un docente ottenere il loro interesse usando come argo- mento focale i principi base dell’uso di Internet. Poiché il nostro testo @ centrato su Internet, & organizzato intorno all’ architettura a cinque strati di Internet invece che Prefazione all’edizione americana intomo a quella pit tradizionale OSI a sette strati. I cinque strati sono: applicazione, trasporto, rete, collegamento e fisico. Indirizzamento dei principi Due delle caratteristiche uniche di questo libro (I’approccio top-down ¢ la sua atten- zione a Internet) appaiono nel sottotitolo del libro originale. Se avessimo potuto met- tere una terza frase nel sottotitolo, questa avrebbe contenuto Ia parola principi. IL campo del networking 2 ora abbastanza maturo perché possano essere identificati molti importanti argomenti. Per esempio, nello strato di trasporto, I’argomento fonda- mentale comprende la comunicazione affidabile su uno strato di rete inaffidabile, l'instaurazione/interruzione della connessione e I’handshake, il controllo della con- gestione e del flusso ¢ il multiplexing. Nello strato di rete, due argomenti di impor- tanza basilare sono come trovare “buoni” percorsi fra due router ¢ come gestire l’in- terconnessione di un grande numero di sistemi eterogenei. Nello strato di collega- mento, un problema fondamentale é come condividere un canale ad accesso multiplo. Per cid che concemne la sicurezza della rete, le tecniche per garantire la riservatezza, T’autenticazione ¢ I'integrita del messaggio sono tutte basate sui fondamenti della crittografia. Questo testo identifica gli argomenti fondamentali del networking cosi come gli approcci per affrontare questi argomenti. Crediamo che la combinazione dell’uso di Internet per catturare l'attenzione degli studenti e l’enfatizzazione degli argomenti ¢ degli approcci risolutivi permetteranno agli studenti una rapida compren- sione di qualsiasi tecnologia alla base networking. Il sito Web Tltesto & integrato da un sito Web, all’indirizzo http://www.ateneonline.it/kurose, che comprende: + Materiale didattico interattivo. 11 sito contiene un link ad applet Java interattive che illustrano i concetti fondamentali del networking. Inoltre, i quiz interattivi consentono agli studenti di verificare il livello di apprendimento degli argomenti studiati. * Link a materiale pertinente. Come tutti noi entusiasti di Internet sappiamo, molto del miglior materiale che descrive Internet si trova in Internet. Ci siamo sforzati di inserire il pid possibile gli URL Web dei riferimenti citati nel libro. La biblio- grafia 2 online e sara aggiomata al variare dei link, e quando sara disponibile nuo- vo materiale. I link puntano non solo a REC, riviste e atti delle conferenze, ma an- che a siti che sono di natura pid pedagogica, comprese pagine realizzate in pro- prio di particolari aspetti della tecnologia Internet e articoli pubblicati su riviste online. I professori possono assegnare il materiale relativo ai link come letture fa- coltative o obbligatorie. Controlleremo I’esattezza dei link diverse volte I'anno. + Inerviste. Abbiamo inserito ancora altro materiale originale che dovrebbe ispira- re ¢ motivare gli studenti: interviste con illustri innovatori, italiani e stranieri, nel settore del funzionamento delle reti. Prefazione all'edizione americana xvii Caratteristiche pedagogiche Siamo stati insegnanti di computer networking per oltre 20 anni. In questo testo ab- biamo riversato l'esperienza combinata di 30 anni di insegnamento a oltre 3000 stu- denti. In questo periodo abbiamo anche svolto attivita di ricerca nel settore del networking. (Infatti, noi autori ci incontrammo per la prima volta come studenti di un master di computer networking tenuto da Mischa Schwartz nel 1979 alla Columbia University.) Pensiamo che questo ci fornisca una buona prospettiva su cid che @ stato ¢ su cid che sara in futuro il networking. Ciononostante, abbiamo resistito alla tenta- zione di influenzare il materiale di questo libro con i nostri amati progetti di ricerca. Se siete interessati alle nostre ricerche immaginiamo che potrete visitare i nostri siti Web personali. Quindi questo libro @ relativo al moderno funzionamento delle reti: tratta proto- colli e tecnologie attuali cosi come i principi che sottostanno a questi protocolli e tec- nologie. Crediamo anche che studiare (e insegnare) il networking possa essere diver- tente. II senso dell’ umorismo, uso di analogie ed esempi tratti dal mondo reale ren- deranno auspicabilmente questo materiale pit divertente. Inserti storici e Principi in pratica I settore del funzionamento delle reti di calcolatori, che ha avuto inizio nei tardi anni 60, ha una storia ricca ¢ affascinante; nel testo abbiamo fatto uno sforzo particolare per raccontarvela. Lo abbiamo fatto attraverso un paragrafo storico nel Capitolo 1 per mezzo di una dozzina di inserti storici sparsi negli altri capitoli. In questi pezzi storici trattiamo I'invenzione della commutazione di pacchetto, I'evoluzione di Tnternet, la nascita dei colossi delle reti come la Cisco e Ja 3Com ¢ molti altri eventi importanti. Gli studenti saranno spronati da questa lettura. Ancora, come affermano gli storici, la storia aiuta a predire il futuro; e predire correttamente il futuro in questo settore in rapida evoluzione @ critico per il successo di qualsiasi protocollo o tecnolo- gia di rete. Come gid rilevato, un’importante caratteristica di questo libro @ l'enfasi data ai principi base del networking e al ruolo pratico di questi principi. Ciascun capitolo completo di uno speciale inserto che evidenzia un importante principio del net- working. Questi inserti aiuteranno gli studenti ad apprezzare alcuni dei concetti fon- damentali applicati all’attuale funzionamento delle reti. Materiale supplementare per i docenti Abbiamo considerato che cambiare I'approccio all’insegnamento 0 anche aggiomnare un corso richiede tempo. Per aiutare i docenti nella transizione abbiamo previsto un pacchetto di materiale supplementare loro destinato che comprende: + Diapositive in Power Point. 11 sito Web del volume contiene le slide in Power Point di tutte le figure dei capitoli. Le slide sono accessibili ai docenti, che pos- sono utilizzarle per preparare le lezioni. Prefazione all'edizione americana + Esercizi di laboratorio (in inglese). Il sito Web fornisce anche molti dettagliati esercizi di laboratorio, compreso un esercizio sulla costruzione di un server Web multithread, uno sulla realizzazione di un client e-mail con interfaccia GUT, la programmazione dei lati client e server di un protocollo di trasporto affidabile dei dati, ¢ un esercizio sull’instradamento in Internet. + Soluzioni dei problemi (in inglese). Tramite il sito, i docenti possono richiedere la copia cartacea del manuale con le soluzioni degli esercizi proposti nel testo. ‘Tutto questo materiale & disponibile nella porzione del sito www.ateneonline.it/kuro- se riservata ai docenti. L’accesso a questa parte del sito & reso disponibile compilando ill modulo di registrazione pubblicato online. Relazioni tra i capitoli Tl primo capitolo di questo testo contiene una panoramica completa ¢ autosufficiente dell’interconnessione delle reti di calcolatori. Introducendo molti concetti chiave ¢ la terminologia, questo capitolo imposta il percorso del resto del volume. Tutti gli altri capitoli dipendono dal primo. Raccomandiamo al docente, dopo il completamento del Capitolo 1, di proporre i Capitoli da 2 a 5 in sequenza, procedendo nell’ insegna- mento secondo la filosofia dall’alto in basso. Ciascuno di questi cinque capitoli sfrut- ta il materiale di quelli precedenti Dopo il completamento dei primi cinque capitoli, il docente ha un po’ pit di fles- sibilita. Non ci sono interdipendenze fra gli ultimi tre capitoli, cosi che possono esse- re proposti in qualsiasi ordine. Comungue, ciascuno degli ultimi tre capitoli dipende dal materiale dei primi cinque. Tdealmente il docente avra la possibilita di insegnare il materiale selezionato dagli ultimi tre capitoli in un corso semestrale completo. ‘Notiamo anche che il primo capitolo del testo, essendo onnicomprensivo e auto- sufficiente, pud servire come base per un corso breve sul networking. Una nota finale Incoraggiamo docenti e studenti a creare nuovi applet Java che illustrino i concetti e i protocolli in questo libro. Se avete un’ applet che pensate possa essere apprezzata per questo testo, per favore sottoponetela agli autori. Se le applet (complete di notazione e terminologia) sono appropriate, saremo felici di inserirle nel sito Web del libro, con un riferimento opportuno ai loro autori. Vi incoraggiamo anche a inviarci nuovi pro- blemi (e soluzioni) che potranno completare quelli attuali; saranno situati nella por- zione del sito Web riservata agli insegnanti Invitiamo studenti ¢ insegnanti a inviarci per e-mail qualsiasi commento relativo al nostro libro. Sentitevi liberi di segnalarci URL interessamti, puntualizzazioni, dis- sensi da qualsiasi nostra affermazione e di dirci che cosa secondo voi funziona e cosa no. Diteci che cosa pensate dovremmo’o non dovremmo inserire nella prossima edi- zione. Inviate le vostre e-mail agli indirizzi kurose@cs.umass.edu e ross@eure com.fr, Prefazione all'edizione americana xix Ringraziamenti Da quando abbiamo iniziato a scrivere questo libro nel 1996, molte persone ci hanno dato un ajuto inestimabile e hanno avuto influenza nella formazione del nostro pen- siero su come meglio organizzare ¢ insegnare un corso sul funzionamento delle reti. Vogliamo dire un GRANDE GRAZIE a chiunque ci ha aiutato. Siamo anche molto grati alle centinaia di lettori da tutto i mondo (studenti, professori, specialisti) che ci hanno inviato riflessioni e commenti sulla precedente edizione del libro € suggeri- ‘menti per edizioni future. Uno speciale ringraziamento va a: Al Aho (Lucent Bell Laboratories) Pratima Akkunoor (Arizona State University) Paul Amer (University of Delaware) Shamiul Azom (Arizona State University) Paul Barford (University of Wisconsin) Steven Bellovin (AT&T Research) Shahid Bokhari (University of Engineering & Technology, Lahore) Emst Biersack (Eurécom Institute) Daniel Brushteyn (ex studente della University of Pennsylvania) Evandro Cantu (Federal University of Santa Catarina) Jeff Case (SNMP Research International) Vinton Cerf (MCI WorldCom) John Daigle (University of Mississippi) Edmundo A. de Souza e Silva (Federal University of Rio de Janiero) Philippe Decuetos (Eurécom Institute) Christophe Diot (Sprint) Michalis Faloutsos (University of California a Riverside) Wo-chi Feng (Oregon Graduate Institute) Sally Floyd (ICIR, University of California a Berkeley) J Garcia-Luna-Aceves University of California a Santa Cruz) Mario Gerla (University of California a Los Angeles) ‘Tim Griffin, AT&T Research Max Hailperin (Gustavus Adolphus College) Bruce Harvey (Florida A&M University, Florida State University) Carl Hauser (Washington State University) Phillipp Hoschka (INRIA/W3C) Albert Huang (ex studente della University of Pennsylvania) Jobin James (University of California a Riverside) Sugih Jamin (University of Michigan) Shivkumar Kalyanaraman (Rensselaer Polytechnic Institute) Jussi Kangasharju (Furécom Institute) Hyojin Kim (ex studente University of Pennsylvania) Leonard Kleinrock (University of California a Los Angeles) David Kotz (Dartmouth College) Beshan Kulapala (Arizona State University) Steve Lai (Ohio State University) Tim-Bemers Lee (World Wide Web Consortium) Brian Levine (University of Massachusetts) Prefazione all'edizione americana William Liang (ex studente University of Pennsylvania) Willis Marti (Texas A&M University) Deep Medhi (University of Missouri, Kansas City) Bob Metcalfe (International Data Group) Erich Nahum (IBM Research) Christos Papadopoulos (University of Southern California) Craig Partridge (BBN Technologies) Radia Perlman (Sun Microsystems) Jitendra Padhye (Microsoft Research) George Polyzos (University of California at San Diego) Sriram Rajagopalan (Arizona State University) Ken Reek (Rochester Institute of Technology) Martin Reisslein (Arizona State University) Jennifer Rexford (AT&T Research) Sumit Roy (University of Washington) Avi Rubin (Johns Hopkins University) Despina Saparilla (Lucent Bell Labs) Henning Schulzrinne (Columbia University) Mischa Schwartz (Columbia University) K. Sam Shanmugan (University of Kansas) Prashant Shenoy (University of Massachusetts) Clay Shields (Georgetown University) Subin Shrestra (University of Pemmsylvania) Peter Steenkiste (Carnegie Mellon University) Tatsuya Suda (University of California a Irvine) Kin Sun Tam (State University of New York ad Albany) Don Towsley (University of Massachusetts) David Turner (California State University, San Bernardino) Ira Winston (University of Pennsylvania) Raj Yavatkar (Intel) ‘Yechiam Yemini (Columbia University) Ellen Zegura (Georgia Institute of Technology) Hui Zhang (Carnegie Mellon University) Lixia Zhang (University of California a Los Angeles) ZhiLi Zhang (University of Minnesota) Lixia Zhang (University of California a Los Angeles) ‘Shuchun Zhang (ex studente University of Pennsylvania) Phil Zimmermann (independent consultant) ‘Vogliamo anche ringraziare 1’intero team Addison-Wesley, che ha fatto un lavoro as- solutamente straordinario (e che ha sopportato due autori molto pignoli!): Kim Ellwood, Susan Hartman Sullivan, Michael Hirsch, Patty Mahtani, Galia Shokry, € Joyce Wells. Grazie anche ai grafici, Janet Theurer e Patrice Rossi Calkin, por il loro lavoro sulle bellissime figure della seconda edizione. Uno speciale ringraziamento va a Susan, nostro editor alla Addison-Wesley. Questo libro non avrebbe mai potuto es~ sere completato senza il suo management, incoraggiamento, pazienza e perseveranza. Indice Gli Autori v Presentazione dell’ edizione italiana xi Prefazione all’edizione americana xiii 1 @ Reti di calcolatori e Internet 1.1 Che cos’é Internet 2 1.1.1 Una descrizione pratica 2 1.1.2. Deserizione del servizio 5 1.1.3 Che cos’é un protocollo? 5 1.1.4 Alcuni buoni hyperlink 8 1.2. La sezione di accesso della rete 9 1.2.1. Terminali, client e server 9 1.2.2. Servizio senza connessione e servizio orientatoalla connessione 10 1.3 La sezione interna della rete 13 1.3.1 Commutazione di circuito e commutazione di pacchetto 13 13.2 Inoltro dei pacchetti nelle reti di calcolatori 24 14 Accesso alla rete ¢ mezzi trasmissivi 28 1.4.1 Accesso alla rete 28 14.2. Mezzi fisici 34 LS GIiISPe la rete dorsale di Internet 37 1.6 Ritardi e perdite nelle reti a commutazione di pacchetto 40 1.6.1. Tipi di ritardo 40 1.6.2 Ritardo di coda e perdita dei pacchetti 43 1.6.3 Ritardo ¢ router in Internet 46 1.7 Strati protocollari (pile) e loro modelli di servizio 47 1.7.1 Architettura stratificata 48 1.7.2 Lapila protocollare di Internet 52 1.7.3. Entita della rete e strati 55 1.8 Storia dell’ interconnessione dei calcolatori e di Internet 55 1.8.1 Lo sviluppo della commutazione di pacchetto: 1961-1972 56 1.8.2 Reti proprietarie e interconnessione delle reti: 1972-1980 37 1.8.3. La proliferazione delle reti: 1980-1990 58 1.8.4 Lesplosione di Internet: gli anni ’90 60 1.8.5. Sviluppi recenti 61 1.9 Sommario 62 Il percorso del libro 63 Beercizi 64 Domande di riepilogo 64 Problemi 65 6 Proposte di approfondimento radi Indice 2 ¢ Strato di applicazione 2.1. Principi dei protocolli dello strato di applicazione 2.1.1 Protocolli dello strato di applicazione 2.1.2 Quali servizi servono a un" applicazione? 2.1.3. Servizi fomiti dai protocolli di trasporto Internet 2.14 Applicazioni di rete trattate in questo libro 2.2: I Web e HTTP 2.2.1. Una panoramica di HTTP 2.2.2 Connessione non persistente e persistente 2.2.3 Formato del messaggio HTTP 2.2.4 Interazione user-server: autorizzazione e cookie 2.2.5 GET condizionato 2.2.6 Contenuti di HTTP ‘Trasferimento di file: FTP 2.3.1. Comandi e riposte in FTP 2.4 Posta elettronica in Internet 2.4.1. SMTP 2.4.2 Confronto con HTTP 2.4.3 Formati dei messaggi di posta e MIME 2.4.4 Protocolli di accesso alla posta DNS: il servizio directory di Internet 2.5.1 Servizi forniti dal DNS 2.5.2. Uno sguardo a come funziona il DNS 2.5.3 Record DNS 2.5.4 Messaggi DNS 2.6. Programmazione dei socket con TCP 2.6.1 Programmazione dei socket con TCP 2.6.2 Un esempio di applicazione client/server in Java 2.7 Programmazione del socket con UDP 2.8 Costruire un semplice server Web 2.8.1 Funzioni del server Web 2.9 Distribuzione di contenuti 2.9.1. Le cache del Web 2.9.2. Reti per la distribuzione di contenuti 2.9.3 Condivisione di file da pari a pari 2.10 Sommario Esercizi Domande di riepilogo Problemi Proposte di approfondimento Esercizi di programmazione 2. 2 a 2 RD 7 719 82 82 86 89 93 o7 98. 100 103 105 106 1 6 116 8 123 125, 127 128 129 136 144 144 148 149 154 157 164 165 165 167 170 171 Indice 3 ¢ Strato di trasporto 3.1 Introduzione e servizi dello strato di trasporto 174 3.1.1 Relazione fra gli strati di trasporto e di rete 174 3.1.2. Panoramica dello strato di trasporto in Internet 177 3.2. Multiplexing ¢ demultiplexing 178 3.3. Trasporto senza connessione: UDP 185 3.3.1 Struttura del segmento UDP 188 3.3.2. Checksum di UDP 189 3.4. Principi di un trasferimento affidabile dei dati 190 3.4.1 Costruzione di un protocollo per il trasferimento affidabile dei dati 192 3.4.2. Protocolli pipeline per il trasferimento affidabile dei dati 202 3.4.3. Go-Back-N (GBN) 204 3.44 Ripetizione selettiva (SR) 208 3.5. Trasporto orientato alla connessione: TCP 215 3.5.1 La connessione TCP 215 3.5.2. Struttura del segmento TCP 27 3.5.3. Stima del tempo di round trip e timeout 222 3.5.4. Trasferimento affidabile dei dati 224 3.5.5. Controllo di flusso 232 3.5.6 Gestione della connessione TCP 234 3.6 Principi del controllo della congestione 239 3.6.1 Le cause e i costi della congestione 239 3.6.2. Approcei al controllo della congestione 245 3.6.3 Esempio di controllo della congestione assistito dalla rete: controllo della congestione nell’ ABR dell’ ATM 246 3.7 Controllo della congestione del TCP 248 3.7.1 Fairness 254 3.7.2. Modellazione del ritardo di TCP 257 3.8 Sommario 265 Esercizi 267 Domande di riepilogo 267 Problemi 268 Proposte di approfondimento 215 4 @ Strato di rete e instradamento 4.1 Introduzione e modelli di servizio della rete 278 4.1.1 Modello di servizio della rete 280 4.1.2 Origine dei servizi datagram ¢ circuito virtuale 284 4.2 Principi di instradamento 285 4.2.1 Algoritmo di instradamento basato sullo stato dei link 288 4.2.2 Algoritmo di instradamento Distance Vector 292 4.2.3 Altri algoritmi di instradamento 301 xxiv Indice 4.3 Instradamento gerarchico 301 4.4 Protocollo Internet (IP) 305 4.4.1 Indirizzamento IPv4 306 4.4.2 Trasporto di un datagram dalla sorgente alla destinazione: indirizzamento, instradamento ¢ rilancio 314 4.4.3 Formato del datagram 317 444 Frammentazione del datagram IP 320 4.4.5 ICMP: protocollo dei messaggi di controllo di Internet 322 44.6 Protocollo di configurazione dinamica degli host 324 4.4.7 Network Address Translators (NAT) 327 4.5 Instradamento in Internet 329 4.5.1 Instradamento intra-sistema autonomo in Internet: RIPe OSPF 329 4.5.2 Instradamento inter-sistemi autonomi: BGP 336 4,6 Che cosa contiene un router? 341 4.6.1 Porte di ingresso 343 4.6.2 Dispositivo di commutazione 345 46.3 Porte di uscita 347 4.6.4 Dove si verifica ’'accodamento? 348 4.7 IPv6 351 4.7.1. Formato del datagram TPv6 352 4.7.2 Latransizione da IPv4 a IPv6 355 4.8 Instradamento multicast 358 4.8.1 Tntroduzione: I’astrazione multicast di Internet e i gruppi multicast 358 4.8.2 I protocollo IGMP 361 4.8.3. Instradamento multicast: il caso generale 365 4.8.4. Instradamento multicast in Internet 371 4.9 La mobilit’ e lo strato di rete 374 4.9.1. Considerazioni sulla mobilita nel progetto dello strato di rete 314 4.9.2 Gestione della mobilita 376 4.9.3. Mobile IP 383 4.10 Sommario 386 Esercizi 388 Domande di riepilogo 388 Problemi 390 Proposte di approfondimento 396 Esercizio di programmazione 396 5 ¢@ Strato di collegamento e reti di area locale 5.1 Lo strato di collegamento: introduzione, servizi 401 5.1.1 I servizi forniti dallo strato di collegamento 401 5.1.2 Adattatori per 1a comunicazione 404 5.2 Teeniche di rivelazione e correzione degli errori 405 5.2.1 Controllo di parita 407 Indice 5.2.2. Metodi di checksum. 409 5.2.3. Controllo a ridondanza ciclica (CRC) 409 5.3 Protocolli di accesso multiplo 412 5.3.1 Protocolli di suddivisione del canale 414 5.3.2 Protocolli di accesso casuale 419 5.3.3. Protocolli a turno 426 5.3.4. Reti di area locale (LAN) 427 5.4 Indirizzi LAN ¢ ARP 428 5.4.1 Indirizzi LAN 428 5.4.2 Protocollo per la risoluzione dell’indirizzo 430 5.5. Ethernet 434 5.5.1. Le basi di Ethernet 434 5.5.2. CSMA/CD: protocollo di accesso multiplo di Ethernet 438 5.5.3 Tecnologie Ethernet 441 5.6 Hub, bridge e commutatori 445 5.6.1. Gli hub 445 5.6.2 I bridge 447 5.6.3 Commutatori 454 5.7 Link wireless 458 5.7.1 LAN wireless: IEEE 802.11b 459 5.7.2 Blentooth 464 5.8 PPP: il protocollo punto-a-punto 466 5.8.1 Delimitazione (framing) dei dati in PPP 468 5.8.2 Protocollo di controllo del link (LCP) e protocolli di controllo di rete del PPP 470 5.9 Modo di trasferimento asincrono (ATM) 472 5.9.1 Caratteristiche principali dell’ ATM 43 5.9.2 Strato fisico dell’ATM 475 5.9.3 Strato ATM 416 5.9.4. Strato di adattamento dell’ ATM 471 59.5 IPsu ATM 480 5.10 Frame relay 482 5.10.1 Il contesto storico 482 5.10.2 Frame relay 483 5.11 Sommario 487 Esercizi 489 Domande di riepilogo 489 Problemi 490 Proposte di approfondimento 496 6 @ Reti per la multimedialita 6.1 Applicazioni multimediali funzionanti in rete 498 6.1.1 Esempi di applicazioni multimediali 498 6.1.2 Ostacoli per la multimedialita nell'Intemnet odiema 501 xvi Indice 6.1.3 Come dovra evolvere Internet per supportare meglio le applicazioni multimediali? 6.1.4 Compressione audio e video 6.2 Lo streaming di audio e video memorizzati 6.2.1 Accedere ad audio e video attraverso un server Web 6.2.2. Invio di contenuti multimediali da uno streaming server a un’ applicazione helper 6.2.3. Protocollo di streaming in tempo reale (RTSP) 6.3 Utilizzare al meglio il servizio best-effort: un esempio di telefonia Internet 6.3.1 Le limitazioni di un servizio best-effort 6.3.2 Audio: rimozione del jitter al receiver 6.3.3. Recupero dalla perdita di pacchetti 6.3.4. Lo streaming di audio e video memorizzato 6.4 Protocolli per applicazioni interattive in tempo reale 64.1 RTP 6.4.2 Protocollo di controllo di RTP (RTCP) 643 SIP 644 H323 6.5 Oltre il best-effort 6.5.1 I scenario: un’applicazione audio a 1 Mbit/s e un trasferimento FTP 6.5.2 I scenario: un’applicazione audio a 1 Mbit/s e un trasferimento FTP ad alta priorita 6.5.3 ILI scenario: un’ applicazione audio che si comporta in modo scorretto e un trasferimento FTP. 6.5.4 IV scenario: due applicazioni audio a 1 Mbit/s su un link sovracearico a 1,5 Mbit/s 6.6 Meccanismi di scheduling e policing 6.6.1 Meceanismi di scheduling 6.6.2 Policing: il leaky bucket 6.7 Servizi integrati 6.7.1 Qualitd del servizio garantita 6.1.2. Servizio di carico controllato 6.8 RSVP 68.1 Liessenza di RSVP 6.8.2 Pochi semplici esempi 6.9 Servizi differenziati 6.9.1 Servizi differenziati: un semplice scenario 6.9.2. Classificazione e condizionamento del traffico 6.9.3 Comportamenti per-hop 6.9.4. Critiche ai servizi differenziati 6.10 Sommario Esereizi Domande di riepilogo Problemi 502 504 506 507 510 512 516 516 S18 521 524 525 525 530 532, 538 539 S41 542 542 544 545, 545, 549 552 554 555 555 555 587 560 561 563 565 566 567, 569 569 569 Indice xxvii Proposte di approfondimento 573 Esercizio di programmazione 573 7 ¢ Sicurezza nelle reti di calcolatori 7. Che cos’é la sicurezza in rete? 576 7.2 Principi di crittografia 5719 7.2.1 Crittografia a chiave simmetrica 581 7.2.2. Crittografia a chiave pubblica 586 7.3. Autenticazione 591 7.3.1. Protocollo di autenticazione ap/.0 592 73.2. Protocollo di autenticazione ap2.0 592 7.3.3. Protocollo di autenticazione ap3.0 593 7.3.4 Protocollo di autenticazione ap3.1 594 7.3.5. Protocollo di autenticazione ap4.0 594 7.3.6 Protocollo di autenticazione ap5.0 595 7.4 Integrita 598, 7.4.1 La generazione della firma digitale 599 7.4.2 Digest del messaggio 600 7.4.3 Algoritmi per la funzione hash 602 7.5 Distribuzione e certificazione delle chiavi 604 75.1 ILceniro di distribuzione delle chiavi 606 75.2. Certificazione della chiave publica 607 7.6 Controllo dell’ accesso: firewall 610 7.6.1 Filtraggio del pacchetto 611 7.6.2. Gateway delle applicazioni 614 7.7 Attacchi e contromisure 616 7.7.1. Mapping 617 7.1.2. Packet sniffing 617 7.1.3. Spoofing 618 7.74 Attacchi denial-of-service e distributed denial-of-service 619 775° Hijacking 620 7.8 La sicurezza in molti strati: studi di caso 621 7.8.1 Sicurezza delle e-mail 622 78.2. Strato dei socket sicuro (SSL) ¢ sicurezza dello strato di trasporto (TLS) 627 7.8.3. Sicurezza dello strato della rete: IPsec 631 7.84 La sicurezza nella IEEE 802.11 634 7.9 Sommario 636 Esercizi 637 Domande di riepilogo 637 Problemi 638 Proposte di approfondimento 640 xviii Indice 8 ¢ Gestione della rete 8.1 8.2 83 8.4 8.5 Cos’® la gestione della rete? Le infrastrutture di gestione della rete La struttura di gestione della rete in Internet 8.3.1 Struttura delle informazioni di gestione: SMI 8.3.2 Base di informazioni per la gestione: MIB 8.3.3. Funzionamento del protocollo SNMP e correlazioni di trasporto 8.3.4 Sicurezza e amministrazione ASN.1 Sommario Esercizi Domande di riepilogo Problemi Proposte di approfondimento Bibliografia Indice analitico 641 646 648 650 653 655 657 662 666 667 667 668 668, 669 697 Capitale Reti di calcolatori e Internet Quello del computer networking é uno dei campi tecnologici pid importanti e sti- molanti della nostra epoca. Internet interconnette milioni (e presto miliardi) di cal- colatori, fomendo cosi un‘infrastruttura globale di comunicazione, archiviazione ¢ calcolo. Inoltre, Internet si sta attualmente integrando con la tecnologia mobile wireless, dando vita a una serie stupefacente di nuove applicazioni. Certamente, il computer networking ha fatto molta strada dalla sua nascita negli anni ’60. Ma que- sto @ solo l’inizio: una nuova generazione di ingegneri ¢ scienziati creativi guide- ranno Internet verso terreni inimmaginabili. Questo libro fornira agli studenti oggi i mezzi necessari per viaggiare ed esplorare le nuove frontiere di questo cam- po eccitante. Questo primo capitolo presenta una panoramica del computer networking e di Internet. TI nostro scopo qui @ quello di dipingere un quadro in grandi linee del com- puter networking, per dare una visione d’insieme. Toccheremo molti argomenti in questo capitolo introduttivo, e discuteremo una molteplicit4 di “pezzi” di una rete di calcolatori, senza perdere di vista il quadro complessivo. I capitolo getta le basi per il resto del libro ¢ pud anche essere usato come supporto per un corso breve sul com- puter networking. In questo capitolo, dopo aver introdotto alcune terminologie e concetti fonda- mentali, esamineremo la “sezione di accesso” di una rete di calcolatori. Analiz zeremo i terminali e le applicazioni di rete, e i servizi di trasporto offerti a queste ap- plicazioni. Quindi esploreremo la “sezione interna” di una rete di calcolatori, esami- nando i collegamenti (link) e i commutatori (switch) per il trasporto dei dati, cosi co- me le reti di accesso e i mezzi fisici che connettono i terminali alla sezione interna della rete. Scopriremo che Internet é una rete di reti, e scopriremo come queste reti si collegano I’una all’altra. 2 1 @ Reti di calcolatori e Internet Dopo aver completato questa panoramica delle sezioni di accesso e interna di una re- te di calcolatori, esamineremo le cause del ritardo di trasferimento dei dati e della perdita in una rete di calcolatori, e forniremo semplici modelli quantitativi per il ritar- do da estremo a estremo. Questi modelli tengono in considerazione i ritardi di tra- smissione, di propagazione e di coda. Quindi introdurremo alcuni principi architettu- rali fondamentali nel computer networking, quali la stratificazione protocollare e i modelli di servizio. Infine, chiuderemo questo capitolo con una breve storia del com- puter networking. 1.1 @ Che cos’é Internet In questo libro usiamo la Intemet pubblica, una specifica rete di calcolatori (che pro- babilmente molti letiori conoscono), come principale veicolo per discutere i protocol- Ii per il networking. Ma cos’é Internet? Ci piacerebbe riuscire a definire Internet in una sola frase, una definizione che potreste acquisire e condividere con i vostri fami- liari o amici, Ma, ahim®, Internet é molto complessa, sia in termini dei suoi compo- nenti hardware e software, sia nei servizi che fornisce 1.1.1 Una descrizione pratica Invece di fornire una definizione racchiusa in una sola frase, tentiamo un approccio descrittivo. Si pud procedere in due modi. Il primo & descrivere praticamente Internet, cio’ hardware di base e i componenti software che la costituiscono. Un se- condo modo & descrivere Internet in termini di infrastrutture di rete che forniscono servizi ad applicazioni distribuite. Cominciamo con la descrizione pit pratica, usando Ja Figura 1.1 per illustrarla. La Internet pubblica é una rete di calcolatori che abbraccia il mondo, cio’ una re- te che collega tra loro milioni di unita di calcolo sparse in tutto il globo. Molte di que- ste unita di calcolo sono PC tradizionali, stazioni di lavoro basate su Unix e i cosid- detti server che archiviano e inviano informazioni come pagine Web (WWW) e mes- saggi e-mail. Sono in aumento anche le unita di calcolo non convenzionali, come PDA (Personal Digital Assistant), Web TV, calcolatori portatili, cercapersone ¢ 1oa- ster, che vengono collegate a Internet. (I toaster [Toasty 2002] non sono i soli dispo- sitivi piuttosto insoliti che possono essere collegati a Intemet; vedi Internet Home Appliance [Appliance 2002}.) Nel gergo di Internet, tutti questi dispositivi sono chia- mati host o end system (terminali). Nel gennaio 2002 i terminali che usavano Internet erano da 100 a 500 milion, e il loro numero continua a crescere esponenzial- mente [ISC 2002]. Tterminali sono collegati tra loro attraverso link di comunicazione. Vedremo nel Paragrafo 1.4 che esistono differenti tipi di link di comunicazione, che sono costituiti da diversi tipi di mezzi trasmissivi, compresi cavi coassiali, cavi di rame, fibre ottiche e onde radio. Diversi link possono trasmettere dati a differenti velocita. La velocita di trasmissione di un link é spesso detta larghezza di banda del link e di solito si misu- ra in bit/secondo. Normalmente i terminali non sono collegati direttamente fra loro attraverso un singolo link di comunicazione. ssi sono collegati indirettamente attra- 1.1 # Che cos'é Internet Rete privata

eS a a es & Host Server Mobile Router Modern Stazione _Collegamento (oterminale) base satelltare Figura 1.1 ¢ Alcuni epezzin di Internet. verso dispositivi di commutazione detti router. Un router preleva un “pezzo” delle informazioni che arrivano su uno dei suoi link di comunicazione in ingresso € lo rein- dirizza a uno dei suoi link di comunicazione in uscita. Nel gergo del computer networking il “pezzo” di informazioni & chiamato pacchetto, L'itinerario compiuto dal pacchetto a partire dal terminale di origine, attraverso una serie di link di comuni- cazione e router, fino al terminale ricevente & conosciuto come cammino (route) 0 percorso (path) attraverso la rete. Piuttosto di fornire un percorso dedicato fra termi- nali in comunicazione tra loro, Internet usa una tecnica conosciuta come commuta- zione di pacchetto (packet switching) che permette a pid terminali di condividere ‘un cammino, o parte di un cammino. I primi prototipi di reti a commutazione di pac- chetto, creati negli anni '70, costituiscono gli antenati dell’attuale Internet. 1 @ Reti di calcolatori ¢ Internet I terminali accedono a Internet attraverso gli Internet Service Providers (ISP) che includono gli ISP per utenza residenziale, quali AOL o MSN, gli ISP universitari, quale quello dell’ Universita di Stanford, e gli ISP aziendali, quale per esempio quello della Ford Motor Company. Ogni ISP 2 una rete di router e di link di comunicazione. I diversi ISP forniscono ai terminali una varieta di differenti tipi di accesso alla rete, incluso l’accesso via modem a 56 kbit/s, I’accesso residenziale a larga banda come ill modem via cayo o il DSL, l’accesso via LAN ad alta velocita e l’accesso wireless. Gli ISP consentono I’accesso a Internet anche ai fornitori di contenuti, connettendo direttamente a Internet i siti Web. Per permettere la comunicazione tra gli utenti di Internet e per permettere agli utenti di accedere ai contenuti di Internet sparsi per il mondo, questi ISP di livello in- feriore sono interconnessi attraverso ISP nazionali e internazionali di livello superio- re, quali UUNet e Sprint. Un ISP di livello superiore consiste in router ad alta velocitd interconnessi me- diante link ad alta velocita in fibra ottica. La rete di ogni ISP, di livello sia superiore sia inferiore, 2 gestita indipendentemente, impiega il protocollo IP (vedi sotto) e ade- risce a determinate convenzioni di nomenclatura e indirizzamento. Esamineremo gli ISP e la loro interconnessione pit in dettaglio nel Paragrafo 1.5. I terminali, cosi come molti altri “pezzi” di Internet, eseguono protocolli che controllano l’invio e la ricezione di informazioni all'interno di Intemet. Due dei pid importanti protocolli di Internet sono il TCP (Transmission Control Protocol, proto- collo di controllo della trasmissione) e I'IP (Internet Protocol, protocollo Internet). Il protocollo IP specifica il formato dei pacchetti che sono scambiati fra router e fra ter- minali. T due protocolli principali di Internet sono conosciuti collettivamente come TCP/IP. Vedremo i dettagli sui protocolli in questo capitolo introduttivo; ma sar’ so- Jo un punto di partenza, gran parte di questo volume & infatti dedicato ai protocolli per reti di calcolatori. La Internet pubblica (a rete di reti globale trattata sopra) & la rete cui ci si riferi- sce normalmente parlando di Internet. Esistono anche molte reti private, come quelle di alcune societa 0 quelle governative, i cui host non possono scambiare messaggi con gli host esterni alla rete privata, a meno che i messaggi non possano attraversare i cosiddetti firewall che servono a selezionare il traffico dae verso la rete. A queste re- ti private ci si riferisce di solito come Intranet, poiché usano gli stessi tipi di host, router, link, protocolli e standard di Internet publica. A livello tecnico e di sviluppo, Internet 2 resa possibile dalla creazione, prova € implementazione degli Internet standard. Questi standard sono sviluppati all’ In- ternet Engineering Task Force (IETF) [IETF 2002]. I documenti degli standard IETF sono chiamati RFC (Request for Comments, richieste di osservazioni). Le RFC ini- ziarono come richieste generali di osservazioni (da qui il nome) atte a risolvere pro- blemi di architettura che dovevano essere affrontati con i precursori di Internet. Le REC, da standard non formalizzati si sono evolute al punto da essere considerate veri standard. Le RFC tendono a essere molto tecniche e dettagliate: definiscono protocolli co- me TCP, IP, HTTP (per il Web) e SMTP (per la posta elettronica). Esistono pid di 3000 differenti RFC. 1.1. Che cos'é Internet 1.1.2 Descrizione del servizio La trattazione precedente ha identificato molti dei pezzi che costituiscono Internet. Lasciamo ora la descrizione pratica e orientiamoci su una visione orientata ai servi: + Internet permette la distribuzione delle applicazioni che girano sui suoi termi- nali per scambiare dati fra le diverse unit. Queste applicazioni comprendono lo- gin remoti, posta elettronica, navigazione Web, messaggistica in tempo reale, streaming audio e video, telefonia in Internet, giochi fra pit: componenti, condi- visione di file peer-to-peer (P2P) molto, molto altro. Occorre enfatizzare che il ‘Web non é una rete separata, ma @ proprio una delle molte applicazioni distribui- te che usano il servizio di comunicazione fornito da Intemet. + Internet fornisce due servizi per le applicazioni da esso distribuite: un servizio orientato alla connessione e un servizio senza connessione. Il servizio orienta- to alla connessione garantisce che i dati trasmessi saranno consegnati al destina- tario nello loro integrita e intierezza. Il servizio inaffidabile senza connessione non da alcuna garanzia circa l'eventuale consegna. Tipicamente un’applicazione distribuita usa P'uno o altro di questi servizi e non entrambi. + Attualmente, Internet non fornisce alcun servizio che dia garanzie sul tempo ri- chiesto per spedire i dati dal mittente al destinatario, Eccetto il caso in cui otte- niate un aumento della velocit2 di collegamento dal vostro service provider, di solito non c’é modo di avere un miglior servizio (per esempio, ritardo limitato) pagando di pid: uno stato di cose che alcuni (soprattutto americani) trovano biz~ zarro. Nel Capitolo 6 esamineremo la situazione attuale della ricerca in Internet finalizzata a risolvere questo problema. Questa seconda descrizione di Internet, in termini di servizi che essa fornisce ad ap- plicazioni distribuite, non @ convenzionale, ma importante. Sempre piti, il progredire della componentistica di Internet é stato guidato dalla necessit’ di nuove applicazio- ni. Cosi, é importante ricordare che Internet & un’ infrastruttura in cui nuove applica- zioni sono continuamente inventate e sviluppate. Abbiamo dato due descrizioni di Internet, una in termini di componenti hardware ¢ software, laltra in termini di servizi che essa fornisce ad applicazioni distribuite. Ma forse non avete ancora ben chiaro che cosa @ Internet. Cos’é la commutazione di pacchetto, TCP/IP e il servizio orientato alla connessione? Cos’ un router? Che tipi di link di comunicazione sono presenti in Internet? Cos’é un’ applicazione distribuita? Cosa ha a che fare Internet con i giochi dei bambini? Se siete sommersi da tutte que- ste domande, non importa, lo scopo di questo libro @ di introdurvi alla pratica di Internet e ai principi che regolano il suo funzionamento, Spiegheremo tutto questo nei paragrafi e capitoli seguenti. 1.1.3 Che cos’é un protocollo? Ora che abbiamo cominciato a capire cos’ Intemet, consideriamo un altro termine tecnico relativo alla rete: “protocollo”. Cos’é un protocollo? Cosa fa un protocollo? Come potete riconoscere un protocollo se ne incontrate uno?