Sei sulla pagina 1di 9

https://informaticabrutta.

it/stack-tcp-ip/

Introduzione allo Stack TCP/IP


La pila TCP/IP è l'insieme di protocolli di rete utilizzati in Internet. Ogni livello della
pila si occupa di un compito specifico, incapsulando (o decapsulando) roba
proveniente dal livello superiore (o inferiore).

4.• Se ti interessa l’argomento reti, sicuramente hai incontrato almeno una volta il
3.
2.
1.
termine TCP/IP, insieme ad almeno uni di questi altri:

• Stack protocollare;
• Suite di protocolli;
• TCP, UDP, IP;
• Modello TCP/IP;
• Modello ISO/OSI.

Volendo possiamo aggiungerne altri.

Ciò che li accomuna è questo: tutti hanno a che fare con l’argomento di
questo articolo, ovvero la suite di protocolli Internet TCP/IP.

Prima di entrare nello specifico, cominciamo con lo spiegare cosa caspita sia
una suite di protocolli Internet.

Innanzitutto, stack (in italiano pila) di protocolli e suite di protocolli sono, di


fatto, sinonimi.

Una suite di protocolli non è nient’altro che un insieme di protocolli di rete.


Fine.
Se proprio vogliamo essere più precisi (e corretti), possiamo dire che questi
protocolli devono essere specificati con un certo ordine.

1
https://informaticabrutta.it/stack-tcp-ip/

Il motivo risulterà ovvio tra qualche paragrafo.

Sappiamo tutti cos’è un protocollo? Cioè un insieme di regole che degli


interlocutori devono rispettare per riuscire a comunicare?

Bene, ora entriamo nel vivo.

Layering di Protocolli
Oh che parolona. Dall’inglese layer, tiriamo fuori l’italiano strato, o livello se
vogliamo.
Infatti per comunicazioni complesse, si devono usare più protocolli.

Da qui deriva l’introduzione di una suite di protocolli, in un certo ordine.

Tra poco vedremo quali protocolli, e in quale ordine.

Ti anticipo che la stratificazione dei protocolli serve a garantire:

Modularizzazione;
Suddivisione di compiti complessi in sotto-compiti più semplici;
Astrazione del problema.

Insomma i soliti principi fondamentali-ricorrenti che piacciono molto a noi


informatici.

Inoltre tra due interlocutori, ogni livello dello stack TCP/IP forma un
collegamento logico tra le due parti.

Lo Stack TCP/IP
Ora che abbiamo ben chiare le proprietà della stratificazione dei protocolli di
rete, parliamo di qualcosa di concreto.

La suite TCP/IP infatti, realizza proprio quel layering di cui abbiamo parlato
poco fa.
Il nome deriva da due protocolli importanti che la possono caratterizzare,

2
https://informaticabrutta.it/stack-tcp-ip/

ovvero:

TCP a livello di trasporto;


IP a livello di rete.

Ora daremo un senso a ciò che hai appena letto.

Un altro modo per definire uno stack protocollare, è come famiglia di protocolli.

Ed ora puoi dare il benvenuto alla famiglia di protocolli TCP/IP.

DENOMINAZIONE
# LIVELLO ESEMPI IMPLEMENTAZIONE INDIRIZZAMENTO
PACCHETTO

HTTP, FTP,
5 Applicazione Messaggio SW Nomi
DNS, TLS

TCP, UDP,
4 Trasporto Segmento SW Porte
SCTP

IP,
3 Rete Datagramma SW Indirizzi IP
{routing}

2 Collegamento Ethernet Frame HW Indirizzi MAC

1 Fisico Bit HW

Due parole su questo schema:

La voce routing è tra parentesi graffe perché non è banalmente un esempio di


protocollo, ma un insieme di protocolli che si occupano dell’instradamento dei
pacchetti.
Vedremo tutto meglio a tempo debito.

La pila TCP/IP completa è implementata in ogni end-system, ovvero gli host


interlocutori.
Più in là vedremo che gli intermediate-system, generalmente, non

3
https://informaticabrutta.it/stack-tcp-ip/

implementano tutti e cinque i livelli:

I router implementano i primi tre livelli;


Gli switch (ed altri) si fermano al secondo livello.

In questa immagine vediamo lo stack protocollare TCP/IP implementato tra


due host.

Questa immagine ci serve per due motivi:

Vediamo con un bel disegnino quanto detto fino ad ora;


Ci porta ad un discorso abbastanza importante, di cui parliamo ora.

Incapsulamento e Decapsulamento
Ho mentito.

Non sull’importanza di questo argomento, ma riguardo la parola discorso.


Infatti c’è veramente poco da dire. Vediamo.

Quando un dispositivo vuole comunicare con un altro dispositivo, deve:

Prendere il messaggio da inviare;


Ficcarlo in una scatola;
Inviarlo al livello inferiore;
Il quale lo ficca in un’altra scatola.

Questo giretto termina a livello 1.

La Matrioska appena creata viene inviata lungo il canale (cablato o wireless

4
https://informaticabrutta.it/stack-tcp-ip/

che sia), fino a raggiungere la destinazione, dove viene:

