16.5 Lo stack OSI
Il modello che è stato la pietra miliare nella definizione degli stack di protocolli di rete, ma di cui non
esiste nessuna implementazione pratica, è il modello OSI (Open System Interconnection) proposto
da ISO,
che si suddivide nei 7 livelli di seguito elencati (v. fig. 16.3)
-
1. Physical Il livello fisico è sotto il dominio dell’ingegneria più che dell’informatica.
Sulla base del mezzo di trasmissione utilizzato vengono individuate la natura
e le caratteristiche del segnale da utilizzare per la trasmissione dei dati
(modulazione/demodulazione, conversione digitale/analogica e viceversa, ...).
Questo livello si preoccupa di trasformare i dati da inviare negli appositi segnali
elettrici o elettromagnetici che vengono fisicamente inviati sulla rete e di convertire
i segnali ricevuti negli equivalenti dati digitali.
-
2. Data link Il livello di collegamento gestisce la metodologia di acceso al mezzo
trasmissivo. Stabilisce se la trasmissione può essere iniziata o meno (ad esempio
controlla se qualche altro sistema sta già impegnando il mezzo di comunicazione).
Inoltre si preoccupa che le informazioni arrivino a destinazione in maniera corretta,
aggiungendo alle stesse degli opportuni codici di controllo.
-
3. Network Il livello di rete ha il compito di attuare la strategia di instradamento per
far giungere i dati a destinazione. Marca i dati con l’identificativo del mittente e del
destinatario. Ogni interfaccia di comunicazione di rete che riceve dei dati confronta
l’identificativo del destinatario con il proprio, in modo da riconoscere se i dati sono
destinati a lei. In caso affermativo passa i dati al livello superiore, altrimenti scarta
il messaggio, ignorandolo.
-
4. Transport Il livello di trasporto si preoccupa di scomporre lo stream di dati da
inviare in pacchetti più piccoli per occupare la rete in maniera intelligente (senza
renderla inaccessibile agli altri sistemi magari per qualche minuto se la quantità di
dati da trasmettere è elevata). Viceversa si deve anche preoccupare di ricostruire
lo stream di dati a partire dai pacchetti ricevuti nel corretto ordine con cui sono
stati inviati. Quindi in ogni pacchetto saranno inserite informazioni addizionali
per identificare l’ordine di invio di un pacchetto rispetto agli altri. Si preoccupa
inoltre di gestire errori di comunicazione (inserimento e controllo di checksum)
ed implementa i meccanismi necessari per richiedere quello che eventualmente è
andato perduto nella comunicazione.
-
5. Session Il livello di sessione ha la responsabilità di gestire la comunicazione, ovvero
implementa il protocollo al livello più elevato: si assicura che l’interfaccia di
comunicazione di rete a cui si vogliono spedire i dati sia pronta a riceverli, inviando
un opportuno segnale, ed alla fine della comunicazione invia un segnale di chiusura
in modo che il destinatario sappia che la comunicazione è terminata e possa
effettuare le operazioni opportune (liberazione di risorse di memoria dedicate alla
comunicazione, ...).
-
6. Presentation Il livello di presentazione ha la responsabilità di gestire la conversione
dei dati da inviare secondo lo standard di codifica del sistema di destinazione.
I sistemi che devono comunicare possono essere diversi (per esempio Windows e
Unix), quindi i dati potrebbero avere codifiche diverse (es. ASCII e EBCDIC).
A questo livello avviene la conversione nella codifica opportuna. In realtà non
esistono implementazioni di questo livello, quindi la codifica deve essere fatta a
livello di applicazione.
-
7. Application Il livello di applicazione è appunto il livello da cui le applicazioni
“vedono” la rete, ovvero il livello più astratto.
L’applicazione che desidera inviare un certo insieme di informazioni (stream)
ad un’altra applicazione presente su di un altro sistema, connesso in rete tramite
un’opportuna interfaccia di rete, passerà lo stream da inviare al livello 7 e per lei il
gioco è fatto (non deve preoccuparsi di ciò che avviene dopo). L’applicazione “vede”
soltanto l’interfaccia verso il livello 7 e nient’altro. In realtà lo stream da inviare
viene processato ad ogni livello dal 7 fino all’1 che si preoccupa effettivamente di
inviarlo sulla rete. Dall’altra parte, l’interfaccia di rete di destinazione riceve le
informazioni trasmesse e queste passeranno dal proprio livello 1 al livello 7, ognuno dei
quali effettuerà opportuni controlli e ricostruzioni, per fornire così lo stream inviato
all’applicazione ricevente (che ovviamente deve essere opportunamente predisposta a
riceverlo).
[da completare ...]