Correzioni varie in aereo
[gapil.git] / sockctrl.tex
index e96ed0e87ca2dc93859a16855ee2c5f1234a044c..33f0dfcf98b260a869d57e26a13f6315b3e1a06e 100644 (file)
@@ -2208,21 +2208,21 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
 \item[\const{SO\_DEBUG}] questa opzione abilita il debugging delle operazioni
   dei socket; l'opzione utilizza per \param{optval} un intero usato come
   valore logico, e può essere utilizzata solo da un processo con i privilegi
 \item[\const{SO\_DEBUG}] questa opzione abilita il debugging delle operazioni
   dei socket; l'opzione utilizza per \param{optval} un intero usato come
   valore logico, e può essere utilizzata solo da un processo con i privilegi
-  di amministratore (in particolare con la \itindex{capabilities}
-  \textit{capability} \const{CAP\_NET\_ADMIN}).  L'opzione necessita inoltre
-  dell'opportuno supporto nel kernel;\footnote{deve cioè essere definita la
-    macro di preprocessore \macro{SOCK\_DEBUGGING} nel file
-    \file{include/net/sock.h} dei sorgenti del kernel, questo è sempre vero
-    nei kernel delle serie superiori alla 2.3, per i kernel delle serie
-    precedenti invece è necessario aggiungere a mano detta definizione; è
-    inoltre possibile abilitare anche il tracciamento degli stati del TCP
-    definendo la macro \macro{STATE\_TRACE} in \file{include/net/tcp.h}.}
-  quando viene abilitata una serie di messaggi con le informazioni di debug
-  vengono inviati direttamente al sistema del kernel log.\footnote{si tenga
-    presente che il comportamento è diverso da quanto avviene con BSD, dove
-    l'opzione opera solo sui socket TCP, causando la scrittura di tutti i
-    pacchetti inviati sulla rete su un buffer circolare che viene letto da un
-    apposito programma, \cmd{trpt}.}
+  di amministratore (in particolare con la \textit{capability}
+  \const{CAP\_NET\_ADMIN}).  L'opzione necessita inoltre dell'opportuno
+  supporto nel kernel;\footnote{deve cioè essere definita la macro di
+    preprocessore \macro{SOCK\_DEBUGGING} nel file \file{include/net/sock.h}
+    dei sorgenti del kernel, questo è sempre vero nei kernel delle serie
+    superiori alla 2.3, per i kernel delle serie precedenti invece è
+    necessario aggiungere a mano detta definizione; è inoltre possibile
+    abilitare anche il tracciamento degli stati del TCP definendo la macro
+    \macro{STATE\_TRACE} in \file{include/net/tcp.h}.}  quando viene abilitata
+  una serie di messaggi con le informazioni di debug vengono inviati
+  direttamente al sistema del kernel log.\footnote{si tenga presente che il
+    comportamento è diverso da quanto avviene con BSD, dove l'opzione opera
+    solo sui socket TCP, causando la scrittura di tutti i pacchetti inviati
+    sulla rete su un buffer circolare che viene letto da un apposito
+    programma, \cmd{trpt}.}
 
 \item[\const{SO\_REUSEADDR}] questa opzione permette di eseguire la funzione
   \func{bind} su indirizzi locali che siano già in uso da altri socket;
 
 \item[\const{SO\_REUSEADDR}] questa opzione permette di eseguire la funzione
   \func{bind} su indirizzi locali che siano già in uso da altri socket;
@@ -2309,8 +2309,7 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
   valori del campo \textit{type of service} (noto come TOS, vedi
   sez.~\ref{sec:IP_header}) per i pacchetti uscenti. Per impostare una
   priorità al di fuori dell'intervallo di valori fra 0 e 6 sono richiesti i
   valori del campo \textit{type of service} (noto come TOS, vedi
   sez.~\ref{sec:IP_header}) per i pacchetti uscenti. Per impostare una
   priorità al di fuori dell'intervallo di valori fra 0 e 6 sono richiesti i
-  privilegi di amministratore con la \itindex{capabilities} capability
-  \const{CAP\_NET\_ADMIN}.
+  privilegi di amministratore con la capability \const{CAP\_NET\_ADMIN}.
 
 \item[\const{SO\_ERROR}] questa opzione riceve un errore presente sul socket;
   può essere utilizzata soltanto con \func{getsockopt} e prende per
 
 \item[\const{SO\_ERROR}] questa opzione riceve un errore presente sul socket;
   può essere utilizzata soltanto con \func{getsockopt} e prende per
