Sei sulla pagina 1di 6

LEZIONE 2

IL P R O T O C O L L O U D P

IN QUESTA LEZIONE IMPAREREMO...

le caratteristiche del protocollo UDP


gli utilizzi del protocollo UDP
il formato del segmento UDP

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.

A Handshaking Indica la fase preliminare con la quale i dispositivi definiscono i protocolli e le v e l o -


cit da utilizzare per poter comunicare tra loro e d composta da uno scambio di segnali prestabiliti
gfmmj tra i d u e dispositivi stessi: l'handshake necessario tra protocolli connection-oriented mentre non
necessario nei protocolli connectionless.

4 Acknowledgment Message such as one used in 'handshaking' process b e t w e e n t w o host


that indicates t h e status of communications received: c o m m o n l y written as ACK.

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

Applicazione Protocollo di strato applicativo


Telefonia via Internet Voip
Applicazioni Multimediali
Protocolli di instradamento RIP
Risoluzione di nomi DNS
Amministrazione di rete SNMP
File server remoti NFS
Trivial File Transfer tftp
Network Time Protocol ntp

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.

Multicast Multicast is the delivery of a message or information t o a g r o u p of destination computers


simultaneously in a single transmission f r o m the source. Copies are automatically created in other net-
work elements, such as routers, b u t only when the t o p o l o g y of the network requires it.

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

IP header UDP header UDP data

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.

rA Maximum S e g m e n t Size (MSS) The M a x i m u m S e g m e n t Size (MSS) is the largest a m o u n t


of data, specified in bytes, that a c o m p u t e r or communications device can handle in a single,
u n f r a g m e n t e d piece. For o p t i m u m communications, the number of bytes in t h e data segment and the
header must a d d up t o less than the number of bytes in the M a x i m u m Transmission Unit (MTU).

1
Il formato del segmento UDP i l seguente:

32 bit

n. porta sorgente n. porta destinazione

lunghezza checksum

Dati dell'applicazione
(messaggio)

I Si pu osservare che n o n s o n o presenti g l i indirizzi IP in q u a n t o q u e s t i s o n o gi presenti nel


h e a d e r IP che lo incapsula.

Il campo header composto da 4 elementi:


I '

I Source/Destination Port: numero d i porta sorgente e destinazione, utilizzati nelle operazioni di


multiplazione/demultiplazione;
I Length: lunghezza i n byte del segmento UDP, comprendente anche i byte d i intestazione;
I Checksum: controllo degli errori su intestazione e dati, che viene calcolato ponendo i n testa la
cosiddetta pseudo intestazione UDP cos strutturata:

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 p s e u d o intestazione n o n v i e n e trasmessa, serve u n i c a m e n t e p e r il calcolo d e l c h e c k s u m .

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

Network 130.133.12.17 137.20 J.70.14 Network


Data link Data link
Physical Physical
3

media

Indirizzo dei socket del server: <130.130.12.17:3069>

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.

Quando i l terminale di server riceve u n segmento UDP, allora:


legge i l numero della porta d i mittente;
> estrae i l messaggio contenuto nel segmento;
invia i l messaggio al socket col numero d i porta di destinazione specificato:
- socket mittente host A: <69.12.0.54:3030>
- socket destinatario host B: <137.200.70.14:3010>

Host A HostC Host B

Rilevazione degli errori


Il protocollo UDP i n grado d i effettuare i l c o n t r o l l o sui segmenti che trasferisce i n modo da rivelare
gli eventuali errori che si fossero generati nella trasmissione: ogni segmento viene analizzato alla
sua ricezione e, nel caso i n cui venga rivelato u n errore, i l segmento viene scartato oppure viene
segnalata la presenza dell'errore all'applicazione che lo ha generato.

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

a questo punto possibile calcolare il checksum, complementando tutti i bit

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

L'acronimo UDP significa:


a) User Data Protocol
b) Uniform Datagram Protocol
c) User Datagram Protocol
d) Uniform Data Protocol

Quale tra le seguenti affermazioni falsa per il protocollo UDP?


a) non garantisce la consegna
b) non affidabile
c) non individua l'errore nei dati
d) di tipo connectionless
e) non garantisce l'ordine di consegna

UDP ha i seguenti vantaggi (indicare quelli errati):


a) non introduce i ritardi temporali
b) non instaura una connessione tra i processi comunicanti
c) non viene richiesto che si mantenga la connessione
d) l'header di un segmento UDP molto pi corto
e) non attua controllo di congestione

Quali tra i seguenti campi non sono presenti nell'header UDP?


a) porta sorgente
b) porta destinatario
c) IP destinatario
d) lunghezza dati
e) checksum
f) dati

Test vero/falso

1 UDP utilizza l'IP per trasportare i messaggi.


2 UDP offre in pi la capacit di distinguere tra pi destinazioni all'interno di uno stesso host. OQ
3 I segmenti inviati possono essere perduti durante la trasmissione pregiudicando il sistema. OQ
4 In UDP avviene l'handshaking tra mittente e destinatario. OQ
5 L'handshake sempre necessario tra protocolli connection-oriented. OQ
6 II segmento UDP ha un header di non pi di 8 byte. OQ
7 II valore di default Maximum Segment Size di 536 byte. OQ
8 Ogni segmento IP viene incapsulato in un datagram UDP. OQ
9 II socket del server in grado di ricevere pi richieste dallo stesso cliente. OQ
10 II protocollo UDP in grado di effettuare il controllo su errori di indirizzamento. OQ