Articoli marcati con tag ‘TCP’

Gli strati di Internet

Domenica, 24 Agosto 2008

Abbiamo già parlato del modello ISO/OSI e dei vantaggi della stratificazione e dell’incapsulamento. Internet non adotta il modello OSI, ma è comunque basata su un modello a strati, comunemente detto TCP/IP. Le ragioni per cui Internet usa un diverso modello di riferimento sono innazitutto storiche: Internet è nata prima che venisse formalizzato il modello OSI e sarebbe quindi più corretto dire che è l’OSI a non modellizzare adeguatamente il TCP/IP.

Dal punto di vista pratico ci sono due differenze principali tra ISO/OSI e TCP/IP. La prima è che OSI è un modello di riferimento astratto, mentre il secondo è un’architettura di rete orientata ai protocolli. E’ emblematico che il modello prenda il nome proprio dai suoi protocolli principali: Transmission Control Protocol (TCP) a livello trasporto, e Internet Protocol (IP) a livello rete o internetworking.

La seconda differenza è che Internet ha un numero minore di strati. Volendo allineare gli strati ISO/OSI con gli strati TCP/IP si nota l’accorpamento del livello fisico e data link in un unico livello (detto semplicemente link, o anche host to network), e l’assenza dei livelli sessione e presentazione. L’accorpamento dei primi due livelli è dovuta al fondamentale disinteresse del modello TCP/IP verso tutto cio’ che sta sotto al livello di rete, a cui si richiede di offrire un canale adeguato alla trasmissione di pacchetti IP senza porre vincoli all’eventuale ulteriore stratificazone dei protocolli che lo implementano. I livelli 5 e 6 sono invece assenti perchè ritenuti inessenziali.

La numerazione degli strati comunemente adottata è comunque quella del modello OSI, cosicchè i protocolli di rete sono detti “di livello 3″, quelli di trasporto “di livello 4″, quelli applicazione “di livello 7″ (piu’ raramente di livello 5) e quelli link “di livello 2″ (fatte salve le eventuali sotto-stratificazioni proprie dei protocolli adottati).

Il ruolo dei 4 livelli dello stack TCP/IP puo’ essere sommariamente descritto con riferimento alla comunicazione tra due computer (host) collegati ad una rete i cui nodi intermedi sono detti router. I due host non sono direttamente connessi, e per comunicare devono inviarsi dati lungo cammini che attraversano uno o più router. Chiamiamo A l’host che trasmette e B l’host che spedisce. La rete composta dai soli router è detta subnet.

L’applicazione che gira su A produce i dati e li invia a B lungo un canale virtuale creato dai protocolli di livello inferiore. L’applicazione che gira su B riceve i dati.

Il protocollo di trasporto che gira su A suddivide i dati in pacchetti adatti alla trasmissione in internet e li affida al livello inferiore, mentre quello che gira su B riceve i pacchetti e li riassembla.

Il protocollo di internetworking che gira su A prende ogni pacchetto di dati e decide a quale router inoltrarlo per poterlo alla fine consegnare a B. Il protocollo che gira su B riceve i pacchetti, ne verifica la correttezza e li passa allo strato di trasporto. I protocolli di internetworking che girano sui router intermedi ricevono i pacchetti, ne verificano la correttezza e decidono a quale altro router inviarli per raggiungere la destinazione. In pratica il livello internetworking ha due funzioni principali: routing (o instradamento) e verifica di integrità.

I protocolli di link si incaricano di gestire il collegamento diretto tra nodi adiacenti della rete, garantendo per quanto possibile la corretta trasmissione dei pacchetti. Come già detto il modello TCP/IP è prevalentemente focalizzato sui livelli internet e trasporto, e affida il livello link (o host to network) a qualsiasi protocollo in grado di garantire il collegamento degli host alla rete e l’inivio di pacchetti IP. Tipicamente i protocolli che realizzano lo strato link sono ulteriormente tratificati in due o più livelli: data link logico, MAC, fisico.

Riferimenti: