PROGRAMMIAMO
Internet - Protocollo UDP
Il livello di trasporto

Facendo sempre riferimento alla architettura TCP/IP, il livello di Trasporto si trova immediatamente al di sotto del livello Applicazione (cui fornisce i servizi) e immediatamente al di sopra del livello Internet (i cui servizi esso utilizza):

Architettura TCP/IP

Come abbiamo già accennato, il nome "trasporto" per tale livello può trarre in inganno. Infatti può far pensare che questo livello si occupi di trasportare dati. Invece del trasferimento logico e fisico dei dati sul canale si occupano più propriamente i livelli inferiori. Il livello di trasporto fornisce alcune funzionalità assenti nei livelli inferiori, in particolare:

I due protocolli più importanti del livello di trasporto sono il protocollo UDP e il protocollo TCP.

Il protocollo UDP

Il protocollo UDP (User Datagram Protocol) è un protocollo del livello di trasporto non orientato alla connessione. E' un protocollo molto semplice (la RFC 768 che lo descrive occupa un paio di pagine). Esso non gestisce la suddivisione in segmenti, il riordinamento degli stessi né la ritrasmissione di quelli persi, ed è perciò viene classificato fra i protocolli inaffidabili. In pratica delle tre funzioni del Livello di Trasporto, UDP si occupa solo della multiplazione e demultiplazione, cioè di assicurarsi che i messaggi vengano consegnati correttamente in presenza di più trasmissioni che condividono lo stesso canale.

In compenso è molto rapido (non c'è latenza per riordino e ritrasmissione) ed efficiente per le applicazioni "leggere" o time-sensitive (l'overhead è molto piccolo). Ad esempio, è usato spesso per la trasmissione di informazioni audio-video in streaming (real time).

La Protocol Data Unit (PDU) del protocollo UDP si chiama tecnicamente datagram (anche se il nome non è standardizzato). Come ogni PDU anche il datagram è composto da un header e da una parte di dati (o body). La sua struttura è molto semplice:

Nel dettaglio:

La parte di dati invece contiene il messaggio che deve essere trasmesso e che proviene dal livello superiore (livello Applicazioni). Per esempio se il protocollo UDP è stato invocato dal DNS, la parte dati incapsulerà un'intera PDU contenente una richiesta o una risposta DNS. Si dice anche, come già visto, che il payload (carico pagante) del datagram è la PDU del livello DNS. Questo è in sostanza un esempio di incapsulamento.

La dimensione massima teorica di un datagram UDP è 65536 byte (compresa l'intestazione). In pratica un datagram UDP può essere scomposto in pacchetti più piccoli dal livello IP sottostante.

Inaffidabilità del protocollo UDP

Abbiamo già accennato al fatto che il protocollo UDP è inaffidabile, in quanto non esegue nessun controllo di errore e non verifica se un pacchetto è stato ricevuto oppure no. Questo difetto è tuttavia anche il suo maggior pregio: infatti l'implementazione di UDP è particolarmente semplice e veloce e inoltre la sua PDU (datagram) ha dimensioni piccole (il suo header contiene poche informazioni rispetto alla parte dati, cioè l'overhead è ridotto) e dunque genera un minor traffico in rete.

Per queste ragioni UDP viene utilizzato nei casi in cui si utilizzi una rete intrinsecamente affidabile (come per esempio una LAN) oppure quando la velocità di trasmissione è più importante dell'affidabilità (come in una trasmissione in streaming dove la perdita di qualche pacchetto non compromette completamente la trasmissione e dove invece la velocità è un requisito fondamentale). Quando invece si richieda una trasmissione affidabile, viene utilizzato il protocollo TCP.

La tabella seguente mostra un riassunto dei casi in cui viene utilizzato UDP oppure TCP.

Applicazione Protocollo strato applicazione Protocollo strato trasporto
Posta elettronica SMTP TCP
Accesso a terminale remoto telnet TCP
Trasferimento file FTP TCP
Web HTTP TCP
Streaming Audio/Video RTSP/RTP TCP (comandi) + UDP (flusso)
Server di file remoto NFS tipicamente UDP
Telefonia su internet (VoIP) SIP, H.323 tipicamente UDP
Gestione della rete SNMP tipicamente UDP
Protocollo di routing RIP tipicamente UDP
Risoluzione dei nomi DNS tipicamente UDP

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it