X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=sockctrl.tex;h=33f0dfcf98b260a869d57e26a13f6315b3e1a06e;hp=059a4e01dc910abae91655980c7676d411ed6fc7;hb=3f50b8e3fd683f710e34a88436109157d328e1b6;hpb=0c4a9ed958f4797e1cf4dc90e0c0358e302956f5 diff --git a/sockctrl.tex b/sockctrl.tex index 059a4e0..33f0dfc 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -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 - 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; @@ -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 - 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 @@ -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}& - 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}& @@ -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à) - 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 @@ -2959,11 +2958,11 @@ sez.~\ref{sec:net_sendmsg}). 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 - \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}. @@ -3023,7 +3022,7 @@ sez.~\ref{sec:net_sendmsg}). 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 @@ -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 -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 @@ -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. -\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 - 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