@@ -2785,7 +2784,7 @@ file.
     \const{IP\_RECVERR}         &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& 
       Abilita la gestione degli errori.\\
     \const{IP\_MTU\_DISCOVER}   &$\bullet$&$\bullet$&         &\texttt{int}& 
     \const{IP\_RECVERR}         &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& 
       Abilita la gestione degli errori.\\
     \const{IP\_MTU\_DISCOVER}   &$\bullet$&$\bullet$&         &\texttt{int}& 
-      Imposta il Path MTU \itindex{Maximum~Transfer~Unit~(MTU)} Discovery.\\
+      Imposta il \textit{Path MTU Discovery}.\\
     \const{IP\_MTU}             &$\bullet$&         &         &\texttt{int}& 
       Legge il valore attuale della \itindex{Maximum~Transfer~Unit~(MTU)} MTU.\\
     \const{IP\_ROUTER\_ALERT}   &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& 
     \const{IP\_MTU}             &$\bullet$&         &         &\texttt{int}& 
       Legge il valore attuale della \itindex{Maximum~Transfer~Unit~(MTU)} MTU.\\
     \const{IP\_ROUTER\_ALERT}   &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& 
@@ -2901,8 +2900,8 @@ sez.~\ref{sec:net_sendmsg}).
   definizione si veda sez.~\ref{sec:IP_header}) che permette di indicare le
   priorità dei pacchetti. Se impostato il valore verrà mantenuto per tutti i
   pacchetti del socket; alcuni valori (quelli che aumentano la priorità)
   definizione si veda sez.~\ref{sec:IP_header}) che permette di indicare le
   priorità dei pacchetti. Se impostato il valore verrà mantenuto per tutti i
   pacchetti del socket; alcuni valori (quelli che aumentano la priorità)
-  richiedono i privilegi di amministrazione con la \itindex{capabilities}
-  capability \const{CAP\_NET\_ADMIN}.
+  richiedono i privilegi di amministrazione con la capability
+  \const{CAP\_NET\_ADMIN}.
 
   Il campo TOS è di 8 bit e l'opzione richiede per \param{optval} un intero
   che ne contenga il valore. Sono definite anche alcune costanti che
 
   Il campo TOS è di 8 bit e l'opzione richiede per \param{optval} un intero
   che ne contenga il valore. Sono definite anche alcune costanti che
@@ -2959,11 +2958,11 @@ sez.~\ref{sec:net_sendmsg}).
   come valore logico e non è applicabile a socket di tipo
   \const{SOCK\_STREAM}.
 
   come valore logico e non è applicabile a socket di tipo
   \const{SOCK\_STREAM}.
 
-\itindbeg{Maximum~Transfer~Unit~(MTU)}
+\itindbeg{Path~MTU}
 \item[\const{IP\_MTU\_DISCOVER}] Questa è una opzione introdotta con i kernel
   della serie 2.2.x, ed è specifica di Linux.  L'opzione permette di scrivere
   o leggere le impostazioni della modalità usata per la determinazione della
 \item[\const{IP\_MTU\_DISCOVER}] Questa è una opzione introdotta con i kernel
   della serie 2.2.x, ed è specifica di Linux.  L'opzione permette di scrivere
   o leggere le impostazioni della modalità usata per la determinazione della
-  \textit{Path Maximum Transfer Unit} (vedi sez.~\ref{sec:net_lim_dim}) del
+  \textit{Path MTU} (vedi sez.~\ref{sec:net_lim_dim}) del
   socket. L'opzione prende per \param{optval} un valore intero che indica la
   modalità usata, da specificare con una delle costanti riportate in
   tab.~\ref{tab:sock_ip_mtu_discover}.
   socket. L'opzione prende per \param{optval} un valore intero che indica la
   modalità usata, da specificare con una delle costanti riportate in
   tab.~\ref{tab:sock_ip_mtu_discover}.
@@ -3023,7 +3022,7 @@ sez.~\ref{sec:net_sendmsg}).
   essere perduti, ed è compito dell'applicazione gestirne una eventuale
   ritrasmissione.
 
   essere perduti, ed è compito dell'applicazione gestirne una eventuale
   ritrasmissione.
 
-\itindend{Maximum~Transfer~Unit~(MTU)}
+\itindend{Path~MTU}
 
 \item[\const{IP\_ROUTER\_ALERT}] Questa è una opzione introdotta con i
   kernel della serie 2.2.x, ed è specifica di Linux. Prende per
 
 \item[\const{IP\_ROUTER\_ALERT}] Questa è una opzione introdotta con i
   kernel della serie 2.2.x, ed è specifica di Linux. Prende per
