Livello di trasporto: tutto ciò che c’è da sapere sul quarto livello del modello ISO/OSI
Il livello di trasporto acquisisce i dati dal livello di sessione e li inoltra al livello di rete. Inoltre, mette a disposizione una comunicazione sicura e trasparente tra due sistemi, può scomporre i pacchetti e regolare la velocità di trasmissione.
Cos’è il livello di trasporto?
Il livello di trasporto (Transport Layer) è il quarto livello del modello ISO/OSI e serve ad assicurare che due sistemi possano comunicare fra loro mediante una trasmissione dei dati end-to-end protetta, completa e trasparente. Ha anche il compito di evitare ingorghi.
Il modello ISO/OSI è uno standard volto a permettere il collegamento tra due terminali in una rete, anche se le due parti utilizzano software o hardware diversi. Sviluppato a partire dagli anni Settanta e presentato per la prima volta nel 1983, comprende un totale di sette livelli che hanno compiti diversi fra loro, ma sono costruiti l’uno sull’altro e in parte interagiscono. I sette livelli sono, in ordine crescente:
- Livello fisico (Physical Layer)
- Livello di collegamento dati (Data Link Layer)
- Livello di rete (Network Layer)
- Livello di trasporto (Transport Layer)
- Livello di sessione (Session Layer)
- Livello di presentazione (Presentation Layer)
- Livello di applicazione (Application Layer)
Quali sono le funzioni del livello di trasporto?
Il compito principale del livello di trasporto è mettere a disposizione una trasmissione dei dati end-to-end funzionale e sicura all’interno di una rete. A questo scopo il livello di trasporto acquisisce i dati dal livello di sessione (livello 5) e li inoltra al livello di rete (livello 3). All’occorrenza esso può suddividere i dati anche in unità più piccole o raggrupparli in pacchetti per trasportarli più facilmente.
Le trasmissioni possono avvenire in modalità connessa oppure disconnessa. Il livello di trasporto può utilizzare una connessione di rete, usare un solo collegamento per più collegamenti oppure distribuire un collegamento di trasporto tra più connessioni di rete, agendo però sempre in modo trasparente.
Il livello di trasporto si occupa anche di instaurare, interrompere e monitorare la connessione. Se la trasmissione avviene in modalità connessa, l’avvenuto trasferimento dei dati è segnalato da una conferma. Così la macchina che ha inviato i dati sa che tutte le unità sono state trasmesse come previsto. In assenza di conferma viene avviato automaticamente un nuovo tentativo di trasmissione. Il livello di trasporto non tiene conto dei mezzi utilizzati nei primi tre livelli.
Quali servizi svolge il livello di trasporto?
Numerosi sono i servizi che il livello di trasporto offre ai livelli superiori e che sono rilevanti per diversi aspetti del trasferimento dei dati. Di seguito alcuni esempi dei servizi più importanti.
- Trasmissioni orientate alla connessione: il livello di trasporto mette a disposizione trasmissioni orientate alla connessione come TCP (Transmission Control Protocol). A questo scopo assegna numeri di porta tra 0 e 65.535 e ricorre alla procedura di conferma descritta sopra.
- Protocolli senza connessione: a differenza dei protocolli orientati alla connessione, le trasmissioni senza connessione non inviano la conferma automatica, facendo venir meno questo meccanismo di sicurezza. Questo metodo è tuttavia adatto per le trasmissioni in tempo reale come le videoconferenze. Anche protocolli come UDP (User Datagram Protocol) utilizzano le porte tra 0 e 65.535.
- Consegna in giornata (Same Order Delivery): questo servizio del livello di trasporto assicura che i pacchetti di dati siano inviati e mantenuti in una determinata sequenza. A questo fine i singoli pacchetti vengono numerati, permettendo la disposizione corretta.
- Integrità dei dati: durante la trasmissione tra due sistemi i dati possono essere danneggiati, andare persi o giungere al destinatario con una sequenza errata. Il livello di trasporto utilizza codici di riconoscimento degli errori assicurando che i dati siano recapitati nello stato previsto. Per far ciò, il Transport Layer invia un messaggio di conferma al mittente.
- Controllo del flusso: regola e ottimizza il traffico di dati. La velocità della trasmissione può essere ridotta o aumentata per adattare lo scambio di dati, impedendo un sovraccarico del destinatario.
- Prevenzione degli ingorghi: se tuttavia si verificano impasse nei nodi e nei collegamenti, il livello di trasporto può intervenire per evitare blocchi più gravi. Ad esempio, può ridurre la velocità di trasmissione.
- Multiplazione: i pacchetti che vengono trasferiti da un sistema a un altro possono provenire da molte fonti diverse. Con la multiplazione, il livello di trasporto permette agli utenti di aprire applicazioni e servizi da diverse fonti all’interno di una rete.
Quali protocolli usano il livello di trasporto?
Molti sono i protocolli che il livello di trasporto utilizza oppure utilizzava in passato. Di seguito alcuni esempi.
- DCCP (Datagram Congestion Control Protocol): protocollo di rete per la trasmissione di mezzi nelle reti IP in tempo reale senza conferme obbligatorie.
- FCP (Fibre Channel Protocol): protocollo di interfaccia SCSI per un’interfaccia standard in una rete di archiviazione.
- Protocollo IL: una forma semplificata di TCP.
- MPTCP (Multipath TCP): standard volto a riunire più percorsi.
- NORM (NACK-Oriented Reliable Multicast): per il trasporto affidabile in gruppi multicast all’interno delle reti.
- RDP (Reliable Data Protocol): protocollo di trasporto per il trasferimento di immagini e dati.
- RUDP (Reliable User Datagram Protocol): protocollo per il sistema operativo Plan 9.
- SCTP (Stream Control Transmission Protocol): protocollo di rete rivolto ai servizi di pacchetti potenzialmente inaffidabili.
- TCP (Transmission Control Protocol): protocollo di rete ampiamente diffuso che definisce il tipo di trasferimento di dati tra i componenti della rete.
- UDP (User Datagram Protocol): protocollo di rete minimalista che permette l’invio di datagrammi nelle reti basate su IP.