Architettura a strati: ISO-OSI e TCP-IP (pag. 220) MOD3Uni3 Per semplificare la struttura di progetto, tutte le architetture di rete sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce con il livello superiore fornendo servizi. Nel dialogo tra i livelli vengono rispettate delle convenzioni e delle regole chiamate protocolli. È denominata quindi Architettura di rete un insieme di livelli e protocolli. Le tre architetture di rete più utilizzate sono: SNA di IBM (architettura di tipo proprietario), utilizzata in ambito bancario, OSI, l’architettura standard definita da ISO, e TCP/IP, l’architettura di rete di Internet, quest’ultime architetture di tipo pubblico. Con questa struttura un utente di una rete di computer può condividere le applicazioni presenti sulla rete senza preoccuparsi delle trasformazioni che i dati dovranno subire prima di passare attraverso il mezzo trasmissivo in forma di bit. Host A Host B Livello N Protocollo livello N Interfaccia N-1/N Livello N-1 Livello 2 Interfaccia 1/2 Livello N Interfaccia N-1/N Protocollo livello N-1 Protocollo livello 2 Livello N-1 Livello 2 Interfaccia 1/2 Livello 1 (Trasferimento fisico dei dati) Il livello N su un host conduce una conversazione con il livello N di un altro host. Le regole e le convenzioni che gestiscono la conversazione prendono il termine di protocollo di livello n. Le entità, ovvero i processi che rendono possibile una conversazione si chiamano Peer entity (entità di pari livello), il dialogo fra due peer entity avviene tramite lo scambio di pacchetti chiamati PDU (Protocol Data Unit), composti da una parte di dati e da una intestazione specifica del livello. Il trasferimento dei pacchetti non avviene direttamente tra il livello n di host A e il livello n di host B, ma ogni livello di host A passa le informazioni al livello sottostante, fino ad arrivare al livello 1 dove l’informazione viene trasmessa mediante un mezzo fisico. Il dato quindi passa da ogni livello a quello superiore sino a raggiungere il livello N di host B. 1 Ogni livello comunica con quello direttamente superiore N+1 e inferiore N-1attraverso un’interfaccia che deve avere le seguenti caratteristiche peculiari: minimizzare le informazioni da trasferire e rendere possibile la modifica e le implementazioni del livello. Con SDU (Service Data Unit) si indicano i dati scambiati attraverso l’interfaccia. Le Peer entity pensano concettualmente ad una comunicazione orizzontale fra loro, basata sulle funzionalità del proprio livello, mentre in realtà comunicano ciascuna col livello sottostante attraverso l'interfaccia fra i due livelli. I servizi definiscono quali operazioni il livello può eseguire per conto del livello superiore e di quello inferiore, ma non dice nulla su come tali operazioni dovranno essere realizzate. Di quest’ultimo aspetto si occupano i protocolli, cioè gli insiemi di regole che governano il formato ed il significato dei blocchi di informazione, dei pacchetti o dei messaggi che vengono scambiati dalle peer entity di un certo livello. Le entità utilizzano i protocolli per implementare le definizioni dei propri servizi. Esse sono libere di modificare i propri protocolli in futuro, purché non cambino i servizi erogati, realizzando così la totale indipendenza della realizzazione di ciascun livello rispetto agli altri. In questo modo si ottengono due vantaggi importanti: 1) possono dialogare fra loro anche host aventi caratteristiche (processore, sistema operativo, costruttore) diverse; 2) ciascun livello si occuperà di un aspetto specifico in modo indipendente dall’implementazione dei livelli sottostanti (per esempio, una pagina web potrà essere interpretata correttamente dal browser indipendentemente dal fatto che il fruitore stia utilizzando un computer desktop collegato alla rete dell’Università o il suo portatile collegato via radio tramite un hot spot dell’aeroporto). Ogni livello aggiunge al messaggio un’intestazione (header) con informazioni di controllo; un livello potrebbe dover frammentare un messaggio in unità più piccole, aggiungendo un’intestazione ad ogni frammento; quando il messaggio arriva alla stazione di destinazione il messaggio risale lungo i livelli. Ovviamente ogni livello toglie dal messaggio le informazioni che sono state aggiunte dal livello corrispondente, le utilizza per la propria elaborazione e passa il resto del messaggio al livello superiore. Vale la seguente terminologia: 1) il messaggio passato da un livello al sottostante viene chiamato PDU (Protocol data Unit); 2) lo stesso messaggio nel livello sottostante viene chiamato SDU (Service Data Unit); 3) le informazioni aggiunte all’SDU come intestazione vengono chiamate PCI (Protocol Control Information). Il messaggio formato da PCI e SDU costituisce la PDU da passare al livello successivo; nel modello OSI al posto di PDU si usano i seguenti termini in relazione al livello dove viene formato il messaggio: • • • segmento pacchetto frame Due formalizzazioni della struttura a strati fin qui presentata sono: il modello di riferimento l’ISO/OSI e l’architettura di rete TCP/IP. 2 La sostanziale differenza tra i due è che il modello ISO/OSI si limita a specificare cosa dovrebbe fare ciascun livello, ma non specifica con precisione i servizi ed i protocolli che devono essere usati e, dunque, non può essere considerato un’architettura di rete. Tuttavia la sua rilevanza storica e concettuale fanno sì che esso sia il fulcro di ogni implementazione di rete. Quindi diciamo che OSI è un modello di riferimento e non un’architettura di rete, poiché descrive livelli e servizi ma non protocolli, il modello TCP/IP è una suite di protocolli, denominata impropriamente modello, ed è effettivamente una architettura di rete. Per comprendere meglio i meccanismi di funzionamento del software di rete pensiamo all’analogia umana in cui due persone vogliono dialogare tra loro nonostante siano geograficamente distanti e parlino lingue differenti: Dialogo Persona X P Interfaccia traduzione Interfaccia traduzione Uso della lingua inglese Traduttore Interfaccia spedizione Segretaria Persona Y Traduttore Interfaccia spedizione Uso del fax Segretaria Trasferimento fisico dei dati La persona X vuole inviare un messaggio alla Y, che parla una lingua diversa dalla propria. Il messaggio subirà delle trasformazioni: 1) sarà dato in mano ad un traduttore che, tramite le regole di traduzione, lo scriverà in lingua inglese; 2) il messaggio tradotto sarà dato alla segretaria che, utilizzando il fax, farà l’operazione di spedizione 3) il messaggio, così opportunamente trattato, arriverà al livello più basso che è rappresentato dal mezzo fisico su cui viaggia il fax, ovvero la linea telefonica . Arrivato a destinazione, il fax viene interpretato correttamente dal dispositivo di ricezione, passato alla segretaria che effettua la stampa, quindi la stampa viene passata al traduttore che, utilizzando le regole della lingua inglese, lo traduce e lo passa alla persona Y. Servizi orientati alla connessione e servizi privi di connessione Un servizio offerto da un livello a quello superiore può essere: • connection oriented o orientato alla connessione, come una telefonata: dopo aver stabilito la connessione i dati seguono sempre lo stesso percorso e arrivano in ordine 3 • connectionless o privo di connessione, come una lettera: due lettere che devono raggiungere la stessa destinazione possono seguire percorsi diversi e arrivare in modo non ordinato; i servizi senza connessione sono chiamati servizi datagram Inoltre un servizio può essere: • affidabile o servizio con conferma, se non vengono mai persi dati; normalmente si realizza usando messaggi di conferma di avvenuta ricezione • non affidabile o servizio senza conferma se non è garantita la consegna dei dati Si possono quindi avere le seguenti combinazioni: • servizio orientato alla connessione e affidabile, necessario per il trasferimento di un file ( i dati devono arrivare tutti ed in ordine) • servizio orientato alla connessione e non affidabile, indicato per la trasmissione di voce o filmati in tempo reale; è preferibile infatti un servizio inaffidabile per non subire il ritardo della conferma • servizio non connesso non confermato, utilizzabile quando non è importante se qualche messaggio si perde • servizio non connesso confermato, in cui dopo l’invio si attende un messaggio di conferma della ricezione Nell’architettura a livelli, in tutti i livelli superiori al fisico ci sono due modalità operative: modalità connessa o modalità non connessa. In modalità connessa due peer entity concordano il trasferimento di una PDU, quindi i pacchetti vengono trasmessi in ordine e se la connessione cade può essere riavviata. Se il servizio è anche affidabile, i pacchetti vengono anche numerati, e, per ogni pacchetto ricevuto, viene inviato dal destinatario un pacchetto di avvenuta ricezione chiamato ACK (Acknowledge). Con questa modalità è possibile gestire eventuali errori di trasmissione e anche correggerli. In modalità non connessa il protocollo non necessita della fase di creazione della connessione e il pacchetto, corredato con l’indirizzo di destinazione, viene inviato come pacchetto a se stante. Con questa modalità il protocollo è generalmente più efficiente, perché non necessita della fase di creazione della connessione ma non può correggere eventuali errori di trasmissione. Il modello ISO-OSI Il modello OSI (Open Systems Interconnection Reference Model) è un modello di software di rete a livelli definito dall’ISO (International Standards Organization) per fornire uno standard mondiale per gestire le interconnessioni in rete dei vari computer ossia per guidare l’attività di progettazione delle reti di comunicazione e della programmazione delle applicazioni di rete. Il modello OSI è basato su 7 livelli: I 3 livelli inferiori (Fisico, Data Link e Rete) sono standard per la comunicazione e si occupano della gestione della sottorete di comunicazione; dipendono dal gestore della rete di comunicazione e le applicazioni non possono influire su di essi. 4 I quattro livelli superiori (Trasporto, Sessione, Presentazione ed Applica-zione) riguardano l’elaborazione; permettono cioè di creare applicazioni indipendentemente dalla rete di comunicazione. Il Livello Fisico E’ il livello che gestisce le caratteristiche hardware della rete. Si occupa della trasmissione di un flusso di bit lungo un mezzo di trasmissione (un bit alla volta, cioè in modo seriale, o in modo parallelo quando i bit di un byte vengono trasmessi contemporaneamente come all’interno di un computer o su un cavo parallelo). I problemi del livello fisico sono: codificare i dati in modo che possano essere trasportati dal mezzo di trasmissione (il metodo di codifica dipende dalle caratteristiche del mezzo di trasmissione usato), stabilire la connessione iniziale, in quale direzione vengono trasmessi i dati, quanti volts devono essere utilizzati per rappresentare un 1 e uno 0, ecc… Gli elementi che si trovano nel livello 1 sono: • • le schede di rete o NIC (Network Interface Card) che vengono installate all’interno del computer nella scheda madre gli hub, o ripetitori, che collegano tra loro gruppi di utenti. Sono caratterizzati dal numero di porte, generalmente 8, che limita il numero di host che possono essere connessi (a meno di collegare più hub in serie per aumentare le connessioni possibili). Ogni pacchetto di dati trasmesso da un qualsiasi host viene ricevuto dall’hub su una porta e trasmesso a tutte le altre (in modo broadcast). Il Livello di Data Link Il livello di data link gestisce il collegamento dati da un computer all’altro della stessa rete. In particolare i suoi compiti sono: 1) Raggruppa i bit del livello fisico in pacchetti chiamati frame (operazione di framing); 2) Effettua il controllo di flusso, ovvero regola il flusso in modo che stazioni che lavorano a velocità diversa possano comunicare in modo adeguato. 3) verifica la correttezza dei bit trasmessi e ne richiede eventualmente la ritrasmissione; 4) controlla gli errori di trasmissione ed eventualmente corregge gli errori In dettaglio: Il livello di data link della stazione mittente riceve i dati dal livello superiore (il livello di rete) e li suddivide in frame, aggiungendo informazioni di controllo all’inizio ed alla fine (framing); dopodiché passa i frame al livello fisico che provvede ad inviarli sul mezzo di trasmissione. Il livello DL della stazione ricevente deve prendere il flusso di bit che arriva dal LF e comprenderne la suddivisione in frame; le informazioni di controllo aggiunte dal livello paritetico vengono tolte ed elaborate e se il frame è corretto i dati contenuti nel frame vengono inviati al livello di rete soprastante. Gli errori di trasmissione vengono gestiti aggiungendo in coda al frame un codice di controllo (vi possono essere codici correttori che permettono di individuare e correggere eventuali errori prima di passare il frame al LR, ma più spesso vengono usati solo codici rilevatori che permettono di individuare solamente gli errori ma non di correggerli): la stazione mittente calcola un codice di controllo e lo aggiunge al frame; la stazione ricevente lo ricalcola e lo confronta con quello ricevuto; in caso di errore il frame viene scartato. 5 A questo punto quello che succede dipende dal tipo di servizio usato. Se il servizio non è affidabile il frame viene semplicemente scartato e dovranno essere i livelli superiori ad accorgersene e a provvedere alla ritrasmissione; se il servizio è affidabile avverte il mittente perché ritrasmetta il frame. Nei servizi orientati alla connessione il controllo di flusso stabilisce come avviene la comunicazione tra le stazioni, regola il flusso in modo che stazioni che lavorano a velocità diversa possano comunicare in modo adeguato. Gli elementi di interconnessione della rete a livello 2 sono i seguenti: • • gli switch, dispositivi come gli hub ma con una’efficienza di trasmissione maggiore. Uno switch invia i pacchetti di dati direttamente alle porte specifiche dei destinatari sulla base delle informazioni contenute nell’header di ogni pacchetto. I bridge, dispositivi analoghi ai switch ma hanno solo due porte e quindi sono gli elementi di interconnessione tipici di due LAN Il Livello di Rete Il livello di rete è il livello a cui appartengono alcune funzioni tipicamente di rete. Consente il colloquio fra calcolatori non direttamente connessi da un mezzo trasmissivo; ad esempio, con riferimento alla figura successiva, se il livello 3 non esistesse, il calcolatore A potrebbe solo colloquiare con il calcolatore B grazie al livello data link. Nel livello di rete i messaggi vengono suddivisi in pacchetti che, una volta giunti a destinazione, vengono riassemblati nella loro forma originaria. Il protocollo di rete più utilizzato nel livello 3 è il protocollo IP ( Internet Protocol). Il livello 3, inoltre, gestisce l'instradamento dei messaggi, determina cioè quali calcolatori intermedi conviene che i pacchetti attraversino affinché raggiungano il calcolatore destinatario del messaggio. Il livello 3 fa riferimento perciò a degli apparati di interconnessione che all'interno di una rete prendono il nome di router. I router, basandosi su una mappa di rete chiamata tabella di routing, possono fare in modo che i pacchetti raggiungano le loro destinazioni attraverso i percorsi più idonei. Se cade la connessione tra due router, per non bloccare il traffico, il router che deve trasmettere può trovare un percorso alternativo. Il Livello di Trasporto Il livello di trasporto è il cuore di tutta la gerarchia di protocolli. Il suo compito è di fornire un trasporto affidabile ed efficace dall'host d’origine a quello di destinazione, indipendentemente dalla rete utilizzata. 6 In particolare apre o chiude una connessione con il sistema corrispondente, frammenta e riassembla i pacchetti (chiamati segmenti) e assicura il trasferimento dei dati evitando che vi siano errori e duplicazioni. Questo è il livello in cui si prescinde dalle caratteristiche della rete. Da ciò discende che il software di livello transport è presente solo sugli host, e non nei router della subnet di comunicazione. Il protocollo standard nel livello 4 è il protocollo TCP (Transmission Control Protocol) Il Livello di Sessione Il livello di sessione gestisce la corretta corrispondenza dei dati che devono essere visualizzati. In questo livello si sa sempre fino a che punto la comunicazione è andata a buon fine. Ad esempio, se un trasferimento di dati tra due host dura molte ore, il livello di sessione gestisce la sincronizzazione, ovvero mette dei punti di controllo e se il trasferimento si interrompe non è necessario trasferire l’intero archivio ma solo la parte inviata dopo l’ultimo punto di controllo. Il Livello di Presentazione Il livello di presentazione gestisce i formati di conversione dei dati in modo da compensare eventuali differenze di rappresentazione e di formato dei dati in arrivo e/o in partenza. Ad esempio, il colloquio tra terminali che utilizzano codifiche diverse (es. l’ASCII e l’EBCDIC dell’IBM) è completamente supportato dal livello di presentazione. Il Livello di Applicazione Il livello di applicazione gestisce la visualizzazione dei dati relativa a programmi applicativi. Consideriamo ad esempio due sistemi che vogliono comunicare e hanno due tastiere diverse e non compatibili, il livello di applicazione gestisce la corretta visualizzazione. 7 Sequenza delle operazioni effettuate dai livelli Come avviene in pratica la comunicazione tra un livello e quello sottostante? Supponiamo di dover spedire una lettera: redatto il messaggio su un foglio di carta, metteremo quest’ultimo in una busta, sulla quale scriveremo l’indirizzo del mittente e del destinatario. L’addetto della compagnia postale ritirerà la busta e la porterà al centro di smistamento della città di partenza, dove la nostra lettera sarà messa in un sacco indirizzato alla città di destinazione. Il sacco sarà caricato via via sugli opportuni mezzi di trasporto (non importa quali e quanti) e giungerà al centro di smistamento della città di destinazione. Qui sarà aperto e la nostra busta sarà consegnata al postino per la consegna finale. Il postino leggerà l’indirizzo e consegnerà la lettera al destinatario. Il destinatario, letto l’indirizzo, aprirà la busta e leggerà il messaggio. E’ importante notare che soltanto il mittente ed il destinatario elaborano le informazioni contenute nella lettera, tutti gli altri protagonisti della consegna si limitano a leggere l’indirizzo sulla busta (o sul sacco) e reindirizzano la missiva alla tappa successiva. Nelle reti di comunicazione avviene qualcosa d’analogo: i dati dell’applicazione vengono incapsulati nei livelli sottostanti fino ad arrivare al livello fisico; durante il percorso vengono “aperte” solo le “buste” relative ai livelli che si occupano dell’instradamento del messaggio e solo sull’host di destinazione i dati dell’applicazione vengono elaborati. In altri termini, ciascun livello dell’host mittente incapsula i dati (payload) del livello superiore premettendo un’intestazione (header) ed, eventualmente, posponendo dei codici di controllo (Trailer); a sua volta il pacchetto così costruito diventa payload del livello sottostante. (PDU) Lungo il percorso attraverso i nodi della rete vengono elaborati ed eventualmente modificati solo gli header dei livelli che si occupano della trasmissione. Sull’host di destinazione saranno processati gli header relativi ad ogni livello, fino alla consegna dei dati all’applicazione. Ciascun livello avrà dunque una propria Protocol Data Unit (PDU), composta da header, payload e trailer. 8 Il processo di imbustamento attraverso i sette strati La sequenza delle operazioni effettuate dai livelli sarà quindi: 1) GENERAZIONE DEL MESSAGGIO e incapsulamento dei vari header di livello. Avviene nei livelli 7, 6 e 5 Un utente effettua ad esempio l’invio di una e-mail o il trasferimento di un file. 2) TRATTAMENTO DEL MESSAGGIO per gestirne l’affidabilità e incapsulamento dell’header Avviene nel livello 4 I dati ricevuti dal livello 5 vengono spezzettati in segmenti, numerati sequenzialmente e spediti al destinatario. I dati ricevuti dal livello 3 vengono riassemblati nell’ordine previsto, inoltre, se il protocollo è connesso, viene inviato un segnale di avvenuta ricezione (ACK). Nel caso di fallimento della ricezione di un segmento, il destinatario può richiederne la ritrasmissione. 3) SCELTA DEL PERCORSO DA SEGUIRE e incapsulamento dell’header Avviene nel livello 3 I dati ricevuti vengono integrati con una intestazione (header) che contiene l’indirizzo logico del mittente e del destinatario. Questo permette agli apparati di rete (router) di smistare i pacchetti e scegliere i percorsi. 4) AGGIUNTA DELL’INDIRIZZO LOCALE DI RETE NEL FRAME Avviene nel livello 2 I pacchetti ricevuti vengono integrati con l’indirizzo locale di rete (NIC) e viene aggiunto anche il trailer, ovvero un codice di controllo (CRC) per il rilevamento degli errori. 5) CONVERSIONE BINARIA Avviene nel livello 1 Il frame viene convertito in una struttura di 0 e 1 per la trasmissione sul mezzo. I dati assumono un valore diverso in funzione del livello dove si trovano: • • • • • Livello 7, 6 e 5 Livello 4 Livello 3 Livello 2 Livello 1 Dati Segmenti Pacchetti Frame Bit 9 ISO/OSI e TCP/IP Il modello ISO/OSI è un modello protocollare teoricamente perfetto, teorizzato dalla più grande organizzazione di standard mondiale per essere usato su larga scala da qualsiasi tipo di rete. Ciononostante non è questo il modello su cui oggi si basa la rete internet, ma tutta internet si basa sul modello TCP/IP. Perché? Il motivo è presto detto. Mentre i grandi teorici si riunivano per teorizzare il modo perfetto in cui strutturare internet (siamo intorno alla metà degli anni '70) un gruppo di hacker e studenti dell'università di Berkley aveva già preparato un altro modello, più snello, che era già in grado di far comunicare tra loro tutte le macchine dell'ateneo. Stiamo parlando appunto del TCP/IP. La nascente rete internet si trovava quindi da un lato con uno standard de iure (ovvero certificato dalla più grande organizzazione di standard mondiale) che però era ancora definito solo a livello teorico e non aveva mai avuto applicazioni pratiche, dall'altro con quello che poi è diventato uno standard de facto, un modello già efficiente a livello pratico, pensato e progettato da un gruppo di hacker universitari e che era già in grado di far comunicare tra loro host di natura diversa. La scelta è ricaduta proprio su quest'ultimo, e nonostante a livello giuridico lo standard di internet sia la pila protocollare ISO/OSI, di fatto l'intera rete si appoggia sulla pila protocollare TCP/IP. Il TCP/IP è una pila protocollare del tutto simile a ISO/OSI come funzionamento, ma strutturata a 4 livelli anziché 7. Ecco la sua struttura: E il funzionamento in breve: • • • • Il messaggio originale viene gestito a livello applicativo (può essere una richiesta di una pagina web, una richiesta di un messaggio di posta, un messaggio di status in una chat...). Il messaggio originale viene passato al livello di trasporto host-to-host (TCP, o UDP), che si preoccupa di incapsulare il messaggio originale aggiungendo informazioni per il corretto recapito del messaggio. Il pacchetto così costruito viene ulteriormente incapsulato dal livello di comunicazione, o livello internet, che aggiunge al pacchetto informazioni circa l'indirizzo IP (indirizzo logico, non fisico) del mittente e del destinatario. Il pacchetto viene infine incapsulato a livello fisico, che aggiunge informazioni per il recapito fisico quali l'indirizzo fisico (MAC) dell'interfaccia del mittente e del destinatario. Il pacchetto così costruito (frame) è pronto ad essere immesso nella rete, eventualmente attraversare uno o 10 più commutatori di pacchetto (router, switch o hub) e infine giungere a destinazione, dove verrà 'spogliato' delle informazioni aggiuntive che lo hanno accompagnato durante il viaggio e dove il messaggio originale verrà consegnato nuovamente al livello applicativo dello stack TCP/IP. Per approfondire l'incapsulamento successivo di un livello nell'altro e confrontare con il modello TCP/IP: Tutto parte dal messaggio originale che il mittente vuole scambiare con il destinatario. 11 Questo messaggio viene spinto nella pila ISO/OSI, e ogni passaggio di livello arricchisce il messaggio di partenza con delle nuove informazioni. - Il livello di trasporto ad esempio aggiungerà al pacchetto dei bit per il controllo dello status e per assicurarsi che il pacchetto non arrivi a destinazione corrotto - il livello di rete aggiungerà l'indirizzo IP (lo esamineremo in seguito) del mittente e del destinatario, - il livello di data link aggiungerà il MAC (lo esamineremo in seguito) o l'indirizzo fisico delle interfacce di rete del mittente e del destinatario, - il livello fisico si occuperà del mezzo di collegamento, occupandosi di come i bit verranno fisicamente trasportati da un host all'altro. Inoltre come è possibile notare dallo schema a livello virtuale i livelli dello stesso tipo da una parte e dall'altra comunicano tra di loro. Quindi se il mittente aggiunge a livello di rete l'IP del destinatario e del mittente, questa informazione verrà elaborata dal destinatario, e sempre dal livello di rete della sua pila ISO/OSI. 12
© Copyright 2024 Paperzz