X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=sockctrl.tex;h=07c657eab685eebee01dec1dbf1130b676caef58;hp=fcfa257d1e10d6687034310b70e0536c537c1edf;hb=5e9607e62d03da3360bd27146e788a89a0820ab9;hpb=d0857f954c1e119824cac840cdc8ab1cc88c71b0 diff --git a/sockctrl.tex b/sockctrl.tex index fcfa257..07c657e 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -822,7 +822,7 @@ come, essendo il campo \var{h\_addr\_list} un puntatore ad strutture di indirizzi generiche, questo sia ancora di tipo \texttt{char **} e si possa riutilizzare lo stesso puntatore usato per i nomi. -Per ciascun indirizzo valido si provvederà (\texttt{\small 41}) ad una +Per ciascun indirizzo valido si provvederà (\texttt{\small 41}) a una conversione con la funzione \func{inet\_ntop} (vedi sez.~\ref{sec:sock_addr_func}) passandole gli opportuni argomenti, questa restituirà la stringa da stampare (\texttt{\small 42}) con il valore @@ -2529,10 +2529,10 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: specificare come argomento per questa opzione sono impostabili tramiti gli opportuni valori di \func{sysctl} (vedi sez.~\ref{sec:sock_sysctl}). - Si tenga presente che nel caso di socket TCP, per entrambe le opzioni - \const{SO\_RCVBUF} e \const{SO\_SNDBUF}, il kernel alloca effettivamente una - quantità di memoria doppia rispetto a quanto richiesto con - \func{setsockopt}. Questo comporta che una successiva lettura con + Si tenga presente che nel caso di socket TCP il kernel alloca effettivamente + una quantità di memoria doppia rispetto a quanto richiesto con + \func{setsockopt} per entrambe le opzioni \const{SO\_RCVBUF} e + \const{SO\_SNDBUF}. Questo comporta che una successiva lettura con \func{getsockopt} riporterà un valore diverso da quello impostato con \func{setsockopt}. Questo avviene perché TCP necessita dello spazio in più per mantenere dati amministrativi e strutture interne, e solo una parte @@ -2549,8 +2549,8 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: \item[\constd{SO\_RCVBUFFORCE}] questa opzione, presente dal kernel 2.6.14, è identica a \const{SO\_RCVBUF} ma consente ad un processo con i privilegi di - amministratore (con la \textit{capability} \const{CAP\_NET\_ADMIN}) di - impostare in valore maggiore del limite di + amministratore (per la precisione con la \textit{capability} + \const{CAP\_NET\_ADMIN}) di impostare in valore maggiore del limite di \sysctlrelfile{net/core}{rmem\_max}. \item[\constd{SO\_RCVLOWAT}] questa opzione imposta il valore che indica il @@ -2639,8 +2639,8 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: \item[\constd{SO\_SNDBUFFORCE}] questa opzione, presente dal kernel 2.6.14, è identica a \const{SO\_SNDBUF} ma consente ad un processo con i privilegi di - amministratore (con la \textit{capability} \const{CAP\_NET\_ADMIN}) di - impostare in valore maggiore del limite di + amministratore (per la precisione con la \textit{capability} + \const{CAP\_NET\_ADMIN}) di impostare in valore maggiore del limite di \sysctlrelfile{net/core}{wmem\_max}. % TODO verificare il timeout con un programma di test @@ -3098,7 +3098,7 @@ manuale, nel caso specifico la documentazione si può consultare con \begin{table}[!htb] \centering \footnotesize - \begin{tabular}[c]{|l|c|c|c|l|p{5.cm}|} + \begin{tabular}[c]{|l|c|c|c|l|p{4.8cm}|} \hline \textbf{Opzione}&\texttt{get}&\texttt{set}&\textbf{flag}&\textbf{Tipo}& \textbf{Descrizione}\\ @@ -3192,7 +3192,7 @@ seguente elenco: \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{0.70\textwidth} + \begin{minipage}[c]{0.90\textwidth} \includestruct{listati/ip_mreqn.h} \end{minipage} \caption{La struttura \structd{ip\_mreqn} utilizzata per unirsi a un gruppo di @@ -3213,7 +3213,7 @@ differente dimensione passata in \param{optlen}. \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{0.70\textwidth} + \begin{minipage}[c]{0.90\textwidth} \includestruct{listati/ip_mreq_source.h} \end{minipage} \caption{La struttura \structd{ip\_mreqn} utilizzata per unirsi a un gruppo di @@ -3280,7 +3280,7 @@ per collegarsi a diverse sorgenti. \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{0.70\textwidth} + \begin{minipage}[c]{0.90\textwidth} \includestruct{listati/ip_msfilter.h} \end{minipage} \caption{La struttura \structd{ip\_msfilter} utilizzata per il @@ -3288,13 +3288,14 @@ per collegarsi a diverse sorgenti. \label{fig:ip_msfilter_struct} \end{figure} -L'argomento \param{optval} è una struttura \struct{ip\_msfilter} illustrata in -fig.~\ref{fig:ip_msfilter_struct}, il campo \var{imsf\_multiaddr} è -l'indirizzo del gruppo di \textit{multicast}, il campo \var{imsf\_interface} -l'indirizzo dell'interfaccia locale, il campo \var{imsf\_mode} indica la -modalità di filtraggio e con i campi \var{imsf\_numsrc} e \var{imsf\_slist} +L'argomento \param{optval} deve essere una struttura di tipo +\struct{ip\_msfilter} (illustrata in fig.~\ref{fig:ip_msfilter_struct}); il +campo \var{imsf\_multiaddr} indica l'indirizzo del gruppo di +\textit{multicast}, il campo \var{imsf\_interface} l'indirizzo +dell'interfaccia locale, il campo \var{imsf\_mode} indica la modalità di +filtraggio e con i campi \var{imsf\_numsrc} e \var{imsf\_slist} rispettivamente la lunghezza della lista, e la lista stessa, degli indirizzi -sorgente. +sorgente. Come ausilio all'uso di questa opzione sono disponibili le macro \macro{MCAST\_INCLUDE} e \macro{MCAST\_EXCLUDE} che si possono usare per @@ -3323,9 +3324,9 @@ di \param{optlen} con una struttura \struct{ip\_msfilter} contenente \itindbeg{Path~MTU} \item[\constd{IP\_MTU}] Permette di leggere il valore della \textit{Path MTU} - di percorso del socket. L'opzione richiede per \param{optval} un intero che - conterrà il valore della \textit{Path MTU} in byte. Questa è una opzione - introdotta con i kernel della serie 2.2.x, ed è specifica di Linux. + del socket. L'opzione richiede per \param{optval} un intero che conterrà il + valore della \textit{Path MTU} in byte. Questa è una opzione introdotta con + i kernel della serie 2.2.x, ed è specifica di Linux. È tramite questa opzione che un programma può leggere, quando si è avuto un errore di \errval{EMSGSIZE}, il valore della MTU corrente del socket. Si @@ -3333,7 +3334,7 @@ di \param{optlen} con una struttura \struct{ip\_msfilter} contenente la scoperta della \textit{Path MTU}, occorre che il socket sia stato esplicitamente connesso con \func{connect}. - Ad esempio con i socket UDP si potrà ottenere una stima iniziale della + Ad esempio con i socket UDP si può ottenere una stima iniziale della \textit{Path MTU} eseguendo prima una \func{connect} verso la destinazione, e poi usando \func{getsockopt} con questa opzione. Si può anche avviare esplicitamente il procedimento di scoperta inviando un pacchetto di grosse @@ -4532,10 +4533,11 @@ socket. Quelli descritti anche nella pagina di manuale, accessibile con dati ancillari e di controllo (vedi sez.~\ref{sec:net_ancillary_data}). \end{basedescript} -Oltre a questi nella directory \texttt{/proc/sys/net/core} si trovano altri -file, la cui documentazione dovrebbe essere mantenuta nei sorgenti del kernel, -nel file \texttt{Documentation/networking/ip-sysctl.txt}; la maggior parte di -questi però non è documentato: +Oltre a questi, nella directory \texttt{/proc/sys/net/core} si trovano diversi +altri file, la cui documentazione, come per gli altri, dovrebbe essere +mantenuta nei sorgenti del kernel nel file +\texttt{Documentation/networking/ip-sysctl.txt}; la maggior parte di questi +però non è documentato: \begin{basedescript}{\desclabelwidth{2.2cm}\desclabelstyle{\nextlinelabel}} \item[\sysctlrelfiled{net/core}{dev\_weight}] blocco di lavoro (\textit{work quantum}) dello \textit{scheduler} di processo dei pacchetti. @@ -4653,12 +4655,12 @@ di manuale accessibile con \texttt{man 7 ip}, sono i seguenti: \item[\sysctlrelfiled{net/ipv4}{ipfrag\_high\_thresh}] indica il limite massimo (espresso in numero di byte) sui pacchetti IP frammentati presenti - in coda; quando questo valore viene raggiunta la coda viene ripulita fino al + in coda; quando questo valore viene raggiunto la coda viene ripulita fino al valore \texttt{ipfrag\_low\_thresh}. Prende un valore intero. -\item[\sysctlrelfiled{net/ipv4}{ipfrag\_low\_thresh}] soglia bassa - (specificata in byte) a cui viene riportata la coda dei pacchetti IP - frammentati quando si raggiunge il valore massimo dato da +\item[\sysctlrelfiled{net/ipv4}{ipfrag\_low\_thresh}] indica la dimensione + (specificata in byte) della soglia inferiore a cui viene riportata la coda + dei pacchetti IP frammentati quando si raggiunge il valore massimo dato da \texttt{ipfrag\_high\_thresh}. Prende un valore intero. \item[\sysctlrelfiled{net/ipv4}{ip\_nonlocal\_bind}] se abilitato rende @@ -5038,9 +5040,9 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: \item il secondo valore, denominato \textit{default}, indica la dimensione di default in byte del buffer di spedizione di un socket TCP. Questo valore sovrascrive il default iniziale impostato per tutti i tipi di - socket con \sysctlfile{net/core/wmem\_default}. Il default è 87380 byte, - ridotto a 43689 per sistemi con poca memoria. Si può aumentare questo - valore quando si desiderano dimensioni più ampie del buffer di + socket sul file \sysctlfile{net/core/wmem\_default}. Il default è 87380 + byte, ridotto a 43689 per sistemi con poca memoria. Si può aumentare + questo valore quando si desiderano dimensioni più ampie del buffer di trasmissione per i socket TCP, ma come per il precedente \sysctlrelfile{net/ipv4}{tcp\_rmem}) se si vuole che in corrispondenza aumentino anche le dimensioni usate per la finestra TCP si deve abilitare