From e842f860cf1e9ea3580c36e93a56a6c6caef0daa Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Sat, 11 Jun 2005 15:01:51 +0000 Subject: [PATCH] Qualche nota sulle opzioni dei socket IPv4 e sulle sysctl --- sockctrl.tex | 67 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/sockctrl.tex b/sockctrl.tex index fe1a12c..5d978e0 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -40,7 +40,7 @@ La risoluzione dei nomi internet invece che per numero IP attraverso il relativo \textsl{nome a dominio}.\footnote{non staremo ad entrare nei dettagli della definizione di cosa è un nome a dominio, dandolo per noto, una introduzione alla - problematica si trova in \cite{AGL} (cap. 9) mentre per una trattazione + problematica si trova in \cite{AGL} (cap.~9) mentre per una trattazione approfondita di tutte le problematiche relative al DNS si può fare riferimento a \cite{DNSbind}.} In realtà per DNS si intendono spesso i server che forniscono su internet questo servizio, mentre nel nostro caso @@ -147,7 +147,7 @@ tab.~\ref{tab:sys_NSS_classes}. (\acr{uid}, ecc.).\\ \texttt{group} & corrispondenze fra nome del gruppo e proprietà dello stesso.\\ - \texttt{aliases} & alias per la posta elettronica\\ + \texttt{aliases} & alias per la posta elettronica.\\ \texttt{ethers} & corrispondenze fra numero IP e MAC address della scheda di rete.\\ \texttt{hosts} & corrispondenze fra nome a dominio e numero IP.\\ @@ -2804,10 +2804,12 @@ ottenibile rispettivamente dai campi \var{ipi\_addr} e \var{ipi\_ifindex} di pacchetti. Il campo TOS è di 8 bit e l'opzione richiede per \param{optval} un intero che ne contiene il valore. Sono definite anche alcune costanti che definiscono alcuni valori standardizzati per il \textit{Type of Service}, - riportate in tab.~\ref{tab:IP_TOS_values}. Si ricordi che la priorità dei - pacchetti può essere impostata anche in maniera indipendente dal protocollo - utilizzando l'opzione \const{SO\_PRIORITY} illustrata in - sez.~\ref{sec:sock_generic_options}. + riportate in tab.~\ref{tab:IP_TOS_values}, il valore di default usato da + Linux è \const{IPTOS\_LOWDELAY}, ma esso può essere modificato con le + funzionalità del cosiddetto \textit{Advanced Routing}. Si ricordi che la + priorità dei pacchetti può essere impostata anche in maniera indipendente + dal protocollo utilizzando l'opzione \const{SO\_PRIORITY} illustrata in + sez.~\ref{sec:sock_generic_options}. \item[\const{IP\_TTL}] L'opzione consente di leggere o impostare il campo @@ -2826,16 +2828,24 @@ ottenibile rispettivamente dai campi \var{ipi\_addr} e \var{ipi\_ifindex} di \item[\const{IP\_RECVERR}] Questa è una opzione introdotta con i kernel della - serie 2.2.x, ed è specifica di Linux. + serie 2.2.x, ed è specifica di Linux. Essa permette di usufruire di un + meccanismo affidabile per ottenere un maggior numero di informazioni in caso + di errori. Se l'opzione è abilitata tutti gli errori generati su un socket + vengono memorizzati su una coda, dalla quale poi possono essere letti con + \func{recvmsg} (torneremo su questo in sez.~\ref{sec:TCP_ancillary_data}). + L'opzione richiede per \param{optval} un intero usato come valore logico; + l'opzione non è applicabile a socket di tipo \const{SOCK\_STREAM}. \item[\const{IP\_MTU\_DISCOVER}] Questa è una opzione introdotta con i kernel - della serie 2.2.x, ed è specifica di Linux. + della serie 2.2.x, ed è specifica di Linux. L'opzione permette di scrivere + o leggere le impostazioni usante nella determinazione della \textit{Maximum + Tranfer Unit} (vedi sez.~\ref{sec:net_lim_dim}) per il socket. \item[\const{IP\_MTU}] Permette di leggere il valore della \textit{Maximum - Tranfer Unit} di percorso (vedi sez.~\ref{sec:net_lim_dim}) del socket. - L'opzione richiede per \param{optval} un intero che conterrà il valore della - MTU in byte. Questa è una opzione introdotta con i kernel della serie - 2.2.x, ed è specifica di Linux. + Tranfer Unit} di percorso del socket. L'opzione richiede per + \param{optval} un intero che conterrà il valore della MTU in byte. Questa è + una opzione introdotta con i kernel della serie 2.2.x, ed è specifica di + Linux. \item[\const{IP\_ROUTER\_ALERT}] Questa è una opzione introdotta con i kernel della serie 2.2.x, ed è specifica di Linux. @@ -2906,10 +2916,11 @@ specifico quando la si impiega su file descriptor associati a dei socket. Come ultimo argomento di questa sezione tratteremo l'uso della funzione \func{sysctl} (che è stata introdotta nelle sue funzionalità generiche in sez.~\ref{sec:sys_sysctl}) per quanto riguarda le sue capacità di effettuare -impostazioni relative a proprietà generali dei socket (di tutti quelli di un -certo tipo o di tutti quelli che usano un certo protocollo) rispetto alle -funzioni viste finora che consentono di controllare quelle di un singolo -socket. +impostazioni relative alle proprietà dei socket. La differenza nell'uso di +\func{sysctl} rispetto alle funzioni viste finora è che esse consentono di +controllare le proprietà di un singolo socket, mentre con \func{sysctl} si +impostano proprietà (o valori di default) validi a livello dell'intero +sistema. Le opzioni disponibili per le proprietà della rete sono riportate nella gerarchia dei valori impostabili con \func{sysctl}, sotto il nodo @@ -2917,7 +2928,8 @@ gerarchia dei valori impostabili con \func{sysctl}, sotto il nodo \texttt{/proc}, sotto \texttt{/proc/sys/net}. In genere sotto questa directory compaiono le sottodirectory (corrispondenti ad altrettanti sottonodi per \func{sysctl}) relative ai vari protocolli e tipi di interfacce su cui è -possibile intervenire; un contenuto tipico è il seguente: +possibile intervenire per effettuare impostazioni; un contenuto tipico di +questa directory è il seguente: \begin{verbatim} /proc/sys/net/ |-- core @@ -2928,11 +2940,13 @@ possibile intervenire; un contenuto tipico |-- token-ring `-- unix \end{verbatim} +e sono presenti varie centinaia di diversi parametri; nel nostro caso ci +limiteremo a vedere quelli più significativi. - -Nella directory \texttt{/proc/sys/net/core} sono disponibili le opzioni -generiche dei socket, descritte anche nella rispettiva pagina di -manuale.\footnote{quella accessibile con \texttt{man 7 socket}.} Queste sono: +Nella directory \texttt{/proc/sys/net/core} sono disponibili i parametri +generici validi per tutti i socket, quelli descritti anche nella rispettiva +pagina di manuale.\footnote{quella accessibile con \texttt{man 7 socket}.} +I principali sono: \begin{basedescript}{\desclabelwidth{3cm}\desclabelstyle{\nextlinelabel}} \item[\texttt{rmem\_default}] imposta la dimensione di default del buffer di @@ -2951,6 +2965,17 @@ manuale.\footnote{quella accessibile con \texttt{man 7 socket}.} Queste sono: \item[\texttt{optmem\_max}] \end{basedescript} +Nella directory \texttt{/proc/sys/net/ipv4} sono disponibili i parametri per i +socket IPv4, descritti anche nella rispettiva pagina di +manuale.\footnote{quella accessibile con \texttt{man 7 ip}.} I principali +sono: +\begin{basedescript}{\desclabelwidth{3cm}\desclabelstyle{\nextlinelabel}} +\item[\texttt{ip_no_pmtu_disc}] imposta la discliplina di ricerca della + \textit{Path MTU} (vedi sez.~\ref{sec:net_lim_dim} e + sez.~\ref{sec:sock_ipv4_options}). +\end{basedescript} + + %%% Local Variables: %%% mode: latex -- 2.30.2