Il viaggio dei dati
Relazione tra livelli adiacenti
Un'operazione semplice come trasferire un file da un computer ad un altro, nasconde al suo interno una serie di processi che meritano un approfondimento.
Lo standard che un pò tutte le reti locali seguono è l'OSI (Open System Interface) definito negli anni 80 da un ente, l'ISO: Organizzazione Internazionale per la Standardizzazione. L'OSI è un modello di riferimento che divide l'operazione da cui siamo partiti in sette problemi più piccoli e più facili da analizzare, detti layer (livelli).
Vediamo cosa succede ai nostri dati mentre passano da un layer all'altro. Supponiamo di volere mandare un messaggio da un computer A ad un altro computer B. Ecco cosa succede
Come si vede nella figura qui sopra, l'applicazione del computer A genera il messaggio. Poi questo scende nel primo layer, il 7, poi nel 6 nel 5 e così via fino a che non arriva al layer 1.
Durante ogni passaggio, intorno ad esso, vengono via via aggiunte informazioni supplementari, in modo tale che esso sia pronto ad affrontare il suo lungo viaggio attraverso terre potenzialmente ostili. Il nome con cui ci si riferisce a suddetti dati, è:
header (se essi sono aggiunti in testa)
oppure
trailer (se aggiunti in coda).
Perchè tutto proceda per il verso giusto questi dati aggiuntivi sono molto utili. I loro compiti sono sostanzialmente i seguenti:
il messaggio deve essere recapitato al computer giusto
non deve contenere errori o alterazioni
deve seguire certi formati, definiti dai protocolli utilizzati
Quello che succede è che il messaggio viene rielaborato dal layer corrente in modo tale da essere "digerito" dal layer che segue, ed i dati extra non sono altro che il "condimento". Una volta aggiunti, il messaggio diventa di livello più basso.
Questa tecnica è chiamata imbustamento multiplo, il nome si spega bene da solo.
Una volta giunto fino al computer B, il messaggio risale i sette layer seguendo la procedura inversa.
In questa seconda fase ogni layer esamina ed usa le informazioni aggiuntive. Se tutto procede senza intoppi, il messaggio viene spacchettato, cioè viene a poco a poco ripulito da questi dati addizionali, finchè non si sarà ripristinato il messaggio originale da visualizzare sul programma destinatario.
Non è detto che un'architettura di rete implementi in modo esplicito tutti questi sette layer, spesso è meglio riunirne qualcuno in un blocco unico.
Approfondimento: i 7 layer del modello OSI visti da vicino
LAYER 1: FISICO (il più vicino all'hardware)
Il livello 1 si occupa della trasmissione dei dati in binario sulla rete. In questo livello viene specificata la rappresentazione elettrica degli 0 ed 1 binari in modo tale che il sistema ricevente possa leggere correttamente il flusso di bit in arrivo.
LAYER 2: DATA LINK
Il livello 2 serve per gestire le trame (frame), spezzoni di messaggio di lunghezza fissa. Gestisce inoltre meccanismi per l'individuazione e la correzione degli errori avvenuti nel layer 1.
LAYER 3: NETWORK
Il livello 3 gestisce l'instradamento dei pacchetti, esaminandone l'indirizzo di provenienza e di destinazione e gestendo le tabelle di instradamento necessarie per giungere velocemente a destinazione. E' anche usato per scegliere instradamenti alternativi nel caso di guasti o di mutate condizioni di traffico su certi segmenti. I router lavorano su questo layer.
LAYER 4: TRASPORTO
Il livello 4 si occupa di fornire un trasferimento dati affidabile. In particolare partiziona i messaggi in pacchetti, ne controlla e preserva l'ordine con cui devono essere spediti, controlla la presenza di errori. E' il primo layer che lavora indipendentemente dalla topologia della rete in cui si trova, per questo viene chiamato end-to-end.
LAYER 5: SESSIONE
Il livello 5 controlla il dialogo e la sincronizzazione tra due programmi applicativi, entità del layer presentazione, il 6. Tra i suoi servizi ci sono inoltre le comunicazioni in remoto, ed il trasferimento di posta e file.
LAYER 6: PRESENTAZIONE
Il livello 6 serve per risolvere le differenze di formato dei dati. Questo può accadere se in rete ci sono sistemi che adottano codifiche diverse (ad esempio codifica ASCII o EBCDIC).
LAYER 7: APPLICAZIONE (il più vicino al software)
Il livello 7 è il layer che interagisce direttamente con i programmi applicativi sul sistema operativo. Si occupa tra l'altro del trasferimento di file, delle connessioni a computer remoti e della posta elettronica.
RELAZIONE TRA LIVELLI ADIACENTI
Come abbiamo visto, ognuno di questi sette layer comunica direttamente con il layer sottostante.
Tuttavia, guardiamo per un momento la struttura OSI da un altro punto di vista. E' abbastanza facile rendersi conto che in realtà, se prendiamo un layer di livello N su un computer A, esso vuole parlare non tanto con il suo layer sottostante di livello N-1 , bensì con il layer dello stesso livello N, ma del computer B. E' come se tutto quello che sta sotto i due layer di livello N sia solo un servizio perchè essi comunichino.
Un layer di livello N viene chiamato service user, uno di livello N-1 è detto service provider. I servizi di N-1 sono forniti ad N in un punto detto SAP, service access point, che è semplicemente il luogo in cui N può chiedere i servizi di N-1.
Il ragionamento si può ripetere per ogni layer, escludendo il primo che trasmette direttamente i suoi dati sulla rete fisica.
In che modo? ve lo spiego nella sezione relativa.
Ritorna alla pagina principale