E' un protocollo di trasporto di tipo connectionless, per la trasmissione dati tra due host.
UDP (User Datagram Protocol) viene descritto nella RFC 768. E' un protocollo non orientato alla connessione, utilizzato quando l'affidabilità, il cui controllo viene richiesto ai protocolli applicativi che ne fanno uso, non è il target primario. I vantaggi nell'utilizzo di UDP sono infatti la velocità, e la minore congestione di rete rispetto a TCP (non ci sono pacchetti di conferma) e la possibilità di trasmettere in multicast (invio di un pacchetto ad un gruppo di host) e broadcast (invio di un pacchetto a tutti gli host di un segmento di rete).
HEADER UDP
Il formato di un pacchetto UDP non è molto complesso e comprende i seguenti campi:
Source Port: campo di 16 bit (facoltativo), contiene la porta UDP di origine dell'host sorgente;
Destination Port: campo di 16 bit, contiene la porta UDP di destinazione del pacchetto sull'host remoto;
Lenght: campo di 16 bit, contiene la lunghezza in byte dell'intestazione UDP e dei dati;
Checksum: campo di 16 bit, è utilizzato per verificare l'integrità dei dati trasportati;
Data: campo di lunghezza variabile contenente i dati;
TRASMISSIONE UDP
La trasmissione di un pacchetto UDP avviene incapsulandolo all'interno di un pacchetto IP. Giunto a destinazione, il pacchetto viene inviato alla porta di destinazione indicata nell'intestazione UDP. Qualora la porta non fosse disponibile, viene inviato un paccheto ICMP (Internet Control Message Protocol) all'host mittente con messaggio di port unreachable (porta irraggiungibile).
Attraverso un network sniffer è possibile visualizzare i vari campi di un pacchetto UDP. Un esempio:
Source IP: 192.168.0.97 Target IP: 195.130.224.18 UDP Length: 27
Essendo UDP incapsulato in IP vediamo prima l'intestazione IP con gli indirizzi sorgente e destinazione e la dimensione
Source Port: 33997 Target Port: 53 Leng: 35 ChkSum: 2342
Nell'header UDP troviamo la porta sorgente (33997) e la porta destinazione (53 - richiesta DNS) la dimensione (35) ed il checksum (2342)
00000000: 1A B4 01 00 00 01 00 00 00 00 00 00 09 6C 6F 63
...
Infine troviamo il campo dati
UDP viene utilizzato da protocolli come TFTP (Trivial File Transfer Protocol), SNMP (Simple Network Managment Protocol), DNS (Domain Name Server), per l'invio di stream audio, ed è ampiamente usato nelle applicazioni videoludiche.
Visione d'insieme dei protocolli alla base di Internet: IP, TCP, UDP.