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? 6 1 Reti di calcolatori e Internet Giag <2, v ¥ Tempo Tempo Tempo Aeenses Figura 1.2 @ Un protocollo umano e il protocollo di rete di un calcolatore. Una analogia umana La nozione di protocollo é probabilmente pit! semplice da comprendere se prima con- sideriamo alcune analogie con I’'uomo, poiché I’uomo esegue protocolli in continua- zione. Consideriamo cosa fate quando chiedete I’ora a qualcuno. Un tipico modo di procedere é illustrato nella Figura 1.2. 11 protocollo umano (0 almeno le buone ma- niere) prevede un’ offerta di saluto (il primo “Ciao” nella Figura 1.2) prima di iniziare Ja comunicazione con qualcun altro. La risposta tipica al primo “Ciao” @ un messag- gio “Ciao” di ritomo. Implicitamente, si assume che il cordiale messaggio di ritorno “Ciao” autorizzi a procedere con la richiesta dell’ ora. Una risposta diversa al saluto iniziale “Ciao” (del tipo “Non seccarmi!” o “Non parlo italiano” oppure una risposta imripetibile) pud indicare l'indisponibilita o 'impossibilita di comunicare. In questo caso il protocollo umano evita di chiedere J’ora. A volte non si riceve alcuna risposta, allora si rinuncia a chiedere I’ora a quella persona. Si noti che nel nostro protocollo umano, ci sono specifici messaggi che inviamo, e specifiche azioni che facciamo in ri- sposta al messaggio di ritorno o ad altri eventi (come nessuna risposta entro un dato tempo). E chiaro che, messaggi trasmessi e ricevuti, e azioni svolte quando questi messaggi sono inviati o ricevuti, o quando accadono altri eventi, hanno un ruolo cen- trale nel protocollo umano. Se le persone operano secondo protocolli diversi (per esempio, se una ha modi di fare che I’altra non ha, o se una capisce il concetto di tem- po e ’altra no) i protocolli non interagiscono e non si pud produrre lavoro utile. Lo 1.1 @ Che cos'é Internet stesso accade nella rete: per poter raggiungere gli obiettivi le due o pit entita presenti devono adottare lo stesso protocollo. Consideriamo una seconda analogia umana. Supponete di trovarvi in una classe di un college (una classe del corso di computer networking, per esempio). L'inse- gnante sta parlando con voce monotona di protocolli e vi sentite confusi. L’insegnan- te si blocca per chiedere “C’é qualche domanda?” (un messaggio che & trasmesso a, € ricevuto da, tutti gli studenti che non stanno dormendo). Voi alzate la mano (trasmet- tendogli un messaggio implicito). Egli accoglie con un sorriso la vostra richiesta “Si . ..” (trasmettendo un segnale di incoraggiamento che vi invita a sottoporre la doman- da: Pinsegnante desidera che gli facciate la domanda). L'insegnante ascolta la vostra domanda (riceve il messaggio contenente la vostra richiesta) e risponde (vi trasmette una risposta). Ancora una volta, abbiamo visto che la trasmissione ¢ la ricezione di messaggi, ¢ I'insieme delle azioni convenzionali compiute per inviare ¢ ricevere i messaggi, sono il fulcro di questo protocollo domanda-risposta. Protocolli di rete Un protocollo di rete @ simile a un protocollo umano, eccezion fatta per le entita che si scambiano messaggi e compiono azioni che sono componenti hardware € softwa- re di alcuni dispositivi (per esempio, computer, router o altti dispositivi di rete). Tutte le attivita in Internet che coinvolgono due o pitt entitd remote atte alla comuni- cazione sono gestite da un protocollo. Il protocollo nei router determina il percorso del pacchetto dalla sorgente al destinatario: i protocolli implementati dall’ hardware nelle schede di interfaccia con la rete di due calcolatori fisicamente connessi con- trollano il flusso di bit sul “cavo” fra le due schede di interfaccia; nei terminali un protocollo di controllo della congestione regola la velocita con cui i pacchetti sono trasmessi tra Ia sorgente ¢ il destinatario. | protocolli funzionano in ogni parte di Internet, di conseguenza questo volume é in gran parte dedicato ai protocolli di rete. Come esempio di protocollo di rete che probabilmente conoscete, considerate cosa accade quando inviate una richiesta al server Web, cio® quando digitate I'indi- rizzo di una pagina Web nel vostro Web browser. Lo scenario @ illustrato nella secon- da meta della Figura 1.2. Prima il vostro calcolatore invia una “richiesta di connes- sione” al server Web e attende Ia risposta. Il server Web ricevera la richiesta e rispe- dira un messaggio di “risposta di connessione”. Riconoscendo ora che la richiesta di documenti Web & possibile, il vostro calcolatore invia il nome della pagina Web da far apparire al server Web in forma di messaggio “GET”. Finalmente il server Web ri- toma al vostro calcolatore il contenuto del documento Web. Visti gli esempi nell’ uomo e nella rete, lo scambio di messaggi ¢ le azioni intra prese quando questi messaggi sono spediti e ricevuti costituiscono gli elementi chia- ve per definire un protocollo: Un protocollo definisce il formato e Vordine dei messaggi scambiati tra due 0 pitt entita comunicanti, cosi come le azioni che hanno luogo a seguito della tra- smissione e/o ricezione di un messaggio o di altri eventi. Internet ¢ le reti di calcolatori, in genere, fanno largo uso dei protocolli. Per soddisfa- re differenti esigenze di comunicazione si usano protocolli diversi. In questo libro 1 ¢ Reti di calcolatori ¢ Internet imparerete che alcuni protocolli sono semplici ¢ lineari, mentre altri sono complessi ¢ intellettualmente complicati. Conoscere il settore relativo al funzionamento della rete di calcolatori equivale a comprendere che cosa sono, perché servono e come funzio- nano i protocolli di rete. 1.1.4 Alcuni buoni hyperlink ‘Come ben sa ogni ricercatore Internet, alcune delle migliori e pitt accurate informa- zioni su Intemet e i suoi protocolli non si trovano in libri rilegati, giornali o riviste. IL miglior materiale su Internet si trova in Internet. Ma il materiale da selezionare & davvero troppo, ¢ a volte le “perle” sono poche ¢ difficili da rintracciare. Di seguito clenchiamo pochi, generali, eccellenti siti Web ricchi di materiale per Ia rete e per Internet. In tutto il libro presenteremo link a siti rilevanti per alta qualita, che forni- scono background e materiali originali o aggiornati relativi al particolare argomento trattato. Qui riportiamo un elenco di link importanti che vi consigliamo di consultare pro- cedendo nella lettura. + Internet Engineering Task Force (IETF), http:/www.ietf.org. ETF & una so- cieti internazionale aperta orientata allo sviluppo ¢ al funzionamento di Internet ¢ della sua architettura. IETF fu fondata formalmente dall’ International Archi- tecture Board (TAB), http://swww.isi.eduiab, nel 1986. L'IETF si riunisce tre vol- te l'anno; molta della sua produzione @ diffusa attraverso mailing list dai gruppi di lavoro, LTETF é amministrata dalla Internet Society, http://isoc.org, il cui sito ‘Web contiene una grande quantita di materiale relativo a Internet. + World Wide Web Consortium (W3C), http:/Avww.w3.org. II W3C & stato fondato nel 1994 con lo scopo di sviluppare protocolli comuni dedicati all’evoluzione del World Wide Web. E un sito notevole, con informazioni coinvolgenti su tecnolo- gie Web emergenti, protocolli e standard. * Association for Computing Machinery (ACM), htp://www.acm.org ¢ Institute of Electrical and Electronics Engineers (IEEE), http://www. ieee.org. Queste sono le due principali societa professionali che organizzano convegni tecnici e pubblica- no riviste ¢ giomali dedicati alla rete. All’interno di queste unit’ I'ACM Special Interest Group in Data Communications (SIGCOMM), http://www.acm. org/sig- comm, la IEEE Communications Society, http://www.comsoc.org ¢ la IEEE Computer Society, http:/Avww. computer.org, sono i gruppi i cui sforzi sono pit strettamente correlati al funzionamento delle reti. + Computer Networking: A Top Down Approach Featuring the Internet (cio, il si- to Web di questo libro), http://www.ateneonline. t\kurose: troverete una quantita di risorse in questo sito Web, compresi hyperlink a pagine Web interessanti, ap- plet Java che illustrano concetti di networking, problemi con le relative risposte, progetti di programmazione, registrazioni di lezioni con le slide associate, e altro ancora. 1.2 @ La sezione di accesso della rete 1.2 @ Lasezione di accesso della rete Nel Paragrafo 1.1 abbiamo presentato una descrizione di livello generale di Internet ¢ dei protocolli di rete. Ora scaveremo un po’ pit in profondit& nei componenti delle reti di calcolatori (in particolare di Internet). In questo paragrafo cominceremo dalla sezione di accesso della rete, e vedremo i componenti a noi pid familiari: i computer che usiamo quotidianamente. Nel prossimo paragrafo ci sposteremo dalla sezione di accesso della rete al suo centro ed esamineremo la commutazione ¢ linstradamento nelle reti di calcolatori. Infine, nel Paragrafo 1.4 discuteremo i collegamenti fisici che trasportano i segnali scambiati trai calcolatori ei dispositivi di commutazione 1.2.1. Terminali, client e server Nel gergo della rete, i computer collegati a Internet sono spesso chiamati host o end system (unitd terminali 0, semplicemente, terminali). Ci si riferisce a essi come ter- minali perché sono collocati nella sezione di accesso a Internet, come illustrato nella Figura 1.3. I terminali di Internet includono molti tipi diversi di calcolatori. Gli uten- ti si interfacciano direttamente con alcuni di questi calcolatori, compresi i calcolatori desktop (PC, Mac e workstation Unix) e i calcolatori mobili (calcolatori portatili PDA con connessioni wireless a Internet). I terminali di Internet comprendono anche calcolatori con i quali gli utenti non si interfacciano direttamente, come i Web server ei server di posta elettronica. Inoltre, c’é la tendenza ad attaccare a Internet come ter- minali un numero crescente di dispositivi alternativi, come i thin client ¢ i dispositivi domestici [Thinplanet 2002], le Web TV ¢ i set top box [Nesbitt 2002] e le telecame- te digitali. Per discussion interessanti sul futuro dei dispositivi Internet consultare [Manelli 2001; Appliance 2001; Dertouzos 2001; Odlyzko 1999]. Ci si riferisce a essi anche come host (ospite) perché ospitano (eseguono) pro- grammi di livello applicativo come i browser del Web, i programmi Web server 0 i programmi server ¢ reader di posta elettronica, In tutto il testo useremo i termini host ¢ terminale (0, anche, end system) in modo intercambiabile: cio’ hast = terminale = end system. Gli host, a volte, sono ulteriormente suddivisi in due categorie: client ¢ server. Informalmente, i client sono spesso PC fissi e portatili, PDA e cosi via, men- tre i server sono macchine molto pid potenti che funzionano da server come i server Web o i server di posta. Nel contesto del software di networking, c’é un’altra definizione di client ¢ ser- ver, definizione a cui faremo riferimento nel seguito del libro. Un programma client @ un programma che gira su un terminale che richiede ¢ riceve un servizio da un pro- gramma server che gira su un altro terminale. Studiato in dettaglio nel Capitolo 2, questo modello client-server @ indubbiamente la struttura prevalente per le applica- zioni Internet. Web, e-mail, trasferimento di file, login remoti (per esempio, Telnet), newsgroup e molte altre comuni applicazioni adottano il modello client/server. Poiché, tipicamente, un client gira su un calcolatore mente il server gira su un altro, le applicazioni client/server in Internet sono, per definizione, applicazioni distribui- te. II programma client e il programma server interagiscono tra loro attraverso comu- nicazioni (per esempio, scambiandosi messaggi) in Internet. A questo livello di astra- zione i router, i link e altri “componenti” di Internet servono come “scatola nera” che 10 1 @ Reti di calcolatori ¢ Internet Figura 1.3 ¢ Interazioni fra terminali. trasferisce messaggi tra i diversi componenti per la comunicazione in Internet. Questo @ il livello di astrazione rappresentato nella Figura 1.3. Non tutte le applicazioni Internet odierne consistono in programmi puramente client che interagiscono con programmi puramente server. Per esempio, nelle diffuse applicazioni per la condivisione di file da pari a pari (Napster, Gnutella, KaZaA ¢ co- si via) Iapplicazione da pari a pari nel terminale dell’ utente agisce sia come pro- gramma client sia come programma server. Il programma eseguito in un pari (cio? la macchina di un utente) agisce come client quando richiede un file a un altro paris il programma agisce come server quando manda un file a un altro pari. 1.2.2 Servizio senza connessione e servizio orientato alla connessione I terminali utilizzano Internet per comunicare tra loro. Pit precisamente, i programmi sui terminali utilizzano i servizi di Internet per mandarsi messaggi l'un Valtro. I link, 1.2 ¢ La sezione di accesso della rete 11 Storia di un caso RICERCA DI VITA EXTRATERRESTRE Una delle applicazioni nifitest di Internet é il progetto SETI@home [SET]@home 2002], un esperimento scientifico che utilizza calcolatori connessi via Internet per la ricerca di intelligenza extraterrestre (Search for Extraterrestrial Intelligence, SETI). Chiunque pud partecipare facendo eseguire un programma client gratuito che scarica analizza i dati di un radiotelescopio. Lo scopo del progetto é quello di trovare, nei dati del radiotelescopio, segnali creati da forme di vita extraterrestre. SETI@home cerca segni di vita intelligente analizzando dati radio raccolti da Arecibo, il pili grande radiotelescopio del mondo, situato sulle colline a Nord di Porto Rico. Ogni settimana quantita massicce di dati radio sono raccolte su nastri e inviate 2 Berkeley; qui i dati vengono suddivisi in unita di lavoro di circa 300 kbyte, che vengono memorizzate in un server centrale di SETI@home. Per partecipare a questo progetto, un utente di Internet (per esempio voi) prima scarica un programma client da SETI@home che viene eseguito in background su un celcolatore host (per esempio, i! vostro PC). I! programma client quin- di instaura una connessione TCP con il server centrale, ottiene una unita di lavoro, e chiude la connessio- ne. Una volta ottenuta I'unit8 di lavoro, processa i dati — per lo pi calcoli di FFT (Fast Fourier Transform) = che possono richiedere da un‘ora a parecchi giorni, a seconda della potenza e del'utilizzo dell'host. ‘Quando il programma client ha terminato i calcoli, si riconnette al server centrale, manda i risultati, ¢ searica una nuova unita di lavoro. A oggi, oltre 3 milioni di utenti residenti in pili di 200 nazioni hanno scaricato ed eseguito il pro- ‘gramma client. In una giornata tipica, Minsieme degli host esegue pit di 20 migliaia di miliardi di opera- Zioni in virgola mobile al secondo, che & molto piu di quello che pud fare il pi veloce dei supercomputer. El progetto SETI@home é solo la punta dell'iceberg del calcolo scientifico basato sulla cooperazione. Se il 10% dei circa un miliardo di calcolatori connessi a Internet partecipassero a progetti di calcolo coo- perativo, ci sarebbe sufficiente potenza di calcolo per 100 progetti della dimensione di SETI@home [Anderson 2001]. a i router ¢ altri pezzi di Internet forniscono i mezzi per trasportare questi messaggi tra i programmi sui terminali. Ma quali sono le caratteristiche dei servizi di comunica- zione che Intemet fomnisce ai suoi terminali? Le reti TCP/IP, ¢ in particolare Internet, forniscono due tipi di servizio per le sue applicazioni: un servizio senza comnessione e uno orientato alla connessione. Chi crea un’applicazione Internet (per esempio, un’applicazione e-mail, un’ applicazione per il trasferimento di un file, un’applicazione Web o un’applicazione di telefonia su Internet) deve programmare I applicazione per impiego di uno di questi due servizi (Descriveremo i due servizi con maggiori dettagli nel Capitolo 3, che riguarda i pro- tocolli dello strato di trasporto.) Servizio orientato alla connessione Quando un’applicazione utilizza il servizio orientato alla connessione, il client ¢ il server (residenti in due diversi terminali) si scambiano pacchetti di controllo prima di spedire i pacchetti contenenti i dati reali (per esempio messaggi e-mail). Queste cosid- dette procedure di “stretta di mano” (handshaking procedure), allertano client e ser- 12 14 Reti i calcolatori e Internet ver, permettendo loro di prepararsi per l'arrivo massiccio dei pacchetti. Una volta ter- minata la procedura di handshaking si dice che la connessione tra i due terminali 2 in- staurata. E interessante notare che questa procedura con stretta di mano iniziale & simile al protocollo usato nell’interazione umana. Lo scambio di “Ciao” visto nella Figura 1.2 & un esempio di “protocollo con stretta di mano” (handshaking protocol) (anche se la stretta di mano tra le due persone non & avvenuta in senso letterale). Per linterazione via Web mostrata anch’essa nella Figura 1.2, i primi due messaggi scambiati sono messaggi di handshaking. T due messaggi seguenti (il messaggio GET e il messaggio di risposta contenente il file) includono i veri dati ¢ sono mandati solo dopo che & sta- ta stabilita la connessione. Perché si usa la terminologia “servizio orientato alla connessione” ¢ non sempli: cemente “servizio di connessione”? Questa terminologia & dovuta al fatto che i termi: nali sono connessi in una maniera molto lasca. In particolare, solo i terminali stessi sono consapevoli di questa connessione; i commutatori di pacchetto (cio’ i router) al- Vintemno di Internet sono del tutto ignari della connessione. In effetti, una connessione in Internet consiste in nient’altro che buffer allocati e variabili di stato nei terminalis i commutator’ di pacchetto coinvolti non mantengono alcuna informazione sullo stato della connessione. Tl servizio orientato alla connessione di Internet 2 raggruppato con mollti altri ser- vizi, come il trasferimento di dati affidabile, il controllo del flusso, il controllo della congestione. Per trasferimento di dati affidabile, intendiamo che un’ applicazione pnd affidarsi a una connessione per consegnare tutti i suoi dati senza errori e nell’ or- dine appropriato. L'affidabilita in Internet & ottenuta attraverso l'impiego di segnali di riscontro e ritrasmissioni. Per farsi una prima idea di come Internet implementi un servizio di trasporto affidabile, considerate un’ applicazione che stabilisca una con- nessione tra due terminali A B. Quando il terminale B riceve un pacchetto da A, in- via un segnale di avvenuta ricezione; quando i terminale A riceve questo segnale di ritorno sa che il corrispondente pacchetto & stato definitivamente ricevuto. Quando il terminale A non ottiene da B il segnale di avvenuta ricezione desume che il pacchetto non sia stato ricevuto; allora lo ritrasmette. Il controllo del flusso assicura che nessu- na delle due estremita della connessione saturi l’altra con l'invio a velocita eccessiva di troppi pacchetti. Infatti, esiste il rischio che il receiver non riesca ad adeguarsi alla velocita con cui il sender trasmette i pacchetti. II servizio di controllo del flusso, in presenza del rischio di saturazione, costringe il terminale trasmittente a ridurre la sua velocita. Nel Capitolo 3 vedremo che Internet implementa il servizio di controllo del flusso attraverso buffer di invio e ricezione nei terminali collegati. II servizio di con- trollo della congestione aiuta a prevenire che Internet entri nello stato di blocco in- crociato (gridlock). Quando un router & congestionato, i suoi buffer possono sovrac- caricarsi e pud verificarsi la perdita di pacchetti. In queste circostanze, se ogni coppia di terminali in comunicazione continua a pompare pacchetti nella rete alla maggior velocita possibile, si verifica il blocco incrociato e solo pochi pacchetti arriveranno a destinazione. Internet evita questo problema costringendo i terminali a ridurre la ve~ locita di invio nella rete dei pacchetti durante i periodi di congestione. T terminali si accorgono dell’esistenza di uno stato di congestione nel momento in cui non sono pit raggiunti dai segnali di avvenuta ricezione dei pacchetti spediti. 1.3 @ La sezione interna della rete Vogliamo far notare che, sebbene il servizio orientato alla connessione di Internet sia accoppiato a un trasferimento di dati affidabile, al controllo del flusso e al controllo della congestione, queste tre caratteristiche non sono componenti essenziali di un ser- vizio orientato alla connessione. Una diversa rete di calcolatori pud fornire alle sue applicazioni un servizio orientato alla connessione svincolato da una o pit di queste caratteristiche. Infatti, qualsiasi protocollo che preveda, prima di trasferire i dati, Phandshake fra le entita comunicanti un servizio orientato alla connessione (Iren 1999] Il servizio orientato alla connessione di Internet ha un nome: TCP (Transmission Control Protocol); la versione iniziale del protocollo TCP & definita nell’ Internet Request for Comments RFC 793 [RFC 793]. I servizi fomiti dal TCP a un"applica- Zione comprendono un trasferimento di dati affidabile, il controllo del flusso e il con- trollo della congestione. # importante notare che un’ applicazione deve occuparsi solo di quali servizi sono forniti; non deve affatto preoccuparsi di come in realta il TCP implementi I’affidabilitA del trasferimento ¢ i controlli del flusso e della congestione Noi, naturalmente, siamo molto interessati a come il TCP implementa questi servizi, ¢ tratteremo questi argomenti nel Capitolo 3. Servizio senza connessione Nel servizio senza connessione su Internet non esiste handshake. Quando un’estre- mita di un’applicazione vuole inviare pacchetti a un’altra, semplicemente, Ii invia. Poiché manca la procedura di handshake, i dati sono inviati pid velocemente. Ma non esiste un messaggio di riscontro dell’avvenuta ricezione, cosi il mittente non ha mai la certezza di quali pacchetti abbiano raggiunto a destinazione. Inoltre, il servizio non prevede i controlli di flusso e di congestione. II servizio Internet senza connes- sione @ fornito dal protocollo UDP (User Datagram Protocol), che & definito nell’Internet Request for Comments RFC 768. La maggior parte delle applicazioni Internet pit! diffuse usano il TCP, il servizio orientato alla connessione. Queste applicazioni comprendono Telnet (login remoti), SMTP (per Ia posta elettronica), FTP (per il trasferimento di file) e HTTP (per il Web). Ciononostante, "UDP, il servizio Intemet senza connessione, & usato da molte applicazioni, comprese la maggior parte di quelle multimediali emergenti, come la te- Iefonia Internet, I’audio a richiesta e le video conferenze. 1.3 @ La sezione interna della rete 13 Avendo esaminato i terminali e il modello dei servizi per il trasporto da un terminale all’altro, guardiamo ora pitl in profondita “interno” della rete. In questo paragrafo studieremo la maglia di router che collega tra loro i terminali Internet. La Figura 1.4 evidenzia l’interno della rete con linee spesse in colore. 1.3.1 Commutazione di circuito e commutazione di pacchetto Esistono due prineipali tipi di approccio per la costruzione della sezione interna di una rete: la commutazione di circuito (circuit switching) ¢ la commutazione di 14 1 @ Reti di calcolatori e Internet ISP locale Figura 1.4 ¢ La sezione interna della rete. pacchetto (packet switching). Nelle reti a commutazione di circuito le risorse neces- sarie lungo un percorso (buffer, link a larga banda) per fornire la comunicazione fra due terminali sono riservate per la durata della sessione. Nelle reti a commutazione di pacchetto, queste risorse non sono riservate; i messaggi della sessione usano le ri- sorse a tichiesta e, di conseguenza, devono aspettare (cio® mettersi in coda) per acce- dere al link di comunicazione. Come semplice analogia, considerate due ristoranti: uno che tichiede la prenotazione ¢ I’altro che né richiede né accetta alcuna prenota- zione. Per il ristorante che richiede 1a prenotazione, prima di uscire da casa dobbiamo preoccuparci di telefonare per riservare i posti. Ma una volta arrivati possiamo, di di- ritto, immediatamente comunicare con il cameriere e ordinare il pasto. Per il ristoran- te che non richiede prenotazione, non abbiamo la necesita di disturbarci per riserva- re un tavolo. Ma quando arriviamo dobbiamo aspettare un tavolo libero prima di po- ter comunicare con il cameriere. Le onnipresenti reti telefoniche sono esempi di rete a commutazione di circuito. Consideriamo cosa accade quando una persona vuole inviare informazioni (voce 0 1.3 ¢ La sezione interna della rete fax) a un'altra attraverso la rete telefonica. Prima che V'informazione possa partire @ necessario che Ia rete stabilisca tina connessione tra chi invia ¢ chi riceve. Diversa- ‘mente dal caso della connessione TCP discussa nel paragrafo precedente, i commuta- tori sul percorso mantengono la connessione tra mittente ¢ destinatario per la durata del collegamento. Nel gergo della telefonia, questa connessione & deta cireuito, Quando la rete stabilisce i collegamento, essa riserva anche una velocita di trasmis- sione costante nelle maglie della rete per tutta la durata del collegamento. Poiché Ia larghezza di banda @ stata riservata per questa connessione da mittente a destinatario, il mittente pud trasferire dati al destinatario a velocita costante garantita. L’attuale Internet 2 la quintessenza della rete a commutazione di pacchetto. Considerate cosa accade quando un host vuole inviare un pacchetto a un altro host at- traverso Internet. Come nella commutazione di circuito, il pacchetto @ inviato su una serie di link di comunicazione. Ma con la commutazione di pacchetto, il pacchetto & inviato nella rete senza prenotare alcuna larghezza di banda. Se uno dei link ® conge- stionato perché altri pacchetti richiedono di essere trasmessi attraverso di esso nello stesso tempo, il nostro pacchetto deve aspettare in un buffer situato all’estremita di spedizione della linea di tasmissione, e subira un ritardo. Internet fa del suo meglio per inviare i dati in tempo quasi reale, ma non fornisce alcuna garanzia che cid av- venga. Questa modalita di funzionamento & detta best effort. Non tutte le reti di comunicazione possono essere chiaramente classificate come reti puramente a commutazione di circuito o puramente a commutazione di pacchet- to, Per esempio, per le reti basate sulla tecnologia ATM (un argomento che esamine- remo nel Capitolo 5), una connessione pud effettuare una prenotazione, ma i messag- gi possono lo stesso rimanere in attesa della trasmissione a causa dalla congestione delle risorse. Cionondimeno, questa fondamentale classificazione delle reti in com- mutazione di pacchetto e commutazione di circuito costituisce un ottimo punto di partenza per comprendere la tecnologia delle reti di telecomunicazione. Commutazione di circuito Questo libro tratta le reti di calcolatori, Internet e la commutazione di pacchetto, non le reti telefoniche ¢ la commutazione di circuito, Nonostante cid, & importante capire perché Internet le altre reti di calcolatori adottino 1a commutazione di pacchetto piuttosto della pid tradizionale tecnologia a commutazione di circuito usata nelle ret telefoniche. Per questo motivo diamo ora una breve panoramica della commutazione di circuito. La Figura 1.5 illustra una rete a commutazione di circuito. In questa rete, i quat- tro commutator di circuito (nodi di commutazione) sono collegati da due link (linee di trasmissione); ognuno di questi link @ costituito da n circuiti, in modo che ciascun link possa mantenere n connessioni simultane. I terminali (per esempio, PC e work- station) sono collegati direttamente a uno dei commutatori. (Di solito anche i comuni apparecchi telefonici sono collegati ai commutatori, ma non sono illustrati nello schema.) $i noti che alcuni degli host hanno accesso analogico ai commutatori, men- tre altri hanno un accesso numerico diretto, Per I’accesso analogico & necessario un modem. Quando due host desiderano comunicare, la rete stabilisce un circuito dedi: cato end-to-end (da estremita a estremita) fra essi. (Naturalmente sono possibili an- che chiamate fra pid di due apparecchi. Ma, per semplificare, supponiamo per ora che 15 1 ¢ Reti di calcolatori ¢ Internet —Connessione end-to-end fra gli host Ae B, che usa un *circuito" in ciascun link Legenda: Be Host Commutatore di circuito Figura 1.5 ¢ Una semplice rete a commutazione di circuito, che consiste di quattro commutator di circuito collegati da quattro link. siano collegati due soli host.) Quindi, perché ’host A invii un messaggio all’host B, larete deve prima prenotare un circuito su ciascuno dei due link. Poiché ciascun link han circuiti, a ciascun circuito end-to-end su un link viene dedicata la frazione I/n della larghezza di banda del link per la durata del circuito. Multiplazione (multiplexing) nelle reti a commutazione di circuito Un circnito in un link é realizzato mediante la multiplazione a divisione di frequen- za (Frequency-Division Multiplexing, FDM) o la multiplazione a divisione di tem- po (Time-Division Multiplexing, TDM). Con 'FDM, lo spettro di frequenza di un link é diviso fra le connessioni stabilite sul link. II link dedica una banda di frequen- za aciascuna connessione per tutta Ia sua durata. Nelle reti telefoniche questa banda di frequenza ha una ampiezza tipica di 4 KHz (cio®, 4000 hertz, 0 4000 cicli per se- condo). L’ampiezza di banda @ chiamata bandwidth. Le stazioni radio FM usano an- ch’esse IFDM per suddividersi lo spettro di frequenza delle microonde. La tendenza nella moderna telefonia & di sostituire I'FDM con il TDM. Molti link in diversi sistemi telefonici USA e di altri paesi sviluppati attualmente impiega- no il TDM. Per un link TDM, il tempo & suddiviso in frame (trame o intervalli) di du- rata prefissata, e ciascun intervallo é suddiviso in un numero fisso di slot (blocchi). Quando la rete stabilisce una connessione attraverso un link, dedica uno slot di tempo 1.3 # La sezione interna della rete 17 di ciascun frame alla connessione. Questi slot sono dedicati a quella sola connessio- ne, con uno slot di tempo disponibile (in ciascun frame) per trasmettere i dati della connessione. La Figura 1.6 illustra FDM e TDM per uno specifico link della rete che supporta fino a quattro circuiti. Per I'FDM, il campo di frequenza é suddiviso in quattro bande, ciascuna con larghezza di banda di 4 KHz. Per il TDM, il dominio temporale suddi- viso tra quattro circuiti con quattro time slot in ciascun frame; a ciascun circuito & as- segnato Jo stesso slot nei frame TDM che si succedono. La velocita di trasmissione di ciascun circuito & uguale alla velocita del frame moltiplicata per il numero di bit con- tenuti in uno slot. Per esempio, se il link trasmette 8000 frame al secondo e ogni slot & costituito da 8 bit, la velocita di trasmissione del circuito & di 64 Kbit, 1 fautoti della commutazione di pacchetto hanno sempre sostenuto che 1a com- mutazione di circuito porta a sprechi, perché i circuiti dedicati sono inattivi durante i periodi silenti. Per esempio, quando in una conversazione telefonica uno degli uten- ti smette di parlare, le risorse di rete inattive (banda di frequenza o slot nei link lungo il percorso) non possono essere usate per altre connessioni attive. Come altro esem- pio del sottoutilizzo di queste risorse, considerate un radiologo che usa una rete a commutazione di circuito per un accesso remoto a una serie di radiografie. Il radiolo- go imposta la connessione, richiede un’immagine, la esamina e quindi richiede una nuova immagine. Durante il periodo di analisi della lastra da parte del radiologo le ri- sorse di rete sono sciupate. I fautori della commutazione di pacchetto fanno rimarca- re anche che lo stabilire circuiti end-to-end e il riservare la larghezza di banda a colle- gamenti end-to-end @ complicato e richiede complessi software di segnalazione per coordinare l’azionamento dei commutatori lungo il percorso end-to-end. Frequenza A cee eeseeeeeeeeeesoee ed Tempo. ‘Tutt lt sot etichetat “2° sono dedicat 4 una specifica coppia mitente-desinetario, Figura 1.6 @ Con |'FOM ciascun circuito occupa continuamente una frazione della lar- ghezza di banda. Con il TDM ciascun circuito occupa periodicamente tutta la larghezza di banda durante brevi intervalli di tempo (durante gli slot). 18 1. @ Reti di calcolatori e Internet Prima di chiudere la nostra discussione sulla commutazione di circuito, vediamo un esempio numerico che ci permette di capire pid in profondita I’argomento. Consi- deriamo quanto tempo é richiesto per l’invio di un file di 640 000 bit dall’host A al- Phost B su una rete a commutazione di circuito. Supponiamo che tutti i link della re- te usino il TDM a 24 slot e che abbiano una velocit’ di 1536 Mbit/s. Supponiamo inoltre che per stabilire il circuito end-to-end prima che A cominci a trasmettere i file servano 500 ms. Quanto tempo occorre per spedire il file? Ciascun circuito ha una velocita di trasmissione di (1536 Kbi/s)/24 = 64 kbit/s, cosi servono (640 000 bit)/(64 kbit/s) = 10 secondi per trasmettere il file. A questi 10 secondi aggiungiamo il tempo necessario per stabilire il collegamento, quindi per la trasmissione del file arriviamo a 10,5 s. Si noti che il tempo richiesto per la trasmissione @ indipendente dal numero di link: @ sempre 10 secondi sia che il circuito end-to-end passi attraverso un link sia che passi attraverso 100 link. (II reale ritardo end-to-end comprende anche il ritardo di propagazione, vedi il Paragrafo 1.6.) Commutazione di pacchetto Nel Paragrafo 1.1 abbiamo visto che i protocolli di livello applicativo scambiano messaggi nell’ esecuzione dei loro compiti. I messaggi possono contenere qualunque cosa il progettista del protocollo desideri. I messaggi possono svolgere funzioni di controllo (per esempio il messaggio “ciao” nel nostro esempio di handshake) o pos- sono contenere dati, come un messaggio e-mail, un’immagine JPEG 0 un file audio MP3. Nelle moderne reti di calcolatori, la sorgente suddivide i messaggi lunghi in pezzi pid piccoli di dati conosciuti come pacchetti. Fra sorgente ¢ destinazione, cia scuno di questi pacchetti viaggia lungo link di comunicazione e commutatori di pacchetto (router). I pacchetti sono trasmessi su ogni link di comunicazione a velo- ita uguale a quella massima del link. Molti router utilizzano la trasmissione store- and-forward (immagazzinamento e rilancio) all’ingresso del link. Trasmissione store-and-forward significa che il router deve ricevere lintero pacchetto prima di po- ter cominciare a trasmettere il primo bit sul link in uscita. Quindi i router store-and- forward introducono un ritardo store-and-forward all’ ingresso di ciascun link lun- g0 il percorso del pacchetto. Questo ritardo & proporzionale alla lunghezza in bit del pacchetto, In particolare, se un pacchetto consiste di L bit e deve essere inoltrato su un link in uscita a R bil/, il ritardo store-and-forward al router & L/R secondi. Ogni router @ collegato a molti link. Per ciascun link cui & collegato il router ha un buffer in uscita (detto anche coda in uscita), che immagazzina pacchetti che il router si appresta a spedire su quel determinato link. I buffer in uscita hanno un ruolo chiave nella commutazione di pacchetto. Se un pacchetto in arrivo richiede di essere trasmesso attraverso un link ma trova il link occupato dalla trasmissione di un altro pacchetto, il pacchetto in arrivo deve aspettare nel buffer in uscita. Quindi, in aggiun- ta al ritardo store-and-forward, i pacchetti subiscono il ritardo dovuto alla coda nel buffer in uscita (ritardo di coda, queuing delay). L’entita di questi ritardi & variabile ¢ dipende dal livello di congestione della rete. Poiché lo spazio disponibile nel buffer @ una quantita finita, un pacchetto in arrivo pud trovare il buffer completamente oc- cupato da altri pacchetti che attendono di essere trasmessi. In questi casi pud accade- re anche di perdere i pacchetti: pud andar perso sia il pacchetto in arrivo sia uno di quelli gia in coda. Riprendendo la nostra analogia con il ristorante, il ritardo dovuto 1.3 ¢ La sezione interna della rete alla coda nel buffer € analogo al tempo perso nell’attesa di un tavolo. La perdita di un pacchetto & analogo a sentirsi dire dal cameriere che bisogna lasciare locale perché ci sono gi troppe altre persone al bar che aspettano un tavolo. La Figura 1.7 mostra una semplice rete a commutazione di cireuito. In questa ¢ nelle successive figure, i pacchetti sono rappresentati da slab (piastre) tridimensiona- li. Lo spessore dello slab rappresenta la lunghezza del pacchetto. In questa figura, i pacchetti hanno tutti lo stesso spessore, e quindi la stessa lunghezza. Supponiamo che ali host A e B stiano mandando pacchetti all’host E. Gli host Ae B prima mandano i oro pacchetti lungo link Ethernet a 10 Mbit/s verso il primo commutatore di pacchet- to, Il commutatore di pacchetto indirizza i pacchetti al link a 1,5 Mbivs. Se in questo link esiste una congestione, i pacchetti si accodano nel buffer in uscita prima di poter essere trasmessi sul link. Consideriamo ora come i pacchetti degli host Ae B sono trasmessi su questo link. Come mostrato nella Figura 1.7, la sequenza dei pacchetti di Ae B non segue al- cun ordine periodico; l’ordine casuale o statistico, perché i pacchetti vengono spe- diti in qualunque momento capiti loro di presentarsi al link. Per via di questo ordina- mento casuale spesso diciamo che la commutazione di pacchetto impiega la multi- plazione statistica, La multiplazione statistica & in netto contrasto con la multipla- zione a divisione di tempo (TDM), con la quale ciascun host ottiene uno stesso slot nei frame TDM che si succedono. ‘Valutiamo ora quanto tempo occorre per inviare un pacchetto di Z bit da un host all'altro attraverso una rete a commutazione di pacchetto. Supponiamo che esistano Q link fra i due host, ciascuno con velocit’ di R bit/s, Assumiamo che i ritardi dovuti alla coda e alla propagazione end-to-end siano trascurabili e che non sia stabilita al- cuna connessione. Il pacchetto deve prima essere inviato al primo link uscente dal- host A: sono richiesti L/R secondi. Deve poi essere trasmesso su ognuno dei rima- nenti Q — 1 link, cio’ deve essere immagazzinato e rilanciato Q — | volte. Il ritardo totale & percid QL/R Coda di pacchetti in attesa del link in uscita Legenda: D E WN roccheti Figura 1.7 ¢ Commutazione di pacchetto. 19 20 Confronto tra. commutazione di pacchetto e commutazione di circuito Avendo descritto la commutazione di circuito e quella di pacchetto, proviamo a con- frontarle. Gli oppositori della commutazione di pacchetto hanno spesso argomentato che essa non @ realmente appropriata per un servizio in tempo reale (per esempio, per le chiamate telefoniche ¢ per le videoconferenze) a causa del suo ritardo variabile e non prevedibile (dovuto principalmente al ritardo di coda, variabile e imprevedibile). Chi propone la commutazione di pacchetto sostiene che (1) offre una miglior suddivi- sione della larghezza di banda rispetto alla commutazione di circuito e (2) pid sem- plice, pid efficiente e meno costosa da implementare della commutazione di circuito. In genere le persone che non gradiscono combattere con le prenotazioni al ristorante preferiscono la commutazione di pacchetto a quella di circuito. Perché la commutazione di pacchetto 2 pit efficiente? Vediamo un semplice esempio. Supponiamo che gli utenti si dividano un link a 1 Mbit/s. Ammettiamo an- che che ciascun utente alterni periodi di attivita (quando genera dati alla velocit& co stante di 100 kbit/s) a periodi di inattivita (quando non genera dati). Supponiamo in- fine che un utente sia attivo solo per il 10% del tempo (e si prenda delle pause-caffe nel restante 90%). Con la commutazione di circuito devono essere riservati 100 kbit/s a ciascun utente per tutto il tempo. Quindi il link pud soddisfare contempora- neamente solo 10 utenti (= 1 Mbit al secondo/100 Kbit al secondo). Con la commuta- zione di pacchetto, la probabilita che uno specifico utente sia attivo & 0,1 (cic®, il 10%). Se ci sono 35 utenti, Ia probabilita che ci siano 11 o pid utenti simultaneamen- te attivi 2 circa 0,0004. (II Problema 10 si occupa di come é ottenuta questa probabi- lita.) Quando ci sono 10 o meno utenti simultaneamente attivi (il che accade con pro- babilita 0,9996), la velocita dei dati aggregati in arrivo & inferiore 0 uguale a 1 Mbit/s. (la velocita in uscita dal link). Quindi i pacchetti degli utenti fluiscono attraverso il link praticamente senza ritardo, come nel caso della commutazione di circuito. Quando gli utenti simultaneamente attivi sono pit. di 10, Ia velocita dei pacchetti in arrivo supera la capacita in uscita dal link, e Ia coda in uscita comincia a crescere (finché I’ ammontare dell’ingresso tora sotto | Mbi/s, punto in cui 1a coda inizia a diminuire in lunghezza). Poiché la probabilita di avere contemporaneamente 10 o pit utenti attivi 2 molto molto piccola, la commutazione di pacchetto ha quasi sempre, per quanto concemne il ritardo, le stesse prestazioni della commutazione di citcuito, ma le stesse prestazioni le garantisce a un numero di utenti tre volte superiore. Sebbene commutazione di pacchetto e commutazione di circuito siano entrambe diffuse nelle moderne reti di telecomunicazioni, la tendenza @ certamente verso la commutazione di pacchetto. Persino molte delle moderne reti telefoniche a commuta- Zione di circuito si stanno lentamente spostando verso la commutazione di pacchetto. In particolare, le reti telefoniche spesso convertono a commutazione di pacchetto i costosi tratti oltreoceanici. Frammentazione del messag In una modema rete a commutazione di pacchetto, la sorgente (host) frammenta i Iunghi messaggi dello strato di applicazione in pacchetti pid piccoli e invia questi ul- timi nella rete; il destinatario riassembla i pacchetti fino a ottenere il messaggio origi- nale. Ma perché disturbarsi a suddividere i messaggi in pacchetti alla sorgente per poi 1.3 ¢ La sezione interna della rete 21 doyerli riassemblare nei messaggi originali? Questo non comporta un catico inutile ¢ non necessario per la sorgente e per il destinatario? Sebbene la frammentazione e il riassemblaggio complichino la progettazione di sorgente € destinatario, ricercatori e progettisti della rete conclusero, gia nei primi tempi della commutazione di pacchet- to, che i vantaggi della frammentazione compensavano abbondantemente gli svan- tagei della sua complessita. Prima di discutere alcuni di questi vantaggi, dobbiamo introdurre la terminologia, Diciamo che una rete a commutazione di pacchetto effet- tua una commutazione di messaggio se le sorgenti non frammentano i messaggi (cioé, inviano nella rete un messaggio intero). Quindi la commutazione di messaggio & un tipo specifico di commutazione di pacchetto in cui ciascuno dei pacchetti che percorrono la rete & un messaggio intero. La Figura 1.8 illustra la commutazione di messaggio in un percorso costituito da due commutatori di pacchetto ¢ tre link. Con la commutazione di messaggio, il mes- saggio rimane intatto nell’ attraversare la rete. Poiché i commutatori di pacchetto sono del tipo store-and-forward, un commutatore di pacchetto deve ricevere lintero mes- saggio prima di poterne iniziare l’invio sul link in uscita. Notate lo spessore consi- stente della piastra che rappresenta il messaggio: esso indica che il messaggio lungo non & stato suddiviso in pacchetti. La Figura 1.9 illustra la commutazione di pacchetto (con il messaggio frammen- tato) per la stessa rete. In questo esempio, il messaggio originale & stato suddiviso in quattro diversi pacchetti. Nella Figura 1.9, il primo pacchetto @ arrivato a destinazio- ne, il secondo e il terzo stanno transitando sulla rete, ¢ l'ultimo pacchetto & ancora al- la sorgente. Ancora, poiché i commutatori di pacchetto sono del tipo store-and- forward, un commutatore di pacchetto deve ricevere l’intero pacchetto prima di po- teme iniziare I’invio sul link in uscita. Quando un messaggio viene segmentato in pacchetti, si dice che le rete effettua in pipeline la trasmissione dei messaggi: cio’, parti del messaggio vengono trasmesse in parallelo dalla sorgente e dai due commu- See Message coe Sorgente Commutatore Commutatore Destinazione di pacchetto di pacchetto Figura 1.8 # Messaggio inviato dalla sorgente alla destinazione senza frammentazio- ne del messaggio. Pacchetto sa Sorgente Commutatore Commutatore Destinazione dipacchetto di pacchetto Figura 1.9 # Messaggio suddiviso in pacchetti prima della spedizione dalla sorgente alla destinazione. 22 1 ¢ Reti di calcolatori ¢ Internet tatori di pacchetto. (II termine “pipelining” deriva dalla letteratura sull’architettura dei calcolatori e sul calcolo parallelo, ma si applica anche alle reti di calcolatori.) Uno dei maggiori vantaggi della commutazione di pacchetto (con i messaggi frammentati) & che si ottengono ritardi end-to-end tipicamente molto inferiori a quel- li associati alla commutazione di messaggio. Illustriamo quanto detto con un sempli- ce esempio. Consideriamo un messaggio lungo 7,5 - 10° bit. Supponiamo che tra sor- gente ¢ destinazione ci siano due commutatori di pacchetto e tre link, e che ciascun link abbia una velocit& di trasmissione di 1,5 Mbit/s. Assumendo che la rete non sia in congestione, quanto tempo é richiesto per trasferire il messaggio con la commuta- zione di messaggio dalla sorgente alla destinazione? Alla sorgente occorrono 5 se- condi (cio’ 7,5 - 10° bit/ 1,5 Mbit/s) per portare il messaggio al primo commutatore. Poiché i commutatori di pacchetto sono di tipo store-and-forward, il primo commuta- tore non pud iniziare a trasmettere alcun bit del messaggio sul link finché non ha rice- vuto Pintero messaggio. Dopo la ricezione del messaggio completo, occorrono 5 se- condi per muovere il messaggio dal primo al secondo commutatore. Quindi per por- tare il messaggio dalla sorgente al secondo commutatore servono 10 secondi. Seguendo questa logica, per trasportare il messaggio dalla sorgente alla destinazione sono richiesti 15 secondi. Questi ritardi sono illustrati nella Figura 1.10. Continuando con lo stesso esempio, supponiamo ora che la sorgente suddivida i messaggio in 5000 pacchetti, con ciascun pacchetto lungo 1500 bit. Assumendo an- cora che non ci sia congestione nella rete, quanto tempo occorre per il trasferimento dei 5000 pacchetti dalla sorgente alla destinazione? Come illustra la Figura 1.11, oc- corre 1 ms per muovere il primo pacchetto dalla sorgente al primo commutatore. E serve 1 ms per spostare il primo pacchetto dal primo al secondo commutatore. Ma mentre il primo pacchetto si sta muovendo dal primo al secondo commutatore, il se- condo pacchetto, contemporaneamente, si sta spostando dalla sorgente al primo com- Sorgente Destinazione Tempo (in secondi) Legenda: BB vressascio Figura 1.10 ¢ Tempi per il trasferimento del messaggio senza frammentazione dello stesso. 1.3 @ La sezione interna della rete 23 Sorgente Destinazione Commutatore Commutatore di pacchetto di pacchetto o 1 2 3 a: 4 m2 4999. EB 4097 '5000- GB 4998 5001 GR 4299 5002 BB 5000 v Tempo (ms) Legend: SB HR Pacers Figura 1.11 # Tempi per il trasferimento del messaggio quando lo stesso é frammen- ‘ato in 5000 pacchetti. mutatore. Il secondo pacchetto raggiunge percid il primo commutatore dopo 2 ms éall’inizio. Seguendo questa logica vediamo che l’ultimo pacchetto & arrivato intera- mente al primo commutatore dopo 5000 ms = 5 s dall’inizio. Poiché quest’ultimo pacchetto deve ancora essere trasmesso su altri due link, esso arrivera a destinazione dopo 5,002 secondi. Abbastanza sorprendentemente, la commutaziome di pacchetto ha ridotto il ritar- do di un fattore 3 rispetto a quella di messaggio. Perché succede? Cosa fa la commu- tazione di pacchetto di diverso da quella di messaggio? La differenza & che la com- mutazione di messaggi esegue una trasmissione sequenziale, mentre la commuta- Zione di pacchetto lavora con una trasmissione in parallelo (cio® con pipeline). Si no- ti che con la commutazione di messaggio, mentre un nodo (la sorgente 0 uno dei commutatori) sta trasmettendo, i nodi rimanenti sono inaitivi. Con la commutazione di pacchetto, quando il primo pacchetto ha raggiuato I’ultimo commutatore, i tre nodi trasmettono contemporaneamente. La frammentazione del messaggio ha anche un altro importante vantaggio. Come vedremo pitt avanti nel testo, durante il transito sulla rete nel pacchetto possono esse- re introdotti errori sui bit. Quando un commutatore rileva un errore nel pacchetto, di solito, lo scarta nella sua intierezza. Cosi, se il messaggio costituisce ’intero pacchet- toe un bit del messaggio risulta alterato, I’intero messaggio viene scartato. Invece, se tun messaggio @ frammentato in molti pacchetti e un bit di un pacchetto & alterato, sara scartato solo un pacchetto. 24 1 @ Reti di calcolatori ¢ Internet Perd, la frammentazione dei messaggi non & priva di svantaggi. Vedremo che cia- scun pacchetto del messaggio deve trasferire, in aggiunta ai dati da inviare dalla sor- gente al destinatario, una quantita di informazioni di controllo. Queste informazioni, inserite nell’intestazione (header) del pacchetto 0 del messaggio, possono com- prendere l’identita di chi spedisce e di chi riceve ¢ un identificatore di pacchetto 0 messaggio (per esempio, numeri). Poiché le informazioni dell’intestazione hanno dimensioni equivalenti nel caso di un messaggio o di un pacchetto, l’ammontare di sovraccarico (overhead) dovuto all’intestazione per byte di dati & pitt alto per la commutazione di pacchetto (con frammentazione del messaggio) rispetto alla com- mutazione di messaggio. 1.3.2 Inoltro dei pacchetti nelle reti di calcolatori Esistono due ampie classi di reti a commutazione di pacchetto: datagram e circuito Virtuale. Le differenze sono dovute a come avviene la scelta del percorso: in base al- Vindirizzo dell”host di destinazione o in base alla numerazione dei circuiti virtuali. Possiams chiamare rete datagram ogni rete che invia i pacchetti in base all’indirizzo dell’host di.destinazione. I router di Internet inviano i pacchetti in funzione dell'indi- rizzo di destinazione; quindi Internet é una rete datagram. Qualunque rete che invia i pacchetti in base alla numerazione dei circuiti virtuali & delta Fete a circuito virtua- Ie. Esempi di tecnologie a commutazione di pacchetto che usano i circuiti virtuali ‘comprendono I°X.25, il frame relay, (smistamento di trame), e I’ ATM (Asynchronous Transfer Mode). Sebbene la differenza tra utilizzare gli indirizzi di destinazione e i numeri di circuito virtuale possa sembrare irrilevante, questa scelta ha un notevole ‘impatto sull’instaurazione dei percorsi e la gestione dellinstradamento, come vedre- mo in seguito. Reti a circuito virtuale Un cireuito virtuale (VC) & costituito da (1) un percorso (cio’, una serie di link e commutatori di pacchetto) fra i terminali sorgente e destinazione, (2) i numeri del cir- cuito virtuale, un numero per ciascun link lungo il percorso e (3) voci nella tabella di conversione dei numeri di VC in ciascun commutatore lungo il percorso. Quando nella rete é stabilito un VC fra sorgente e destinatario, i pacchetti possono essere spe- diti con gli appropriati numeri di VC. Poiché un VC ha numeri diversi su ciascun link, un commutatore intermedio deve sostituire il numero di VC di ciascun pacchet- to in transito con uno nuovo, Il nuovo numero di VC si ottiene dalla tabella di con- versione dei numeri di VC. Per illustrare il concetto consideriamo Ia rete di Figura 1.12. Immaginate che host A richieda che la rete stabilisca un VC tra lui stesso e I’host B. Supponete che Tarete scelga il percorso A-PS1-PS2-B ¢ assegni i numeri di VC 12, 22, 32 ai tre link sul percorso. Quindi, quando un pacchetto appartenente a questa rete VC lascia I’ho- st A, il valore del campo numero di VC @ 12; quando lascia PS1 il valore & 22, € quando lascia PS2 il valore & 32. I numeri riportati vicino ai link di PS1 sono i mu- meri di interfaccia. Come fa il commutatore a determinare la sostituzione del numero di VC per un pacchetto che attraversa la rete? Ciascun commutatore possiede una tabella di con- 1.3 @ La sezione interna della rete 25 ps3 Psa Figura 1.12 @ Una semplice rete a circuito virtuale. versione dei numeri di VC; per esempio, la tabella di conversione dei numeri di VC in PS1 potrebbe essere qualcosa del genere: Interfaccia ingresso_N. di VC ingresso Interfaccia uscita N. di VC uscita 1 12 a 22 2 63 1 18 a 7 2 W 1 97 3 87 Quando viene stabilito un nuovo VC attraverso un commutatore, viene aggiunta una voce alla tabella dei numeri di VC. Allo stesso modo, quando un VC si estingue, le vyoci corrispondenti in ciascuna tabella lungo il suo percorso vengono rimosse. Potreste merayigliarvi del fatto che un pacchetto non mantenga lo stesso numero di VC su ogni link del percorso. Esiste una duplice risposta, Primo, con la sostituzio- ne del numero da link a link la lunghezza del campo del VC si riduce. Secondo, e pitt importante, permettendo un diverso numero per ciascun link lungo il percorso del VC, la funzione di gestione della rete risulta semplificata. Specificatamente, con pid numeri di VC ciascun link sul percorso pud scegliere un numero di VC indipendente- mente dalle scelte fatte dagli altri link sullo stesso percorso. Se fosse richiesto lo stes- s0 numero per tutti i link del percorso, i commutatori si dovrebbero scambiare ed ela- borare grandi quantita di messaggi per accordarsi sul numero di VC da usare per una connessione. Se un rete impiega circuiti virtuali, i commutatori della rete devono mantenere le informazioni sullo stato delle connessioni in corso. Specificatamente, ogni volta che si stabilisce una nuova connessione attraverso un commutatore, una nuova voce rela- tiva alla connessione deve essere aggiunta alla tabella di conversione dei numeri di VC; ¢ ogni volta che una connessione viene terminata, dalla tabella deve essere ri- mossa una voce. Si noti che anche se non ci sono conversioni di numeri di VC, @ sempre necessa- rio mantenere I’ informazione sullo stato che associa i numeri di VC ai numeri di in- terfaccia. Il fatto che un router o un commutatore mantenga o no l’informazione sullo stato di ciascuna connessione in corso é cruciale: ci torneremo tra breve. 26 1 ¢ Reti di calcolatori e Internet Reti datagram Le reti datagram sono analoghe per molti aspetti al servizio postale. Quando il mit- tente invia una lettera a un destinatario, chiude la lettera in una busta su cui scrive Vindirizzo del destinatario. Questo indirizzo ha una struttura gerarchica. Per esempio, le lettere spedite negli USA comprendono il paese (USA), lo stato (per esempio, Pennsylvania), la citta (per esempio, Philadelphia), la via (per esempio, Walnut Street) e il numero civico (per esempio, 421). Il servizio postale usa ’indirizzo sulla busta per portare la lettera a destinazione. Per esempio, se la lettera é inviata dalla Francia, 'ufficio postale francese invia la lettera alla centrale di smistamento in USA ¢ da qui viene inviata alla centrale di smistamento a Philadelphia. Finalmente, il po- stino di quartiere di Philadelphia portera la lettera alla sua destinazione finale. Tn una rete datagram, ciascun pacchetto che attraversa la rete contiene nella sua intestazione l’indirizzo del destinatario. Come per I’indirizzo postale anche questo ha una struttura gerarchica. Quando un pacchetto arriva al commutatore di pacchetto nella rete, il commutatore esamina una porzione dell’ indirizzo e invia il pacchetto a un commutatore adiacente. Pid specificatamente, ciascun commutatore di pacchetto ‘ha una tabella di instradamento che mette in corrispondenza l’indirizzo (0 una sua porzione) con un link in uscita. Quando il pacchetto arriva al commutatore successi- vo, questo esamina I’indirizzo e con esso indicizza la sua tabella per trovare I’ appro- priato link in uscita. II commutatore indirizza quindi il pacchetto su questo link. Il processo di instradamento end to end & anche paragonabile al guidatore di un’ auto che invece di usare la carta topografica preferisce chiedere ai passanti la dire- zione. Per esempio, supponiamo che Joe stia guidando da Philadelphia al 156 di Lakeside Drive a Orlando, Florida. Joe si ferma a un distributore in un quartiere peri- ferico e chiede come pud arrivare al 156 di Lakeside Drive a Orlando, Florida. Il ben- Zinaio estrae Ja porzione di indirizzo relativo alla Florida ¢ indica a Joe che deve prendere la Interstate highway I-95 South, che ha un ingresso proprio accanto al di- stributore. Egli avverte anche Joe che una volta entrato in Florida dovra chiedere a qualcun altro. Joe prende la I-95 South finché raggiunge Jacksonville, Florida, a que- sto punto chiede la strada a un altro benzinaio. Questo estrae dall’indirizzo la porzio- ne relativa a Orlando e dice a Joe che deve continuare sulla I-95 fino a Daytona Beach e li giunto chiedere a qualoun altro. A Daytona Beach un altro benzinaio estrae anch’egli dall’indirizzo la porzione relativa Orlando e dice a Joe che deve seguire la [-4 direttamente fino a Orlando. Joe prende la I-4 ed esce a Orlando; raggiunge un al- tro distributore e chiede informazioni al benzinaio, questa volta il benzinaio estrae la porzione dell’indirizzo relativa a Lakeside Drive e spiega a Joc la strada da seguire per Lakeside Drive. Una volta raggiunta Lakeside Drive, Joe chiede a un ragazzino in bicicletta come raggiungere la sua destinazione. Il ragazzino estrae dall’indirizzo la parte 156 e indica la casa. Joe raggiunge finalmente la sua destinazione finale. In questo libro tratteremo I'instradamento nelle reti datagram in dettaglio. Per ora ricordiamo che, al contrario delle reti a circuito virtuale, /e reti datagram non mantengono informazioni sullo stato della connessione nei loro commutatori. Infatti, un commutatore di una rete puramente datagram dimentica completamente qualsiasi flusso che lo attraversa. Un commutatore di pacchetto in una rete datagram prende le decisioni di inoltro basandosi sull’indirizzo di destinazione del pacchetto, non sulla 1.3 @ La sezione interna della rete connessione cui il pacchetto appartiene. Poiché le reti a VC devono mantenere Tinformazione sullo stato della connessione nei loro commutatori, gli oppositori di questa tecnologia argomentano che le reti VC sono pitt complesse. Tra questi opposi- tori si annoverano molti ricercatori e ingegneri della comunita Internet. T sostenitori delle reti a circuito virtuale credono che queste offrano applicazioni per una grande variet’ di servizi di networking. Come potete vedere il percorso reale che un pacchetto segue in Internet? Vi invi- tiamo a interagire con il programma Traceroute, visitando il sito http://www.tracerou- tecorg. (Vedere la trattazione di Traceroute nel Paragrafo 1.6.) Tassonomia della rete Abbiamo appena introdotto diversi concetti importanti sulla trasmissione dei dati: ‘commutazione di circuito, commutazione di pacchetto, commutazione di messaggio, circuiti virtuali, servizio senza connessione € servizio orientato alla connessione. Come possiamo raggrupparli? Primo, nella nostra semplice vista del mondo, una rete per telecomunicazioni im- piega sia la commutazione di circuito sia quella di pacchetto (vedi Figura 1.13). Un link di una rete a commutazione di circuito pud adottare sia FDM (multiplexing a di- visione di frequenza) sia TDM (multiplexing a divisione di tempo). Le reti a commu- tazione di pacchetto possono avere sia ’approccio a circuito virtuale sia a datagram. I commutatori nelle reti a circuito virtuale indirizzano i pacchetti in accordo con i nu- meri di VC e “ricordano” Jo stato della connessione. I commutatori nelle reti data~ ‘gram indirizzano i pacchetti secondo I’indirizzo del destinatario e non “ricordano” lo stato della connessione. Una rete datagram non , comungue, né una rete orientata alla connessione né una rete senza connessione. Una rete datagram pud fornire il servizio senza connes- sione per alcune sue applicazioni e un servizio orientato alla connessione per altre. Per esempio, Internet, che @ una rete datagram, fornisce alle sue applicazioni sia il servizio senza connessione sia quello orientato alla connessione, Abbiamo visto nel Paragrafo 1.2 che questi servizi sono forniti in Internet dai protocolli UDP e TCP, ri- spettivamente. Le reti con i VC sono sempre, comunque, orientate alla connessione. Figura 1.13 ¢ Tassonomia delle reti di telecomunicazioni. 27 28 1 @ Reti di calcolatori e Internet 1.4 Accesso alla rete e mezzi trasmissivi Nei Paragrafi 1.2 e 1.3 abbiamo esaminato il ruolo dei terminali ¢ dei router nell’ar- chitettura della rete. In questo paragrafo consideriamo I’accesso alla rete (il link fisi- co che collega un terminale al suo router di confine) cio, il primo router sul percor- so che parte dal terminale ¢ arriva a qualunque terminale distante. La Figura 1.14 mo- stra diversi tipi di link di accesso dai terminali al router di confine; i link di accesso sono evidenziati da linee spesse in colore. Poiché la tecnologia per I’accesso alla rete 2 strettamente legata alla tecnologia dei mezzi trasmissivi (fibre ottiche, cavi coassia- li, doppini telefonici, spettro delle onde radio), in questo paragrafo consideriamo in- sieme questi due aspett 1.4.1 Accesso alla rete L’accesso alla rete pud essere classificato genericamente in tre categorie: + accesso domestico, collega alla rete un terminale casalingo; CP EP Rete privata Figura 1.14 ¢ Reti di accesso. 1.4 ¢ Accesso alla rete € mezzi trasmissivi + accesso aziendale, collega alla rete i terminali di imprese ¢ istituti scolastici; + accesso per terminali “mobili”, collega alla rete un terminale mobile. Queste categorie non sono rigide e vincolanti; per esempio alcuni terminali di istitu- zioni potrebbero usare la tecnologia di accesso che noi attribuiamo alle reti di accesso domestiche e viceversa. Le descrizioni che seguono si intendono applicabili ai casi pitt comuni, Accesso domestico Una rete di accesso casalinga collega un terminale casalingo (di solito un PC, forse una Web TV o altri dispositivi) a un router di confine. La forma pitt comune di acces- so casalingo prevede I’impiego di un modem inserito nella linea telefonica commu- tata che a richiesta compone il numero di un Internet Service Provider (ISP). I] mo- dem casalingo converte Puscita numerica di un PC in formato analogico per la tra- smissione sulla linea telefonica analogica. Questa linea telefonica analogica & costi- tuita da una coppia simmetrica (doppino) in rame , ed é la stessa linea telefonica uti- lizzata per le normali chiamate telefoniche (discuteremo le copie simmetriche pit avanti in questo capitolo.) All’altro capo della linea telefonica analogica, un modem nell'ISP riconverte il segnale analogico in forma numerica, e lo fornisce in ingtesso al router dell’ ISP. Quindi, la rete di accesso 2 semplicemente una coppia di modem insieme a una linea telefonica punto-punto commutata. La velocita di trasmissione permessa dai modem telefonici attuali arriva a 56 kbit/s. Comunque, a causa della searsa qualita della linea realizzata con il doppino fra molte abitazioni e ISP, la gran parte degli utenti ottiene una velocita sensibilmente inferiore a 56 kbit/s. ‘Molt utenti residenziali ritengono che l’accesso via modem a 56 kbit/s sia ecces- sivamente lento. Per esempio, ci vogliono circa otto minuti per scaricare un singolo brano MP3 di tre minuti con un modem a 56 kbit/s. Inoltre, l’accesso mediante mo- dem su linea commutata tiene occupata la normale linea telefonica dell’utente: men- tre utente utilizza un modem su linea commutata per navigare nel Web, utente non. pud ricevere né fare chiamate telefoniche sulla stessa linea telefonica. Fortuna- tamente, nuove tecnologie di accesso a larga banda stanno fornendo agli utenti resi- denziali ritmi binari pid alti; essi forniscono agli utenti anche un mezzo per accedere a Internet e parlare al telefono allo stesso tempo. Ci sono due tipi comuni di accesso residenziale a larga banda: il Digital Subscriber Line (DSL) [DSL 2002] ¢ il Hybrid Coaxial Fiber Cable (HFC) (Cable 2002]. Fino al gennaio 2001, l’accesso residenziale a larga banda era molto meno diffu- so dell’accesso modem a 56 kbit/s: la percentuale di case con accesso Internet a larga banda era il 9,2% in Corea del Sud, il 4,2% in Canada, ¢ il 2,2% negli Stati Uniti, con tassi di penetrazione ancora pitt bassi in Europa [Economist 2001]. Comungue, il DSL e HFC si stanno diffondendo rapidamente in tutto il mondo, con una prevalen- za dell’ HFC negli Stati Uniti e del DSL in Europa e Asia. Liaccesso DSL é fornito tipicamente da una compagnia telefonica (per esempio, Pacific Bell o France Telecom), a volte in partnership con un ISP indipendente. Concettualmente simile ai modem su linea commutata, il DSL ® una nuova tecnolo- gia modem che funziona ancora sui doppini telefonici esistenti, Ma riducendo Ia di- stanza tra l’utente ¢ il modem dell’ ISP, il DSL pud trasmettere e ricevere dati a ritmi 29 30 1. Reti di calcolatori e Internet molto maggiori. Questi dati sono generalmente asimmetrici nelle due direzioni, con un ritmo maggiore dal router dell’ ISP verso casa che da casa verso il router dell’ ISP. Questa asimmetria nei ritmi dei dati riflette la convinzione che un utente domestico sia pit probabilmente un consumatore di informazioni (che scarica i dati in casa) che un produttore di informazioni, In teoria, il DSL pud fornire ritmi superiori a 10 Mbit/s dall’ISP a casa e a 1 Mbit/s nel senso inverso. Comungue, i ritmi offerti in pratica dai fornitori di DSL so- no molto inferiori. Al 2002, ritmi tipici verso valle sono da 384 kbit/s a 1,5 Mbit/s; ritmi tipici verso monte sono da 128 kbit/s a 256 kbit/S. ILDSL usa la multiplazione a divisione di frequenza, come descritto in preceden- za. In particolare, il DSL divide il link di comunicazione fra casa e ISP in tre bande di frequenza non sovrapponibili: + canale in discesa (downstream, verso valle) ad alta velocita, nella banda da 50 kHz.a1 MHz; + canale in salita (upstream, verso monte) a media velocita, nella banda da 4 KHz. a 50 kHz; + canale telefonico normale a due vie, nella banda da 0 a 4 KHz Leffettiva quantita di banda potenzialmente disponibile per I’utente verso valle ¢ verso monte é funzione della distanza tra il modem domestico e il modem dell’ISP, della sezione del doppino e del grado di interferenza elettrica, Infatti, a differenza dei modem su linea commutata, il DSL é stato progettato esplicitamente per brevi distan- ze tra il modem domestico e quello dell’ ISP, permettendo di ottenere ritmi di trasmis- sione sensibilmente maggiori di quelli dell’accesso commutato. DSL e modem telefonici utilizzano tutti la linea telefonica, mentre le reti di ac- cesso HFC sono estensioni delle reti via cavo attualmente usate per trasmissioni te- Jevisive. In un sistema di cablaggi tradizionali, una stazione trasmette attraverso una rete di cavi coassiali e amplificatori alle abitazioni. Come mostra la Figura 1.15, le fibre ottiche collegano Ia terminazione del cavo ai nodi di distribuzione a livello di quartiere, da queste si raggiungono poi le abitazioni individuali ¢ gli appartamenti attraverso tradizionali cavi coassiali. Ogni nodo di quartiere tipicamente serve da 500 a 5000 abitazioni. Come per il DSL, anche |'HFC richiede particolari modem, detti modem via ca- vo. Le societa che forniscono l’accesso a Internet via cavo richiedono ai loro clie1 i acquistare o noleggiare un modem. Di solito il modem via cavo & un dispositivo estemo ¢ si collega al PC casalingo attraverso una porta Ethernet 10 base-T. (Trat- teremo Ethernet in dettaglio nel Capitolo 5.) Il modem via cavo divide la rete HFC in due canali, un canale verso valle e uno verso monte. Come nel caso del DSL, al cana- le verso valle & tipicamente allocata una larghezza di banda maggiore, quindi ha una velocita di trasmissione superiore. Comunque con HFC (e non con DSL), queste ve- Jocita sono suddivise tra le abitazioni, come vedremo in seguito. Un’importante caratteristica di HFC é che c’é una condivisione con il media tele- visivo. In particolare, ciascun pacchetto spedito dalla stazione televisiva viaggia ver- so valle attraverso ogni link e arriva in ogni casa, e ciascun pacchetto spedito da una casa viaggia verso monte su fino alla stazione. Per questo motivo, se molti utenti 1.4 @ Accesso alla rete e mezzi trasmissi Cavo coassiale Cavo in fibra ottica Centinaia di abitazioni Figura 1.15 # Una rete di accesso ibrida fibra-coassiale. stanno ricevendo differenti MP3 sul canale verso valle, la reale velocit& a cui ciascun utente riceve il suo MP3 sara significativamente minore rispetto alla velocita nomi- nale del canale verso valle. D’altra parte, se tutti gli utenti attivi stanno navigando in Internet, ciascuno di loro pud ricevere le pagine Web alla velocit’ nominale del cana- le verso valle, perché accade di rado che un gruppo di utenti richieda esattamente nel- Jo stesso momento una pagina Web. Poiché il canale verso monte & anch’esso frazio- nato, i pacchetti inviati da due diverse abitazioni nello stesso momento entreranno in collisione, di conseguenza Ia banda effettiva verso monte si riduce. (Parleremo di queste collisioni in dettaglio quando tratteremo Ethernet nel Capitolo 5.) I difensori di DSL sono rapidi nel puntualizzare che il DSL& un collegamento punto-a-punto tra Pabitazione e I’ ISP, ¢ quindi che la larghezza di banda del DSL & dedicata piuttosto che condivisa. I sostenitori del collegamento via cavo, comunque, argomentano che una rete HFC ragionevolmente dimensionata fornisce una larghezza di banda supe- riore al DSL. La battaglia fra DSL e HFC per I’accesso casalingo ad alta velocit& quindi cominciata. Una delle caratteristiche pid attraenti di DSL e HFC & che i dispositivi sono sem- pre attivi: cio’ V'atente pud lasciare acceso il computer e restare collegato in perma- nenza aun ISP mentre, allo stesso tempo, continua a fare ¢ ricevere telefonate. Accesso aziendale Nelle societa o campus universitari, una rete in area locale (LAN, Local Area Net- work) viene utilizzata per collegare un terminale a un router di confine, Come vedre- mo nel Capitolo 5, ci sono molti differenti tipi di tecnologie LAN. Comungue, Ia tec- nologia Ethemet é attualmente di gran lunga la tecnologia di accesso pid diffusa per Ie reti private delle societa. Ethernet opera a 10 Mbit/s o 100 Mbit/s (e ora anche a 1 Gbit/s). Essa impiega sia il doppino in rame sia il cavo coassiale per collegare nume- rosi terminali tra loro e con un router di confine. II router di confine @ responsabile 31 32 1 @ Ret di calcolatori ¢ Internet dell'instradamento dei pacchetti destinati all’estemno della LAN. Come I"HFC, Bther- net usa un mezzo condiviso, cosi che gli utenti finali si spartiscano la velocita di tra- smissione della LAN. Recentemente, la tecnologia Ethernet a mezzo condiviso si & spostata verso la tecnologia Ethernet commutata, Questa tecnologia usa diversi seg- menti di Ethemet con cavi coassiali o doppini collegati a un “commutatore”. In tal modo ’intera larghezza di banda di una rete Ethernet pud essere fornita contempora- neamente a differenti utenti sulla stessa LAN. Esploreremo la Ethernet a mezzo con- diviso 0 commutata nel Capitolo 5. Accesso mobile Insieme all'attuale rivoluzione portata da Internet, la rivoluzione del wireless sta avendo un impatto profondo sul modo in cui Ia gente lavora e vive. Nell’anno 2000, in Europa c’erano piti persone che possedevano un telefono cellulare di quante posse- devano un PC o un’automobile. E la tendenza alla crescita del wireless sta continuan- do, con molti analisti che prevedono che i dispositivi mobili palmari (quali telefoni cellulari e PDA) supereranno i calcolatori cablati come dispositivi prevalenti di ac- cesso a Internet in tutto il mondo entro il 2004 [Dornan 2001]. Oggi, esistono due ampie classi di accesso wireless a Internet. In una wireless LAN, gli utenti mobili trasmettono/ricevono pacchetti a/da una stazione base (detta anche punto di accesso wireless) entro un raggio di poche decine di metri. La stazione base & tipicamente connessa all'Internet cablata e quindi serve per connettere gli utenti wireless alla rete cablata. Nelle reti di accesso wireless in area geografica, la stazione base & gestita da un gestore di servizi di telecomunicazione e serve gli utenti entro un raggio di de- cine di kilometri. Le LAN wireless, basate sulla tecnologia IEEE 802.11b (nota anche come wire- less Ethernet e Wi-Fi), stanno avendo attualmente una rapida diffusione nei diparti- menti universitari, negli uffici, nei locali pubblici e nelle case private. Per esempio, la Polytechnic University ha installato stazioni base 802.11b nel suo campus di Brook- lyn, ¢ a tutti gli studenti richiesto di acquistare un calcolatore portatile equipaggiato con la 802.11b. Utilizzando questa infrastruttura LAN wireless, gli studenti mandano ¢ ricevono posta elettronica ¢ navigano sul Web da qualunque punto del campus (per esempio la biblioteca, le camere, le aule, ¢ gli spazi aperti del campus). La tecnologia 802.11b, che discuteremo in dettaglio nel Capitolo 5, fornisce una banda condivisa di 1 Mbits. Oggi molte case stanno combinando [accesso residenziale a larga banda (cio’, modem via cavo 0 DSL) con la tecnologia economica delle LAN wireless per creare potenti reti domestiche. La Figura 1.16 mostra lo schema di una tipica rete domestica (Gin realta, questa @ precisamente la rete domestica installata da uno degli autori). Questa rete domestica consiste in un calcolatore portatile e di un calcolatore fisso: una stazione base (il punto di accesso wireless) che comunica con il PC mobile; un modem via cavo, che fornisce I’ accesso a larga banda a Internet; ¢ un router, che con- nette la stazione base e il PC fisso con il modem via cavo. Questo permette a due po- stazioni domestiche di avere accesso a larga banda a Internet, con una delle due po- stazioni che si sposta dalla cucina al cortile alle camere da letto. II costo totale di que- sta rete @ inferiore a 500 $ (incluso il modem via cavo/DSL) e sta calando rapidamen- te [Bricklin 2001]. 1.4 @ Accesso alla rete e mezzi trasmissivi 33 Figura 1.16 # Schema di una tipica rete domestica. Quando accedete a Intemet attraverso la tecnologia LAN wireless, tipicamente dove- te essere a una distanza inferiore a poche decine di metri dalla stazione base. Questo & possibile nell’accesso domestico, in luoghi pubblici, e pid generalmente nell’accesso entro o intorno a un edificio. Ma che succede se siete alla spiaggia 0 in automobile dovete accedere a Internet? Per I’accesso in un’area cosi vasta, gli utenti mobili di Internet usano l’infrastruttura dei telefoni portatili, accedendo a stazioni base che si trovano fino a decine di kilometri di distanza. WAP (Wireless Access Protocol), ampiamente diffuso in Europa, e i-mode, am- piamente diffuso in Giappone, sono due tecnologie che consentono I’accesso a Internet mediante l’infrastruttura dei telefoni portatili. Simili ai normali telefoni wire- less ma dotati di schermi pit grandi, i telefoni WAP forniscono I’accesso a Internet a bassa velocita cosi come il servizio di telefonia mobile. Al posto dell'HTML, i telefo- ni WAP usano uno speciale linguaggio simbolico - WML (WAP Markup Language) — che @ stato ottimizzato per schermi piccoli ¢ accesso a bassa velocita. In Europa, il protocollo WAP opera poggiandosi sull’infrastruttura Europea di telefonia mobile GSM, estremamente diffusa, che usa la multiplazione a divisione di tempo. Finora in Europa il WAP ® stato un flop, ma ci si aspetta che acquisti maggior diffusione quan- do la nuova tecnologia a pacchetto GPRS (General Packet Radio Service) sara dispo- nibile nel 2003. D’altra parte, la tecnologia proprietaria imode, che @ simile nei principi e nelle funzionalita al WAP, ha avuto grande successo in Giappone. Le compagnie di telecomunicazioni stanno attualmente facendo enormi investi- menti sul 3G, che sta per wireless di Terza Generazione, che fornira accesso wireless a Internet a commutazione di pacchetto in area geografica a velocita superiori a 384 kbit/s [Dornan 2001]. I sistemi 3G dovrebbero fornire accesso al Web ad alta velocita € video interattivo, e dovrebbero fornire una qualita della voce migliore di quella della normale telefonia cablata. I primi sistemi 3G sono stati sviluppati in Giappone. Con cosi imponenti investimenti fatti sulla tecnologia, l’infrastruttura e le licenze 3G, molti analisti (¢ investitori!) si chiedono se il 3G avra il grande sucesso pronostica- 34 1 @ Reti di calcolatori ¢ Internet to. Oppure cedera alla competizione di tecnologie come la IEEE 802.11? Il giudizio & ancora in corso. (Vedere [Weinstein 2002] e la Storia di un caso nel Paragrafo 5.7) 1.4.2 Mezzi fisici Nei sottoparagrafi precedenti, abbiamo dato una panoramica delle pitt importanti tec- nologie per le reti di accesso a Internet. Descrivendo queste tecnologie abbiamo an- che indicato i mezzi trasmissivi da adottare. Per esempio, abbiamo detto che ‘HFC usa una combinazione di fibre ottiche e cavi coassiali; che i modem telefonici, ISDN ¢]'ADSL usano i doppini in rame; che le reti di accesso per dispositivi portatili usano Jo spettro radio. In questo sottoparagrafo forniremo una breve panoramica di questi e di altri mezzi trasmissivi comunemente impiegati in Internet. Per definire cosa intendiamo come mezzo trasmissivo, riflettiamo sulla breve vi- ta di un bit. Consideriamo un bit che viaggia da un terminale, attraverso una serie di link ¢ router, a un altro terminale. II nostro povero bit trasmesso molte, molte volte. Tl terminale sorgente trasmette il bit e poco dopo il primo router della serie lo riceve; questo router lo trasmette a sua volta e a breve distanza di tempo il bit € ricevuto dal secondo router cosi via. Quindi il nostro bit, quando viaggia dalla sorgente alla sua destinazione, passa attraverso una serie di coppie trasmettitore-ricevitore. II bit in- viato attraverso la propagazione di onde elettromagnetiche o impulsi ottici attraverso un mezzo trasmissivo. Il mezzo trasmissivo pud assumere molte forme e dimensioni enon deve essere necessariamente dello stesso tipo per ogni coppia trasmettittore-ri- cevitore situata lungo il percorso. Esempi di mezzi trasmissivi sono doppini in rame, cavi coassiali, cavi in fibra ottica multimodali, spettro delle onde radio terrestre e sa- tellitare. I mezzi trasmissivi si dividono in due categorie: mezzi trasmissivi guidati e mezzi trasmissivi non guidati. Con i mezzi trasmissivi guidati, le onde sono guidate attraverso un mezzo solido, come un cavo a fibre ottiche, un doppino in rame o un ca- vo coassiale. Con i mezzi trasmissivi non guidati le onde si propagano nell’ atmosfera e nello spazio aperto, come in una wireless LAN o in un canale numerico satellitare. Ma prima di vedere le caratteristiche dei vari mezzi trasmissivi, accenniamo al loro costo. Il costo effettivo di un collegamento fisico (doppino, fibra ottica ecc.) & spesso relativamente minore rispetto agli altri costi della rete. In particolare, il costo della manodopera per realizzare il cablaggio di solito supera abbondantemente il c sto del materiale. Per questo motivo, molti costruttori installano i doppini, i cavi coassiali ¢ le fibre ottiche in tutte le stanze dell’abitazione. Anche se inizialmente si usa un solo mezzo, esiste una buona possibilit& che nel prossimo futuro se ne usera un altro, e quindi si risparmia il costo di stesura di un nuovo cablaggio. Doppino in rame Il pit economico e pid diffuso mezzo trasmissivo & il doppino in rame. Per pid di cento anni 2 stato usato per le reti telefoniche. Infatti, pit del 99% delle connessioni fra gli apparecchi telefonici e la centrale telefonica locale usa il doppino. Molti di noi hanno visto il doppino telefonico in casa propria e nell’ ambiente di lavoro. II doppino consiste di due fili di rame isolati singolarmente, con diametro ciascuno di circa 1 mm, avvoltia spirale regolare. I fili sono avvolti insieme per ridurre interferenze elet- tiiche con doppini simili posti in vicinanza. Tipicamente, molti doppini sono stretta- 1.4 ¢ Accesso alla rete e mezzi trasmissivi 35 mente impaccati in un cavo e protetti da una guaina esterna. Ciascun doppino costi- tuisce un singolo link di comunicazione. Un doppino non schermato (UTP, Unshielded Twisted Pair) ® usato comune- mente per le reti di calcolatori all’interno di un edificio, cio’ per le reti in area locale (LAN, Local Area Network). La velocita di trasmissione per le LAN attuali che im- piegano il doppino va da 10 Mbit/s a 1 Gbit/s. Queste velocita possono essere rag- giunte in funzione del diametro dei fili e della distanza fra trasmettitore ¢ ricevitore. Le LAN impiegano di solito due tipi di UTP: ia 3 € categoria 5. La categoria 3 corrisponde a cablaggi di qualita fonica (voice-grade); si tova di solito in palazzi per uffici. Questi edifici sono spesso precablati con due o pitt doppini in parallelo di cate- goria 3; un doppino @ usato per le comunicazioni telefoniche, e gli altri per linee te- lefoniche aggiuntive e per la rete LAN. L’Ethernet a 10 Mbit/s, una delle pid diffuse reti LAN, pud usare i doppini UTP di categoria 3. La categoria 5, che corrisponde a cablaggi di qualita dati (data-grade), ha pitt avvolgimenti per centimetro di lunghez- zae una guaina isolante in Teflon™, pud trattare velocitA di trasmissione superiori Ethernet a 100 Mbit/s, che usa doppini UTP di categoria 5, si & molto diffusa negli ultimi anni. Di recente i doppini UTP di categoria 5 costituiscono la scelta quasi ge- nerale per il precablaggio dei nuovi edifici destinati a uffici. Quando, negli anni ’80, emerse la tecnologia delle fibre ottiche, molte persone disprezzarono i doppini per la loro bassa velocita di trasmissione. Alcuni pensarono che la nuova tecnologia avrebbe portato alla scomparsa dei doppini. Ma i doppini non cedettero cos facilmente. La moderna tecnologia dei doppini, come quelli UTP di categoria 5, permette di raggiungere velocita di trasmissione dei dati di 100 Mbit/s per distanze fino a poche centinaia di metri. Velocit& ancora superiori sono possibili per distanze inferiori. Infine, i doppini si sono rivelati la soluzione migliore per le re- ti LAN ad alta velocita. Come detto nel paragrafo sulle reti di accesso, il doppino telefonico & anche co- munemente usato per I’accesso a Internet residenziale. Abbiamo visto che il modem tclefonico permette I'accesso su doppino fino alla velocita di 56 kbit/s e che 'ISDN, ormai molto diffuso, permette accesso su doppino a ¢irca 128 kbit/s. Abbiamo an- che visto che la tecnologia DSL (Digital Subscriber Loop) ha permesso agli utenti re- sidenziali di accedere a Internet a velocita superiori a 6 Mbit/s su un doppino (quando gli utenti sono vicini al modem dell’ ISP). Cavi coassiali Come per i doppini telefonici, i cavi coassiali consistono di due conduttori in rame, ma i conduttori sono concentrici anziché paralleli. Con questa costruzione che preve- de uno speciale isolamento ¢ una guaina, i cavi coassiali possono avere una velocit’ di trasmissione dati pit alta rispetto ai doppini. I cavi coassiali sono di due tipi: cavo coassiale in banda base e cavo coassiale in banda traslata. ; Il cavo coassiale in banda base, detto anche cavo a 50 ohm, ha diametro di circa 1 cm, é leggero ¢ facile da piegare. B usato comunemente nelle LAN; infatti, il calco- latore che usate sul lavoro o a scuola é probabilmente collegato alla LAN o con un cavo coassiale in banda base o con un UTP. Esaminate la connessione alla scheda di interfaccia con il vostro calcolatore. Se notate una presa di tipo telefonico e alcuni fi- li che assomigliano al doppino telefonico state usando IUTP; se vedete un connetto- 36 1. Reti di calcolatori ¢ Internet re aT e un cavo che esce dalle due estremita del connettore a T state usando un cavo coassiale in banda base. Il termine banda base (baseband) deriva dal fatto che il flus- so di bit 2 immesso direttamente nel cavo, senza spostarlo su una diversa banda di frequenza. L’Ethernet a 10 Mbit/s pud usare sia UTP sia il cavo coassiale in banda base. Comunque, quasi tutte le nuove installazioni Ethernet usano I’ UTP, rendendo 1’Ethemet con cavi coassiali una tecnologia superata. Il cavo coassiale in banda traslata, detto cavo a 75 ohm, & leggermente pitt spes- so, pesante e rigido di quello in banda base. Il cavo in banda traslata, comunque, @ molto usato negli impianti di TV via cavo. Come abbiamo visto, gli impianti di TV via cavo tecentemente sono stati accoppiati con modem via cavo per fornire ai priva- ti’accesso a Internet a 1 Mbit/s o superiore. Con il cavo coassiale in banda traslata, il trasmettitore sposta il segnale digitale su una specifica banda di frequenza, e il segna- Te analogico risultante @ spedito dal trasmettitore a uno o pitt destinatari. I cavi coas- siali, sia in banda base sia in banda traslata, possono essere usati come mezzi condi- visi guidati (shared medium). Specificatamente, molti terminali possono essere colle- gati direttamente al cavo, e tutti i terminali ricevono qualsiasi cosa venga trasmessa dagli altri terminali. Fibre ottiche Una fibra ottica @ un sottile, duttile mezzo che conduce impulsi di luce; ciascun im- pulso rappresenta un bit. Una singola fibra ottica pud trasferire bit a velocita incredi- bile, superiore alle decine o anche alle centinaia di gigabit al secondo. Le fibre ot che sono immuni da interferenze elettromagnetiche, hanno attenuazioni dei segnali molto ridotte fino a 100 km, e sono molto difficili da interrompere. Queste caratteri- stiche hanno reso la fibra ottica il mezzo trasmissivo preferito per le hinghe distanze, particolarmente per i collegamenti oltreoceano. Molte delle reti telefoniche su lunghe distanze negli USA, non solo, oggi usano solo fibre ottiche. Le fibre ottiche preval- gono anche nella “rete dorsale” (backbone) di Internet. Comunque gli alti costi dei dispositivi ottici (come trasmettitori, ricevitori e commutatori) hanno impedito il loro impiego per trasmissioni a breve raggio, come nelle LAN 0 nelle abitazioni con reti di accesso residenziali. [Goralski 2001], [Ramaswami 1998] e [Green 1992] forni- scono una trattazione dettagliata delle reti a fibre ottiche. Canali radio terrestri Tcanali radio trasportano segnali nello spettro elettromagnetico. Essi costituiscono un mezzo trasmissivo molto invitante, perché non richiedono cablaggi, possono attraver- sare le pateti, forniscono connessioni per utenti “mobili” e, potenzialmente, possono trasportare un segnale su lunghe distanze. Le caratteristiche di un canale radio dipendono fondamentalmente dail’ ambiente di propagazione e dalla distanza a cui un segnale deve essere trasportato. Le conside- razioni ambientali determinano attenuazione e indebolimento del segnale a causa del- Je zone d’ombra (cio’ l’intensita del segnale diminuisce quando questo si propaga a distanza e passa intorno 0 attraverso un oggetto che costituisce un ostacolo), indebo- limento dovuto alla molteplicita dei percorsi (causato dalle riflessioni sugli oggetti che si trovano sul percorso) e interferenze (dovute ad altri canali radio o segnali clet- tromagnetici). 1.5 @ Gli ISP e la rete dorsale di Internet 37 I canali radio terrestri possono essere classificati a grandi linee in due gruppi: quelli che operano come reti in area locale (con copertura tipica da decine a poche centinaia di metri) ¢ quelle che operano in area geografica, con copertura di decine di kilome- tri, I prodotti LAN wireless descritti nel Paragrafo 1.4.1 usano canali radio in area lo- cale; WAP, i-mode e le tecnologie 3G, anch'essi discussi nel Paragrafo 1.4.1, usano canali radio in area geografica. Si pud consultare [Dornan 2001] per un compendio ¢ una trattazione di tecnologia e prodotti. Canali radio satellitari Un satellite per comunicazioni collega due o pid! trasmettitori/ricevitori a microonde situati sulla Terra, conosciuti come stazioni al suolo. Il satellite riceve le trasmissioni su una banda di frequenza, rigenera il segnale usando un ripetitore (trattato pil! avan- ti) e trasmette il segnale su un’altra frequenza. I satelliti possono fornire larghezze di banda nella gamma dei gigabit per secondo. Esistono due tipi di satelliti per comuni- cazioni: geostazionari c a orbita bassa. I satelliti geostazionari rimangono sempre sulla verticale dello stesso punto sulla Terra. Questa presenza stazionaria & ottenuta mettendo il satellite su un'orbita a 36.000 kilometri dalla superficie terrestre. Quest’enorme distanza dalla stazione al suolo al satellite e poi dal satellite all’indietro, verso la stazione al suolo, introduce un apprezzabile ritardo di propagazione del segnale: 250 millisecondi. Nondimeno i col- legamenti via satellite, che possono operare a velocita di centinaia di Mbit/s, sono spesso usati dalle reti telefoniche e dalla rete dorsale di Internet. I satelliti a orbita bassa sono posti su orbite pid vicine alla Terra e non rimangono fissi in corrispondenza dello stesso luogo sulla Terra. Essi ruotano intorno alla Terra come fa la Luna. Per fornire una copertura continua di un’area, devono essere posti in orbita molti satelliti. Attualmente sono in fase di sviluppo molti sistemi di comunica- zione a orbita bassa. La pagina Web Satellite constellation systems di Lloyd [Wood 2002] fornisce e raccoglie le informazioni sui sistemi a “costellazione” di satelliti per comunicazioni. La tecnologia dei satelliti a orbita bassa potrebbe essere usata per Paccesso a Intemet in un prossimo futuro. 1.5 @ Gli ISP e la rete dorsale di Internet Abbiamo visto in precedenza che i terminali (PC di utente, PDA, server Web, server di posta, e cosi via) si connettono a Internet mediante una rete di accesso. Ricordate che la rete di accesso pud essere una rete locale cablata o wireless (per esempio in una azienda, scuola o biblioteca) o pud essere un Internet Service Provider per utenza residenziale (per esempio, AOL o MSN) raggiunto mediante un modem su linea com- mutata, un modem via cavo o DSL. Ma connettere gli utilizzatori e i fornitori di con- tenuti per mezzo di reti di accesso @ soltanto una piccola parte della soluzione del puzzle delP interconnessione delle centinaia di milioni di utenti e centinaia di mi- gliaia di reti che formano Internet. Internet & una “rete di reti”: comprendere questa affermazione sara la chiave per risolvere questo puzzle. Nell Internet pubblica, le reti di accesso situate nella sezione esterma di Internet sono connesse al resto di Internet attraverso una gerarchia a livelli di fornitori di ser- 38 1 @ Reti di calcolatori e Internet vizi Internet (Internet Service Providers, ISP), come mostrato nella Figura 1.17. Gli ISP di accesso (per esempio, gli ISP residenziali quali AOL e gli ISP aziendali che ulilizzano le LAN) sono alla base a questa gerarchia; in vetta si trova un numero rela- tivamente piccolo di cosiddetti ISP dilivello 1, Sotto molti aspetti, un ISP di livello 1 2 equivalente a qualsiasi rete: ha link e router ed @ connessa ad altre reti. Sotto altri aspetti, comunque, gli ISP di livello 1 sono speciali. Le velocita dei loro link sono spesso 622 Mbit/s o superiori, ¢ i maggiori ISP di livello | hanno link nella gamma 2,5-10 Gbit/s; di conseguenza, i loro router devono essere in grado di rilanciare i pac- chetti a ritmi estremamente elevati. Gli ISP di livello 1 sono anche caratterizzati da: + essere direttamente connessi a ognuno degli altri ISP di livello 1; * essere connessi a un grande numero di ISP di livello 2 e di altre reti di utente; + avere copertura internazionale. Gili ISP di livello 1 sono anche noti come reti della dorsale di Internet. All’epoca della scrittura di questo testo, UUNet (appartenente al gruppo Worldcom) era il pitt grande ISP di livello 1; altre principali aziende della dorsale comprendono Sprint, AT&T, Genuity, e Cable and Wireless. Un ISP di livello 2 tipicamente ha copertura regionale o nazionale, ¢ (cosa im- portante) @ connesso solo a pochi degli ISP di livello 1 (Figura 1.17). Quindi, per rag- Livello 3 wt MWh va fn Livello 1 xs ivello ‘| Ae Figura 1.17 ¢ Interconnessione degli ISP. 1.5 @ Gli ISP e la rete dorsale di Internet giungere una vasta porzione dell’Intemnet globale, un ISP di livello 2 deve instradare il traffico attraverso uno degli ISP di livello 1 a cui é connesso. Un ISP di livello 2 & detto essere un utente dell’ ISP di livello 1 a cui @ connesso, ¢ l’ISP di livello 1 ¢ det- to essere un fornitore per il suo utente. Molte grandi aziende e istituzioni connettono le loro reti aziendali direttamente a un ISP di livello 1 0 di livello 2, diventando cosi ‘un utente di quell’ ISP. Un ISP fornitore applica al suo utente una tariffa, che tipica- mente dipende dalla banda del link che collega i due. Una rete livello 2 pud anche scegliere di connettersi direttamente ad altre reti di livello 2, nel qual caso il traffico pud scorrere tra due reti di livello 2 senza dover passare attraverso una rete di livello 1, Sotto agli ISP di livello 2 ci sono gli ISP di livello inferiore, che si connettono al resto di Internet attraverso uno o pid ISP di livello 2. Al fondo della gerarchia ci sono gli ISP di accesso. Per complicare ulteriormente le cose, alcuni fornitori di livello 1 sono anche fornitori di livello 2 (cio®, sono integrati verticalmente), vendendo I’ac- cesso a Internet direttamente agli utenti finali e ai fornitori di contenuto, cosi come agli ISP di livello inferior. Quando due ISP sono direttamente connessi un Yaltro, sono detti essere pari tra loro. ‘AlP interno della rete di un ISP, i punti nei quali I’ ISP si connette ad altri ISP (sia al di sotto, sia al di sopra, sia allo stesso livello della gerarchia) sono noti come pun- tidi presenza (POP, Points of Presence). Un POP 2 semplicemente un gruppo di uno © pid router nella rete dell’ ISP ai quali si possono connettere i router degli altri ISP. Un ISP diivello 1 generalmente ha molti POP sparsi in diverse posizioni geografiche della sua rete, con un certo numero di ISP utenti che si connettono a ciascun POP. Per’ potersi connettere al POP di un fornitore, 1'ISP utente tipicamente affitta un link ad. alta velocit& da una terza parte (un fornitore di servizi di telecomunicazione) ¢ con- nette direttamente uno dei suoi router a un router dell’ ISP fornitore. Due ISP di livel- Jo 1 possono anche operare come pari tra loro interconnettendo una coppia di POP (peering point), uno da ognuno dei due ISP. Inoltre, due ISP possono operare come pari in pid punti, interconnettendosi mediante due 0 pid copie di POP. Oltre a connettersi tra loro in peering point privati, gli ISP spesso si connettono in Network Access Points (NAP), ciascuno dei quali pud essere posseduto ¢ gestito oda una societa di telecomunicazioni operante come terza parte o da un fornitore del- Ja dorsale di Internet. | NAP scambiano enormi quantita di traffico tra molti ISP. ‘Comunque, sta crescendo la tendenza degli ISP di livello 1 a scavaleare i NAP ¢ a in- terconnettersi direttamente in peering point privati [Kende 2000]. La tendenza é per sli ISP di livello 1 a interconnettersi tra loro direttamente in peering point privati, e per gli ISP di livello 2 a interconnettersi con altri ISP di livello 2 e con gli ISP di li- vello 1 nei NAP. Poiché i NAP rilanciano e commutano enormi volumi di traffico, es- si sono di per sé complesse reti di commutazione ad alta velocita, spesso concentrate in un unico edificio. Spesso un NAP usa la tecnologia di commutazione ATM ad alta yelocita nel cuore del NAP, e impiega IP sopra all’ATM. (L’ATM @ descritto nel Capitolo 5.) Riassumendo, la topologia di Internet ¢ complessa, ¢ consiste in dozzine di ISP dilivello 1 e 2 e migliaia di ISP di livello inferiore. Gli ISP hanno coperture diverse; alcuni coprono vari continenti ¢ oceani, ¢ altri sono limitati a piccole porzioni del mondo. Gli ISP di livello inferiore si connettono agli ISP di livello superiore, e gli ISP di livello superiore si interconnettono (tipicamente) in peering point privati e nei 39 40 1 @ Reti di calcolatori € Internet NAP. Gli utenti e i fornitori di contenuti sono clienti degli ISP di livello inferiore, ¢ gli ISP di livello inferiore sono utenti degli ISP di livello superiore. Concludiamo questo paragrafo segnalando che ciascuno di noi pud diventare un ISP di accesso se solo dispone di una connessione a Internet. Tutto cid di cui ha biso- gno & comprare I'equipaggiamento necessario (per esempio, router e pool di modem) per permettere agli altri utenti di connettersi a lui. Quindi si possono aggiungere alla topologia di Internet nuovi livelli e rami proprio come si pud attaccare un nuovo pez- zo di Lego a una costruzione esistente. 1.6 @ Ritardi e perdite nelle reti a commutazione di pacchetto Avendo ora considerato i particolari pit importanti dell’ architettura di Internet (le ay plicazioni, i terminali, i protocolli di trasmissione end-to-end, i router ¢ i link) consi- deriamo adesso cosa succede a un pacchetto durante il percorso dalla sorgente alla destinazione. Rammentiamo che un pacchetto parte da un host (Ia sorgente), passa at- traverso una serie di router, ¢ termina il suo viaggio in un altro host (il destinatario). Quando un pacchetto passa da un nodo (host o router) al nodo seguente (host o rou- ter) lungo il suo percorso, in ciascun nodo lungo il percorso soffre diversi tipi di ritar- do. I pid importanti di questi ritardi sono il ritardo di elaborazione del nodo, il ri- tardo di coda (queuing delay), il ritardo di trasmissione ¢ il ritardo di propaga- zione; insieme, questi ritardi si sommano per dare il ritardo totale al nodo. Per capi- re a fondo la commutazione di pacchetto ¢ le reti di caleolatori, dobbiamo capire la natura e l’importanza di questi ritardi. 1.6.1 Tipi di ritardo Esploriamo questi ritardi nel contesto della Figura 1.18. Come parte del suo pereorso da estremo a estremo tra sorgente e destinazione, un pacchetto & spedito dal nodo a monte attraverso il router A al router B. II nostro obiettivo & caratterizzare il ritardo al nodo al router A. Si noti che il router A ha un link principale in uscita che porta al router B. Questo link @ preceduto da una coda (conosciuta anche come buffer). Quando il pacchetto arriva al router A dal nodo a monte, il router A esamina Ia sua i testazione per determinare I'appropriato link di uscita per il pacchetto, ¢ quindi lo in- Propagazione Elaborazione Coda “Trasmissione nel nodo (attesa per la trasmissione) Figura 1.18 @ Ritardo al nodo € nel router A. 1.6 @ Ritardi e perdite nelle reti a commutazione di pacchetto 41 dirizza a quel link. In questo esempio, il link di uscita @ quello che conduce al router B. Un pacchetto pud essere trasmesso su un link solo se su quel link nessun altro pac- chetto @ in fase di trasmissione e se non ’é alcun altro pacchetto che lo precede nella coda; se il link & momentaneamente occupato o se ci sono altri pacchetti gid accodati per la trasmissione sullo stesso Link, il pacchetto ultimo arrivato si deve accodare a sua volta. Ritardo di elaborazione Il tempo richiesto per esaminare l’intestazione del pacchetto e per determinare dove instradarlo @ parte del ritardo di elaborazione. Questo ritardo pud comprendere altri fattori, come il tempo necessario per controllare eventuali errori a livello di bit nel pacchetto, errori che possono verificarsi nella trasmissione dei bit appartenenti a un pacchetto dal router a monte al router A. TI ritardo di elaborazione nei router ad alta velocita & tipicamente dell’ ordine di microsecondi o inferiore. Dopo quest’elabora- zione, il router invia il pacchetto alla coda che precede il link diretto al router B. (Nel Capitolo 4 studieremo in dettaglio il funzionamento di un router.) Ritardo di coda Quando & accodato, il pacchetto subisce un ritardo di coda in attesa di essere tra- smesso sul link. II ritardo di coda di un particolare pacchetto dipende dal numero de- gli altri pacchetti, arrivati prima, che sono accodati e aspettano di essere trasmessi at- traverso il link. Il ritardo pud variare significativamente da pacchetto a pacchetto. Se non c’é coda ¢ nessun altro pacchetto @ in fase di trasmissione, il ritardo di coda del pacchetto é zero, D’altra parte, se il traffico & pesante e molt altri pacchetti si trovano accodati in attesa di essere trasmessi, il ritardo di coda sar’ consistente. Vedremo tra breve che il numero di pacchetti che un pacchetto in arrivo pud aspettarsi di trovare accodati @ funzione dell’intensita e della natura del traffico che arriva alla coda. Tl ri- tardo di coda, in pratica, pud essere dell’ ordine dai millisecondi ai microsecondi. Ritardo di trasmissione ‘Assumendo che i pacchetti siano spediti col metodo primo arrivato-primo spedito, come @ normale in Internet, il nostro pacchetto pud essere trasmesso quando tutti i pacchetti arrivati prima di Iui sono stati trasmessi. Sia la lunghezza del pacchetto L bit, € la velocita di trasmissione del link tra i router A e B R bit/s. La velocita R é de- terminata dalla velocita di trasmissione del link verso il router B. Per esempio, per un link Ethernet da 10 Mbit/s, la velocita & R = 10 Mbit/s; per un link Ethernet da 100 Mbit/s, la velocita @ R = 100 Mbit/s. Il ritardo di trasmissione (detto anche ritardo store-and-forward ~ immagazzinamento ¢ rilancio — come visto nel Paragrafo 1.3) & LUR. Questo & ammontare del tempo richiesto per trasmettere tutti i bit del pacchet- tonel link. In pratica il ritardo di trasmissione é tipicamente dell’ ordine dai microse- condi ai millisecondi. Ritardo di propagazione Quando un bit é immesso nel link, esso si deve propagare fino al router B. Il tempo richiesto per la propagazione dall’inizio del link al router B @ il ritardo di propaga- zione. Il bit si propaga alla velocita di propagazione del link. La velocita di propaga- 42 1 @ Reti di calcolatori e Internet zione dipende dal mezzo trasmissivo che costituisce il link (vale a dire, fibra multi- modale, doppino in rame, e cosi via) ed & compresa nella gamma da2- 108 metri/s a3 - 10° metri/s che equivale alla, 0 @ poco inferiore alla, velocit& della luce. Il ritardo di propagazio- ne la distanza fra due router diviso la velocita di propagazione. Cio’, il ritardo di propagazione é dis, dove dé la distanza fra i router A eB e s@ la velocit’ di propaga- zione del link. Quando I'ultimo bit del pacchetto si & propagato al nodo B, esso e tut- tii precedenti bit del pacchetto sono immagazzinati nel router B. L'intero processo continua ora con il router B che compie V’instradamento. Nelle reti regionali, il ritar- do di propagazione tipico é dell’ ordine dei millisecondi. Confronto tra ritardo di trasmissione e ritardo di propagazione Le matricole nel settore del computer networking a volte hanno difficolta a compren- dere le differenze tra ritardo di trasmissione ¢ ritardo di propagazione. La differenza & sottile, ma importante. Il ritardo di trasmissione & il tempo richiesto dal router per spingere all’esterno il pacchetto; & funzione della lunghezza del pacchetto e della ve- ocita di trasmissione del link, ma non ha nulla a che fare con Ia distanza fra due rou- ter, Il ritardo di propagazione, d’altra parte, @ il tempo che impiega un bit a propagar- si da un router al successivo; @ funzione della distanza fra due router, ma non ha nul- laa che vedere con la lunghezza del pacchetto o la velocita di trasmissione del link. ‘Un’analogia pud chiarire le nozioni di ritardo di trasmissione ¢ di propagazione. Considerate un’ autostrada che ha un casello ogni 100 kilometri. Potete immaginare i segmenti di autostrada come link e i caselli come router. Supponete che le auto viag- gino (ciot si propaghino) sull’autostrada a velocita di 100 km/h (cio’, quando un’au- to lascia il casello, istantaneamente accelera a 100 km/h mantiene questa velocita fra i caselli). Supponete che ci sia una carovana di 10 auto che viaggiano insieme, € che queste auto procedano sempre nello stesso ordine, fisso. Potete immaginare ogni auto come un bit e la carovana come un pacchetto. Supponete anche che ciascun ca- sello serva (cio, trasmetta) le auto a velocit’ di una ogni 12 secondi, e che é notte fonda, cosi che le auto della carovana siano le uniche presenti in autostrada. Infine, supponete che quando la prima auto della carovana arrivi al casello, aspetti all’in- gresso finché le altre nove auto siano arrivate e si siano allineate dietro di essa. (Quindi Fintera carovana deve essere “immagazzinata” al casello prima di comincia- re a essere “spedita”,) II tempo richiesto dal casello per inviare l'intera carovana sul- Vautostrada & 10/(5 auto/minuto) = 2 minuti. Questo tempo @ I’analogo del ritardo di trasmissione in un router. II tempo impiegato da un’auto per andare dall’uscita di un casello al casello successivo @ 100 km/(100 km/h) = 1 h. Questo tempo & analogo al ritardo di propagazione. Quindi il tempo trascorso dal momento in cui la carovana & “immagazzinata” di fronte a un casello al momento in cui “immagazzinata” di fron- te al casello successivo é la somma del “ritardo di trasmissione” pit il “ritardo di pro- pagazione”: in questo esempio 62 minuti. Continuiamo ancora per un po’ con quest’analogia. Cosa succede se il tempo di servizio al casello per I"intera carovana supera il tempo che un’auto impiega a copri- re il tragitto tra due caselli? Per esempio, supponete che le auto viaggino a 1000 km/h 1.6 ¢ Ritardi ¢ perdite nelle reti a commutazione di pacchetto che il casellante liberi un’ auto al minuto. Allora il ritardo del viaggio tra due caselli 8 di 6 minuti e il tempo per servire ’intera carovana & 10 minuti. In questo caso, le prime auto della carovana arrivano al casello successivo prima che le ultime lascino ilcasello precedente. Questa situazione si verifica anche nelle reti a commutazione di pacchetto: i primi bit in un pacchetto possono arrivare a un router mentre molti dei bit Timanenti sono ancora in attesa di essere trasmessi dal router precedente. Se indichiamo con deta, deodas dirasy Aprop i titardi di elaborazione, di coda, di trasmissione e di propagazione, il ritardo totale del nodo @ dato da gedt = Actas + coda + diras + dprop ILcontributo di queste componenti del ritardo possono variare in modo significativo. Per esempio, dyrop pud essere trascurabile (un paio di microsecondi) per un link che collega due router della stessa universit&; ma pud corrispondere a centinaia di micro- secondi per due router collegati dal link di un satellite geostazionario, e questo pud costituire il termine dominante in dyed. Alllo stesso modo, dias pud variare da trascurabile a significativo. Il suo contribu- to tipicamente trascurabile per velocit di trasmissione di 10 Mbit/s o superiore (per esempio, per teti LAN); perd pud essere di centinaia di millisecondi per pacchetti Internet di grandi dimensioni inviati sul link da un modem a 28,8 kbit/s. Ilritardo di elaborazione, dy,p, & spesso trascurabile, ma pud essere influenzato in modo sensibile dalla capacita di instradamento del router, cio’ dalla massima velo- cit& a cui un router pud spedire i pacchetti. 1.6.2 Ritardo di coda e perdita dei pacchetti La pid complicata ¢ importante componente del ritardo totale del nodo @ il ritardo di coda, deo. Infatti, il ritardo di coda é cost importante e interessante per il funziona- mento delle reti di calcolatori da essergli stati dedicati centinaia di articoli e numero- si libri [Bertsekas 1991; Daigle 1991; Kleinrock 1975, 1976; Ross 1995]. Dal canto nostro, per quanto riguarda il ritardo di coda, ci accontentiamo qui di un’esposizione a livello semplice, intuitivo; i lettori pid curiosi possono sfogliare alcuni altri libri (0 persino scrivere una tesi di laurea sull’argomento). A differenza degli altri te ritardi (cio®, det, dass € dprop), il ritardo di coda pud variare da pacchetto a pacchetto, Per esempio, se 10 pacchetti arrivano contempora- neamente a un’unita dove non c’é coda, il primo pacchetto trasmesso non subisce ri- tardo di coda, mentre ultimo soffrira di un ritardo relativamente grande (mentre aspetta che gli altri nove pacchetti siano trasmessi). Quindi, nel caratterizzare il ritar- do di coda si usano misure statistiche, come la media del ritardo, la sua varianza ¢ la probabilita che superi alcuni valori specifici. Quand’é consistente e quando insignificante il ritardo di coda? La risposta a que- sta domanda dipende in gran parte dalla velocita di arrivo del traffico alla coda, dalla velocita di trasmissione del link e dalla natura del traffico in arrivo, cio® dal fatto che il traffico arrivi periodicamente o a raffiche. Per capire meglio, indichiamo con a la velocit media di arrivo dei pacchetti (I’u- nit di a & pacchetti/s). Ricordiamo che R & la velocita di trasmissione, cio’ la velo- 43 1 ¢ Reti di calcolatori ¢ Internet itd (in bit/s) a cui un bit 2 spinto all’esterno della coda. Supponiamo anche, per sem- plicita, che tuttii pacchetti siano costituiti da L bit. Percid, la velocita media a cui i bit arrivano ad accodarsi @ La bit/s. Infine, assumiamo che la capacita della coda sia molto grande, cosi che possa contenere un numero essenzialmente infinito di bit. Il rapporto La/R, detto intensit& del traffico, spesso ha un ruolo importante nella stima delle dimensioni del ritardo di coda, Se La/R > 1, allora la velocita media di arrivo dei bit alla coda supera la velo- cit’ a cui i bit possono lasciarla, In questa situazione sfortunata la coda tende a cre- scere senza limiti e I'entita del ritardo di coda si approssima all’infinito, Quindi, una delle regole d'oro nell'ingegneria del traffico &: Progertate il vostro sistema in modo che l'intensité del traffico non superi 1. Consideriamo ora il easo in cui La/R < 1. Qui, la natura del traffico in arrivo in- fluenza il ritardo di coda. Per esempio, se i pacchetti arrivano periodicamente, cio’ un pacchetto arriva ogni L/R secondi, allora ciascun pacchetto arrivera in assenza di co- dae non ci sara ritardo di coda. D’altra parte, se i pacchetti arrivano a raffiche, ma pe- riodicamente, la media del ritardo di coda sara significativa. Per esempio, supponia- mo che N pacchetti arrivino nello stesso istante ogni (L/R)N secondi. Allora il primo pacchetto trasmesso non ha ritardo di coda; il secondo pacchetto ha un ritardo di L/R secondi; e, pid in generale, I’n-esimo pacchetto trasmesso ha un ritardo di coda di (n—1)L/R secondi. Lasciamo al lettore l’esercizio di calcolare la media del ritardo. I due esempi precedenti dell’ artivo periodico dei pacchetti sono leggermente ac- cademici. Tipicamente, la sequenza di arrivo alla coda ¢ random, cio, gli arrivi non seguono alcuno schema: i pacchetti sono distanziati di un tempo arbitrario. In questo caso pitt realistico, la quantita La/R non @ sufficiente a caratterizzare completamen- te la statistica del ritardo. Nondimeno, ¢ utile per acquisire una comprensione intuiti- va dell’ ampiezza del ritardo di coda. In particolare, se I’intensita del traffico & prossi- ma a zero, allora gli arrivi dei pacchetti sono pochi e distanziati fra loro, ed & impro- babile che un pacchetto in arrivo trovi un altro pacchetto in coda. Quindi, il ritardo di coda medio sara prossimo a zero. D’altra parte, quando Vintensita del traffico si av- vicina a 1, ci saranno intervalli di tempo in cui Ia velocita supera Ia velocit& di tra- smissione (a causa degli arrivi a raffica) il che determinera il formarsi della coda. Quando I'intensita del traffico si approssima a I la lunghezza media della coda au- menta continuamente. La dipendenza qualitativa del ritardo di coda medio dall’i tensitd del traffico @ illustrata nella Figura 1.19. Un aspetto importante rilevabile dalla Figura 1.19 & che con 'avvicinarsi a I del- Pintensitd del traffico, il ritardo di coda medio aumenta rapidamente. Un aumento percentualmente piccolo dell’intensitA del traffico si traduce in una percentuale molto pid grande di aumento del ritardo. Forse avete sperimentato questo fenomeno in auto- strada, Se siete abituati a guidare su una strada normalmente congestionata, il fatto che la strada sia congestionata significa che l’intensita del traffico & prossima a 1. Se alcuni eventi provocano anche un piccolo aumento del traffico rispetto al solito, il ri- tardo che subirete sara gigantesco. Perdita di un pacchetto Nella discussione precedente, abbiamo assunto che una coda sia in grado di contene- re un numero infinito di pacchetti. In verita una coda che precede un link ha una ca- 1.7 ¢ Strati protocollari (pile) ¢ loro modelli di servizio 9 198.67.0.1 (198.67.0.1) 19 ms 24 ms 18 ms 10 gsl-de-3-Fddi0/0.gsl.net (204.59.144.197) 19 ms 18 ms 20 ms 11 * raspail-ip.eurogate.net (194.206.207.6) 133 ms 94 ms 12 raspail-ip2.eurogate.net (194.206.207.57) 93 ms 95 ms 97 ms 13 194,206.207.17 (194.206.207.17) 200 ms 94 ms 209 ms 14 stamandl.renater.ft.net (192.93.43.185) 105 ms 101 ms 105 ms 15 stlambert.rerif.ft.net (192.93.43.117) 108 ms 102 ms 95 ms 16 dantonl.rerif.ft.net (193.48.53.50) 110 ms 97 ms 91 ms 17 u-jussieu-paris.rerif.ft.net (193.48.58.122) 94 ms 96 ms 100 ms 18 r-jusren.reseau.jussieu.fr (192.44.54.126) 100 ms 94 ms 100 ms 19 r-ibp.reseau. jussieu.fr (134.157.254.250) 96 ms 100 ms 94 ms 20 masi.ibp.fr (132.227.60.23) 121 ms 100 ms 97 ms 21 * diane.ibp.fr (132.227.64.48) 105 ms 102 ms Nella lista riportata sopra ci sono 20 router tra la sorgente ¢ la destinazione. La mag- gior parte di questi router ha un nome, e tutti hanno un indirizzo. Per esempio, il no- me del router 8 ¢ sl-de-6-H2/0-T3.sprintlink.net e il suo inditizzo @ 144.228.10.33. Guardando i dati forniti per questo router, vediamo che nel primo dei tre tentativi il ritardo di roud trip tra la sorgente e il router 8 & stato 19 ms. I ritardi di round trip nei due tentativi successivi sono stati 18 e 24 ms. Questi ritardi di round trip includono tutti i ritardi appena discussi, compresi i ritardi di trasmissione, i ritardi di propaga- zione, i ritardi di elaborazione al router, ¢ i ritardi di coda. Poiché il ritardo di coda & vatiabile nel tempo, il ritardo di round trip del pacchetto n mandato a un router m pud effettivamente essere maggiore del ritardo del ritardo di round trip del pacchetto n-+1 mandato al router n + 1. Nell’esempio sopra é da notare che c’t un notevole salto nel ritardo di round trip passando dal router 10 al router 11. Questo & dovuto al fatto che il link tra i router 10 e 11 & un collegamento transatlantico. Volete provare voi stessi Traceroute? Vi raccomandiamo vivamente di visitare hup:/www-traceroute.org, che fornisce un’interfaccia Web a un'estesa lista di sor- genti per tracciare percorsi. Basta scegliere una sorgente e fornire l’hostname per una qualunque destinazione. Il programma Traceroute fa tutto il resto, 1.7 Strati protocollari (pile) e loro modelli di servizio Dalla nostra discussione, Internet appare come un sistema estremamente complicato. Abbiamo visto che Internet & costituito da molti pezzi: numerose applicazioni e pro- tocolli, diversi tipi di terminali ¢ collegamenti fra essi, router e vari tipi di mezzi tra- stnissivi a livello di link. Data quest’enorme complessit’, c qualche speranza di or- 48 1 @ Reti di calcolatori ¢ Intemet ganizzare I’architettura della rete 0, almeno, la nostra discussione sull’architettura della rete? Per fortuna queste domande hanno entrambe risposta affermativa 1.7.1 Architettura stratificata Prima di tentare di organizzare i nostri pensieri sull’architettura di Internet conside- riamo un’analogia umana. Effettivamente, nella vita quotidiana abbiamo sempre a che fare con sistemi complessi. Immaginate che qualcuno vi chieda, per esempio, di descrivere il sistema di trasporto aereo. Come potete trovare la struttura per descrive- re questo complesso sistema che comprende biglietterie, controllo bagagli, personale ai cancelli, piloti, aerei, controllo del traffico e un sistema che copre tutto il mondo per l’instradamento degli aerei Un modo per descrivere il sistema pud essere quello di elencare le azioni che do- vete compiere (0 che compie qualcun altro per voi) quando partite per un viaggio ac- reo. Comprate il biglietto, passate il controllo bagagli, vi recate al cancello d’imbar- co, e magari vi portate il bagaglio sull’aereo. L’aereo decolla ed @ instradato verso la sua destinazione. Dopo I’atterraggio, sbarcate ¢ attendete i vostri bagagli al cancello.. Se il viaggio non @ stato dei migliori, vi lamentate con il personale della biglietteria (che non potra far nulla per voi). Questo scenario & rappresentato schematicamente nella Figura 1.20. Possiamo gia notare alcune analogie con la rete di calcolatori: Ia linea aerea vi ha spedito dal punto di partenza alla destinazione; Internet spedisce un pacchetto dal- 'host sorgente a quello di destinazione. Ma questa non @ Ja sola analogia cui siamo interessati. Stiamo cercando alcune strufture nella Figura 1.20. Guardando la figura notiamo che esiste a ciascuna estremita la funzione biglietti; c°t anche la funzione bagaglio per passeggeri gia prowvisti di biglietto in arrivo e in partenza, e la funzione cancello d’imbarco per passeggeri gid provvisti di biglietto in arrivo e in partenza. Per i passeggeri che hanno superato il cancello d’imbarco (cio® che hanno gia il bi- glietto, passato il controllo bagagli ¢ attraversato il cancello), c’é la funzione decollo Figura 1.20 ¢ Un viaggio aereo: azioni. 1.7 4 Strati protocollari (pile) € loro modelli di servizio 49 iglietti Bagagli Cancelli Decollo/Atterraggio Instradamento aereo Figura 1.21 ¢ Stratificazione orizzontale della funzionalita della linea aerea. e atterraggio, ¢ mentre sono in volo ¢’@ la funzione instradamento. Questo suggerisce che nella Figura 1.20 dobbiamo guardare alla funzionalita in modo orizzontale, come illustrato nella Figura 1.21. La Figura 1.21 ha suddiviso le funzionalitd della linea aerea in strati, fornendo un'intelaiatura in cui possiamo discutere il viaggio aereo. Se vogliamo discutere una parte del viaggio aereo, possiamo parlare di una sua specifica, ben definita, compo- nente. Per esempio, se parliamo della funzionalita dei cancelli, sappiamo che stiamo parlando della funzionalita che sta “sotto” la gestione dei bagagli e “sopra” decollo & atterraggio. Notiamo che ogni strato, combinato con quelli sottostanti, implementa alcune funzionalita, alcuni servizi. Nello strato biglietteria e in quelli sottostanti, da biglietteria a biglietteria si compie il trasferimento di una persona. Nello strato baga- alie in quelli sottostanti, da controllo bagagli a recupero bagagli si compie il trasferi- mento di una persona e dei sui bagagli. Si noti che lo strato bagagli fornisce questo servizio solo a persone gia provviste di biglietto. Nello strato cancelli, dal cancello di partenza a quello di arrivo, 2 completato il trasferimento di una persona e dei suoi ba- gagli. Nello strato decollo/atterraggio, da pista di decollo a pista di atterraggio @ com- pletato il trasferimento di una persona e dei suoi bagagli. Ogni strato fornisce il suo servizio (1) attraverso I’esecuzione di certe azioni nello strato (per esempio, per I strato cancelli, 'imbarco ¢ lo sbarco dei passeggeri) ¢ (2) attraverso I'uso dei sei dello strato immediatamente sottostante (per esempio, allo strato cancelli, usando il servizio di trasferimento passeggeri da pista di decollo a pista d'atterraggio dello strato decollo/atterraggio).. Come notato in precedenza, I’architettura stratificata ci permette di discutere una parte ben definita e specifica di un grande e complesso sistema. Gia questa semplifi- cazione da sola rappresenta un considerevole valore. Quando un sistema ha una strut- tura a strati 2 anche pitt semplice variare I’ implementazione dei servizi forniti da uno strato, Finché lo strato fornisce lo stesso servizio a quello soprastante, ¢ usa gli stessi servizi forniti da quello sottostante, implementazione dello strato si pud variare sen- za che venga modificata la parte rimanente del sistema. (Si noti che cambiare P'im- plementazione del servizio molto diverso dal cambiare il servizio stesso.) Per esem- pio, se si cambiano le funzioni dei cancelli (per esempio, per imbarcare e sbarcare i passeggeri in ordine di altezza), i resto del sistema rimane invariato fintantoché Io strato cancelli fornisce la stessa funzione (imbarcare e sbarcare i passeggeri); ess0, 50 1.4 Reti di calcolatori e Internet dopo la vatiazione, implementa quella funzione semplicemente in modo diverso. Per sistemi grandi e complessi che devono essere continuamente aggiornati, la possibilita di variare le implementazioni di un servizio senza influenzare gli altri componenti del sistema rappresenta un altro grande vantaggio dell’ architettura stratificata. Ora basta con le linee aeree. Riportiamo la nostra attenzione ai protocolli di rete. Per ridurre la complessit’ progettuale, i progettisti della rete organizzano i protocolli (e Phardware ¢ il software della rete che li implementano) a strati (Jayer) o livelli. Con un’architettura a strati dei protocolli, ciascun protocollo appartiene a uno degli strati, E importante capire che un protocollo nello strato n & distribuito fra le entit’ della rete (compresi terminali e commutatori di pacchetto) che implementano quel protocollo, proprio come le funzioni nell’architettura a strati della nostra linea aerea erano distribuite fra gli aeroporti di partenza e di arrivo. In altre parole, c’& un pezzo del livello n in ciascuna delle entita della rete. Questi pezzi comunicano tra loro scambiandosi i messaggi dello strato n. Questi messaggi sono chiamati unita dati del protocollo dello strato n (Jayer-n Protocol Data Units) 0, pitt semplicemente, n-PDU. Tl contenuto e il formato di una n-PDU, cosi come il modo in cui sono scambiate le n-PDU fra gli elementi della rete, sono definiti da un protocollo dello strato n. Quan- do presi nel loro insieme, i protocolli dei vari strati sono chiamati pila protocollare (protocol stack). Quando lo strato m dell’host A invia una n-PDU allo strato n dell’ host B, lo strato n dell’host A passa I’n-PDU allo strato n — 1 e quindi lascia allo strato n — 1 il compi- to di spedire I’n-PDU allo strato n di B; quindi si dice che lo strato 7 si affida allo strato n — 1 per spedire le sue n-PDU a destinazione. Un concetto chiave é quello di modello di servizio (service model) di uno strato. Si dice che lo strato n — 1 offre servizi allo strato n. Per esempio, lo strato n — 1 pud garantire che I’n-PDU arriver’ senza errori a destinazione, allo strato n, entro un se- condo; o pud garantire solo che I'n-PDU potra eventualmente arrivare a destinazione senza assicurazioni sull’errore. Stratificazione dei protocolli Il concetto della stratificazione dei protocolli @ abbastanza astratto e a volte difficile da capire di primo acchito, Questo concetto si chiarira quando studieremo gli strati di Internet e i protocolli costituenti in maggior dettaglio. Ma tentiamo di acquisire alcu- ne idee sulla divisione in strati dei protocolli e sui protocolli a pila (stack) attraverso un esempio. Consideriamo una rete che organizza i suoi protocolli di comunicazione in quattro strati, Poiché ci sono quattro strati, ci sono quattro tipi di PDU: I-PDU, 2-PDU, 3-PDU e 4-PDU. Come mostra la Figura 1.22, l’applicazione, che opera nel- lo strato pid alto, strato 4, crea un messaggio, M. Ogni messaggio creato in questo strato pid alto 2 una 4-PDU. Lo stesso messaggio M pud essere costituito da molti campi diversi (allo stesso modo in cui una struttura o record di un linguaggio di pro- grammazione pud contenere diversi campi); spetta all’applicazione definire e inter- pretare i campi del messaggio. I campi possono contenere il nome del mittente, un codice che identifica il tipo di messaggio e alcuni dati addizionali Entro ’host sorgente, il contenuto dell’intero messaggio M @ quindi “passato” gilt lungo Ia pila protocollare allo strato 3. Nell’esempio di Figura 1.22, lo strato 3 nell’ host sorgente divide una 4-PDU, M, in due parti, My e Mp. Lo strato 3 nell’host 1.7 ¢ Strati protocollari (pile) e loro modelli di servizio 51 Messaggio originale I \ as wn om en (® as rou Hee | ie Sorgente Destinazione Figura 1.22 ¢ Diverse PDU in diversi strati dell'architettura del protocollo. sorgente aggiunge poi a M; e Mp Ie cosiddette intestazioni per creare due 3-PDU. Le intestazioni contengono le informazioni aggiuntive necessarie alle entita mittente ¢ ricevente dello strato 3 per implementare il servizio che lo strato 3 fornisce allo strato 4. La procedura continua nella sorgente, aggiungendo ulteriori parti di intestazione a ciascuno strato, finché si 2 creata I’ I-PDU. L’1-PDU é spedita fuori dall’host sorgen- te su un link fisico. All’altro capo, I’host destinatario riceve I'I-PDU e la fa risalire Iungo la pila protocollare. A ogni strato viene rimossa la relativa intestazione. Final- mente il messaggio M @ riassemblato da M, e M2 e passa quindi all’applicazione. Si noti che nella Figura 1.22, lo strato n usa i servizi dello strato n ~ 1. Per esem- pio, una volta che lo strato 4 ha creato il messaggio M, lo passa gitt allo strato 3 ¢ si affida allo strato 3 per spedire il messaggio allo strato 4 della destinazione. E interessante notare come questa nozione di delega del servizio allo strato infe- riore & diffusa in molte altre forme di comunicazione. Per esempio, consideriamo il normale servizio postale. Quando scrivete una lettera, sulla busta inserite anche infor- smazioni come destinatario e mittente. La lettera con queste informazioni relative al- Vindirizzo pud essere considerata una PDU dello strato pid alto della pila protocolla- re. Lasciate quindi cadere la lettera nell’apposita buca; a questo punto non é pid in mano vostra. II servizio postale pud quindi aggiungere alla vostra lettera alcune spe- cifiche informazioni interne; essenzialmente mette un’intestazione alla lettera: per esempio, applica un codice a barre sulla busta. Una volta lasciata cadere nell’apposita buca, voi delegate ai servizi postali la spedizione della lettera al corretto destinatario nel pitt breve tempo possibile. Per esempio, non vi preoccupate della possibilita che il furgone delle poste possa avere un guasto mentre trasporia la lettera. Invece il servizio postale se ne preoccupa, pre- sumibilmente con un piano ben definito per risolvere quest’eventualita. Inoltre, al- Yinterno del servizio postale stesso ci sono dei livelli di delega, e i protocolli di uno strato si appoggiano ai (¢ usano i) servizi dello strato sottostante. 52 1.¢ Reti di calcolatori e Internet Perché uno strato possa interagire con il sottostante, l’interfaccia tra i due strati deve essere definita in modo esatto. Gli standard definiscono esattamente Vinterfaccia fra strati adiacenti (per esempio, il formato della PDU che viene passata tra gli strati) e permettono agli sviluppatori di software e hardware per reti di comunicazione di im- plementare I’interno degli strati a loro piacere. Quindi se viene distribuita una nuova ¢ migliore implementazione, questa pud sostituire la vecchie e, in teoria, gli strati possono continuare a interagire. Funzione degli strati In una rete di calcolatori, ciascuno strato pud eseguire uno o pit dei seguenti comp’ + controllo dell’errore, che rende pit affidabile il canale logico fra gli strati di due element pari livello della rete; + controllo del flusso, che evita che un elemento lento sia sommerso di PDI + frammentazione e riassemblaggio, che dal lato trasmittente suddivide grandi blocchi di dati in pezzi pitt piccoli e al lato ricevente riassembla i pezzi piccoli nel blocco grande originale; + multiplexing, che consente a molte sessioni dello strato pid alto di condividere una singola connessione di strato pitt basso; + instaurazione della connessione, che fornisce 'handshake con un pari livello. La stratificazione dei protocolli presenta vantaggi sia concettuali sia strutturali. Ricordiamo comunque che alcuni ricercatori e ingegneri di rete si sono veemente- mente opposti alla suddivisione in strati [Wakeman 1992]. Un potenziale svantaggio della stratificazione @ che uno strato pud duplicare le fonzionalit’ di quello inferiore. Per esempio, molte pile protocollari effettuano il re- cupero di errore sia su base link sia su base end-to-end. Un secondo potenziale difet- to & che la funzionalit’ di uno strato pud richiedere informazioni (per esempio, il va- lore di una marcatura temporale) che & presente solo in un altro strato; questo viola gli obiettivi della separazione in strati. 1.7.2 La pila protocollare di Internet La pila protocollare di Internet é costituita da cinque strati: fisico, collegamento, rete, trasporto ¢ applicazione. Invece di usare la pesante terminologia n-PDU per ciascuno dei cinque strati, diamo dei nomi particolari alle PDU in quattro dei cinque strati: fra- me, datagram, segmento, e messaggio. Non diamo un nome all’ unita dati per lo stra- to fisico, perché per questo strato di solito non si usa un nome. La pila protocollare di Internet e i nomi del PDU corrispondente sono illustrati nella Figura 1.23. Uno strato protocollare pud essere implementato dal software, dall’hardware 0 da una combinazione di entrambi. I protocolli di strato di applicazione (come HTTP e SMTP) sono quasi sempre implementati dal software nei terminali, come anche i pro- tocolli dello strato di trasporto. Poiché lo strato fisico e lo strato di collegamento sono tesponsabili della gestione della comunicazione su uno specifico link, essi sono in genere implementati in una scheda d’interfaccia della rete (per esempio, scheda d’in- terfaccia Ethernet 0 ATM) associata a un dato link. Lo strato di rete ha di solito im- 1.7 ¢ Strati protocollari (pile) e loro modelli di servizio 53 Pila protocollare pbu strato5 | Applicazione [ mesassio Strato 4 Trasporto [/ seemento Strato 3 Rete [atest Strato2 | Collegamento [Frome fwama) Strato 1 Fisico or | Figura 1.23 ¢ La pila protocollare di Internet e le unita dati del protocollo. plementazione mista hardware e software. Ora riassumiamo gli strati di Internet € i servizi che forniscono. Strato di applicazione Lo strato di applicazione @ responsabile del supporto delle applicazioni della rete. Queste applicazioni comprendono molti protocolli, inclusi !' HTTP che supporta il Web, I'SMTP che supporta la posta elettronica e FTP che supporta il trasferimento dei file. Nel Capitolo 2 vedremo che 2 molto semplice creare un nostro protocollo dello strato di applicazione. Strato di trasporto Lo strato di trasporto fornisce il servizio di trasporto dei messaggi dello strato di ap- plicazione fra le estremita client e server di un’applicazione. In Internet ci sono due protocolli di trasporto, TCP ¢ UDP; entrambi possono trasportare i messaggi dello strato di applicazione. Il TCP fornisce alle sue applicazioni un servizio orientato alla connessione. Questo servizio comprende la garanzia di consegna a destinazione dei messaggi dello strato di applicazione ¢ un controllo di flusso (cioé I’adattamento tra le velocita di mittente ¢ destinatario). Il TCP frammenta anche i messaggi lunghi in segmenti pit! corti e fornisce un meccanismo di controllo della congestione, in modo che una sorgente limiti la sua velocita di trasmissione quando la rete & congestionata. Il protocollo UDP fomisce alle sue applicazioni un servizio senza connessione, che (come visto nel Paragrafo 1.2) € un servizio davvero privo di fronzoli. Strato di rete Lo strato di rete @ responsabile dell’instradamento dei datagram da un host all’altro. Questo strato in Intemet ha due componenti principali. Ha un protocollo che defini- sce il campi nel datagram IP e come i terminali ¢ i router agiscono su questi campi: questo 2 il tanto celebrato protocollo IP. Esiste un solo protocollo IP, e tutti i compo- nenti di Internet che hanno uno strato di rete devono impiegare il protocollo IP. Lo strato di rete Internet contiene anche i protocolli di instradamento che determinano il 54 1 @ Reti di calcolatori ¢ Internet percorso che i datagram devono seguire fra sorgente e destinazione. Internet ha molti protocolli di instradamento Come abbiamo visto nel Paragrafo 1.3, Internet & una rete di reti, e l’amministra- tore della rete pud, all’interno della rete, far funzionare qualunque protocollo di in- stradamento desideri. Sebbene lo strato di rete contenga sia il protocollo IP sia nume- rosi protocolli di instradamento, spesso ci si riferisce a questo strato come allo strato IP, peril fatto che IP il collante che tiene insieme Internet. I protocolli dello strato di trasporto di Intemet (TCP e UDP) in un host sorgente passano un segimiento dello strato di trasporto e un indirizzo di destinazione allo stra- to IP, proprio come fate quando consegnate una lettera con I'indirizzo del destinatario al servizio postale. Lo strato IP fornisce quindi il servizio di instradare il segmento verso la sua destinazione. Quando il pacchetto arriva a destinazione, IP passa il seg- mento allo strato di trasporto all’interno della destinazione. Strato di collegamento Lo strato di rete instrada un pacchetto attraverso una serie di commutatori di pacchet- to (detti router, in Internet) fra la sorgente e la destinazione. Per muovere un pacchet- to da un nodo (host o commutatore di pacchetto) al successivo sul percorso, lo strato di rete deve delegare il servizio allo strato di collegamento. In particolare, a ciascun nodo IP passa il datagram allo strato di collegamento, che lo invia al nodo successivo lungo il percorso. A questo nodo successivo, lo strato di collegamento passa il data- gram allo'strato di rete, Il processo corrisponde all’impiegato dell’ufficio postale che mette una lettera sull’aereo che la consegnera all’ ufficio postale suecessivo lungo il percorso. I servizi fomiti dallo strato di collegamento dipendono dallo specifico protocollo dello strato di collegamento impiegato sul link. Per esempio, alcuni protocolli forniscono un re- capito affidabile su base link, cio’ dal nodo trasmittente, su un link, al nodo riceven- te. Si noti che questo servizio affidabile di trasmissione & differente dal servizio di trasmissione affidabile del TCP, che fornisce il servizio da un terminale a un altro. Esempi di strati di collegamento comprendono Ethernet ¢ PPP; in alcuni contesti, ATM e frame relay possono essere considerati strati di collegamento. Poiché spesso i datagram devono attraversare molti link per passare dalla sorgente alla destinazione, un datagram pud essere gestito da diversi protocolli di collegamento lungo il suo per- corso. Per esempio, un datagram pud essere gestito da Ethernet su un link ¢ da PPP sul link successive. IP ricevera servizi differenti da ciascuno dei diversi protocolli dello strato di collegamento. Strato fisico Meatre il compito dello strato di collegamento é di muovere interi frame da un ele- mento della rete a quello adiacente, il compito dello strato fisico & di muovere singoli ‘bit all’interno della rete da un nodo al successivo. Anche i protocolli in questo strato sono dipendenti dal ink, ¢ dipendono anche dal mezzo trasmissivo del link (per esempio, doppino, fibre oitiche). Per esempio, Ethernet ha molti protocolli dello stra- to fisico: uno per il doppino, un altro per il cavo coassiale e cosi via. In ciascun caso, un bit si muove attraverso il link in modo diverso. Se esaminate l'indice, noterete che abbiamo brutalmente organizzato questo libro