User Datagram Protocol (UDP) è stato introdotto nel 1980 ed è uno dei più vecchi protocolli di rete esistenti. E’ un semplice protocollo per il layer di trasporto OSI per le applicazioni client/server, che è basato su Internet Protocol (IP) ed è la principale alernativa a TCP.

Una breve spiegazione di UDP potrebbe chiarire facilmente che si tratta di un protocollo inaffidabile se comparato a TCP. Beneché questo sia vero, dal momento che non c’è nessun controllo di errore o correzione coinvolta nella trasmissione dei dati, è anche vero che ci sono applicazioni per questo protocollo che non possono impiegare TCP.

UDP (certe volte riportato anche come UDP/IP) È spesso impiegato nelle applicazioni di videoconferenza o nei videogiochi che sono pensati specificatamente per garantire le migliori prestazioni in tempo reale. Per ottenere le migliori prestazioni il protocollo consente che serie di pacchetti individualmente possano essere abbandonati (con nessun tentativo di re invio) e i pacchetti UDP possano essere ricevuti in ordine differente rispetto a quello con cui sono stati inviati, come organizzati dall’applicazione stessa.

Questo metodo di trasmissione, quando messo a confronto con TCP, consente una minore latenza nella trasmissione e consente di attenuare i ritardi. Dal momento che i pacchetti sono inviati in un ordine qualsiasi e che non c’è nessun sistema di controllo dell’errore coinvolto, questo consente di utilizzare meno larghezza di banda.

UDP è meglio di TCP? 

La risposta a questa domanda è dipende dal contesto dove UDP viene impiegato per ottenere migliori prestazioni, ma possibilmente anche peggiore qualità, rispetto a TCP.

Un buon esempio un contesto dove dovrebbe essere preferito rispetto a TCP e quando si ha a che fare con una applicazione che funziona meglio quando c’è meno latenza, come i videogiochi on-line, le video chat oppure lo streaming della voce. In questo caso, i pacchetti possono essere persi, ma avendo minor numero possibile di ritardi che davvero possono costituire un problema per la qualità della trasmissione, non viene davvero percepita una reale perdita di qualità da parte del ricevente.

Con i videogame on-line, il traffico consente ai giocatori di continuare anche se la connessione viene persa momentaneamente o se alcuni pacchetti vengono persi per qualche ragione. Se c’è un Sistema di correzione dell’errore, la connessione potrebbe risentire del tempo perso affinché i pacchetti persi siano rinviati: in questo caso, non è importante ricevere tutto e senza errori, ma riceverlo nel minor tempo possibile. Lo stesso è valido quando si ha a che fare con lo streaming audio o video.

Comunque, la ragione per cui UDP non è così efficace quando si tratta di trasferire file è legata al fatto che quando hai bisogno di un file intero che funzioni correttamente, questo protocollo si dimostra inefficace.

Sia TCP che UDP risiedono nel layer 4 del modello OSI e lavorano con servizi come TFTP, RTSP e DNS.

Datagrammi UDP

Il traffico UDP attraverso quelli che noi chiamiamo Datagrammi, con ogni datagramma consistente di una singola unità di messaggio. I dettagli dell’intestazione sono memorizzati nei primi 8 byte, ma il resto è quello che mantiene il messaggio attuale.

Ogni parte di un datagramma IP, come quindi sotto elencato, è composto da 2 byte:

  • Numero di porta della sorgente
  • Numero di porta della destinazione
  • dimensione del datagramma
  • Checksum

I numeri di porta di consentono a differenti applicazioni di mantenere i loro propri canali per i dati, in modo simile a TCP. Le intestazioni di porta di UDP sono lunghe 2 byte; comunque, i numeri validi di porte UDP hanno un range da 0 a 65535.

La dimensione di un datagramma UDP è il conteggio del numero totale di byte tenuti nell’intestazione e nelle sezioni di dati. Dal momento che la lunghezza dell’intestazione ha una dimensione fissa, questo campo effettivamente traccia la lunghezza della porzione dei dati che ha una dimensione variabile (certe volte chiamata anche Payload).

La dimensione dei datagrammi cambia con dell’ambiente operativo, ma ha una dimensione massima di 65.535 byte.

I checksum di UDP proteggono il messaggio dalla manomissione. Il valore di checksum rappresenta una Codifica del dato del datagramma calcolato prima dal mittente e più tardi da ricevente. Si un datagramma individualmente venga alterato oppure si corrompa durante la trasmissione, Il protocollo UDP rileva un errore di calcolo del Checksum.

Con UDP, le funzioni di Checksum sono opzionali, mentre su TCP il Checksum è obbligatorio.

Rispondi