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


Introduzione (Introduction)

Questo protocollo datagramma utente (User Datagram Protocol, UDP) è definito per rendere disponibile una modalità datagramma 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 mediante la quale i programmi applicativi possono inviare messaggi ad altri programmi con un minimo di meccanismi protocolli. Il protocollo è orientato alle transazioni (Transaction Oriented) e la consegna e la protezione contro i duplicati non sono garantite. Le applicazioni che richiedono una consegna affidabile e ordinata di flussi di dati dovrebbero utilizzare il 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)

Porta sorgente (Source Port)

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

Porta di destinazione (Destination Port)

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

Lunghezza (Length)

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

Somma di controllo (Checksum)

La somma di controllo (Checksum) è il complemento a uno a 16 bit della somma in complemento a uno (One's Complement Sum) di uno pseudo-header (Pseudo Header) contenente 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, essa 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 ne fanno uso).


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 (MUST) 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 inoltre 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 l'Internet Name Server [3] e il Trivial File Transfer [4].


Numero di protocollo (Protocol Number)

Questo è il numero di 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, January 1980.

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

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

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

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


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