+Dopo i socket TCP i socket più utilizzati nella programmazione di rete sono i
+socket UDP; protocolli diffusi come NFS o il DNS usano principalmente questo
+tipo di socket. Tratteremo in questa sezione le loro caratteristiche
+principali e le modalità per il loro utilizzo.
+
+
+\subsection{Le caratteristiche di un socket UDP}
+\label{sec:UDP_characteristics}
+
+Come illustrato in \secref{sec:net_udp} UDP è un protocollo molto semplice che
+non supporta le connessioni e non è affidabile: i dati vengono inviati in
+forma di pacchetti, e non ne è assicurata né la effettiva ricezione né
+l'odinamento.
+
+Questo significa che a differenza dei socket TCP i socket UDP non supportano
+una comunicazione di tipo \textit{stream} in cui si ha a disposizione un
+flusso continuo di dati che può essere letto un po' alla volta, ma di tipo
+\textit{datagram}, in cui i dati arrivano in singoli blocchi che devono essere
+letti integralmente.
+
+Questo diverso comportamento significa anche che i socket UDP, pur restando
+nella famiglia \const{PF\_INET}\footnote{o \const{PF\_INET6} qualora si usasse
+ invece il protocollo IPv6.} devono essere aperti quando si usa la funzione
+\func{socket} (si riveda quanto illustrato a suo tempo in
+\tabref{tab:sock_sock_valid_combinations}) utilizzando come valore per il tipo
+di socket \const{SOCK\_DGRAM}.
+
+Questa differenza comporta ovviamente il fatto che anche le modalità con cui
+si usano i socket UDP sono completamente diverse rispetto ai socket TCP, ed in
+particolare non esistendo il concetto di connessione non esiste il meccanismo
+del \textit{three way handshake} nè quello di stati del protocollo, in realtà
+tutto quello che avviene nella comunicazione attraverso dei socket UDP è la
+trasmissione di un pacchetto da un client ad un server o viceversa, secondo lo
+schema illustrato in \figref{fig:UDP_packet-exchange}.
+
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=10cm]{img/udp_connection}
+ \caption{Lo schema di interscambio dei pacchetti per una comunicazione via
+ UDP.}
+ \label{fig:UDP_packet-exchange}
+\end{figure}
+
+Anche se UDP è completamente diverso rispetto a TCP resta identica
+
+
+
+\subsection{Le funzioni \func{sendto} e \func{recvfrom}}
+\label{sec:UDP_sendto_recvfrom}
+
+Come accennato le due funzioni principali usate per la trasmissione di dati
+attraverso i socket UDP, ma in generale attraverso qualunque socket che
+preveda una comunicazione a pacchetti, sono \func{sendto} e \func{recvfrom}.