Come funziona il protocollo User Datagram?

UDP (User Datagram Protocol) fornisce un meccanismo di trasporto senza connessione e inaffidabile per la trasmissione dei dati attraverso le reti IP. Ecco come funziona l’UDP:

UDP opera al livello di trasporto dello stack di protocolli TCP/IP ed è utilizzato da applicazioni che non richiedono la consegna garantita dei dati o un rigoroso ordine dei pacchetti. Quando un’applicazione desidera inviare dati utilizzando UDP, incapsula i dati in un datagramma UDP. Ogni datagramma UDP include intestazioni con numeri di porta di origine e di destinazione, insieme a un checksum per il rilevamento degli errori (sebbene non venga fornita la correzione degli errori).

Una volta formato il datagramma UDP, viene passato al livello di rete (livello IP), dove diventa parte di un pacchetto IP. Il pacchetto IP contiene intestazioni aggiuntive con indirizzi IP di origine e di destinazione, consentendo ai router di inoltrarlo attraverso reti diverse verso la sua destinazione.

Una volta arrivato all’host di destinazione, il pacchetto IP viene passato al livello di trasporto, dove l’UDP lo elabora. UDP estrae il carico utile dei dati dal pacchetto IP in base al numero di porta di destinazione specificato nell’intestazione UDP. A differenza del TCP, UDP non stabilisce una connessione prima di trasmettere i dati, né mantiene lo stato della sessione né garantisce una consegna affidabile. Invece, UDP consegna semplicemente i dati all’applicazione o al servizio specificato in esecuzione sull’host di destinazione.

Un datagramma si riferisce a un’unità di dati indipendente e autonoma trasmessa su una rete.
UDP, un datagramma è costituito dall’intestazione UDP seguita dal payload dei dati. Ogni datagramma viene trattato come un’entità separata e viene trasmesso indipendentemente dagli altri datagrammi. Ciò significa che i datagrammi UDP possono arrivare fuori ordine o andare persi senza che UDP fornisca meccanismi per la ritrasmissione o il sequenziamento. Le applicazioni che utilizzano UDP devono gestire queste condizioni se richiesto per il loro caso d’uso specifico.

Un esempio di protocollo basato su UDP è DNS (Domain Name System). Il DNS utilizza UDP per la trasmissione rapida e leggera di query e risposte DNS tra client (resolver) e server DNS. Le query DNS, che richiedono la mappatura dei nomi di dominio sugli indirizzi IP, sono in genere piccole e beneficiano del basso sovraccarico e delle caratteristiche di trasmissione veloce di UDP. Anche le risposte DNS, che forniscono le mappature richieste, vengono inviate tramite UDP. I server DNS ascoltano sulla porta UDP 53 le query in arrivo e rispondono con datagrammi UDP contenenti le informazioni richieste. Il DNS utilizza UDP principalmente per la sua efficienza nel risolvere nomi di dominio e indirizzi IP senza il sovraccarico di stabilire e mantenere le connessioni.