User Datagram Protocol (UDP) è stato introdotto nel 1980 ed è uno dei protocolli di rete più vecchi esistenti. È un semplice protocollo di livello di trasporto OSI per applicazioni di rete client / server, è basato su IP (Internet Protocol) ed è l'alternativa principale a TCP.
Una breve spiegazione di UDP potrebbe spiegare che si tratta di un protocollo inaffidabile rispetto al TCP. Mentre ciò è vero, poiché non c'è alcun errore nel controllare o correggere coinvolti nelle trasmissioni di dati, è anche vero che ci sono sicuramente applicazioni per questo protocollo che TCP non può eguagliare.
UDP (a volte indicato come UDP / IP) viene spesso utilizzato in applicazioni di videoconferenza o giochi per computer creati appositamente per le prestazioni in tempo reale. Per ottenere prestazioni più elevate, il protocollo consente di eliminare singoli pacchetti (senza tentativi) e di ricevere pacchetti UDP in un ordine diverso da quello in cui sono stati inviati, come richiesto dall'applicazione.
Questo metodo di trasmissione, se confrontato con TCP, consente un minor carico di dati e ritardi. Dato che i pacchetti vengono inviati indipendentemente da cosa, e non c'è alcun controllo degli errori coinvolto, si ottiene utilizzando meno larghezza di banda.
UDP è meglio del TCP?
La risposta a questa domanda dipende dal contesto poiché l'UDP consente prestazioni migliori, ma forse di qualità peggiore, rispetto a TCP.
Un buon esempio di quando UDP può essere preferito al TCP è quando si tratta di un'applicazione che offre prestazioni migliori con meno latenza, come giochi online, chat video o trasmissioni vocali. I pacchetti possono essere persi, ma con un minor numero di ritardi complessivi per smorzare la qualità, non viene percepita molta perdita di qualità.
Con il gioco online, il traffico UDP consente al gioco di continuare anche se la connessione viene persa momentaneamente o se alcuni dei pacchetti vengono rilasciati per qualsiasi motivo. Se la correzione degli errori fosse implicita, la connessione subirebbe una perdita di tempo poiché i pacchetti stanno tentando di rientrare dove si erano interrotti per compensare gli errori, ma non è necessario nei videogiochi dal vivo. Lo stesso vale per lo streaming live.
Tuttavia, la ragione per cui UDP non è così eccezionale quando si tratta di trasferimenti di file è che è necessario l'intero file per usarlo correttamente. Tuttavia, non è necessario ogni singolo pacchetto di videogame o video per goderselo.
Sia TCP che UDP nel livello 4 del modello OSI e funzionano con servizi come TFTP, RTSP e DNS.
Datagrammi UDP
Il traffico UDP funziona attraverso i cosiddetti datagrammi, con ogni datagramma costituito da un'unica unità di messaggio. I dettagli dell'intestazione sono memorizzati nei primi otto byte, ma il resto è ciò che contiene il messaggio effettivo.
Ogni parte di un'intestazione del datagramma UDP, elencata qui, è di due byte:
- Numero della porta di origine
- Numero della porta di destinazione
- Dimensione del datagramma
- checksum
I numeri di porta UDP consentono a diverse applicazioni di mantenere i propri canali per i dati, in modo simile al TCP. Le intestazioni delle porte UDP sono lunghe due byte; pertanto, i numeri di porta UDP validi vanno da 0 a 65535.
La dimensione del datagramma UDP è un conteggio del numero totale di byte contenuti nelle sezioni di intestazione e dati. Poiché la lunghezza dell'intestazione è fissa, questo campo traccia efficacemente la lunghezza della porzione di dati a dimensione variabile (talvolta chiamata payload).
La dimensione dei datagrammi varia a seconda dell'ambiente operativo, ma ha un massimo di 65535 byte.
I checksum UDP proteggono i dati dei messaggi da manomissioni. Il valore di checksum rappresenta una codifica dei dati del datagramma calcolati prima dal mittente e successivamente dal ricevente. Se un singolo datagramma viene manomesso o corrotto durante la trasmissione, il protocollo UDP rileva una mancata corrispondenza nel calcolo del checksum.
In UDP, il checksum è facoltativo, al contrario di TCP, dove i checksum sono obbligatori.