PROGRAMMIAMO
Internet - PDU e incapsulamento
Protocol Data Unit (PDU)

Come abbiamo visto, un'architettura di rete viene suddivisa in livelli (o strati), dove ogni entità comunica in modo logico (o virtuale) con la peer entity corrispondente, mentre comunica in modo fisico (o reale) con i due livelli adiacenti (quello immediatamente superiore e quello immediatamente inferiore). I protocolli definiscono le regole di comunicazione fra due entità di pari livello su due livelli corrispondenti.

 

Considerando ora la comunicazione fra due entità di pari livello (comunicazione logica), essa avviene in generale mediante lo scambio di messaggi che vengono detti Protocol Data Unit (PDU). Una Protocol Data Unit (PDU) è dunque l'unità d'informazione scambiata tra due peer entity in un'architettura di rete a strati.

Per fare un'analogia, la PDU potrebbe essere il singolo SMS scambiato fra due persone (peer entity) che intrattengono uno scambio di messaggi attraverso i loro cellulari. Come gli SMS hanno una lunghezza massima prefissata (140 byte) e possono contenere solo un certo tipo di dati (caratteri), così anche le PDU hanno un formato prestabilito in base al particolare protocollo di comunicazione.

Alcune PDU possono servire per inviare o ricevere informazioni di controllo (es. stabilire una connessione, assicurarsi che un messaggio sia arrivato, chiudere una connessione etc.), mentre altre invece servono per trasmettere dati (o informazioni). Però dal punto di vista del formato, tutte le PDU di un certo protocollo hanno la stessa struttura, indipendentemente dal loro scopo.  Per tornare al nostro esempio, anche gli SMS possono essere usati per stabilire una connessione ("Ciao"), per confermare una ricezione ("Hai ricevuto il mio messaggio di stamattina?") oppure per chiuderla ("Ora devo andare, ci sentiamo dopo"), come anche possono essere usati per trasmettere informazioni ("Non sto bene, devo avere un po' di febbre"): la loro "struttura" tuttavia rimane sempre la stessa.

In pratica una PDU che serve per gestire una comunicazione è indistinguibile nella forma da una PDU di scambio dati e entrambe vengono trattate esattamente alla stessa maniera dai livelli inferiori. Usando ancora una metafora, al postino non interessa qual è il contenuto di una certa lettera da consegnare né il suo scopo.

In ogni caso ogni PDU è in generale formata da due parti:

L'intestazione può essere assimilata all'indirizzo presente su una busta, mentre la parte di dati corrisponde al contenuto di una lettera.

Incapsulamento

Per poter raggiungere il destinatario (cioè la peer entity corrispondente) una PDU deve essere consegnata al livello inferiore, il quale a sua volta la consegnerà al livello inferiore e così via fino ad arrivare al livello della trasmissione fisica (es. i cavi e i dispositivi di collegamento in una rete).

Nel passaggio da un livello a quello inferiore, alla PDU viene aggiunta una nuova intestazione (header) e la PDU stessa viene trattata come la nuova parte di dati. Tale processo viene detto incapsulamento (encapsulation). Si osservi la figura seguente:

Il Layer 1 rappresenta il livello fisico di trasmissione, mentre gli altri strati rappresentano i livelli di una architettura di rete TCP/IP di cui parleremo più avanti. Si osservi che il messaggio (PDU) del livello più alto (Upper Layer Message) viene passato al livello sottostante TCP/UDP mediante l'aggiunta di un nuovo header e così via fino ad arrivare in fondo. In modo simmetrico e contrario, quando il messaggio arriva al destinatario, ogni livello esamina l'header corrispondente e lo toglie dal messaggio stesso.

Payload

Per fare una analogia, si immagini che si voglia spedire una busta contenente una lettera. Questa lettera viene passata a un fattorino (il livello inferiore), il quale la mette in un'altra busta (il nuovo header) e così via per tutti i livelli inferiori. Quando la lettera viene ricevuta, viene aperta la busta esterna e il contenuto (busta interna) viene passato al livello superiore e così via fino a raggiungere il destinatario.

Un altro esempio che può chiarire forse meglio il concetto di incapsulamento è il seguente. Si consideri un'azienda che produce qualcosa, diciamo ferri da stiro. I ferri da stiro prodotti dall'azienda vengono inscatolati in confezioni che riportano la marca, il nome del modello e altre informazioni similari. Il prodotto (ferro da stiro) sono i dati da trasmettere che vengono incapsulati in una PDU per la trasmissione (trasporto):

Le confezioni individuali verranno quindi a loro volta confezionate in scatole più grandi per il trasporto del prodotto fino ai punti di vendita. Vediamo qui che la PDU (la scatola con il ferro da stiro) viene di nuovo incapsulata all'interno di una nuova PDU (la scatola per il trasporto):

Il negoziante riceve le scatole, le apre (de-incapsula) ed espone il prodotto nella sua confezione originale nel proprio negozio. Supponiamo ora che un acquirente acquisti il ferro per regalarlo a un amico. Probabilmente egli si farà confezionare dal negozio un pacco regalo all'interno del quale metterà la scatola con l'articolo acquistato. Vediamo qui un ulteriore esempio di incapsulamento:

A questo punto volendo possiamo immaginare un'ulteriore incapsulamento. Se il regalo, invece di essere consegnato di persona, viene spedito via poste, occorrerà incapsularlo in un pacco postale con l'indicazione dell'indirizzo del destinatario:

Infine, chi riceve il pacco postale lo aprirà e ci troverà dentro il pacco regalo. Aperto quest'ultimo si troverà di fronte alla scatola del prodotto, aperta la quale, potrà finalmente ricevere il ferro da stiro.

Si osservi infine la figura seguente dove le frecce blu rappresentano degli incapsulamenti, mentre le frecce rosse rappresentano de-incapsulamenti:

Incapsulamento e deincapsulamento

Dall'esempio precedente notiamo che:

Il processo di incapsulamento è strettamente connesso al concetto di information hiding di cui parlavamo nell'ultima lezione. Ogni livello utilizza i propri protocolli di comunicazione, ma la struttura e il contenuto dei messaggi scambiati non interessano agli altri livelli.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it