02. UDP

Caratteristiche del protocollo

Il protocollo UDP (User Datagram Protocol) viene utilizzato in sostituzione di TCP per il trasporto rapido e non affidabile di volumi di dati ridotti tra applicazioni presenti sugli host.

UDP fornisce un servizio senza connessione, è molto veloce ma non garantisce il recapito né verifica la sequenzialità dei datagram, come descritto di seguito.

Senza connessione

Il trasporto di dati mediante UDP avviene senza stabilire una connessione tra mittente e destinatario. I datagram UDP sono inviati al destinatario, identificato da un indirizzo IP e da una porta. Le porte sono identificate tramite un numero e sono associate univocamente ad una applicazione.

E' possibile effettuare invii in multicast e in broadcast, mantenendo inalterato per tutti la porta di destinazione.

Le porta comprese tra 0 e 1023 sono assegnate a servizi standard.

Rapidità di trasmissione

Il protocollo UDP consente una trasmissione rapida dei dati, in quanto facilitato dalla mancanza di connessione e di riscontri di ricezione. Si consideri che nel caso del protocollo TCP, i pacchetti persi vengono richiesti nuovamente in automatico, causando il ristagno dell’intero processo di trasmissione.

Nessuna forma di garanzia sulla consegna

UDP non garantisce né la completezza né la correttezza dei datagram inviati (nel senso che in caso di errore di trasmissione il datagram non è trasmesso nuovamente). Anche la consegna dei datagram in sequenza corretta non è garantita. Pertanto, i servizi che si avvalgono di UDP devono adottare misure di correzione e protezione proprie.


Header del datagram UDP

I messaggi UDP vengono incapsulati e inviati all'interno di datagram IP. L'header ha la seguente struttura.

Analogamente a quanto accade per i segmenti TCP, l'header non include gli indirizzi del mittente e destinatario, essendo già presenti nel datagram IP.

Il campo Checksum è opzionale e consente di verificare l'integrità sia dell'header che della parte dati. Si ricordi che IP non effettua alcuna verifica di integrità sul suo Payload.

Le caratteristiche di UDP sono diametralmente opposte ai servizi e alle funzionalità forniti da TCP, come evidenzia la seguente tabella comparativa.

Nota

Nel calcolo del checksum è incluso uno pseudo-header costituito da 12 byte

Lo pseudo-header non viene inviato, né la sua presenza influenza il campo lunghezza nell'header UDP ma ha solo lo scopo di migliorare il controllo sugli indirizzi coinvolti.

Nel caso in cui il Checksum non è usato, il campo è azzerato.