Sei sulla pagina 1di 6

LEZIONE 2 IL PROTOCOLL O

UD 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 in streaming dove può essere tranquillamente perso qualche fotogramma senza pregiu- dicare la visione del programma. Tale protocollo utilizza il 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à di acknowledgment • né di handshaking • tra mittente e destinatario.

A Handshaking Indica la fase preliminare con la quale i dispositivi definiscono i protocolli e le velo- cità da utilizzare per poter comunicare tra loro ed è composta da uno scambio di segnali prestabiliti gfmmj tra i due 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 between two host •

that indicates the status of communications

received: commonly 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 di 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

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

il protocollo

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, il protocollo UDP è in grado di supportare il -4 multicast •, cioè la distribuzione simultanea di informazione verso un gruppo di destinatari.

Multicast Multicast is the delivery of a message or information to a group of destination computers simultaneously in a single transmission from the source. Copies are automatically created in other net- work elements, such as routers, but only when the topology of the network requires it. •

Ogni datagramma UDP viene incapsulato in un 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 •,

(MSS)

•.

di lunghezza variabile ma

non

superiore al M Maximum

Segment

Size

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

r A Maximum Segment Size (MSS) The Maximum Segment Size (MSS) is the largest amount of data, specified in bytes, that a computer or communications device can handle in a single, unfragmented piece. For optimum communications, the number of bytes in the data segment and the header must add up to less than the number of bytes in the Maximum Transmission Unit (MTU). •

Il formato del segmento UDP è il seguente:

32 bit

n.

porta sorgente

n. porta destinazione

lunghezza

checksum

Dati dell'applicazione

(messaggio)

I

Si può osservare che non sono presenti gli indirizzi IP header IP che lo incapsula.

in quanto questi sono già presenti nel

I

'

Il campo header è composto da 4 elementi:

  • I Source/Destination Port: numero di porta sorgente e destinazione, utilizzati nelle operazioni di multiplazione/demultiplazione;

  • I Length: lunghezza in byte del segmento UDP, comprendente anche i byte di intestazione;

  • I Checksum: controllo degli errori su intestazione e dati, che viene calcolato ponendo in testa la cosiddetta pseudo intestazione UDP così strutturata:

1

I

I

I

Source IP address Destination IP address

TuttiO

Protocol

UDP length

Source port

Destination port

 

Lenght

Checksum

32 bit

Pseudo-header

UDP-header

II checksum viene calcolato coinvolgendo anche gli indirizzi IP, per verificare che il datagramma UDP sia effettivamente arrivato al giusto indirizzo IP di destinazione.

La pseudo intestazione non viene trasmessa, serve unicamente per il calcolo del checksum.

La multiplazione/demultiplazione

in UDP

Il servizio di trasferimento di messaggi privo di connessione e le operazioni di multiplazione/demul- tiplazione effettuate attraverso il canale logico tra un processo sorgente e un processo destinazione vengono realizzate mediante la coppia di parametri:

<indirizzo IP destinatario: Porta del destinatario

Descriviamo un semplice esempio di una applicazione che sfrutta i socket per trasmettere un data- gram UDP contenente una stringa di testo "ciao" da un host sender 137.200.70.14 (il client) a un host receiver 130.130.12.17 (il server), che ha come punto di accesso la porta 3069, stabilita tra quelle libere dal programmatore della applicazione.

Il server manda in esecuzione l'applicazione e si mette in attesa sulla porta 3069 fino a che il client invia su di essa un datagram: è fondamentale che client e server si accordino sul numero della porta da usare e, naturalmente, il client deve conoscere l'indirizzo IP del server.

172

Il protocollo UDP

Lezione 2

Applicazione

(^Serwr^)

Trasporto

Network

Data link

Physical

130.133.12.17

media

/"ciient \

ta) y

Applicazione

r

c

p

137.20 J.70.14

3

Trasporto

Network

Data link

Physical

Indirizzo dei socket del server: <130.130.12.17:3069>

Al server arrivano segmenti che hanno differenti indirizzi IP sorgente e/o numeri di porta sorgente ma che possono avere, oltre che lo stesso indirizzo IP, anche lo stesso numero di porta destinazione:

vengono consegnati allo stesso socket all'interno del terminale di destinazione.

Quando il terminale di server riceve un segmento UDP, allora:

• legge il numero della porta di mittente; > estrae il messaggio contenuto nel segmento;

• invia i l messaggio al socket col numero di 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 è in grado di effettuare il controllo sui segmenti che trasferisce in modo da rivelare gli eventuali errori che si fossero generati nella trasmissione: ogni segmento viene analizzato alla sua ricezione e, nel caso in cui venga rivelato un errore, il 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

Source IP address Destination IP address

Tutti 0

Protocol

Source port

Lenght

UDP length

Destination port

Checksum

32 bit

Pseudo-header

UDP-header

Dati

Messaggio

Il mittente genera i l checksum considerando i byte del segmento come una sequenza di 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. Il ricevente calcola il checksum del segmento ricevuto e controlla tale

valore con i l contenuto errore.

del campo checksum: se ci sono delle differenze rileva la presenza di un

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

 

111001100110011

0

110101010101010

1

a capo

©101110111011101

1

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

a capo ©101110111011101 ' » 1 somma 101110111011110 0

1

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

somma

101110111011110

0

checksum

01000100010000

1

1

1

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

Il protocollo UDP

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.

  • 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