Questo sito utilizza cookie per raccogliere dati statistici.
Privacy Policy
## Lo stack protocollare utilizzato nelle Reti
### La storia del modello ISO/OSI
Nel mondo delle reti, il modello ISO/OSI rappresenta una pietra miliare. Creato dall'**International Organization for Standardization (ISO)**, il modello OSI (**Open System Interconnection**) è un riferimento teorico per standardizzare le comunicazioni tra sistemi diversi. La sua struttura stratificata definisce sette livelli, ciascuno con funzioni ben precise.
- **Obiettivo principale:** Facilitare la progettazione e la comprensione delle reti, promuovendo l'interoperabilità tra produttori e tecnologie diverse.
- **Un modello teorico:** Non è un’implementazione pratica, ma una guida per progettare altri stack protocollari.
### I sette livelli del modello ISO/OSI

1. **Livello fisico:** Gestisce la trasmissione di bit attraverso mezzi fisici come cavi, fibre ottiche o onde radio.
2. **Livello collegamento dati:** Garantisce una comunicazione affidabile tra dispositivi sulla stessa rete, utilizzando frame e indirizzi MAC.
3. **Livello rete:** Si occupa dell'instradamento dei pacchetti tra reti diverse utilizzando indirizzi logici, come gli indirizzi IP.
4. **Livello trasporto:** Assicura che i dati arrivino completi e nell’ordine corretto (es. TCP).
5. **Livello sessione:** Gestisce l’inizio, la durata e la fine di una comunicazione.
6. **Livello presentazione:** Traduce i dati tra formati diversi (es. crittografia, compressione).
7. **Livello applicazione:** Fornisce interfacce per le applicazioni (es. HTTP, FTP, SMTP).
Nonostante la chiarezza del modello OSI, la sua complessità ha limitato l’adozione pratica, lasciando spazio a modelli più semplici come il **TCP/IP**.
---
## Il modello TCP/IP
Il **TCP/IP** (Transmission Control Protocol/Internet Protocol) è un modello pratico e un insieme di protocolli utilizzato per interconnettere dispositivi di rete su Internet. A differenza del modello ISO/OSI, che è principalmente teorico, il TCP/IP è un’implementazione concreta e il fondamento su cui si basa l'architettura di Internet.
### L’evoluzione verso il modello TCP/IP
Negli anni '70, il TCP/IP fu sviluppato grazie alla collaborazione tra università e DARPA (Defense Advanced Research Projects Agency) con l’obiettivo di creare un sistema di comunicazione robusto e scalabile, capace di funzionare anche in caso di guasti o congestionamento delle reti. La sua progettazione si concentrava sull’efficienza e sull’interoperabilità, caratteristiche che lo hanno reso il modello dominante per le reti globali.
**Differenze con il modello ISO/OSI:**
Sebbene il modello ISO/OSI sia più dettagliato, TCP/IP è diventato il modello di riferimento per la sua semplicità e praticità.
| **Caratteristica** | **ISO/OSI** | **TCP/IP** |
|-----------------------------|----------------------------------|-------------------------------------|
| **Numero di livelli** | 7 | 4 |
| **Approccio** | Teorico | Pratico |
| **Adozione** | Modello di riferimento | Utilizzato globalmente su Internet |

