[successivo] [precedente] [indice]

User Datagram Protocol

UDP e' un protocollo di trasporto semplice, senza connessione, basato sul trasferimento di datagrammi. UDP e' descritto dal documento RFC768.

Ogni operazione di output di un processo che usa il trasporto UDP produce esattamente un datagramma UDP, che viene incapsulato in un datagramma IP.

Incapsulamento UDP

UDP non e' affidabile: invia i datagrammi ma non garantisce che arrivino a destinazione. E' l'applicativo che deve preoccuparsi dell'affidabilita' del servizio.

Testata UDP

La testata UDP e' relativamente semplice.

I campi Porto Sorgente e Porto Destinazione identificano i punti terminali di comunicazione tra i processi comunicanti e la rete. Il campo Lunghezza e' dell'intero datagramma UDP (testata + dati) in byte. Il valore minimo e' 8, ma in realta' questo campo non viene gestito dal protocollo, che sa' che la lunghezza totale e' la lunghezza di un datagramma IP meno i 20 byte della testata IP. Il campo Checksum e' anchesso opzionale.

Checksum di UDP e TCP

Quando sono calcolati (per TCP e' obbligatorio) i campi Checksum di TCP e UDP vengono formati in un modo speciale, dovuto al fatto che il protocollo IP ha un campo checksum della sola testata IP.

Innanzi tutto la lunghezza del campo dati e' estesa ad un confine di 16 bit usando se necessario un campo finale di Pad posto a zero.

Viene formato uno pseudo-pacchetto composto da:

Il campo Checksum e' calcolato su questo pseudo-pacchetto come complemento a 1 della somma dei complementi a 1 di tutte le parole a 16 nit del pseudo-pacchetto.

Il checksum e' un campo di controllo end-to-end: e' calcolato dal mittente e verificato dal ricevitore del pacchetto. Se il pacchetto UDP e' errato, viene scartato silenziosamente, senza generazione di messaggi d'errore.

L'opzionalita' dei checksum di UDP implica una velocita' maggiore delle operazioni se disabilitata, ma puo' naturalmente fornire sorgenti irrecuperabili d'errori, specie su una rete non Ethernet o quando il datagramma UDP transiti da router.