Passa al contenuto principale

RFC 768 - Protocollo datagramma utente (User Datagram Protocol)

Data di pubblicazione: 28 agosto 1980
Autore: J. Postel (ISI - Information Sciences Institute)
Stato: Protocollo standard (Standard Protocol)


Introduzione (Introduction)

Questo protocollo datagramma utente (User Datagram Protocol, UDP) è definito per rendere disponibile una modalità datagramma (Datagram Mode) di comunicazione informatica a commutazione di pacchetto nell'ambiente di un insieme interconnesso di reti informatiche. Questo protocollo presuppone che il protocollo Internet (Internet Protocol, IP) [1] sia utilizzato come protocollo sottostante.

Questo protocollo fornisce una procedura per i programmi applicativi per inviare messaggi ad altri programmi con un minimo di meccanismo protocollare. Il protocollo è orientato alle transazioni (Transaction Oriented) e la consegna e la protezione da duplicati non sono garantite. Le applicazioni che richiedono la consegna affidabile e ordinata di flussi di dati dovrebbero utilizzare il protocollo di controllo della trasmissione (Transmission Control Protocol, TCP) [2].


Formato (Format)

                  0      7 8     15 16    23 24    31  
+--------+--------+--------+--------+
| Source | Destination |
| Port | Port |
+--------+--------+--------+--------+
| | |
| Length | Checksum |
+--------+--------+--------+--------+
|
| data octets ...
+---------------- ...

User Datagram Header Format

Campi (Fields)

Source Port (Porta sorgente)

La porta sorgente (Source Port) è un campo opzionale; quando significativa, indica la porta del processo mittente e può essere assunta come la porta a cui dovrebbe essere indirizzata una risposta in assenza di altre informazioni. Se non utilizzata, viene inserito un valore di zero.

Destination Port (Porta di destinazione)

La porta di destinazione (Destination Port) ha un significato nel contesto di un particolare indirizzo di destinazione Internet.

Length (Lunghezza)

La lunghezza (Length) è la lunghezza in ottetti di questo datagramma utente, inclusi questo header e i dati. (Ciò significa che il valore minimo della lunghezza è otto.)

Checksum (Somma di controllo)

La somma di controllo (Checksum) è il complemento a uno a 16 bit della somma in complemento a uno (One's Complement Sum) di un pseudo-header (Pseudo Header) di informazioni dall'header IP, dall'header UDP e dai dati, riempito con ottetti zero alla fine (se necessario) per formare un multiplo di due ottetti.

Lo pseudo-header, concettualmente anteposto all'header UDP, contiene l'indirizzo sorgente, l'indirizzo di destinazione, il protocollo e la lunghezza UDP. Queste informazioni forniscono protezione contro datagrammi instradati erroneamente. Questa procedura di checksum è la stessa utilizzata in TCP.

                  0      7 8     15 16    23 24    31 
+--------+--------+--------+--------+
| source address |
+--------+--------+--------+--------+
| destination address |
+--------+--------+--------+--------+
| zero |protocol| UDP length |
+--------+--------+--------+--------+

Se la somma di controllo calcolata è zero, viene trasmessa come tutti uno (l'equivalente nell'aritmetica in complemento a uno). Un valore di somma di controllo trasmesso di tutti zero significa che il trasmettitore non ha generato alcuna somma di controllo (per il debug o per protocolli di livello superiore che non se ne preoccupano).


Interfaccia utente (User Interface)

Un'interfaccia utente dovrebbe consentire:

  • la creazione di nuove porte di ricezione (Receive Ports),

  • operazioni di ricezione sulle porte di ricezione che restituiscono gli ottetti di dati e un'indicazione della porta sorgente e dell'indirizzo sorgente,

  • e un'operazione che consente l'invio di un datagramma, specificando i dati, le porte sorgente e di destinazione e gli indirizzi da inviare.


Interfaccia IP (IP Interface)

Il modulo UDP deve essere in grado di determinare gli indirizzi Internet sorgente e di destinazione e il campo protocollo dall'header Internet. Una possibile interfaccia UDP/IP restituirebbe l'intero datagramma Internet, inclusi tutti gli header Internet, in risposta a un'operazione di ricezione. Tale interfaccia consentirebbe anche all'UDP di passare un datagramma Internet completo con header all'IP per l'invio. L'IP verificherebbe la coerenza di alcuni campi e calcolerebbe la somma di controllo dell'header Internet.


Applicazione del protocollo (Protocol Application)

Gli utilizzi principali di questo protocollo sono il server dei nomi Internet (Internet Name Server) [3] e il trasferimento file banale (Trivial File Transfer) [4].


Numero di protocollo (Protocol Number)

Questo è il protocollo 17 (21 in ottale) quando utilizzato nel protocollo Internet. Altri numeri di protocollo sono elencati in [5].


Riferimenti (References)

[1] Postel, J., "Internet Protocol", RFC 760, USC/Information Sciences Institute, gennaio 1980.

[2] Postel, J., "Transmission Control Protocol", RFC 761, USC/Information Sciences Institute, gennaio 1980.

[3] Postel, J., "Internet Name Server", USC/Information Sciences Institute, IEN 116, agosto 1979.

[4] Sollins, K., "The TFTP Protocol", Massachusetts Institute of Technology, IEN 133, gennaio 1980.

[5] Postel, J., "Assigned Numbers", USC/Information Sciences Institute, RFC 762, gennaio 1980.


Risorse correlate

  • Testo ufficiale: https://www.rfc-editor.org/rfc/rfc768.txt
  • Pagina ufficiale: https://datatracker.ietf.org/doc/html/rfc768