### Struttura del modello TCP/IP
Il modello TCP/IP è organizzato in quattro livelli principali. Ogni livello svolge una funzione specifica e lavora in sinergia con gli altri per garantire la trasmissione dei dati.
#### 1. Livello di accesso alla rete (Network Access Layer)
- **Ruolo:** Si occupa della trasmissione fisica dei dati tra dispositivi sulla stessa rete, convertendoli in segnali compatibili con il mezzo trasmissivo (es. cavi, fibre ottiche, onde radio).
- **Protocolli ed esempi:**
- **Ethernet:** Standard ampiamente utilizzato per reti locali (LAN).
- **Wi-Fi:** Protocollo wireless che consente la comunicazione senza fili.
- **PPP (Point-to-Point Protocol):** Utilizzato per connessioni dirette come modem e VPN.
- **Funzioni principali:**
- Trasformare i dati in segnali elettrici, ottici o radio.
- Gestire i frame e utilizzare indirizzi MAC per identificare i dispositivi.
#### 2. Livello Internet
- **Ruolo:** Gestisce l’instradamento dei pacchetti verso la destinazione finale, permettendo la comunicazione tra reti diverse.
- **Protagonista principale:** **IP (Internet Protocol)**, responsabile dell’indirizzamento e del routing dei pacchetti.
- **Protocolli ed esempi:**
- **IPv4:** Protocollo più comune, con indirizzi a 32 bit.
- **IPv6:** Evoluzione di IPv4, con indirizzi a 128 bit per supportare la crescita di Internet.
- **ICMP (Internet Control Message Protocol):** Gestisce errori e diagnostica problemi (es. comando `ping`).
- **ARP (Address Resolution Protocol):** Traduzione di un indirizzo IP in un indirizzo MAC.
- **Funzioni principali:**
- Indirizzare i pacchetti verso la destinazione.
- Gestire il routing attraverso router e nodi intermedi.
#### 3. Livello di trasporto
- **Ruolo:** Garantisce che i dati arrivino correttamente e nell’ordine giusto al destinatario.
- **Protocolli principali:**
- **TCP (Transmission Control Protocol):** Affidabile e orientato alla connessione, verifica che tutti i pacchetti arrivino e nell’ordine corretto.
- **UDP (User Datagram Protocol):** Non orientato alla connessione, è veloce ma meno affidabile, ideale per applicazioni che tollerano perdite, come streaming e VoIP.
- **Funzioni principali:**
- Divisione dei dati in segmenti e numerazione.
- Controllo degli errori e gestione delle ritrasmissioni.
- Multiplexing e demultiplexing per indirizzare i dati alla giusta applicazione (tramite numeri di porta).
- **Esempi pratici:**
- **TCP:** Utilizzato per trasferimenti di file e caricamento di pagine web.
- **UDP:** Utilizzato per video in streaming o giochi online.
#### 4. Livello applicazione
- **Ruolo:** Fornisce i servizi diretti agli utenti, come navigazione web, posta elettronica o gestione di file.
- **Protocolli principali:**
- **HTTP/HTTPS:** Trasferimento di pagine web.
- **DNS (Domain Name System):** Traduzione di nomi di dominio in indirizzi IP.
- **SMTP:** Invio di email.
- **FTP:** Trasferimento di file su rete.
- **Funzioni principali:**
- Gestione dei dati utente e delle richieste di servizio.
- Interfaccia diretta tra applicazioni e rete.
---
### Come funziona il modello TCP/IP
Quando un dispositivo trasmette dati, questi passano attraverso i livelli dello stack TCP/IP:
1. **Livello applicazione:** L’applicazione genera i dati (es. richiesta HTTP per una pagina web).
2. **Livello di trasporto:** I dati vengono suddivisi in segmenti e numerati.
3. **Livello Internet:** I segmenti sono impacchettati con indirizzi IP e instradati attraverso la rete.
4. **Livello accesso alla rete:** I pacchetti sono convertiti in segnali e trasmessi al dispositivo successivo del suo cammino verso il destinatario.
Sul lato ricevente, il processo viene invertito, ricostruendo i dati originali.
---
## Incapsulamento

L'incapsulamento nello stack dei protocolli TCP/IP è un processo che struttura i dati per il trasporto su una rete, aggiungendo intestazioni specifiche a ogni strato. Ogni livello dello stack – applicazione, trasporto, internet e accesso alla rete – aggiunge le proprie informazioni di controllo ai dati originali. Per esempio, il livello di trasporto aggiunge *porte* e *numeri di sequenza*, mentre il livello Internet aggiunge *indirizzi IP*.
Queste informazioni permettono ai dati di essere correttamente instradati e consegnati alla destinazione. Quando i dati raggiungono il destinatario, il processo viene invertito (decapsulamento), rimuovendo ogni intestazione per ottenere i dati originali. Questo metodo strutturato assicura che i dati vengano spediti e ricevuti correttamente all'interno della complessa rete di Internet.
<ex>
Scrivi una lettera e la metti in una busta. Qui, la "busta" rappresenta le informazioni che il tuo programma di messaggistica (come un'app di email) aggiunge, come l'indirizzo email del destinatario e il tuo indirizzo email come mittente.
Poi, porti la tua busta all'ufficio postale. Qui, l'ufficio postale aggiunge un timbro con il codice postale e un numero di tracciamento. Questo è simile al TCP che aggiunge porte sorgente e destinazione, nonché informazioni di sequenza per tenere traccia dei messaggi.
La posta viene poi mandata in un centro di smistamento dove viene deciso il percorso migliore per raggiungere la città del tuo amico. Questo centro di smistamento assomiglia a un router che legge l'indirizzo IP destinazione sul pacchetto dati e decide come inoltrarlo.
Infine, la posta viene caricata su un camion (il frame di livello di collegamento di rete) con l'indirizzo esatto del tuo amico (l'indirizzo MAC). Il camion garantisce che la tua lettera arrivi fisicamente a destinazione.
Proprio come il camionista che deve sapere l'indirizzo specifico dove consegnare il pacco, il livello di accesso alla rete si occupa delle specifiche fisiche di trasmissione dei dati, come il cablaggio, la fibra ottica, le onde radio per il Wi-Fi, o qualsiasi altro mezzo fisico utilizzato per trasmettere i dati.
Durante il viaggio, il camion può passare attraverso vari centri di smistamento, ognuno rappresentante un router nel mondo reale. Ogni volta che il camion arriva a un centro, le informazioni sulla destinazione vengono verificate e viene scelto il prossimo tratto di percorso. Questo processo si ripete fino a quando il pacchetto non raggiunge il centro di smistamento più vicino al tuo amico.
Quando il pacchetto arriva finalmente a destinazione, il tuo amico apre il camion (riceve il frame), rimuove l'involucro esterno (elimina l'header di livello di collegamento di rete), poi apre la busta (rimuove l'header di livello Internet e di livello Trasporto) e legge la tua lettera (i dati di livello Applicazione). Questo processo di rimozione degli strati esterni per arrivare al contenuto desiderato è il **decapsulamento**, che è l'esatto contrario dell'**incapsulamento** che ha avuto luogo quando hai inviato la lettera.
</ex>