Un argomento semplice e molto trattato nei manuali di sistemi e reti con una semplice metafora che riassume e rende efficace l’idea che c’è alla base delle comunicazioni in rete. Vediamo come.
Semplifichiamo il modello di comunicazione in rete con un esempio in cui due manager di due uffici, uno francese ed uno italiano, devono scambiarsi un qualche messaggio ma, per ovvi limiti linguistici, non possono farlo direttamente. Guardiamo la seguente immagine che ci descrive come potrebbe avvenire la comunicazione.
La dinamica è semplice: i due manager per intendersi hanno bisogno di una lingua comune, ad esempio l’inglese, così il manager francese affida per primo il messaggio al traduttore che lo traduce e lo consegna alla segretaria che lo trasmette telefonicamente, attraverso il cavo telefonico quale mezzo fisico; la segretaria del manager italiano riceve il messaggio telefonico, lo trascrive e lo passa al traduttore che a sua volta consegnerà il messaggio al manager. Ovviamente i passaggi possono essere “bidirezionali”, ovvero anche il manager italiano può a suo volta inviare in modo analogo un messaggio al collega francese. La comunicazione non è diretta tra i due manager, ma avviene per passaggi successivi in una sorta di pila (stack in inglese) in cui ogni livello riceve un frammento informativo dal piano superiore per aggiungere la propria funzionalità prima di passarlo allo strato sottostante. Nonostante la lingua differente, gli strati del traduttore uniformano i messaggi in un linguaggio standard, così come i segretari si accordano sul mezzo telefonico per trasmettersi il messaggio. E’ un po’ l’analogo di quello che avviene quando a comunicare tra loro sono dispositivi elettronici. Basti pensare ad una semplice chat su qualche social che facciamo con un amico.

Ogni livello ha una sua funzione specifica che corrisponde a quella del suo pari che sia mittente o ricevente. Ogni livello riceve dal livello superiore una unità informativa che rielabora secondo le proprie specifiche, aggiungendo evidentemente delle informazioni, per poi lasciarla a livello inferiore o spedirla attraverso il mezzo fisico. E’ una sorta di sistema di imbustamento successivo, un po’ come avviene con le vecchie lettere cartacee che per spedirle ad un amico dobbiamo inserirle in una busta dove aggiungiamo delle informazioni necessarie a spedirle al destinatario.
Anche dalla figura sosttostante, è chiaramente visibile come i dati mandati poi effettivamente sul mezzo fisico sono di molto aumentati dal livello più alto iniziale. Ogni strato ha aggiunto il suo header, la sua intestazione utile allo strato corrispondete del ricevente per capire come utilizzare le informazioni. Il fatto di aggiungere così tanti header ad ogni livello, non brilla di efficienza a livello di trasmissione, mandando quasi il doppio dei bit iniziali. Nonostante questo “overhead“, questo sovraccarico di informazioni, l’incapsulamento ha reso la fortuna delle reti dati così come le conosciamo oggi, permettendoci di scambiarci dati con dispositivi diversi, rete diverse, lingue e sistemi metrici diversi, sistemi operativi differenti ecc proprio perché tutti questi strati tcp/ip concorrono ad armonizzare la comunicazione.
L’incapsulamento degli strati della pila TCP/IP
I primi tre livelli sono quelli che hanno a che fare con i dispositivi di rete, switch, hub, cavi e schede di rete. Il primo Fisico, è gestito dalle schede di rete che trasformano le informazioni che giungono da sopra sotto forma di bit, in un insieme di segnali elettrici o elettromagnetici da spedire sui cavi (che siano i cavi in rame o la fibra ottica) o antenne per le comunicazioni wireless (Wi-Fi, WiMAX, LoRa). Ti rimando a questo articolo per approfondire. Il secondo si occupa di una prima gestione delle trame, le informazioni raccolte a cui è associato un indirizzo mac del mittente e del ricevente, una sorta di marchio delle schede di rete che basterebbe per far comunicare e transitare traffico nelle reti lan. Questo strato si Collegamento, si occupa di gestire attraverso protocolli standard la comunicazione tra schede di rete di differente natura in modo del tutto trasparente all’utente. Tutto il funzionamento si basa sugli indirizzi mac e il protocollo CSMA/CD. Gli switch di una rete lan, possono gestire il traffico semplicemente conoscendo gli indirizzi mac dei dispositivi collegati alle proprie porte. Il discorso cambia se dobbiamo instradare il nostro traffico su una rete complessa come quella Internet. Banalmente una rete locale vive con il suo switch che collega tutti i dispositivi della piccola rete. Ma cosa accade se mi occorre collegarmi ad un server o dispositivo esterno alla rete lan? Questo per essere identificabile e raggiungibile dovrebbe avere un cavo collegato allo switch e diffondere il suo mac address. Ovviamente è irrealistico che un server internazionale tipo di un social network allunghi uno cavo ethernet allo switch di casa mia per farmi navigare tra pagine ed amici. Qui ci occorrono delle funzionalità di Rete che identifichino mittente e ricevente con indirizzi più complessi detti IP, i cui valori sono utilizzati da dispositivi complessi come i router, per trovare il percorso e la destinazione dei pacchetti che contengono le nostre informazioni. Altro strato significativo è quello Trasporto che regola la connessione, la velocità, l’affidabilità dello scambio di informazioni suddivise in più pacchetti tra due punti. Gli strati superiori, Sessione, Presentazione, Applicazione hanno più a che fare col risultato finale dei pacchetti che giungono finalmente in cima dove si trovano i software che useranno questi pacchetti prelevando i dati significativi da visualizzare in una chat, su di un browser, un videogame multiplayer ecc.
Gli alunni sono soliti associare il concetto di pila e la stratificazione come una sorta di struttura fisica ma è meglio specificare che questi strati sono funzionalità “logiche” implementate hw e/o sw poi dalle varie schede e dispositivi di rete.
Ultima modifica 19 Settembre 2023