Livello di trasporto
# Livello di trasporto

Modello OSI :

| 7. | Livello di applicazione |
| - | - |
| 6. | Livello di presentazione |
| 5. | Livello di sessione |
| 4. | Livello di trasporto |
| 3. | Livello di rete |
| 2. | Livello di collegamento dati Sottolivello LLC Sottolivello MAC |
| 1. | Livello fisico |

Il livello di trasporto, in telecomunicazioni, informatica e nell'ambito delle reti di calcolatori, è il quarto dei livelli nel modello ISO/OSI. Il suo compito è di fornire servizi al soprastante livello 5 (livello sessione) e per raggiungere tale scopo sfrutta i servizi offerti dal sottostante livello 3 (livello rete). Lo scopo del livello di trasporto è fornire un canale logico di comunicazione end-to-end per pacchetti.

## Funzionalità

Di seguito vengono riportati i servizi che vengono, in genere, offerti dal livello di trasporto; è bene ricordare che nessuno di tali servizi è obbligatorio. Di conseguenza, per ciascuna applicazione è possibile scegliere il protocollo più adatto allo scopo.

* Servizio orientato alla connessione. In genere il livello rete non stabilisce una connessione persistente verso l'host di destinazione. Il livello di trasporto si incarica, quindi, di realizzare una connessione persistente che viene poi chiusa quando non è più necessaria.
* Corretto ordine di consegna. Poiché i pacchetti possono seguire percorsi diversi all'interno della rete, non c'è alcuna garanzia che i dati vengano recapitati nello stesso ordine in cui sono stati inviati. Il livello di trasporto verifica che i pacchetti vengano riordinati nella giusta sequenza in ricezione prima di passarli al livello superiore.
* Trasferimento affidabile. Il protocollo si occupa di garantire che tutti i dati inviati vengano ricevuti; nel caso il servizio di rete utilizzato perda pacchetti, il protocollo di trasporto si occupa di ritrasmetterli al mittente sotto forma di file corrotti.
* Controllo di flusso. Se gli host coinvolti nella comunicazione hanno prestazioni molto differenti può capitare che un pc più veloce "inondi" di dati uno più lento portando alla perdita di pacchetti. Mediante il controllo di flusso, un host in "difficoltà" può chiedere di abbassare il tasso di trasmissione in modo da poter gestire le informazioni in ingresso.
* Controllo di Congestione: il protocollo riconosce uno stato di congestione della rete e adatta di conseguenza la velocità di trasmissione.
* Orientamento al Byte. Invece che gestire i dati in base ai pacchetti, viene fornita la possibilità di vedere la comunicazione come uno stream di byte, in modo da semplificarne l'utilizzo.
* Multiplazione. Il protocollo permette di stabilire diverse connessioni contemporanee tra gli stessi due host, tipicamente utilizzando l'astrazione delle porte. Nell'uso comune diversi servizi utilizzano porte logiche di comunicazione diverse.

Il nome trasporto per tale livello può quindi trarre in inganno in quanto non implementa alcun meccanismo di trasferimento logico e fisico dei dati sul canale (multiplazione/accesso multiplo, indirizzamento e commutazione) cui ovviano i livelli architetturali inferiori attraverso i meccanismi propri del particolare modo di trasferimento adottato, bensì al contrario si occupa di supplire alle mancanze delle funzionalità del trasferimento in termini di affidabilità implementando le suddette funzioni come garanzie sul trasporto stesso cioè chiudendo il cerchio su tutto ciò che il trasporto in toto dovrebbe fare e garantire.

## Livello di trasporto in Internet

Nello stack protocollare Internet, i protocolli di trasporto più utilizzati sono TCP e UDP. TCP è il più complicato fra i due e fornisce un servizio end-to-end orientato alla connessione e al byte, con verifica del corretto ordine di consegna, controllo di errore e di flusso. Il nome è un acronimo per Transmission Control Protocol. UDP, invece, è un protocollo più snello e fornisce un servizio a datagrammi, senza connessione, con un meccanismo di riduzione degli errori e con porte multiple. Il nome è un acronimo per User Datagram Protocol.

## Esempi

Di seguito sono elencati alcuni protocolli di trasporto. In genere questi protocolli si basano su IP.

* AEP, AppleTalk Echo Protocol
* AMTP, su amtp.bw.org.
* ATP, AppleTalk Transaction Protocol
* NBP, Name Binding Protocol
* NetBEUI, NetBIOS Extended User Interface
* RSVP, Resource Reservation Protocol
* RTMP, Routing Table Maintenance Protocol
* SMB, Server Message Block
* SPX, Sequenced Packet Exchange
* SCTP, Stream Control Transmission Protocol
* TCP, Transmission Control Protocol
* UDP, User Datagram Protocol
