3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia diversa, non nota in anticipo. Occorre interconnettere fra loro reti diverse in modo che appaiano come un'unica entità coordinata e coerente: Un grandioso salto concettuale! 1. Introdurre uno schema che nasconda i dettagli della tecnologia hardware e fornisca servizi di comunicazione universali: guida a tutte le scelte di progetto 2. Mostrare come questa astrazione ci permette di costruire i necessari livelli di software di comunicazione e nascondere i meccanismi di trasporto fisico dell'informazione 3. Mostrare come le applicazioni possano fare uso del sistema di comunicazione risultante. I progettisti hanno seguito due strade differenti per nascondere i dettagli della rete e trattare le eterogeneità: assegnare questo compito ai programmi applicativi assegnare questo compito al sistema operativo 3.1. Interconnessione a livello applicativo Su ogni macchina della rete esegue un programma applicativo, che conosce le caratteristiche di tutte le reti a cui tale macchina e connessa (più di una rete, altrimenti il problema non si pone!) ed è in grado di interoperare con i programmi applicativi paritari attraverso queste interconnessioni. Pagina 3.1
Es.: Programmi di posta elettronica, che realizzano una rete di posta parlandosi direttamente attraverso interconnessioni offerte da reti differenti. Può sembrare interessante ma si è dimostrato un approccio poco pratico: Aggiungere un tipo di rete implica modificare il programma applicativo e ri-installarlo dove necessario. La modifica deve essere fatta su tutti i tipi di programmi applicativi di rete, e non sempre l'impatto di una nuova tecnologia è lo stesso per programmi applicativi diversi Su un data macchina viene ripetuto il codice necessario a trattare una certa rete, in ogni applicativo, con duplicazione di codice Non è in grado di affrontare interconnessioni di centinaia di migliaia di reti 3.2. Interconnessione a livello di Network Network Level Interconnection: un meccanismo che consegna pacchetti di informazione da una macchina sorgente ad una macchina destinazione, in tempo reale, utilizzando le tecnologie di trasmissione offerte dalle reti (sottoreti) che assieme costituiscono la rete globale. È meglio fare viaggiare/trattare piccole unità di dati (pacchetti) invece che grandi messaggi o file: un pacchetto può essere inviato direttamente usando la tecnologia della sottorete; separa le attività di trasmissione di dati da quelle di elaborazione proprie dei programmi applicativi;../.. Pagina 3.2
il sistema è più flessibile perché si possono definire protocolli di rete general purpose: le macchine possono gestire il traffico senza conoscere i programmi che lo generano/ricevono/usano; si può introdurre un nuova tecnologia di sottorete modificando solo una parte del software di rete, senza che i programmi applicativi debbano essere modificati. Il concetto fondamentale è quello di internetworking: separa la nozione di comunicazione dai dettagli delle tecnologie di sottorete impedisce all'utente del servizio di accedere alle caratteristiche delle sottoreti Due osservazioni fondamentali: Non esiste una sottorete che possa servire tutti gli utenti del mondo Gli utenti vogliono poter comunicare con qualunque altro utente Da questi due fatti fondamentali origina il problema della interconnessione Dobbiamo quindi costruire il sistema di connessione degli utenti utilizzando una miriade di sottoreti diverse, che cooperano in modo unificato fornendo un coerente sistema di comunicazione in grado di interconnettere due utenti qualunque su questo globo Un sistema di questo genere viene chiamato un internetwork, o una internet, in quanto fa apparire la collezione di sottoreti come una unica grande rete di calcolatori. Pagina 3.3
3.3. Proprietà dell'internet La nozione di servizio universale è importante ma vi è qualcosa di più: vogliamo che la architettura dell'internet sia nascosta all'utente, perché i programmi applicativi non debbano conoscere la struttura delle interconnessioni e la topologia delle sottoreti: così potrà essere modificata senza impatti sugli applicativi. Le macchine devono quindi essere identificate da un identificatore unico per ciascuna di esse (indirizzo) che non cambia qualunque sia il mittente del pacchetto e qualunque sia la struttura della internet. Questo indirizzo non può essere uguale a nessuno degli indirizzi delle sottoreti Inoltre, si vuole che l'insieme delle operazioni che i programmi utenti devono invocare per inviare e ricevere i pacchetti non dipenda dalle caratteristiche dei mezzi trasmissivi delle sottoreti, dalla topologia delle interconnessioni, dalla macchina destinazione o mittente. 3.4. L'architettura di una internet Ma come si fa ad interconnettere le sottoreti per formare una internet? 1. Per connettere due sottoreti occorre un calcolatore che si possa attaccare ad ambedue le sottoreti; ma occorre anche che... 2. Il calcolatore che si attacca alle due sottoreti sia in grado di fare passare i pacchetti da una sottorete all'altra, quando richiesto Pagina 3.4
Questi calcolatori che interconnettono due o più sottoreti e che sono capaci di passare i pacchetti da una sottorete all'altra si chiamano internet gateway o internet router Esempio nella prossima figura: due sottoreti, una macchina che le connette: G intercetta i pacchetti dalla Net1 che sono indirizzati a macchine della Net2 e li immette nella rete Net2. Viceversa nell'altra direzione. Net 1 G Net 2 G deve conoscere le macchine (indirizzi) su Net1 conoscere le macchine (indirizzi) su Net2 osservare (ricevere) e ri-trasmettere il traffico su Net1 e Net2 e viceversa 3.5. Interconnessione attraverso IP gateway o router In una internet TCP/IP, i calcolatori chiamati router realizzano tutte le interconnessioni fra le sottoreti fisiche Quando la complessità della internet aumenta, i router devono conoscere la topologia./. Pagina 3.5
Net 1 G 1 Net 2 G 2 Net 3 G1 deve mandare su Net2 sia i pacchetti di Net1 diretti a macchine di Net2 che quelli diretti a macchine di Net3 Notare che G 1 non è attaccato direttamente a Net3 conoscere la topologia! Per realizzare router semplici e molto veloci occorre il seguente principio: I router instradano i pacchetti sulla base della conoscenza della sottorete di destinazione e non della macchina destinazione Poiché su una sottorete vi sono spesso molte macchine, si ottiene in questo modo una significativa riduzione della informazione che un router deve possedere per fare un'instradamento corretto ed efficiente Poiché l'internet è molto grande, la conoscenza completa della topologia delle sottoreti richiede ancora troppa memoria per la maggior parte dei router. Vedremo come si evita che tutti router debbano conoscere tutta la topologia dell'internet Pagina 3.6
3.6. Il punto di vista dell'utente L'utente non deve preoccuparsi le la macchina destinazione si trova sulla sua stessa sottorete o meno l'utente deve vedere l'internet come un unica rete virtuale alla quale sono attaccate tutte le macchine, come nella Figura 3-3(a) Figura 3-3(a) I costituenti della rete (router, sottoreti, software di accesso alla internet) non sono parte dello scenario I dettagli del software di accesso alla internet sono "nascosti" nel sistema operativo della macchina su cui eseguono le applicazioni Si può ottimizzare la rete aggiungendo router o linee di comunicazioni senza nemmeno ricompilare i programmi applicativi Pagina 3.7
La costituzione in un certo momento della rete può essere assai complessa, come in Figura 3-3(b) Figura 3-3(b) Sono mostrate le sottoreti fisiche che costituiscono la internet, e i router che attaccandosi a più sottoreti creano l'internet. Si noti che i router sono locali ad ambedue le sottoreti a cui si collegano: le sottoreti di trasporto sono indicate dalle icone delle sottoreti: i segmenti del disegno NON SONO linee di comunicazione! Sono le interfacce che le macchine hanno sulla sottorete Pagina 3.8
3.7. Tutte le sottoreti sono uguali Dal punto di vista della tecnologia sono tutte diverse Dal punto di vista dell'internet invece sono tutte uguali perché sono in grado di trasferire pacchetti, indipendentemente da caratteristiche quali throughput, massima dimensione del pacchetto, scala geografica Il protocollo internet IP tratta tutte le reti in modo uguale. Una rete locale, una rete geografica come ARPANET, una linea punto-punto fra due macchine, tutte contano come una sottorete 3.8. Domande in attesa di risposte La forma degli indirizzi internet La relazione fra gli indirizzi internet e quelli delle sottoreti Come sono fatti i pacchetti IP Come fanno le applicazioni che eseguono su una macchina a scambiarsi pacchetti con applicazioni su altre macchine Dovremo conoscere sia la struttura che l'uso del software di internet Dovremo capire come sono fatte le cose studiando i vari componenti, per poi arrivare alla visione di assieme È UN LUNGO E DIFFICILE CAMMINO! Pagina 3.9