Comunicare non è mai stato facile, soprattutto quando gli interlocutori sono distanti tra di loro.
Uno dei primi problemi che l’uomo ha dovuto superare, è stato quello di interagire e farsi capire dai propri simili, e successivamente una volta stabilite le regole per comunicare, ci si è trovati di fronte all’esigenza di farlo a distanza.
Sin da subito si è pensato di dover stabilire delle regole per comunicare, un alfabeto da utilizzare per la scrittura o dei metodi che utilizzavano gesti o suoni, per poter interagire con gli altri.
Anche la comunicazione a distanza è stata da subito una necessità. Gli indiani e gli aborigeni avevano ideato uno dei più antichi modi di inviare messaggi, i segnali di fumo. Anche in questo caso si dovevano stabilire delle regole sul significato della dimensione della nuvoletta di fumo.
Stessa cosa fatta poi in tempi più recenti con il codice morse, con il quale è possibile, combinando dei segnali acustici o visivi, trasmettere un informazione o un messaggio all’interlocutore distante.
Tutto ciò può sembrare facile, antiquato, ma ci sono voluti tantissimi anni per affinare queste tecniche di comunicazione, senza considerare poi che ogni popolo, ha sviluppato dei propri linguaggi e metodi, cioè delle REGOLE.
Oggi non comunichiamo più con i segnali di fumo o con il codice morse (anche se sarebbe sempre bene conoscerlo per ogni evenienza). Oggi utilizziamo dei metodi più innovativi, veloci ed in grado di inviare qualsiasi cosa, non solo un semplice messaggio.
Ma anche in questa epoca piena di tecnologia, la prima esigenza è quella di stabilire delle REGOLE che ci consentono di comunicare e di capirci.
Un’altra necessità che abbiamo, è quella di dover comunicare rapidamente con persone che hanno linguaggi diversi, o se parliamo di tecnologia, con dispositivi diversi. Oggi è infatti possibile inviare un messaggio da un computer tramite un programma e riceverlo da un altro dispositivo diverso tramite un programma diverso. Dietro a tutto questo, che noi viviamo con un semplice “clic”, ci sono dei metodi, delle regole, degli standard e tante altre cose che andremo ora ad approfondire, parlando di un modello che sta alla base della nostra comunicazione in rete.
Immaginiamo cosa avviene quando il direttore di un’azienda italiana vuol comunicare con un’azienda inglese, per farlo analizziamo questa immagine.
In pratica ad ogni livello c’è un compito ben preciso e soprattutto ogni livello non dipende dagli altri. Questo è il modello ISO-OSI, ed ogni livello viene identificato nel seguente modo.
L’Open System Interconnection (OSI) è uno standard per reti promosso dall’International Organization for Standardization (ISO)
Il modello ISO-OSI è strutturato in 7 livelli e definisce le funzioni di ogni livello, ma non specifica gli standard ed i protocolli utilizzati (con protocollo indichiamo un insieme di regole standard da rispettare).
Ogni livello invece utilizzerà degli standard che ne definiscono il funzionamento ed eseguirà il suo compito fornendo un servizio al livello successivo, inviandogli i dati fino a raggiungere il livello fisico della trasmissione.
Dobbiamo ricordare che tutto ciò che trasmettiamo, messaggi di testo, voce, foto o video, viene convertito in bit, cioè numeri. In pratica la necessità è quella di inviare e ricevere un insieme di bit che una volta arrivati a destinazione, verranno riconvertiti nel messaggio, nella foto, o in ciò che rappresentavano originariamente.
Nel primo esempio il direttore che scrive la lettera, ignora cosa avviene poi nei livelli successivi, lo stesso per gli altri attori dello schema. Il fattorino ad esempio, non conosce il contenuto della lettera ma si limita a portarla all’ufficio postale. In questo modo i livelli sono tra loro comunicanti, ma il loro funzionamento è mascherato agli altri livelli.
Ad esempio consideriamo il funzionamento della nostra email, il programma che utilizziamo per inviare e ricevere email (ad esempio Outlook) si limita a scrivere il contenuto ed a passarlo agli altri strati. Se la trasmissione avviene tramite fibra ottica, tramite cavo o tramite wifi, al programma di gestione della posta non importa e funziona sempre allo stesso modo.
Andiamo ora ad analizzare ogni livello, vedendo anche quali programmi o dispositivi sono coinvolti.
LIVELLO 1 – FISICO – Physcal Layer
In questo livello vengono definite le caratteristiche elettriche e meccaniche del mezzo trasmissivo, come ad esempio la tipologia dei connettori, il livello dei segnali elettrici, la durata dei singoli bit, la modulazione e la codifica utilizzata, il tipo di trasmissione half-duplex (uno alla volta) o full-duplex (trasmissione contemporanea).
Insomma il livello si occupa di tutto ciò che interessa la trasmissione del pacchetto di bit che gli viene fornito ed inviato al mezzo fisico di comunicazione, elettrico, ottico o tramite onde radio. Vengono definiti dei protocolli (cioè delle regole) per fare in modo che ogni dispositivo riesca ad effettuare il collegamento e l’invio di dati tramite il canale fisico scelto. Ovviamente tutti i dispositivi che sono connessi fisicamente alla rete (switch, schede di rete, router ecc…) dovranno rispettare gli standard previsti dai protocolli, come ad esempio la forma e la piedinatura del connettore, la tensione e la forma del segnale elettrico, ecc…
LIVELLO 2 – DI COLLEGAMENTO DATI – Data Link Layer
L’obiettivo di questo livello, è quello di ottenere un trasferimento affidabile ed esente da errori, in modo da fornire al livello superiore un mezzo fisico sicuro.
In questo livello i dati ricevuti dal livello superiore, vengono frammentati (attività di framing) e suddivisi in pacchetti a cui viene aggiunto un header (intestazione) ed una tail (coda). Alla ricezione di ogni pacchetto viene inviato un segnale di acknowledge (avvenuta ricezione) per far capire al mittente se i pacchetti sono arrivati, in modo che possano essere ritrasmessi eventuali pacchetti persi. Tramite delle tecniche di controllo errori, che sfruttano l’intestazione e la coda aggiunte, in questo livello viene controllata la correttezza del contenuto di ogni pacchetto inviato e ricevuto.
Il pacchetto dati completo dell’intestazione e della coda, viene definito trama o frame.
Questo è il più basso livello di tipo software, ed i suoi protocolli sono contenuti nei driver software dei dispositivi (vedi la scheda di rete) o nei software interni ai vari apparati intermedi (Switch, Router).
Il canale di comunicazione non è sempre utilizzato solo da un trasmettitore ed un ricevitore, ma può essere un canale condiviso da più dispositivi. Per questo motivo questo livello si deve occupare anche delle regole di accesso al mezzo trasmissivo. Per questo motivo il livello potrebbe essere suddiviso in due sottolivelli, il sottolivello LLC (Logical Link Control) che si occupa di creare il frame, ed il sottolivello MAC (Medium Access Control) che si occupa invece di far condividere lo stesso canale trasmissivo a più dispositivi, definendo con delle regole, l’accesso al canale per ogni apparato collegato alla rete.
Appartiene a questo livello il protocollo ARP (Address Resolution Protocol) che si occupa di fornire la mappatura tra indirizzo MAC di un dispositivo e l’indirizzo IP assegnato al dispositivo nella rete (il MAC address è un indirizzo numerico univoco per ogni dispositivo o componente di rete, assegnato dal costruttore). Questa mappatura viene salvata in un’apposita cache (memoria) chiamata ARPcache per evitare di utilizzare il protocollo prima dell’invio di ogni messaggio.
Il funzionamento di questo protocollo è semplice, quando un dispositivo della rete vuol comunicare con un’altro dispositivo di cui conosce l’indirizzo di rete IP, invia in broadcast (per broadcast si intende una richiesta inviata a tutti i dispositivi della rete) la richiesta ARP contenente l’indirizzo IP del dispositivo richiesto. Tutti i dispositivi ricevono la richiesta e solo quello a cui è assegnato l’IP richiesto, risponderà con il proprio indirizzo MAC. I pacchetti dati del protocollo ARP vengono incapsulati all’interno del frame utilizzato da questo livello.
LIVELLO 3 – DI RETE – Network Layer
I dati che vengono inviati su una rete hanno un mittente ed un destinatario, ad esempio se voglio navigare su un sito internet, la comunicazione avviene tra il mio computer ed il computer (Server) dove risiede fisicamente il sito internet. Ma in una rete che sia essa locale o geograficamente più ampia come internet, ogni dispositivo deve essere identificato con un indirizzo.
Questo livello prende in carico lo smistamento dei pacchetti a seconda del loro indirizzo, dovrà perciò effettuare il cosiddetto routing, cioè la definizione del percorso ottimale per raggiungere il destinatario. Per fare questo esistono dei metodi statici (definizione fissa di un percorso) o dinamici (definizione variabile del percorso a seconda anche della congestione della rete). Uno dei dispositivi interessati a questo livello, è il router che ha proprio il compito di scegliere il percorso ottimale per il pacchetto dati.
In caso di collegamento tra due reti che utilizzano indirizzi differenti, questo livello dovrà occuparsi anche di convertire gli indirizzi in modo da consentire il passaggio dati tra reti diverse. Questo livello dovrà anche occuparsi di una ulteriore frammentazione dei dati, se le reti hanno un diverso MTU (Maximun Trasmission Unit) cioè dimensione massima del pacchetto dati). La sua unità dati fondamentale è il pacchetto.
A questo livello appartiene il protocollo IP (Internet Protocol) che assegna ad ogni dispositivo di rete un indirizzo, ed il protocollo DHCP che assegna automaticamente l’indirizzo al dispositivo in una rete locale.
LIVELLO 4 – DI TRASPORTO – Transport Layer
Compito di questo livello, è garantire che i pacchetti arrivino nell’ordine corretto senza alcun errore o perdita di dati. Questo serve a rendere la comunicazione tramite la rete affidabile. Il livello si occupa inoltre di controllare la durata della trasmissione per evitare di congestionare la rete ed i router.
A differenza dei livelli precedenti, che si occupano di connessioni tra nodi contigui di una rete, il Trasporto (a livello logico) si occupa solo del punto di partenza e di quello finale.
Si occupa anche di effettuare la frammentazione dei dati provenienti dal livello superiore in pacchetti, detti “segmenti” e trasmetterli in modo efficiente ed affidabile, usando il livello rete ed isolando da questo i livelli superiori. La sua unità dati fondamentale è il messaggio.
A questo livello appartiene il protocollo TCP (Trasmission Control Protocol) e l’UDP (User Datagram Protocol).
LIVELLO 5 – DI SESSIONE- Session Layer
Anche questo livello come i precedenti a partire dal livello 2, è di tipo software. Questo livello si occupa essenzialmente di stabilire e chiudere una comunicazione tra due host (per host intendiamo un terminale connesso alla rete come un PC, uno smartphone ecc….). Esso consente anche la riapertura di una comunicazione perduta partendo dal punto di interruzione. Appartengono a questo livello i protocolli NetBIOS (Network Basic Input Output System) o il protocollo Remote Procedure Call.
Il livello si occuperà di attivare una comunicazione tra due dispositivi e mantenerla attiva per tutta la durata del trasferimento dati terminandola alla fine di esso. L’intero processo di trasmissione è chiamato sessione. La sessione comprende 3 fasi; avvio e apertura, lavoro in sessione, chiusura della sessione. Una sessione ad esempio si instaura quando un client (un terminale connesso alla rete) si connette ad un server (computer che offre un servizio).
A differenza del precedente livello di trasporto che si occupa di controllare il corretto invio dei dati, il livello di sessione fa in modo che il significato del messaggio non venga deformato. Un esempio potrebbe essere una conversazione al telefono, il livello di trasporto si occupa di mantenere una linea funzionante senza disturbi elettrici in modo che si possa tenere una conversazione comprensibile, ma se i due interlocutori parlassero insieme non si capirebbe nulla, il livello di sessione è quello che si occupa di sincronizzare la conversazione oltre che fare in modo che dopo una eventuale caduta della linea, venga ritrasmesso correttamente il messaggio in maniera comprensibile considerando quanto trasmesso prima dell’interruzione.
LIVELLO 6 – DI PRESENTAZIONE- Presentation Layer
Questo livello si occupa di trasformare i dati forniti dal livello superiore (quello di applicazione) in una modalità standardizzata. Il livello si occupa anche della compressione e della cifratura dei dati. Appartengono a questo livello i protocolli che si occupano di autenticazione e cifratura come ad esempio il TLS (Transport Layer Security) e il suo predecessore SSL (Secure Sockets Layer).
Nel caso dell’invio di una mail ad esempio, viene aggiunto al pacchetto dati un presentation header che contiene informazioni su come l’email è stata codificata, in quale formato sono gli allegati e come i dati sono stati compressi o cifrati. In questo modo l’email verrà compresa anche dal dispositivo ricevente.
LIVELLO 7 – DI APPLICAZIONE- Application Layer
L’obiettivo principale di questo livello, è quello di fornire un’interfaccia di rete verso le comuni applicazioni software. Il livello si occupa di fare in modo che due applicazioni remote possano stabilire una comunicazione. Il protocollo più conosciuto appartenente a questo livello è l’HTTP (Hyper Text Transfer Protocol) cioè il protocollo di trasferimento di un ipertesto, utilizzato quando navighiamo in internet tramite un browser. Questo protocollo mette infatti in comunicazione il nostro browser Chrome o Firefox, con il Server che ospita il sito internet che visitiamo. Un altro protocollo che interessa questo livello è l’FTP (File Transfer Protocol) che permette di trasferire dei file tramite anche autenticazione con nome utente e password. Anche lo scambio di email con i protocolli POP3 o SMTP interessano questo livello. E’ il livello più alto del modello ISO-OSI e per questo non fornisce servizi ad altri livelli, ma di fatto consente all’utente di interfacciarsi alla macchina.
MODELLO ISO-OSI IN UNA RETE
In figura possiamo vedere due terminali che comunicano tra loro tramite il modello ISO-OSI. Come si può vedere dall’immagine, la rete con tutti i suoi dispositivi (Router, Switch, cavi, ecc…) è interessata dai primi 3 livelli. tutti i livelli dialogano con i loro pari utilizzando i protocolli (frecce azzurre). I dati invece transitano da livello a livello, ed il pacchetto dati all’uscita di ogni livello sarà diverso da quello in entrata.
IMBUSTAMENTO DEI DATI
Come abbiamo detto ogni livello aggiunge delle informazioni al pacchetto dati in entrata, fino ad arrivare al livello fisico dove i singoli bit transiteranno sulla linea fisica.
Come si può vedere nell’immagine, ogni livello aggiunge al pacchetto dati in ingresso, un’intestazione contenente altre informazioni secondo i protocolli utilizzati. Al termine della catena, troveremo un insieme di bit che transiteranno sul canale fisico di comunicazione.
ARCHITETTURA DI INTERNET
Il modello ISO-OSI è stato ideato per permettere la comunicazione a pacchetto nelle reti di computer, esso non è un protocollo rigido, ma è un punto di riferimento per le architetture di rete a pacchetto, che potranno distanziarsi più o meno dal modello di partenza. Internet si basa invece sul protocollo TCP/IP che si differenzia dal modello ISO-OSI per il numero di livelli, in questo caso solo 4:
• Livello di applicazione
• Livello di trasporto
• Livello di rete
• Livello di accesso alla rete
I livelli sessione e presentazione sono assenti perché implementati (eventualmente) altrove, cioè nell’applicazione stand-alone esterna.
CONCLUSIONI.
Dai segnali di fumo è stata fatta molta strada, e la differenza sostanziale è che mentre gli aborigeni per comunicare dovevano saper accendere un fuoco, e creare delle nuvole di fumo di dimensioni variabili, oggi noi comodamente seduti ad una tastiera, o di fronte ad uno smartphone, digitiamo un messaggio ignorando totalmente tutto il traffico di dati che generiamo e tutte le implicazioni tecniche che ci sono dietro alle moderne telecomunicazioni.
Per molti lettori, l’articolo potrebbe apparire complesso, ma dobbiamo allontanarci dalla logica del funzionamento ed arrivare ad un livello più astratto e teorico. Affronteremo di seguito con altri articoli dei chiarimenti, che ci consentiranno di capire in una maniera più pragmatica determinati concetti.
Grazie dell’attenzione.