Aperta;
Il contenuto passato al livello superiore;
Riaperta;
Etc…

Fino ad arrivare al livello corretto (ricordi il canale logico?), dove si ritrova il


messaggio originale.

I passi che abbiamo descritto sono rispettivamente: incapsulamento e


decapsulamento.
Il mittente incapsula; il ricevente decapsula.

Un po’ più formalmente, durante l’incapsulamento:

Ogni livello riceve un pacchetto dal livello superiore, che comprende un


header e dei dati (payload);
Il livello crea un nuovo pacchetto con un proprio header;
Nel nuovo pacchetto inserisce come payload quello ricevuto prima.
Invia questa scatola al livello inferiore.

In fase di decapsulamento, avviene la procedura inversa.

Multiplexing e Demultiplexing
5
https://informaticabrutta.it/stack-tcp-ip/

Dato che esistono molti protocolli per livello, ti potrai chiedere se è possibile
utilizzarli contemporaneamente; e se sì, come.

La risposta alla prima domanda è YES.


Per la seconda domanda, guarda qui:

Come vedi questo principio è strettamente legato all’incapsulamento.

Multiplexing (arancione): un protocollo incapsula e recapita pacchetti


ottenuti da più protocolli dal livello superiore;
Demultiplexing (verde): un protocollo decapsula e recapita pacchetti verso
più protocolli superiori.

La cosa non scontatissima è che per realizzare tutto questo c’è bisogno di
alcune informazioni nell’intestazione (header) dei pacchetti.
Ad esempio, se un pacchetto deve essere ricevuto da UDP, nell’header IP
deve essere specificata questa informazione.

Queste cose le vedremo meglio nei prossimi articoli.

Ora andiamo avanti con questa introduzione.

Indirizzamento nello Stack TCP/IP


Fermi tutti. Di che si parla quando diciamo indirizzamento? A quali indirizzi ci
riferiamo?

Chi ha un po’ di familiarità con le reti, conosce sicuramente questi oggettini:

6
https://informaticabrutta.it/stack-tcp-ip/

URL ed indirizzi IP.

Anche il tuo fornaio preferito ha una vaga idea di come sia fatto un URL
(forse).
Ed il fornaio avanzato ha anche visto un indirizzo IP.

Questi infatti, sono solo due sistemi per indirizzare qualcosa, ad un certo
livello dello stack.

Nella tabella dello stack TCP/IP ho elencato anche i tipi di indirizzamento.


In questo momento non è importante entrare nel dettaglio, ma per farti un
esempio:

PER
# LIVELLO INDIRIZZAMENTO ESEMPI
IDENTIFICARE

5 Applicazione Nomi Protocolli HTTP: "http://yahoo.it/roba"

4 Trasporto Porte Processi 0, ..., 25, ..., 80, ..., 65535

192.168.1.1, 216.58.198.46,
3 Rete Indirizzi IP Reti
127.0.0.1

2 Collegamento Indirizzi MAC Dispositivi �sici 2E:F0:5F:EE:70:8C

1 Fisico

In pratica, ad ogni livello della pila TCP/IP, si usano degli indirizzi di forma
diversa, per identificare particolari oggetti di quel livello.

L’indirizzamento serve a garantire che un pacchetto vada nella giusta


direzione, fino all’host specifico di destinazione.

Bello eh?

Ora possiamo concludere questa prima parte introduttiva con un mattoncino


teorico di scarsa utilità pratica, ma importante perché:

7
https://informaticabrutta.it/stack-tcp-ip/

È una curiosità, ed è scientificamente provato che a volte aiuta a fissare


cose più importanti;
Fa capire come **non **si è evoluto TCP/IP.

Vediamo.

Confronto con il modello ISO/OSI


Questo ISO/OSI (Open Systems Interconnection) è un altro modello di stack
protocollare.

Attenzione: perché è solo un modello, e non una vera e propria famiglia di


protocolli?

Perché non esiste. Non è mai esistito, e non esisterà mai.

O meglio, esiste solo sulla carta: in teoria.

Infatti viene definito come modello teorico di stack di protocolli di rete, e


qualcuno dice addirittura che TCP/IP sia stato costruito in riferimento al
modello ISO/OSI.

Cosa non vera. Infatti TCP/IP nacque prima di ISO/OSI.

TCP/IP non ha mai dato problemi, ed è sempre stato efficiente.


Un eventuale cambio con OSI sarebbe stato costoso e rischioso.
Inoltre OSI è anche privo di alcuni requisiti per i livelli 5 e 6, che contribuiva a
renderlo una scelta non sicura.

Quindi l’ente ISO decise di imporlo solamente come modello teorico, su cui
eventuali futuri stack protocollari dovevano far riferimento.

8
https://informaticabrutta.it/stack-tcp-ip/

Sinceramente, non vale la pena di mettersi a spiegare quale livello doveva fare
cosa in ISO/OSI.
Se ti interessa, ti lascio l’articolo che ne parla su Wikipedia.