Poche modifiche nei ritagli di tempo.
[gapil.git] / socket.tex
index 786ed5538de8addad5d3a9057a96ae17a20c83d0..4cc999d34818865533ddcab50e8c2cadb0ca500f 100644 (file)
@@ -1,12 +1,16 @@
 \chapter{Socket}
 \label{cha:socket}
 
-I \textit{socket} sono usati come meccanismo di comunicazione fra programmi
-utilizzato in ambito unix (e non solo). La creazione di un socket restituisce
-un file descriptor analogo a quello di una pipe ma a differenza di questa e
-degli altri meccanismi esaminati nel capitolo \ref{cha:ipc} i socket non sono
-limitati alla comunicazione fra processi che girano sulla stessa macchina ma
-possono effettuare la comunicazione anche attraverso la rete.
+Il \textit{socket} (traducibile liberamente come \textsl{manicotto}) è uno dei
+principali meccanismi di comunicazione fra programmi utilizzato in ambito unix
+(e non solo). Il socket costituisce in sostanza un canale di comunicazione fra
+due processi su cui si possono leggere e scrivere dati. 
+
+La creazione di un socket restituisce un file descriptor con un comportamento
+analogo a quello di una pipe ma a differenza di questa e degli altri
+meccanismi esaminati nel capitolo \ref{cha:ipc} i socket non sono limitati
+alla comunicazione fra processi che girano sulla stessa macchina ma possono
+effettuare la comunicazione anche attraverso la rete.
 
 I socket infatti sono la principale API (\textit{Application Program
   Interface}) usata nella programmazione di rete. La loro origine risale al
@@ -14,9 +18,14 @@ I socket infatti sono la principale API (\textit{Application Program
 sostanzialmente la stessa con piccole modifiche negli anni successivi. Benché
 siano state sviluppate interfacce alternative, originate dai sistemi SYSV,
 come la XTI (\textit{X/Open Transport Interface}) nessuna ha mai raggiunto la
-diffusione e la popolarità di quella dei socket (e tantomeno usabilità e
+diffusione e la popolarità di quella dei socket ( tantomeno usabilità e
 flessibilità).
 
+La flessibilità e la genericità dell'interfaccia inoltre ha consentito di
+utilizzare i socket con i più disparati meccanismi di comunicazione, e non
+solo con la suite dei protocolli TCP/IP, che sarà comunque quella di cui
+tratteremo in maniera più estesa.
+
 
 \section{Concetti base}
 \label{sec:sock_gen}
@@ -61,11 +70,11 @@ tipi di socket, che vengono classificati raggruppandoli in quelli che si
 chiamano \textsl{domini} (\textit{domains}).  La scelta di un dominio equivale
 in sostanza alla scelta di una famiglia di protocolli. Ciascun dominio ha un
 suo nome simbolico che convenzionalmente inizia con \texttt{PF\_} (da
-\textit{protocol family}, altro nome con cui si indicano i domini). 
+\textit{Protocol Family}, altro nome con cui si indicano i domini). 
 
 A ciascun tipo di dominio corrisponde un analogo nome simbolico che inizia per
-\texttt{AF\_} (da \textit{Address Family}, nome che useremo anche noi; le man
-pages di linux si riferiscono a questi anche come \textit{name space}, nome
+\texttt{AF\_} da \textit{Address Family}, nome che useremo anche noi; le man
+pages di linux si riferiscono a questi anche come \textit{name space}, (nome
 che però il manuale della glibc riserva ai domini) e che identifica il formato
 degli indirizzi usati in quel dominio.
 
@@ -92,7 +101,6 @@ riportate in \ntab.
   \label{tab:net_pf_names}
 \end{table}
 
-
 La scelta di un dominio non comporta però la scelta dello stile di
 comunicazione, questo infatti viene a dipendere dal protocollo che si andrà ad
 utilizzare fra quelli disponibili nella famiglia scelta. Le API permettono di