|
|
Il
Modello a Strati -
-
Il modello a strati è una comoda rappresentazione dei sistemi di rete
che permette concettualmente di separare le diverse funzionalità in
strati di protocolli, permettendo così di studiare più facilmente i
protocolli di rete.
L'idea della stratificazione è fondamentale per poter disegnare
l'architettura software strutturata in livelli, ognuno dei quali con i
suoi vari protocolli, tratta una parte specifica dei problemi di
trasmissione.
Il concetto di stratificazione poggia su un principio basilare il quale,
in sostanza, afferma che lo strato ennesimo alla stazione destinazione
deve ricevere un pacchetto identico a quello che è uscito dal medesimo
livello alla stazione sorgente. I due principali esempi di modelli
stratificati sono rappresentati dal Open System Interconnection (OSI)
dell'ISO e dal TCP/IP. Si può pensare al software di una macchina come
costituito da tanti strati ognuno dei quali svolge una funzionalità
specifica propria.
Inoltre è importante sottolineare che uno strato comunica soltanto con
uno strato immediatamente superiore od inferiore, tramite delle
interfacce standard, mentre all'interno dello strato la comunicazione
può avvenire in un qualunque modo; per poter comunicare da uno strato n
ad uno strato n-2 (n+2) bisogna necessariamente passare attraverso lo
strato intermedio n-1 (n+1).
Concettualmente, mandare un messaggio da un programma su una macchina ad
un programma su un'altra, significa trasferire tale messaggio giù
attraverso tutti i vari strati fino al livello di rete e, tramite
l'hardware, raggiungere l'altra macchina, risalire gli strati software
in successione fino al livello di applicazione dell'utente destinazione.
In particolare il software TCP/IP è organizzato concettualmente in
quattro livelli più un quinto costituito dal supporto fisico vero e
proprio. La figura mostra i quattro livelli:
|
 |
Application Layer:
A livello più alto, l'utente invoca i programmi applicativi che
permettono di accedere ai servizi disponibili attraverso Internet; tale
livello riguarda tutte le possibili opzioni, chiamate, necessità dei
vari programmi. In pratica gestisce l'interattività tra l'utente e la
macchina.
Un programma applicativo interagisce con uno dei protocolli di livello
trasporto per inviare o ricevere dati e li passa al livello trasporto
nella forma richiesta.
Tranport Layer:
Lo scopo primario del livello trasporto è consentire la connessione in
rete fra due utenti ovvero permettere la comunicazione tra un livello
applicativo ed un altro; una comunicazione di questo tipo è spesso detta
"end-to-end".
Il software di tale livello divide il flusso di dati in pacchetti (di
solito di circa 500 byte) che vengono passati insieme all'indirizzo di
destinazione allo strato sottostante. Il livello di trasporto deve
accettare dati da molti utenti contemporaneamente e, viceversa, deve
smistare i pacchetti che gli arrivano dal sotto ai vari specifici
programmi; deve quindi usare dei codici appositi per indicare le
cosiddette porte.
Le routine di trasporto pacchetti aggiungono ad ogni di pacchetto,
alcuni bit in più atti a codificare, fra l'altro, i programmi sorgente e
destinazione.
Il livello di trasporto può regolare il flusso di informazioni e può,
nel caso del TCP (a differenza dell'UDP), fornire un trasporto
affidabile assicurando che i dati giungano a destinazione senza errori
ed in sequenza mediante un meccanismo di acknowledgement e
ritrasmissione.
Internet Layer (IP):
Questo livello gestisce la comunicazione tra una macchina ed un'altra;
accetta una richiesta di inoltro di un pacchetto da un livello di
trasporto insieme all'identificazione della macchina alla quale il
pacchetto deve essere inviato.
È il livello più caratteristico della internet, detto appunto IP
(internet protocol) che crea il datagramma di base della rete,
sostanzialmente, riceve e trasferisce senza garanzie i pacchetti, che
gli arrivano da sopra, verso la macchina destinataria.
Esso accetta i pacchetti TCP, li spezzetta se necessario e li incapsula
nei datagramma di base IP, riempie gli header necessari ed usa
l'algoritmo di rouiting per decidere a chi deve mandare questo
pacchetto, in particolare se si tratta di un caso di routing diretto o
indiretto.
Il livello Internet gestisce anche i datagrammi in ingresso, verifica la
loro validità ed usa l'algoritmo di routing per decidere se il
datagramma deve essere inoltrato o processato localmente; in quest'ultimo
caso il software elimina l' header del datagramma e sceglie quale
protocollo di trasporto gestirà il pacchetto.
In tale fase non solo si svolge la funzione di instradamento, ma si
verifica anche la validità dei pacchetti ricevuti.
Inoltre questo livello gestisce integralmente i messaggi ICMP in
ingresso ed uscita.
Network Interface Layer:
Il quarto ed ultimo strato è costituito da una interfaccia di rete che
accetta il datagramma IP e lo trasmette, previo incapsularlo in appositi
frame, sull'hardware di rete (il cavo) tramite, ad esempio, un
transceiver.
Da notare che se necessario il pacchetto può attraversare altre macchine
intermedie (router) prima di giungere a destinazione, ma in queste
penetra solo i due strati più bassi dell'interfaccia di rete e del
datagramma base IP.
Uno dei vantaggi più significativi di questa separazione concettuale è
che diventa possibile, entro certi termini, sostituire una parte senza
disturbare necessariamente le altre, cosicché ricerca e sviluppo possono
procedere concorrentemente su ognuno dei tre livelli.
|