IL P R O T O C O L L O U D P
Generalit
Il protocollo UDP (User Datagram Protocol) stato concepito per tutte quelle applicazioni per le
quali non necessaria una completa gestione delle connessioni, come per esempio le trasmissioni
televisive i n streaming dove pu essere tranquillamente perso qualche fotogramma senza pregiu-
dicare la visione del programma. Tale protocollo utilizza i l protocollo IP per trasportare i messaggi
ma, rispetto a quest'ultimo, distingue tra pi destinazioni all'interno di uno stesso host mediante i l
meccanismo delle porte (socket). Viene utilizzato pertanto da tutte le applicazioni che trasmettono
pacchetti singoli, senza necessit d i a c k n o w l e d g m e n t n d i handshaking tra mittente e
destinatario.
Il protocollo UDP inoltre adatto a essere impiegato dalle applicazioni che richiedono bassi ritardi
di trasferimento end-to-end ma tollerano perdite/errori nei segmenti ricevuti dai processi d i desti-
nazione. La tabella seguente riporta le pi comuni applicazioni e i relativi protocolli utilizzati nello
strato di applicazione, che sar descritto nell'unit di apprendimento 4.
170
il protocollo UDP
Il segmento UDP
Ogni segmento UDP fa uso di datagrammi con un'intestazione di 8 byte, gestito indipendentemen-
te dagli altri e pu dare luogo a una modalit di trasferimento tra processi di tipo:
I punto-punto;
I bidirezionale;
I full-duplex.
A differenza del protocollo TCP, i l protocollo UDP i n grado di supportare i l -4 multicast , cio la
distribuzione simultanea di informazione verso un gruppo di destinatari.
Ogni datagramma UDP viene incapsulato i n u n datagramma IP, quindi la dimensione del datagram-
ma UDP non pu superare la dimensione massima della parte dati del datagramma IP ed formato
da due parti:
un header (8 byte);
> un campo -4 payload , di lunghezza variabile ma non superiore al M M a x i m u m S e g m e n t Size
(MSS) .
IP datagram
UDP datagram
20 bytes l bytes
Il valore di default Maximum Segment Size di 536 byte mentre i l valore massimo 65535 byte: la
dimensione decisa dal mittente durante la fase di setup della comunicazione.
4 Payload Indica il carico utile che viene ricevuto dal sistema destinazione, cio i dati contenenti le
informazioni al netto di tutti i campi legati al protocollo e necessari affinch avvenga la comunicazione.
1
Il formato del segmento UDP i l seguente:
32 bit
lunghezza checksum
Dati dell'applicazione
(messaggio)
1 32 bit
I I I
Source IP address
Destination IP address Pseudo-header
TuttiO Protocol UDP length
Source port Destination port
UDP-header
Lenght Checksum
II checksum viene calcolato coinvolgendo anche gli indirizzi IP, per verificare che i l datagramma
UDP sia effettivamente arrivato al giusto indirizzo IP di destinazione.
La multiplazione/demultiplazione in UDP
Il servizio di trasferimento di messaggi privo d i connessione e le operazioni di multiplazione/demul-
tiplazione effettuate attraverso i l canale logico tra un processo sorgente e un processo destinazione
vengono realizzate mediante la coppia d i parametri:
<indirizzo IP destinatario: Porta del d e s t i n a t a r i o
Descriviamo un semplice esempio di una applicazione che sfrutta i socket per trasmettere u n data-
gram UDP contenente una stringa d i testo "ciao" da un host sender 137.200.70.14 ( i l client) a u n
host receiver 130.130.12.17 ( i l server), che ha come punto d i accesso la porta 3069, stabilita tra
quelle libere dal programmatore della applicazione.
I l server manda i n esecuzione l'applicazione e si mette in attesa sulla porta 3069 fino a che i l client
invia su di essa un datagram: fondamentale che client e server si accordino sul numero della porta
da usare e, naturalmente, i l client deve conoscere l'indirizzo IP del server.
172
Il protocollo UDP Lezione 2
Applicazione (^Serwr^)
/"ciie n t \
Applicazione
ta)y
cp
r
Trasporto Trasporto
media
A l server arrivano segmenti che hanno differenti indirizzi IP sorgente e/o numeri d i porta sorgente
ma che possono avere, oltre che lo stesso indirizzo IP, anche lo stesso numero d i porta destinazione:
vengono consegnati allo stesso socket all'interno del terminale d i destinazione.
173
Per fare questo viene calcolato dal mittente del messaggio i l checksum, analogamente a quanto ac-
cade per i l checksum IP ma, come gi detto prima, tenendo conto non solo dei campi del segmento
UDP ma anche dello pseudo-header IP:
1 32 bit
Source IP address
Destination IP address Pseudo-header
Tutti 0 Protocol UDP length
Source port Destination port
UDP-header
Lenght Checksum
Dati Messaggio
I l mittente genera i l checksum considerando i byte del segmento come una sequenza d i interi da
16 bit ed effettua la somma, cio i l complemento a 1 , e memorizza i l valore ottenuto nel campo
checksum del segmento UDP. I l ricevente calcola i l checksum del segmento ricevuto e controlla tale
valore con i l contenuto del campo checksum: se ci sono delle differenze rileva la presenza d i u n
errore.
Zoom su.
ESEMPIO DI CALCOLO DEL CHECKSUM
Quando si sommano i numeri, un riporto dal bit pi significativo deve essere sommato al risulta-
to: vediamo con un esempio come operare per generare il checksum su due stringhe di 16 bit.
Eseguiamo dapprima la somma dei bit in colonna
1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
a capo 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
e a questa necessario aggiungere il riporto generato dalla overflow dei bit pi significativi:
a capo 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
' 1
somma 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
somma 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
1
Il protocollo UDP
Verifichiamo le conoscenze
Esercizi a scelta multipla
Test vero/falso