User Datagram Protocol
Da Wikipedia, l'enciclopedia libera.
| Suite di protocolli Internet | |
| Livello applicazioni | DHCP, HTTP, HTTPS , SMTP, POP3, IMAP, FTP, SFTP, DNS, SSH, IRC, SNMP, SIP, RTSP, Rsync, Telnet, HSRP, RTP, BGP, RIP, IGRP, VoIP,... |
| Livello di trasporto | TCP, UDP, SCTP, DCCP ... |
| Livello di internetworking | IPv4, IPv6, ICMP, ICMPv6, IGMP, IPsec... |
| Livello di collegamento | Ethernet, WiFi, PPP, Token ring, ARP, ATM, FDDI, LLC, SLIP, WiMAX, HSDPA, OSPF, MPLS ... |
Lo User Datagram Protocol (UDP) è uno dei principali protocolli della suite di protocolli Internet. È un protocollo di trasporto a pacchetto, usato di solito in combinazione con il protocollo IP.
Indice |
[modifica] Funzionamento
A differenza del TCP, l'UDP è un protocollo di tipo connectionless, inoltre non gestisce il riordinamento dei pacchetti né la ritrasmissione di quelli persi, ed è perciò generalmente considerato di minore affidabilità. È in compenso molto rapido ed efficiente per le applicazioni "leggere" o time-sensitive. Ad esempio, è usato spesso per la trasmissione di informazioni audio o video. Dato che le applicazioni in tempo reale spesso richiedono un ritmo minimo di spedizione, non vogliono ritardare eccessivamente la trasmissione dei pacchetti e possono tollerare qualche perdita di dati, il modello di servizio TCP può non essere particolarmente adatto alle loro caratteristiche. L'UDP fornisce soltanto i servizi basilari del livello di trasporto, ovvero:
- multiplazione delle connessioni, ottenuta attraverso il meccanismo delle porte
- verifica degli errori mediante una checksum, inserita in un campo dell'intestazione del pacchetto.
mentre TCP garantisce anche il trasferimento affidabile dei dati, il controllo di flusso e il controllo della congestione.
L'UDP è un protocollo stateless, ovvero non tiene nota dello stato della connessione, dunque ha rispetto al TCP informazioni in meno da memorizzare. Un server dedicato ad una particolare applicazione che scelga UDP come protocollo di trasporto può supportare molti più client attivi.
[modifica] Struttura di un datagramma UDP
Un datagramma (o pacchetto) UDP è così strutturato:
| + | Bit 0-15 | 16-31 | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Source Port (optional) | Destination Port | ||||||||||||||||||||||||||||||
| 32 | Length | Checksum (optional) | ||||||||||||||||||||||||||||||
| 64+ | Data |
|||||||||||||||||||||||||||||||
- Source port [16 bit] - Identifica il numero di porta sull'host del mittente del datagramma;
- Destination port [16 bit] - Identifica il numero di porta sull'host del destinatario del datagramma;
- Length [16 bit] - contiene la lunghezza totale in bytes del datagramma UDP (header+dati);
- Checksum [16 bit] - contiene il codice di controllo del datagramma (header+dati). L'algoritmo di calcolo è definito nell' RFC del protocollo;
- Data - contiene i dati del datagramma
[modifica] Applicazioni che utilizzano UDP
Le applicazioni che hanno la necessità di un trasferimento affidabile dei loro dati si affidano ovviamente a TCP. Le applicazioni più elastiche riguardo alla perdita dei dati e dipendenti dal tempo si affidano invece a UDP. Inoltre si utilizza UDP per comunicazioni in broadcast (invio a tutti i terminali in una rete locale) e multicast (invio a tutti i terminali iscritti ad un servizio).
Di seguito è proposto un elenco dei principali servizi internet e dei protocolli che adottano:
| Applicazione | Protocollo strato applicazione | Protocollo strato trasporto |
| Posta elettronica | SMTP | TCP |
| Accesso a terminale remoto | telnet | TCP |
| Trasferimento file | FTP | TCP |
| Web | HTTP | TCP |
| Streaming Audio/Video | proprietario | tipicamente UDP |
| Server di file remoto | NFS | tipicamente UDP |
| Telefonia su internet (VoIP) | SIP, H.323, altri | tipicamente UDP |
| Gestione della rete | SNMP | tipicamente UDP |
| Protocollo di routing | RIP | tipicamente UDP |
| Risoluzione dei nomi | DNS | tipicamente UDP |
[modifica] Collegamenti esterni
- RFC 768 User Datagram Protocol (traduzione in italiano)