@@ -3154,7 +3153,7 @@ strutture collegate all'uso delle opzioni TCP sono definite in
     \const{TCP\_DEFER\_ACCEPT}&$\bullet$&$\bullet$&         &\texttt{int}&
       Ritorna da \func{accept} solo in presenza di dati.\\
     \const{TCP\_WINDOW\_CLAMP}&$\bullet$&$\bullet$&         &\texttt{int}&
     \const{TCP\_DEFER\_ACCEPT}&$\bullet$&$\bullet$&         &\texttt{int}&
       Ritorna da \func{accept} solo in presenza di dati.\\
     \const{TCP\_WINDOW\_CLAMP}&$\bullet$&$\bullet$&         &\texttt{int}&
-      Valore della \itindex{advertised~window} \textit{advertised window}.\\
+      Valore della \textit{advertised window}.\\
     \const{TCP\_INFO}         &$\bullet$&        &       &\struct{tcp\_info}& 
       Restituisce informazioni sul socket.\\
     \const{TCP\_QUICKACK}     &$\bullet$&$\bullet$&$\bullet$&\texttt{int}&
     \const{TCP\_INFO}         &$\bullet$&        &       &\struct{tcp\_info}& 
       Restituisce informazioni sul socket.\\
     \const{TCP\_QUICKACK}     &$\bullet$&$\bullet$&$\bullet$&\texttt{int}&
@@ -3350,10 +3349,10 @@ quantità di dettagli è fornita nel seguente elenco:
 
 \item[\const{TCP\_WINDOW\_CLAMP}] con questa opzione si legge o si imposta
   alla dimensione specificata, in byte, il valore dichiarato della
 
 \item[\const{TCP\_WINDOW\_CLAMP}] con questa opzione si legge o si imposta
   alla dimensione specificata, in byte, il valore dichiarato della
