You are on page 1of 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 pregiudicare 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.

gfmmj

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
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 destinazione. 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 indipendentemente 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 network 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 datagramma 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

20 bytes

l bytes

UDP data

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).

Il formato del segmento UDP i l seguente:


32 bit

n. porta sorgente

n. porta destinazione

lunghezza

checksum

Dati dell'applicazione
(messaggio)
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.
I '

Il campo header composto da 4 elementi:


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

Source IP address

32 bit

Destination IP address
TuttiO

Protocol

UDP length

Source port

Destination port

Lenght

Checksum

Pseudo-header
UDP-header

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/demultiplazione 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 datagram 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

Applicazione

/"ciie n t \

(^Serwr^)

ta)y

cp

Lezione 2

Applicazione

Trasporto
Network

137.20 J.70.14

130.133.12.17

Data link

Trasporto
Network
Data link

Physical

Physical

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 accade 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
Pseudo-header

Destination IP address
Tutti 0

Protocol

UDP length

Source port

Destination port

Lenght

Checksum

UDP-header

Messaggio

Dati

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 risultato: vediamo con un esempio come operare per generare il checksum su due stringhe di 16 bit.
Eseguiamo dapprima la somma dei bit in colonna

a capo

e a questa necessario aggiungere il riporto generato dalla overflow dei bit pi significativi:
a capo

'

1
1

somma

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


somma
checksum
1

1
0

0
0

1
0

1
0

1
1

0
0

1
0

1
0

1
1

0
0

1
0

1
0

1
0

1
1

0
1

Il protocollo UDP

Verifichiamo le

conoscenze

Esercizi a scelta multipla


L'acronimo UDP significa:
a)
b)
c)
d)

User Data Protocol


Uniform Datagram Protocol
User Datagram Protocol
Uniform Data Protocol

Quale tra le seguenti affermazioni falsa per il protocollo UDP?


a)
b)
c)
d)
e)

non garantisce la consegna


non affidabile
non individua l'errore nei dati
di tipo connectionless
non garantisce l'ordine di consegna

UDP ha i seguenti vantaggi (indicare quelli errati):


a)
b)
c)
d)
e)

non introduce i ritardi temporali


non instaura una connessione tra i processi comunicanti
non viene richiesto che si mantenga la connessione
l'header di un segmento UDP molto pi corto
non attua controllo di congestione

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


a)
b)
c)
d)
e)
f)

porta sorgente
porta destinatario
IP destinatario
lunghezza dati
checksum
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.
3 I segmenti inviati possono essere perduti durante la trasmissione pregiudicando il sistema.
4 In UDP avviene l'handshaking tra mittente e destinatario.
5 L'handshake sempre necessario tra protocolli connection-oriented.
6 II segmento UDP ha un header di non pi di 8 byte.
7 II valore di default Maximum Segment Size di 536 byte.
8 Ogni segmento IP viene incapsulato in un datagram UDP.
9 II socket del server in grado di ricevere pi richieste dallo stesso cliente.
10 II protocollo UDP in grado di effettuare il controllo su errori di indirizzamento.

OQ
OQ
OQ
OQ
OQ
OQ
OQ
OQ

OQ

You might also like