# UDP

`UDP` (*User Datagram Protocol*) è un protocollo di livello 4 del modello ISO/OSI, appartenente al Transport Layer, insieme a `TCP` (*Transmission Control Protocol*). UDP è noto per la sua semplicità e per essere *connectionless*, ovvero non orientato alla connessione.

UDP non stabilisce una connessione prima di inviare i dati. Questo rende UDP meno complesso e più leggero rispetto a TCP.

É utilizzato in applicazioni dove la velocità e l'efficienza sono più importanti della affidabilità e dell'integrità dei dati. Esempi comuni includono lo streaming video e audio, dove la perdita occasionale di pacchetti è accettabile, oppure per la risoluzione dei nomi di dominio.

## Struttura del Datagramma UDP

Un datagramma UDP ha un payload che può variare da 8 byte fino a 65.535 byte. Il datagramma è incapsulato con un header UDP di 8 byte, che contiene le seguenti informazioni:

- **Porta Sorgente** (16 bit)
- **Porta Destinazione** (16 bit)
- **Lunghezza** (16 bit): la lunghezza totale del datagramma UDP, inclusi header e payload
- **Checksum** (16 bit): un campo opzionale utilizzato per il controllo degli errori. Il checksum aiuta a verificare l'integrità del datagramma UDP
