Cos'è l'UDP?

UDP è un protocollo di comunicazione a livello di trasporto molto comune per il traffico vocale e video.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire UDP/IP
  • Descrivere alcuni casi d'uso per UDP

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Cos'è il protocollo IP UDP (User Datagram Protocol)?

Il protocollo UDP (User Datagram Protocol) è un protocollo di comunicazione utilizzato su Internet per trasmissioni particolarmente sensibili al fattore tempo, come la riproduzione video o le ricerche DNS. Velocizza le comunicazioni evitando di stabilire formalmente una connessione prima che i dati vengano trasferiti. Ciò consente il trasferimento molto rapido dei dati, ma può anche causare la perdita di pacchetti durante il transito e creare opportunità di sfruttamento sotto forma di attacchi DDoS.

Come funziona il protocollo UDP?

Come tutti i protocolli di rete, UDP è un metodo standardizzato per trasferire dati tra due computer in una rete. Rispetto ad altri protocolli, UDP esegue questo processo in modo semplice: invia pacchetti (unità di trasmissione dati) direttamente al computer di destinazione, senza prima stabilire una connessione, indicare l'ordine dei pacchetti o controllare se sono arrivati come previsto. I pacchetti UDP sono chiamati "datagrammi".

TCP e UDP

UDP è più veloce ma meno affidabile di TCP, un altro protocollo di trasporto comune. In una comunicazione TCP, i due computer iniziano stabilendo una connessione tramite un processo automatizzato chiamato "handshake". Solo una volta completato questo handshake un computer trasferirà effettivamente i pacchetti di dati all'altro..

Le comunicazioni UDP non seguono questo processo. Invece, un computer può semplicemente iniziare a inviare dati all'altro:

Comunicazione TCP e UDP

Inoltre, le comunicazioni TCP indicano l'ordine in cui i pacchetti di dati devono essere ricevuti e confermano che i pacchetti arrivano come previsto. Se un pacchetto non arriva, ad esempio a causa della congestione nelle reti intermedie, TCP richiede che venga inviato nuovamente. Le comunicazioni UDP non includono nessuna di queste funzionalità.

Queste differenze creano alcuni vantaggi. Poiché UDP non richiede un "handshake" o un controllo se i dati arrivano correttamente, è in grado di trasferire i dati molto più velocemente di TCP.

Questa velocità, però, comporta dei compromessi. Se un datagramma UDP viene perso durante il transito, non verrà reinviato. Di conseguenza, le applicazioni che utilizzano UDP devono essere in grado di tollerare errori, perdite e duplicazioni.

Tecnicamente, tale perdita di pacchetti è più una conseguenza del modo in cui è strutturata Internet che un difetto dell'UDP. La maggior parte dei router di rete non esegue l'ordinamento dei pacchetti e la conferma dell'arrivo per impostazione predefinita, perché ciò richiederebbe una quantità di memoria aggiuntiva non fattibile. TCP è un modo per colmare questa lacuna quando un'applicazione lo richiede.

A cosa serve il protocollo UDP?

Il protocollo UDP è comunemente utilizzato nelle comunicazioni in cui il fattore tempo è determinante, in cui è meglio eliminare occasionalmente i pacchetti piuttosto che attendere. Il traffico audio e video viene spesso inviato utilizzando questo protocollo perché sono entrambi sensibili al fattore tempo e progettati per gestire un certo livello di perdita. Ad esempio, il VoIP (voice over IP), utilizzato da molti servizi telefonici basati su Internet, in genere opera su UDP. Questo perché una conversazione telefonica con un tono statico è preferibile a una chiara ma fortemente ritardata.

Ciò rende UDP il protocollo ideale anche per il gaming online. Allo stesso modo, poiché i server DNS devono essere veloci ed efficienti, operano anche tramite UDP.

Come viene utilizzato UDP negli attacchi DDoS?

I "rischi" UDP come la perdita di pacchetti non rappresentano un problema serio nella maggior parte dei casi d’uso. Tuttavia, l'UDP può essere sfruttato per scopi dannosi. Poiché UDP non richiede un handshake, gli aggressori possono "inondare" un server preso di mira con traffico UDP senza prima ottenere l'autorizzazione del server per iniziare la comunicazione.

non definito

Un tipico attacco UDP flood invia un gran numero di datagrammi UDP a porte casuali sul computer di destinazione. Ciò costringe la destinazione a rispondere con un numero altrettanto grande di pacchetti ICMP, che indicano che quelle porte non erano raggiungibili. Le risorse informatiche necessarie per rispondere a ogni datagramma fraudolento possono esaurire il bersaglio, con conseguente negazione del servizio al traffico legittimo. Per saperne di più, leggi il nostro articolo sugli attacchi UDP flood.

Le organizzazioni possono difendersi dagli attacchi UDP flood con diversi metodi. Uno dei modi possibili è limitare la velocità di risposta dei pacchetti ICMP, anche se questo approccio può anche filtrare i pacchetti legittimi. Un altro metodo consiste nel ricevere e rispondere al traffico UDP tramite una rete intermedia di molti datacenter distribuiti, impedendo così che un singolo server di origine venga sopraffatto da richieste fraudolente. Scopri di più su come Cloudflare utilizza questa strategia per aiutare le organizzazioni a mitigare gli attacchi DDoS.