Introduzione
L’UDP è un protocollo di trasporto inaffidabile e senza connessione.
Servizi Forniti
- Comunicazione tra processi utilizzando i Socket
- demultiplexing dei pacchetti
- Incapsulamento e decapsulamento
Servizi non Forniti
Non fornisce alcun setup della connessione, affidabilità, controllo di flusso, controllo della congestione, controllo errori (eccetto ckecksum) temporizzazione né ampiezza di banda minima e sicurezza.
Servizio Connectionless
L’UDP è un servizio senza connessione, questo vuol dire che la comunicazione è unilaterale e che non è possibile ricevere riscontri sul risultato della invio di un messaggio.
Per questo motivo non è possibile effettuare il control flow, controllo di congestione o controllo errori , ed il mittente invia datti a raffica senza pensare al destinatario:
- È il mittente che deve preoccuparsi di dividere i pacchetti in dimensioni ottimali per l’invio.
- Ogni pacchetto è indipendente dagli altri (ordine d’arrivo potrebbe essere diverso rispetto all’ordine d’arrivo)
Datagrammi UDP
Il processo mittente non può inviare un flusso di dati e aspettarsi che UDP lo suddivida in datagrammi correlati per questo è compito dei processi inviare richieste di dimensioni sufficientemente piccole per essere inserite ciascuna in un singolo datagramma utente.
Solo i processi che usano messaggi di dimensioni inferiori a 65507 byte (65535 – 8 byte di intestazione UDP e 20 byte di intestazione IP) possono utilizzare il protocollo UDP
Struttura Datagramma UDP
Checksum
Il checksum è una tecnica che permette al ricevente di determinare se durante il trasporto sono avvenute delle alterazioni (errori) sul datagramma trasmesso.
Mittente
- Il messaggio viene diviso in parole da 16 bit
- Il valore checksum viene inizialmente impostato a 0
- Tutte le parole del messaggio incluso il checksum vengono sommate usando l’addizione complemento ad uno
- Viene fatto il complemento ad uno della somma e il risultato è il checksum
- Il checksum viene inviato assieme ai dati
Ricevente
- Riceve il messaggio (che comprende il checksum)
- Il messaggio viene diviso in parole da 16 bit
- Tutte le parole vengono sommate usando l’addizione a complemento ad uno
- Viene fatto il complemento ad uno della somma e il risultato diventa il nuovo checksum
- Se il valore del checksum è 0 allora il messaggio viene accettato altrimenti viene scartato
Vedi anche Esempio Neso Academy.
Utilizzi
Questo protocollo è utilizzato per l’invio di dati non richiedono affidabilità come ad esempio streaming video o telefonia internet come Skype.
DNS utilizza UDP
Quando vuole effettuare una query, DNS costruisce un messaggio di query e lo passa a UDP:
- L’entità UDP aggiunge i campi di intestazione al messaggio e trasferisce il segmento risultante al livello di rete, etc.
- L’applicazione DNS aspetta quindi una risposta
- Se non ne riceve tenta di inviarla a un altro server dei nomi
La semplicità della richiesta/risposta (molto breve) motiva l’utilizzo di UDP, che risulta più veloce:
- Nessuna connessione stabilita
- Nessuno stato di connessione
- Intestazioni di pacchetto più corte