Che cos’è il modello ISO/OSI?
Il modello Open Systems Interconnection (abbreviato in modello ISO/OSI) è stato progettato dall’International Organization for Standardization (ISO) come modello di riferimento per consentire una comunicazione aperta tra diversi sistemi tecnici. Questo punto diventa più chiaro, se si pensa alle origini di Internet: alla fine degli anni ’70 i leader del settore nelle tecnologie di rete si ritrovarono di fronte al problema che le architetture di rete proprietarie si potevano collegare solo tramite dispositivi propri, infatti nessun produttore aveva pensato di costruire componenti hardware o software compatibili con le specificazioni di altri fornitori. Ma un progetto come quello di Internet presuppone alcuni standard per poter rendere possibile una comunicazione comune.
Il modello lSO/OSI è nato dal tentativo di creare uno standard di questo tipo e offre una base per gli standard di comunicazione, indipendentemente dai fornitori. In base a questo modello, il complesso processo della comunicazione di rete si divide in sette strati, i livelli (in inglese layer). Si parla perciò anche di una comunicazione per livelli. All’interno della comunicazione tra due sistemi devono essere svolti degli specifici compiti su ogni singolo livello, tra questi rientrano ad esempio il controllo della comunicazione, l’indirizzamento del sistema target o la conversione dei pacchetti in segnali fisici. Ma questo funziona solo se tutti i sistemi coinvolti nella comunicazione si attengono a regole precise, stabilite nei protocolli, che si applicano ai singoli livelli o si possono utilizzare su ciascuno di questi (multilivello).
Il modello di riferimento ISO/OSI non è però uno standard di rete concreto, ma descrive in forma astratta quali procedimenti devono essere regolati per far funzionare la comunicazione in una rete.
I livelli del modello ISO/OSI
La comunicazione tra due computer può apparire banale agli utenti, ma in realtà durante la trasmissione di dati in una rete devono essere compiuti numerosi compiti e soddisfatte diverse richieste nell’ambito dell’attendibilità, della sicurezza e dell’integrità. Per questo si è deciso di dividere la comunicazione di rete in livelli. Ad ogni livello, strutturato gerarchicamente, sono assegnate delle funzioni specifiche (quindi uno standard copre generalmente solo una parte del modello): ogni livello accede tramite un’interfaccia a quello inferiore e mette a disposizione il servizio del livello superiore. Questo principio ha due vantaggi decisivi:
- I compiti e le richieste che devono essere compiuti e soddisfatti all’interno di un livello sono definiti chiaramente. Per ogni livello possono essere sviluppati degli standard indipendenti gli uni dagli altri.
- La chiara divisione tra i singoli livelli fa sì che le modifiche ad uno standard non abbiano alcun effetto sui processi che si svolgono su un altro livello. Introdurre nuovi standard risulta così più semplice.
I sette livelli del modello ISO/OSI si dividono in due gruppi in base ai compiti che svolgono: orientati all’applicazione e orientati al trasporto. I processi che si svolgono sui singoli livelli si possono spiegare prendendo ad esempio la trasmissione e-mail da un dispositivo ad un mail server.
I livelli orientati all’applicazione
Ci si riferisce ai livelli superiori del modello di riferimento ISO/OSI come livelli orientati all’applicazione. Si distingue tra livello di applicazione, livello di presentazione e livello di sessione.
- Livello 7 – livello di applicazione (Application Layer): questo livello del modello ISO/OSI è quello a diretto contatto con le applicazioni, come programmi di posta elettronica o browser. Qui avviene l’input e l’output dei dati e viene stabilita la connessione con i livelli inferiori del modello ISO/OSI, oltre che essere messe a disposizione le funzionalità per le applicazioni. Prendendo in considerazione la trasmissione delle e-mail, il processo si può chiarire così: un utente scrive un messaggio nel programma di posta elettronica presente sul suo dispositivo, che viene preso in carico sotto forma di pacchetto nel livello di applicazione, dove vengono aggiunte informazioni aggiuntive ai dati delle e-mail sotto forma di un application header (si parla anche di “incapsulamento”). Nell’header è contenuta anche l’informazione che i dati elaborati provengono da un programma di posta elettronica. Inoltre viene definito il protocollo da utilizzare per la trasmissione delle e-mail sul livello di applicazione (nel caso di un’e-mail si tratta generalmente di quello SMTP).
- Livello 6 – livello di presentazione (Presentation Layer): nella comunicazione di rete è importante garantire che i dati siano trasmessi nei formati standard, quindi in questo livello le rappresentazioni locali vengono trasferite nel formato standard. Nel caso della trasmissione delle e-mail viene definito come il messaggio dovrebbe apparire e per questo viene aggiunto al pacchetto un presentation header, che contiene informazioni su come l’e-mail deve essere codificata (in genere in Italia si usa la codifica ISO 8859-1 (Latin1) o ISO 8859-15), in quale formato sono eventuali allegati (ad esempio JPEG o MPEG4) e come i dati sono compressi o crittografati (ad esempio con i protocolli SSL/TLS). Così si garantisce che il formato delle e-mail viene compreso anche dal sistema target e il messaggio verrà consegnato correttamente.
- Livello 5 – livello di sessione (Session Layer): la funzione principale portata a termine nel livello di sessione è quella di organizzare la connessione tra entrambi i sistemi facenti parte della comunicazione, per questo si parla anche di livello di comunicazione. Qui si accede a specifici meccanismi di regolazione e controllo, che gestiscono le fasi di una connessione (instaurazione, mantenimento e disconnessione). Per questo controllo della comunicazione sono necessarie informazioni aggiuntive, che vengono aggiunte tramite un session header ai dati dell’e-mail da trasmettere. I protocolli di applicazione più comuni, come quelli SMTP o FTP, si occupano autonomamente delle sessioni o non presentano alcuno stato, come nel caso del protocollo HTTP. Il modello TCP/IP, che fa concorrenza a quello ISO/OSI, raggruppa i livelli 5, 6 e 7 nel livello di applicazione. Altri standard che si basano su questo livello sono NetBIOS, Socks e RPC.
I livelli orientati al trasporto
Dopo i livelli orientati all’applicazione del modello ISO/OSI, ne seguono quattro orientati al trasporto. Si distingue tra il livello di trasporto, il livello di rete, il livello di collegamento e il livello fisico.
- Livello 4 – livello di trasporto (Transport Layer): il livello di trasporto serve come elemento di unione tra i livelli orientati all’applicazione e quelli orientati al trasporto. Qui si realizza la connessione logica end-to-end del canale di trasferimento tra i sistemi comunicanti. Anche in questo caso bisogna aggiungere delle informazioni precise ai dati delle e-mail. Al pacchetto che è stato già ampliato con l’header dei livelli orientati all’applicazione, viene aggiunto qui un transport header. Si utilizzano in questo caso i protocolli di rete standard come TCP o UDP. Inoltre qui vengono definite le porte dalle quali entrano le applicazioni sul sistema target. Sul livello 4 avviene anche l’assegnazione di un pacchetto ad una precisa applicazione.
- Livello 3 – livello di rete (Network Layer): con il livello 3 la trasmissione dati raggiunge la rete Internet e qui avviene l’indirizzamento logico dei dispositivi, a cui viene assegnato un indirizzo IP univoco. Ritornando al nostro esempio, ai dati delle e-mail viene aggiunto un network header, che comprende le informazioni sul routing e il controllo del flusso di dati. Anche in questo caso i sistemi ricorrono a standard Internet come IP, ICMP, X.25, RIP o OSPF. Solitamente nello scambio e-mail si utilizza il protocollo TCP over IP.
- Livello 2 – livello di collegamento (Datalink Layer): su questo livello le funzioni di identificazione e risoluzione dell’errore e di controllo del flusso di dati servono ad evitare gli errori di trasmissione. Per fare ciò, il pacchetto comprensivo di application, presentation, session, transport e network header rientra in un frame composto da datalink header e datalink trail. Inoltre sul livello 2 avviene l’indirizzamento dell’hardware grazie all’utilizzo di indirizzi MAC. L’accesso ad un mezzo fisico viene regolato da protocolli quali Ethernet o PPP.
- Livello 1 – livello fisico (Physical Layer): qui avviene la conversione dei bit in un pacchetto in un segnale fisico adatto per il mezzo di trasmissione, che è possibile trasmettere solo tramite un filo di rame, fibra ottica o per via aerea. La comunicazione con il mezzo di trasmissione viene definito tramite protocolli e norme come DSL, ISDN, Bluetooth, USB (livello fisico) o Ethernet (livello fisico).
Incapsulamento e decapsulamento
I pacchetti attraversano ogni livello del modello ISO/OSI sia sul sistema di partenza che su quello target. Tutti gli altri dispositivi che un pacchetto attraversa durante il suo percorso si basano solo sui primi 3 livelli. L’e-mail del nostro esempio inizia a passare come segnale fisico il router, prima di proseguire il percorso per giungere ad Internet, collocato sul livello 3 del modello ISO/OSI e che elabora quindi solo informazioni dei primi tre livelli; non percorre i livelli dal 4 al 7. Per accedere alle informazioni necessarie, il router deve prima di tutto decomprimere il pacchetto incapsulato. Si parla quindi di “decapsulamento”. I livelli del modello ISO/OSI vengono quindi attraversati nell’ordine inverso.
Prima di tutto avviene la codifica del segnale nel livello fisico e dopo vengono letti gli indirizzi MAC sul livello 2, gli indirizzi IP e i protocolli di routing sul livello 3. Sulla base di queste informazioni, il router è in grado di prendere una decisione per l’inoltro. Il pacchetto può così essere incapsulato nuovamente e in base alle informazioni ottenute viene inoltrato alla stazione successiva sul percorso per giungere al sistema target.
Di solito sono coinvolti nella trasmissione dei dati più router, nei quali si svolge il processo descritto qui (decapsulamento e incapsulamento) fino a quando il pacchetto, sotto forma di un segnale fisico, non arriva a destinazione (nell’esempio il mail server). Anche qui il pacchetto viene decapsulato, attraversando i livelli del modello ISO/OSI dall’1 al 7. L’e-mail inviata tramite un client è così giunta al mail server, dove può essere aperta da un altro client.