Internetworking Problema: progettazione e messa in opera di reti di computer di caratteristiche hw/sw diverse fra loro. Soluzione: creazione di standard di comunicazione. Alla fine degli anni '70, l'ISO (International Standard Organization) sentì la necessità di proporre una serie di standard per le reti di calcolatori e avviò il Progetto OSI (Open System Interconnection), uno standard che propose un modello di riferimento per l'interconnessione di sistemi aperti. l'OSI ha adottato un approccio a livelli (layers): l'intero problema della comunicazione tra due applicazioni di rete (cioè appartenenti a 2 computer diversi) è stato spezzato in un insieme di sette livelli, attraverso i quali viene ridotta la complessità implementativa di un sistema di comunicazione, ciascuno dei quali esegue funzioni ben specifiche. Ciascun sistema è decomposto in un insieme ordinato di livelli, rappresentati per convenienza come una pila verticale (stack). Viene infatti chiamato anche stack ISO/OSI Interfacce livelli 6-7 C O M P U T E R Protocollo livello 4 1 2 livelli Reti di computer Prof. Paolo Michelini Reti di computer I livelli del modello ISO-OSI Livelli adiacenti di uno stack comunicano tramite la loro interfaccia (interface). Tale approccio di progettazione a livelli è comune a tutte le moderne architetture di rete (anche non standard “de iure”); Lo scopo delle interfacce è quello di fornire servizi alle entità del livello superiore, mascherando il modo in cui questi sono implementati. Ad eccezione del livello più alto, un livello N fornisce servizi di livello N alle entità di livello N+1. Le entità di livello N, eccetto il livello 1, per comunicare usano servizi di livello N-1. Le entità di livello 1 comunicano direttamente tramite i mezzi trasmissivi che le interconnettono. Reti di computer Prof. Paolo Michelini C O M P U T E R Mezzo fisico Prof. Paolo Michelini Protocolli e peer process Le operazioni specifiche di un livello, cioè le regole e le convenzioni usate per la conversazione fra pari livello adiacenti sono dette protocollo (protocol). Anche se è definito un protocollo di livello N, nessun dato è trasferito direttamente fra i pari livello N di stack adiacenti; infatti ogni livello passa dati e informazioni di controllo a quello sottostante, sino a quando si giunge al livello Fisico, che effettua la trasmissione. Le entità che includono uguali layer su macchine diverse, sono chiamate “peer process”. Reti di computer Prof. Paolo Michelini Trasmissione fisica dei dati La trasmissione dei dati avviene sempre attraverso una serie di passaggi da livelli superiori a livelli inferiori in un primo sistema, quindi attraverso mezzi fisici di comunicazione, e poi attraverso un'altra serie di passaggi, questa volta da livelli inferiori a livelli superiori, in un secondo sistema. Si noti che viene aggiunto uno specifico header ed un eventuale trailer per ogni livello attraversato. I 2 filosofi (A. Tanenbaum) 2 filosofi (peer process di livello 3), uno in Kenya e l’altro in Indonesia vogliono comunicare. Non avendo la stessa lingua, ingaggiano 2 traduttori (peer process di livello 2), ciascuno dei quali contatta un ingegnere per trasmetter il messaggio (peer process di livello 1) Il filosofo 1 passa il suo concetto in Swahili al traduttore attraverso l’interfaccia 2/3, che traduce in francese (protocollo di livello 2). A questo punto il traduttore passa il messaggio all’ingegnere che userà il telefono o altro (protocollo di livello 1) per spedire il messaggio. Percorrendo il passaggio inverso, quando il messaggio arriva, viene tradotto in indonesiano e passa attraverso l’interfaccia 2/3 al secondo filosofo. Reti di computer Prof. Paolo Michelini Reti di computer Livello 1: livello fisico Livello 2: livello data link Effettua la trasmissione di sequenze di bit sul canale di comunicazione Permettere il trasferimento affidabile di dati attraverso il livello fisico. I servizi offerti al livello di rete sono: Definisce Reti di computer Prof. Paolo Michelini La codifica della trasmissione binaria Le caratteristiche fisiche del canale di comunicazione (cavi, connettori, ecc.) Prof. Paolo Michelini I servizi offerti al livello fisico sono: Impacchetamento o framing (identifica l’inizio e fine dei pacchetti inserendo un codice di controllo per la verifica degli errori) Controllo e correzione degli errori con eventuale richiesta di ritrasmissione dei pacchetti corrotti Controllo di flusso tra trasmettitore e ricevitore Controllo di accesso al mezzo trasmissivo L’unità dati di questo livello è il frame o trama Tutto ciò consente di far apparire, al livello superiore, il mezzo fisico come una linea di trasmissione esente da errori di trasmissione Reti di computer Prof. Paolo Michelini Routing Livello 3: livello di rete (network) Il compito del livello di rete è la trasmissione di pacchetti (packet) (unità dati del livello di network) tra due host arbitrari, che in generale non sono direttamente connessi (ovvero non hanno un collegamento diretto tra di loro) LAN 1 In particolare: effettua l’instradamento dei pacchetti di dati (routing) attraverso i nodi intermedi della sottorete di comunicazione (deve conoscere la topologia della rete scegliere il cammino migliore per ciascun pacchetto dati) Gestisce le incompatibilità tra reti di tipo diverso (ad esempio frammentando i pacchetti se la nuova rete ha una diversa unità massima di trasmissione) Effettua la rilevazione degli errori, ma non la loro correzione Sottorete di comunicazione I cammini per raggiungere due nodi possono essere molteplici LAN 2 router Tutto ciò rende i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione Reti di computer Prof. Paolo Michelini Reti di computer Livello 4: livello di trasporto Prof. Paolo Michelini Livello 5: livello di sessione Permette un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due computer (host). È il primo livello realmente end-to-end, cioè da host sorgente a destinatario (a differenza dei livelli precedenti, che si occupano di connessioni tra nodi contigui di una rete) LAN 3 Effettua la frammentazione dei dati provenienti dal livello superiore Apre e chiude le connessioni (realizzazione di un canale virtuale tra mittente e destinatario ) Rileva e corregge gli errori Previene la congestione. Gestisce le connessioni multiple in uno stesso elaboratore Controlla la comunicazione tra le applicazioni e la loro sincronizzazione. Stabilisce, mantiene e termina le connessioni (sessioni) tra applicazioni cooperanti. La sua unità dati fondamentale è il messaggio Reti di computer Prof. Paolo Michelini Reti di computer Prof. Paolo Michelini Livello 6: livello di presentazione Trasforma i dati forniti dalle applicazioni in un formato standardizzato (sintassi dell’informazione) Livello 7: livello di applicazione (es: crittografia, compressione del testo e riformattazione) Reti di computer Prof. Paolo Michelini Reti di computer Prof. Paolo Michelini Rappresenta l’interfaccia utente e macchina, cioè fornisce un insieme di protocolli (es: trasferimento di file, terminale virtuale, posta elettronica) che operano a stretto contatto con le applicazioni NB: un’applicazione utente non appartiene al livello di applicazione Reti di computer Prof. Paolo Michelini