-  \itindex{advertised~window} \textit{advertised window} (vedi
-  sez.~\ref{sec:tcp_protocol_xxx}). Il kernel impone comunque una dimensione
-  minima pari a \texttt{SOCK\_MIN\_RCVBUF/2}.  Questa opzione non deve essere
-  utilizzata in codice che vuole essere portabile.
+  \textit{advertised window} (vedi sez.~\ref{sec:tcp_protocol_xxx}). Il kernel
+  impone comunque una dimensione minima pari a \texttt{SOCK\_MIN\_RCVBUF/2}.
+  Questa opzione non deve essere utilizzata in codice che vuole essere
+  portabile.
 
 \begin{figure}[!htb]
   \footnotesize \centering
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -3659,10 +3658,9 @@ varia a secondo dell'operazione scelta.
 
 Si tenga inoltre presente che alcune di queste operazioni (in particolare
 quelle che modificano le caratteristiche dell'interfaccia) sono privilegiate e
 
 Si tenga inoltre presente che alcune di queste operazioni (in particolare
 quelle che modificano le caratteristiche dell'interfaccia) sono privilegiate e
-richiedono i privilegi di amministratore o la \itindex{capabilities}
-\textit{capability} \const{CAP\_NET\_ADMIN}, altrimenti si otterrà un errore
-di \errval{EPERM}.  Le costanti che identificano le operazioni disponibili
-sono le seguenti:
+richiedono i privilegi di amministratore o la \textit{capability}
+\const{CAP\_NET\_ADMIN}, altrimenti si otterrà un errore di \errval{EPERM}.
+Le costanti che identificano le operazioni disponibili sono le seguenti:
 \begin{basedescript}{\desclabelwidth{2.7cm}\desclabelstyle{\nextlinelabel}}
 \item[\const{SIOCGIFNAME}] questa è l'unica operazione che usa il campo
   \var{ifr\_name} per restituire un risultato, tutte le altre lo utilizzano
 \begin{basedescript}{\desclabelwidth{2.7cm}\desclabelstyle{\nextlinelabel}}
 \item[\const{SIOCGIFNAME}] questa è l'unica operazione che usa il campo
   \var{ifr\_name} per restituire un risultato, tutte le altre lo utilizzano
@@ -4194,22 +4192,21 @@ di manuale accessibile con \texttt{man 7 ip}, sono i seguenti:
   valore iniziale maggiore di 1024 (o meglio ancora di 4096) per evitare
   conflitti con le porte usate dai servizi noti.
 
   valore iniziale maggiore di 1024 (o meglio ancora di 4096) per evitare
   conflitti con le porte usate dai servizi noti.
 
-\item[\sysctlrelfile{net/ipv4}{ip\_no\_pmtu\_disc}] permette di
-  disabilitare per i socket \const{SOCK\_STREAM} la ricerca automatica della
-  \itindex{Maximum~Transfer~Unit~(MTU)} \textit{Path MTU} (vedi
-  sez.~\ref{sec:net_lim_dim} e sez.~\ref{sec:sock_ipv4_options}). Prende un
-  valore logico, e di default è disabilitato (cioè la ricerca viene eseguita).
+\item[\sysctlrelfile{net/ipv4}{ip\_no\_pmtu\_disc}] permette di disabilitare
+  per i socket \const{SOCK\_STREAM} la ricerca automatica della \textit{Path
+    MTU} (vedi sez.~\ref{sec:net_lim_dim} e
+  sez.~\ref{sec:sock_ipv4_options}). Prende un valore logico, e di default è
+  disabilitato (cioè la ricerca viene eseguita).
 
   In genere si abilita questo parametro quando per qualche motivo il
 
   In genere si abilita questo parametro quando per qualche motivo il
-  procedimento del \itindex{Maximum~Transfer~Unit~(MTU)} \textit{Path MTU
-    discovery} fallisce; dato che questo può avvenire a causa di
-  router\footnote{ad esempio se si scartano tutti i pacchetti ICMP, il
-    problema è affrontato anche in sez.~3.4.4 di \cite{SGL}.} o
-  interfacce\footnote{ad esempio se i due capi di un collegamento
-    \textit{point-to-point} non si accordano sulla stessa MTU.}  mal
-  configurati è opportuno correggere le configurazioni, perché disabilitare
-  globalmente il procedimento con questo parametro ha pesanti ripercussioni in
-  termini di prestazioni di rete.
+  procedimento del \textit{Path MTU discovery} fallisce; dato che questo può
+  avvenire a causa di router\footnote{ad esempio se si scartano tutti i
+    pacchetti ICMP, il problema è affrontato anche in sez.~3.4.4 di
+    \cite{SGL}.} o interfacce\footnote{ad esempio se i due capi di un
+    collegamento \textit{point-to-point} non si accordano sulla stessa MTU.}
+  mal configurati è opportuno correggere le configurazioni, perché
+  disabilitare globalmente il procedimento con questo parametro ha pesanti
+  ripercussioni in termini di prestazioni di rete.
 
 \item[\sysctlrelfile{net/ipv4}{ip\_always\_defrag}] fa si che tutti i
   pacchetti IP frammentati siano riassemblati, anche in caso in successivo
 
 \item[\sysctlrelfile{net/ipv4}{ip\_always\_defrag}] fa si che tutti i
   pacchetti IP frammentati siano riassemblati, anche in caso in successivo
@@ -4262,14 +4259,14 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
   quando si è sicuri che non è possibile ottimizzare il server in modo che sia
   in grado di accettare connessioni più rapidamente.
 
   quando si è sicuri che non è possibile ottimizzare il server in modo che sia
   in grado di accettare connessioni più rapidamente.
 
-\item[\sysctlrelfile{net/ipv4}{tcp\_adv\_win\_scale}] indica al kernel
-  quale frazione del buffer associato ad un socket\footnote{quello impostato
-    con \sysctlrelfile{net/ipv4}{tcp\_rmem}.} deve essere utilizzata
-  per la finestra del protocollo TCP\footnote{in sostanza il valore che
-    costituisce la \itindex{advertised~window} \textit{advertised window}
-    annunciata all'altro capo del socket.} e quale come buffer applicativo per
-  isolare la rete dalle latenze dell'applicazione.  Prende un valore intero
-  che determina la suddetta frazione secondo la formula
+\item[\sysctlrelfile{net/ipv4}{tcp\_adv\_win\_scale}] indica al kernel quale
+  frazione del buffer associato ad un socket\footnote{quello impostato con
+    \sysctlrelfile{net/ipv4}{tcp\_rmem}.} deve essere utilizzata per la
+  finestra del protocollo TCP\footnote{in sostanza il valore che costituisce
+    la \textit{advertised window} annunciata all'altro capo del socket.} e
+  quale come buffer applicativo per isolare la rete dalle latenze
+  dell'applicazione.  Prende un valore intero che determina la suddetta
+  frazione secondo la formula
   $\texttt{buffer}/2^\texttt{tcp\_adv\_win\_scale}$ se positivo o con
   $\texttt{buffer}-\texttt{buffer}/2^\texttt{tcp\_adv\_win\_scale}$ se
   negativo.  Il default è 2 che significa che al buffer dell'applicazione
   $\texttt{buffer}/2^\texttt{tcp\_adv\_win\_scale}$ se positivo o con
   $\texttt{buffer}-\texttt{buffer}/2^\texttt{tcp\_adv\_win\_scale}$ se
   negativo.  Il default è 2 che significa che al buffer dell'applicazione