PROGRAMMIAMO
Internet - Modello a strati
Entità, livelli e servizi

Sulla base di quanto visto nelle precedenti lezioni, possiamo concludere che i processi di comunicazione fra due entità (es. due persone o due PC) possono essere scomposti e rappresentati in generale mediante un modello detto a strati o a livelli (layer in inglese). Si tratta in breve di suddividere la complessità della comunicazione in funzioni elementari e di assegnare queste ultime a strati diversi.

Ogni strato svolge compiti specifici e diversi da tutti gli altri. A tale scopo esso utilizza i servizi forniti dallo strato immediatamente inferiore e fornisce servizi allo strato immediatamente superiore. Possiamo in generale definire un servizio come una funzionalità che un certo livello offre al livello immediatamente superiore. Ad esempio la segretaria offre al livello dirigente i servizi di segreteria (es. correzione, stampa e invio delle lettere).

I servizi consentono al livello superiore di utilizzare le funzionalità messe a disposizione dal livello inferiore, nascondendone la complessità e i dettagli implementativi. In pratica il livello superiore deve solo conoscere le modalità di accesso ai servizi offerti e non come tali servizi vengono effettivamente realizzati.

Per tornare a un semplice esempio già da noi esaminato, quando facciamo una telefonata, non dobbiamo preoccuparci di come funziona il nostro apparecchio telefonico né di come è realizzata la rete telefonica: ci basta sapere la procedura da seguire (alzare il ricevitore, comporre il numero, etc.) e tale procedura costituisce l'interfaccia fra noi e il livello dell'apparecchio telefonico.

A ogni strato (o livello) devono corrispondere opportuni protocolli di comunicazione, cioè insiemi di regole che specificano le modalità con cui deve svolgersi la comunicazione stessa e il formato (la sintassi) dei messaggi che possono essere scambiati fra due peer entity.

Si noti anche che, affinché i protocolli siano veramente utili, essi devono essere condivisi fra i sistemi in comunicazione fra loro. Ciò richiede un qualche tipo di organismo che si occupi di standardizzare e di regolamentare in modo condiviso i diversi protocolli di comunicazione.

 

Entità di pari livello, multiplexing e indirizzi

Gli strati di uguale livello fra due sistemi comunicanti si chiamano peer level. Per esempio, richiamando lo schema già visto della spedizione di una lettera fra due aziende, i livelli dirigente, segretaria, fattorino, postino, ufficio poste sono altrettanti peer level:

Le coppie di entità di pari livello in comunicazione fra loro vengono dette entità di pari livello (peer entity) (es. i due dirigenti che si scambiano corrispondenza).

Su un dato livello tuttavia può esserci più di un elemento attivo. Per tornare all'esempio precedente, potrei avere più dirigenti oppure più segretarie diverse, più postini, uffici postali eccetera. Supponiamo per esempio di avere più dirigenti che utilizzano lo stesso servizio di segreteria. E' evidente che il livello "segretaria" dovrà implementare qualche meccanismo per ricevere e consegnare la corrispondenza giusta al dirigente a cui è destinata. Quando più entità (es. più dirigenti) condividono lo stesso canale di trasmissione, si parla di multiplexing (o multiplazione) in fase di trasmissione e di demultiplexing in fase di ricezione.

Multiplexing

Un problema simile lo troviamo nella comunicazione telefonica, dove diverse telefonate, fra diverse coppie di utenti, condividono le medesime linee telefoniche. Anche qui le chiamate dovranno essere multiplexate in partenza e demultiplexate in arrivo, per garantire che ciascuna coppia di utenti possa comunicare "come se il canale di comunicazione fosse di loro esclusiva proprietà".

Un problema che deve essere affrontato, per implementare il multiplexing, è quello degli indirizzi. Infatti chi effettua il servizio deve avere un modo per identificare colui che l'ha richiesto, in modo da poter consegnare la risposta al corretto destinatario. Come vedremo meglio nel seguito, ogni protocollo di livello prevede infatti anche un modo di indirizzamento (per esempio gli indirizzi MAC a livello di Accesso alla rete, gli indirizzi IP nel protocollo omonimo e i numeri di porta nei protocolli del livello di Trasporto).

 

Comunicazione logica e comunicazione fisica

Come abbiamo detto, il dialogo fra due peer entity di livello N viene realizzato tramite i servizi offerti dal livello sottostante N-1. In realtà non c'è un trasferimento diretto fra due peer entity, poiché i dati da trasferire vengono passati ai livelli sottostanti per la successiva elaborazione. Tuttavia le due entità di pari livello funzionano come se fossero davvero in collegamento diretto fra loro, senza preoccuparsi dei livelli inferiori che realizzano tale collegamento. Per esempio due persone impegnate in una conversazione telefonica non si preoccupano di come i livelli inferiori realizzano la connessione e trasmettono le informazioni: essi possono "credere" di parlare direttamente fra di loro.

Si parla a questo proposito di comunicazione logica e di comunicazione fisica. La comunicazione logica (detta anche circuito virtuale) è quella che viene a stabilirsi fra due entità di pari livello (es. i due dirigenti che si scambiano corrispondenza). La comunicazione logica è indicata dalle frecce orizzontali nella figura precedente: ribadiamo che si tratta in realtà di una connessione virtuale, poiché non esiste nessuna comunicazione fisica diretta fra due peer entity.

Viceversa la comunicazione fisica è quella che le entità di ogni livello mantengono con quelle dei due livelli adiacenti (superiore e inferiore). Per esempio il fattorino è in comunicazione fisica sia con la segretaria (da cui riceve la lettera) che con il postino (a cui la consegna). La comunicazione fisica è l'unica realmente esistente, mentre la comunicazione logica è solo una comoda astrazione.

 

Vantaggi del modello a strati

Lo suddivisione a livelli offre un modello di riferimento concettuale di tipo modulare che sarà molto utile trattando di reti di calcolatori. La modularità in generale è un approccio in cui la complessità di un problema viene ridotta suddividendolo in parti (i moduli o, nel caso specifico, i livelli). In generale ogni modulo deve risultare completamente specificato e autonomo e interagire con gli altri secondo regole e procedure ben definite.

I principali vantaggi di tale approccio concettuale possono essere così brevemente enunciati:

  1. Riduzione della complessità
    Il modello a strati riduce la complessità del processo di comunicazione. Ciò facilita lo studio teorico, la progettazione pratica e l'identificazione di eventuali guasti o malfunzionamenti.

  2. Specializzazione
    Poiché ogni strato implementa funzioni ben definite, risulta più semplice documentare il funzionamento dello strato stesso. In modo simile risulta semplificato l'addestramento del personale che deve occuparsi della manutenzione degli apparati di rete e la suddivisione dei compiti e delle responsabilità fra il personale stesso.

  3. Standardizzazione e interoperabilità
    La suddivisione a strati consente di progettare le entità che lavorano su ogni singolo livello (per esempio i programmi o le apparecchiature di rete) in modo che siano compatibili fra di loro. Ciò consente anche di realizzare l'architettura usando prodotti di tipo, marca e modelli differenti.

  4. Information hiding
    I dettagli implementativi di ogni singolo livello (o meglio: di ogni entità che lavora su un certo livello) non devono essere conosciuti dalle altre entità degli altri livelli. Ognuna può essere progettata e realizzata autonomamente. Tutto ciò che occorre conoscere sono le modalità di accesso ai servizi che un'entità offre.

  5. Intercambiabilità
    Poiché ogni parte è progettata in modo modulare, risulta semplice sostituire eventuali entità con altre (per esempio per risolvere malfunzionamenti, aggiornare il software o altro).

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it