UDP User Datagram Protocol IP fornisce un unreliable datagram service tra gli host I Transport protocols forniscono un servizio di consegna end-to-end tra gli endpoints di una connessione UDP Connectionless UDP opera sotto certe condizioni ad una velocità superiore al TCP (fino al 40 %), giacché non ha quasi nulla da fare RFC 768 UDP 1
Generalità Protocollo semplicissimo Privo di gestione della connessione Privo di meccanismi per la affidabilità Eventuali meccanismi gestiti dalla applicazione Possibile perdita dei dati (Nessuna garanzia di consegna) Nessun flow control Ritardo nello scambio dei dati molto piccolo UDP 2
Generalità (cont) Protocollo stateless Possibili più clients che con TCP Overhead modesto Identifica il protocollo di applicazione che viene trasportato Checksum del messaggio trasportata nell header UDP Privo di servizio di buffering Il livello applicativo ha un forte controllo sull invio dei dati UDP 3
Header Fields and Functions Se il campo Protocol di un header IP contiene il valore 17 (UDP), l header IP è seguito dall header UDP Header IP Protocol field = 17 Source port UDP length Destination port UDP checksum Data UDP 4
Definizione UDP definito nella RFC 768 L header UDP contiene soltanto 4 fields Source port number Destination port number UDP length UDP Checksum UDP 5
Source Port Number Il source port number definisce il processo od applicazione che invia il pacchetto facendo uso del servizio di trasporto UDP In alcuni casi viene usato un port number temporary Come per TCP i port number sono definiti in 3 ranges Well-known port numbers Registered port numbers Dynamic port numbers UDP 6
Port Numbers Well-Known Port numbers I port number well-known sono assegnati da IANA ai servizi chiave offerti dal sistema I port number Well-known vanno da 0 a 1023 Registered Port Numbers I port number registered sono registrati presso IANA per applicazioni e processi industriali per evitare usi per fini diversi I port number registered vanno da 1024 a 49151 UDP 7
Port Numbers (cont) Dynamic Port = Ephemeral port Dynamic Port numbers Le porte dynamic sono sono usate come porte temporanee per specifiche comunicazioni La porte dynamic hanno port number da 49152 a 65535 Nella maggior parte dei casi, una applicazione o processo può usare lo stesso port number sotto TCP e sotto UDP perché i port numbers assegnati sono gli stessi UDP 8
Destination Port Number Definisce l applicazione o processo di destinazione che utilizza gli headers di IP e TCP/UDP In alcuni casi può accadere i numeri delle source e destination port siano uguali UDP 9
Length Il campo Length definisce la lunghezza del pacchetto dalla fine dello header UDP fino al termine dei dati utili (escluso ogni padding eventualmente richiesto) L informazione fornita con il campo Length è ridondante, infatti potrebbe essere determinata sottraendo dal valore del campo Total Length di IP, la lunghezza dell header IP (Internet Header Length) e gli 8 bytes dell header UDP Se UDP dovesse ricavare la lunghezza indirettamente avrebbe bisogno di informazioni contenute nell header di IP, ma quando IP passa al Transport layer il pacchetto lo distrugge UDP 10
Checksum Il campo Checksum è optional Se si usa la Checksum, allora questa è calcolata sul contenuto del datagram completo, vale a dire: L header UDP (eccetto il campo UDP Checksum) Il payload del datagram Uno pseudo-header derivato dall headerip 0 31 Source IP address (from IP header) Destination IP address (from IP header) Zero Protocol = 17 UDP length UDP 11
Checksum (cont) Il sender, prima di calcolare la checksum, aggiunge un eventuale padding di 8 bit Il sender calcola la checksum con una somma modulo 2 di word da 16 bit e dopo di ciò opera il complemento della somma Il receiver UDP ricalcola la checksum e, se rileva un errore, opera un silent discard Silent significa che non viene generato alcun messaggio di errore L uso della checksum è optional (deciso dal sender) Ma tutti gli host devono sempre supportare la checksum Il receiver rileva l assenza della checksum dalla presenza di 16 bit 1 UDP 12
Multiplazione Possibile presenza nel sender di diversi processi che usano UDP UDP, li distingue in base al numero di porta, e li multipla verso IP Al contrario al receiver UDP UDP IP IP UDP 13
Code Come si realizzano e usano le porte? All avvio di un client il S.O. vi associa un port number e crea 2 code Client Telnet Coda d uscita Coda d ingresso UDP UDP 14
Applicazioni tipiche Telefonia Internet proprietary Gestione di rete SNMP Traduzione del nome DNS Routing RIP Streaming multimediale proprietary Server per file remoto NFS UDP 15
Conclusione Con UDP tutto ciò che deve essere fatto è compito dell applicazione Per applicazioni che necessitano di un controllo preciso sul flusso dei pacchetti, controllo di errore e/o il timing, UDP rappresenta la scelta di elezione Tipicamente tra applicazioni multimedia e UDP si ha RTP UDP 16