16.3 I protocolli

La modellizzazione della comunicazione di rete è stata effettuata supponendo di suddividere l’accesso alle varie funzionalità a strati, ovvero in livelli di astrazione a partire da quello più basso, cioè quello dei segnali coinvolti nell’effettiva comunicazione (la cui natura e tipologia dipendono dalla natura del mezzo di trasmissione), fino a quello più elevato che è quello “visto” dalle applicazioni che vogliono comunicare attraverso la rete.

La struttura dei livelli di astrazione dell’interfaccia di comnuicazione può essere schematizzata come una pila, dal livello più astratto a quello più concreto, tant’è che l’insieme dei livelli in cui è suddivisa la gestione dell’interfaccia di comunicazione è comunemente detto stack di protocolli3.

Un processo che intende inviare delle informazioni sulla rete, utilizzerà l’interfaccia software messa a disposizione dal livello più alto, che si preoccuperà di trattare opportunamente le informazioni (lo stream, il flusso di dati) passandole al livello immediatamente inferiore e così via fino ad arrivare al livello più basso in cui i segnali logici saranno trasformati in segnali elettrici o elettromagnetici e quindi inviati sulla rete. Allo stesso modo, l’interfaccia di rete che riceve le informazioni le tratterà in maniera opportuna passandole man mano ad un livello sempre più elevato, fino ad arrivare al processo di destinazione. Ogni livello passa le informazioni a quello immediatamente inferiore (in trasmissione) o superiore (in ricezione) tramite un insieme di funzioni che costituiscono l’interfaccia di comunicazione tra un livello e l’altro.

Per ogni livello possono essere definiti degli insiemi di regole di comunicazione, ovvero quelli che in gergo vengono chiamati protocolli. Un protocollo è quindi la logica che fa comunicare due interfacce di rete allo stesso livello. Se ogni livello esegue correttamente il proprio dovere, si può pensare che la comunicazione avvenga tra le due interfacce di rete al livello considerato, sebbene la comunicazione avvenga in realtà sempre tra i livelli più bassi (v. sez. 16.5).

Ogni protocollo definisce un’unità logica da utilizzare per lo scambio di informazioni, il pacchetto, che assume una denominazione specifica dipendentemente dal protocollo considerato. il pacchetto è generalmente suddiviso in una parte di informazioni di servizio e di controllo, l’header (intestazione) ed il footer (parte terminale), ed una parte riservata alle informazioni da comunicare, il payload.

Il pacchetto di un determinato livello dello stack di protocolli costituisce il payload del pacchetto del livello immediatamente sottostante. Questo meccanismo sta alla base del concetto di incapsulazione (encapsulation) poiché l’intero pacchetto proveniente da un livello più astratto viene inserito come payload all’interno del pacchetto del livello meno astratto (il livello meno astratto aggiungerà al proprio pacchetto le informazioni di servizio che gli servono). Un meccanismo analogo a quanto avviene per una lettera: il foglio contenente l’informazione viene inserito, prima di essere inviato, all’interno di una busta che riporta le indicazioni del mittente e del destinatario (informazioni di servizio).

[da completare ...]