UDP (User Data Protocol) è un protocollo del livello di trasporto che fornisce un metodo per spedire dati senza dover stabilire una connessione con il destinatario. Consegna le informazioni più velocemente del TCP. Inoltre permette comunicazioni multicast e broadcast non disponibili con TCP.
Un segmento UDP ha una intestazione di 8 byte con il seguente formato:
-
2 byte: numero di porta del mittente;
-
2 byte: numero di porta del destinatario;
-
2 byte: lunghezza del segmento (intestazione più dati);
-
2 byte: checksum calcolata su una pseudointestazione (costituita da indirizzo IP del mittente, indirizzo IP della destinazione, 8 zeri, 8 bit che indicano il protocollo e 16 bit con la lunghezza del segmento UDP), sull’intestazione e sui dati; la checksum è opzionale e contiene 0 se non è calcolata (se il calcolo dà 0 viene registrato come tutti 1).
La checksum offre solo un metodo per controllare che il datagramma UDP non si sia danneggiato durante il trasporto. Se è danneggiato viene semplicemente scartato. L’applicazione può aggiungere la ritrasmissione dei dati, il controllo di flusso ecc.).
Applicazioni che usano UDP come protocollo di trasporto sono per esempio DNS e SNMP.