11 novembre 2009
(Kurose pag 79)” Ricordiamo che Internet rende disponibile alle applicazioni due protocolli di trasporto, denominati TCP e UDP. Quando un programmatore crea una nuova applicazione per internet, una delle prime decisioni che deve prendere è se usare TCP o UDP”.

(Kurose pag 81) “UDP (User Datagram Protocol) è un protocollo senza fronzoli, leggero, con un modello di servizio minimale; è un protocollo non orientato alla connessione, quindi non c’è handshake prima che i due processi inizino a comunicare, ciò rende la comunicazione più veloce rispetto a quella che si ottiene con tcp”. Il servizio offerto è non affidabile, udp si limita a inviare i pacchetti sulla rete senza verificare se l’host di destinazione li abbia o meno ricevuti e se siano arrivati in ordine. L’unica cosa che viene verificata dal ricevitore è se il pacchetto è arrivato corretto. Se si riscontrano errori il pacchetto viene semplicemente scartato. Allora che differenza c’è tra udp e ip? L’unica differenza è l’inserimento dell’indirizzo di porta nel segmento udp che dà la possibilità al protocollo di multiplare/demultiplare la ricezione/trasmissione dei dati tra le applicazioni.
Per questo motivo qualunque applicazione che si serva di UDP, se vuol effettuare trasporti di informazioni affidabili, deve includere i seguenti servizi: Ritrasmissione dei dati smarriti, Frammentazione e riassemblaggio dei flussi di dati voluminosi, Controllo di flusso, Prevenzione delle congestioni, cioè tutti quei servizi che prima erano realizzati dal TCP.
Malgrado i suoi limiti, l'UDP è utilizzato in internet, poiché è il protocollo nella suite TCP/IP che fornisce servizi specifici quali il multicast e il broadcast, che non sono disponibili usando TCP. Inoltre è utilizzato quando c’è la necessità d’inviare minime quantità di dati e in tutte le applicazioni che richiedono elevate velocità di trasmissione.
Un esempio classico è quando bisogna contattare un server DNS. Un server DNS, Domain Name Service, svolge un ruolo molto importante, specialmente in Internet: associa a indirizzi simbolici (www.xyz.com) indirizzi IP (194.37.205.123). Quando un computer vuole comunicare informazioni a un altro computer e di questo conosce solo il nome (indirizzo simbolico) deve contattare un server DNS per avere la corrispondente traduzione del nome in indirizzo Ip. Per un servizio del genere è sufficiente una richiesta molto corta e quindi non c’è bisogno di usare il TCP.
Nelle reti locali, che di solito non hanno problemi di consegna, il trasferimento dei dati mediante UDP genera meno traffico in rete rispetto al TCP. Questo accade poiché non vi sono invii di pacchetti di conferma al momento della ricezione dei dati.
Le applicazioni che utilizzano normalmente udp sono: Trivial File Transfer Protocol (TFTP) per trasferimento file. Simple Network Management Protocol (SNMP) e Domain Name Server (DNS).
Il protocollo UDP è impiegato con IP e IGMP in tutte le applicazioni che richiedono, come già detto, elevate velocità di trasmissione, anche con errori, quali la video conferenza e i servizi di telefonia via Internet ("telefonia IP") . In queste applicazioni, un flusso di dati proveniente da una applicazione è suddiviso in un insieme di segmenti UDP e quindi di pacchetti, IP o IGMP, inviati ad un insieme di computer destinatari ( multicast) oppure a tutti gli host di una intranet (broadcast).
Il formato dell'intestazione di UDP è molto più snello di quello del Tcp, infatti prevede solo i seguenti campi: porta sorgente/porta destinataria, equivalenti alle porte dell'header TCP, un campo Message Lenght che indica la lunghezza del datagramma incluso l'header e un campo di checksum di 16 bit. All’header segue infine il campo dati.

Le comunicazioni con UDP

Come già accennato quando due host vogliono comunicare utilizzando UDP, non devono stabilire nessuna sessione. (Kurose pag 185) “L’udp prende i messaggi dal processo di applicazione, aggiunge i campi con i numeri di porta sorgente e destinazione per il servizio multiplexer/demultiplexer, aggiunge alti due piccoli campi (message lenght e cheksum) e passa il segmento allo stato di rete (per la precisione l'indirizzo della porta sorgente viene inserito solo se l'applicazione dell’host mittente ha bisogno di risposte, altrimenti sono inseriti tutti zeri). Lo strato di rete incapsula il segmento nel campo dati del datagramma IP e lo invia all’host destinatario”.

Intestazione UDP

Carico utile dati UDP

Intestazione IP

Carico utile dati IP

Quando il datagramma IP arriva all'host destinatario, l'intestazione IP viene rimossa, rivelando il datagramma UDP.

Dall'intestazione si determina il numero della porta di destinazione che permette quindi di trasferire i dati all’applicazione corrispondente. Se il numero di porta prestabilito non é disponibile sull'host destinatario, si risponde al mittente con un messaggio di errore, che afferma che la porta era irraggiungibile e il datagramma viene scartato. Per l’invio di questo messaggio si usa un altro protocollo: ICMP.

0 commenti:

Posta un commento

Per ricevere gli articoli comodamente via Email:

oppure puoi iscriverti al feed per tenerti sempre aggiornato sui nuovi contenuti del blog! Per maggiori informazioni sui feed, clicca qui!

Translate:

Post più popolari

Lettori Fissi:

Condividi su:

Bookmark and Share

Contatore sito