panoramica generale. Originariamente la configurazione del \textit{resolver}
riguardava esclusivamente le questioni relative alla gestione dei nomi a
dominio, e prevedeva solo l'utilizzo del DNS e del file statico
-\file{/etc/hosts}.
+\conffile{/etc/hosts}.
Per questo aspetto il file di configurazione principale del sistema è
-\file{/etc/resolv.conf} che contiene in sostanza l'elenco degli indirizzi IP
-dei server DNS da contattare; a questo si affianca il file
-\file{/etc/host.conf} il cui scopo principale è indicare l'ordine in cui
-eseguire la risoluzione dei nomi (se usare prima i valori di \file{/etc/hosts}
-o quelli del DNS). Tralasciamo i dettagli relativi alle varie direttive che
-possono essere usate in questi file, che si trovano nelle rispettive pagine di
-manuale.
+\conffile{/etc/resolv.conf} che contiene in sostanza l'elenco degli indirizzi
+IP dei server DNS da contattare; a questo si affianca il file
+\conffile{/etc/host.conf} il cui scopo principale è indicare l'ordine in cui
+eseguire la risoluzione dei nomi (se usare prima i valori di
+\conffile{/etc/hosts} o quelli del DNS). Tralasciamo i dettagli relativi alle
+varie direttive che possono essere usate in questi file, che si trovano nelle
+rispettive pagine di manuale.
Con il tempo però è divenuto possibile fornire diversi sostituti per
-l'utilizzo delle associazione statiche in \file{/etc/hosts}, inoltre oltre
+l'utilizzo delle associazione statiche in \conffile{/etc/hosts}, inoltre oltre
alla risoluzione dei nomi a dominio ci sono anche altri nomi da risolvere,
come quelli che possono essere associati ad una rete (invece che ad una
singola macchina) o ai gruppi di macchine definiti dal servizio
\textit{netgroup}) varie macchine, centralizzando i servizi di definizione
di utenti e gruppi e di autenticazione, oggi è sempre più spesso sostituito
da LDAP.} o come quelli dei protocolli e dei servizi che sono mantenuti nei
-file statici \file{/etc/protocols} e \file{/etc/services}. Molte di queste
-informazioni non si trovano su un DNS, ma in una rete locale può essere molto
-utile centralizzare il mantenimento di alcune di esse su opportuni server.
-Inoltre l'uso di diversi supporti possibili per le stesse informazioni (ad
-esempio il nome delle macchine può essere mantenuto sia tramite
-\file{/etc/hosts}, che con il DNS, che con NIS) comporta il problema
-dell'ordine in cui questi vengono interrogati.\footnote{con le implementazioni
- classiche i vari supporti erano introdotti modificando direttamente le
- funzioni di libreria, prevedendo un ordine di interrogazione predefinito e
- non modificabile (a meno di una ricompilazione delle librerie stesse).}
+file statici \conffile{/etc/protocols} e \conffile{/etc/services}. Molte di
+queste informazioni non si trovano su un DNS, ma in una rete locale può essere
+molto utile centralizzare il mantenimento di alcune di esse su opportuni
+server. Inoltre l'uso di diversi supporti possibili per le stesse
+informazioni (ad esempio il nome delle macchine può essere mantenuto sia
+tramite \conffile{/etc/hosts}, che con il DNS, che con NIS) comporta il
+problema dell'ordine in cui questi vengono interrogati.\footnote{con le
+ implementazioni classiche i vari supporti erano introdotti modificando
+ direttamente le funzioni di libreria, prevedendo un ordine di interrogazione
+ predefinito e non modificabile (a meno di una ricompilazione delle librerie
+ stesse).}
\itindbeg{Name~Service~Switch}
Per risolvere questa serie di problemi la risoluzione dei nomi a dominio
\label{tab:sys_NSS_classes}
\end{table}
-Il sistema del \textit{Name Service Switch} è controllato dal contenuto del
-file \file{/etc/nsswitch.conf}; questo contiene una riga\footnote{seguendo una
- convezione comune per i file di configurazione le righe vuote vengono
- ignorate e tutto quello che segue un carattere ``\texttt{\#}'' viene
- considerato un commento.} di configurazione per ciascuna di queste classi,
-che viene inizia col nome di tab.~\ref{tab:sys_NSS_classes} seguito da un
-carattere ``\texttt{:}'' e prosegue con la lista dei \textsl{servizi} su cui
-le relative informazioni sono raggiungibili, scritti nell'ordine in cui si
+Il sistema del \textit{Name Service Switch} è controllato dal contenuto del
+file \conffile{/etc/nsswitch.conf}; questo contiene una riga\footnote{seguendo
+ una convezione comune per i file di configurazione le righe vuote vengono
+ ignorate e tutto quello che segue un carattere ``\texttt{\#}'' viene
+ considerato un commento.} di configurazione per ciascuna di queste classi,
+che viene inizia col nome di tab.~\ref{tab:sys_NSS_classes} seguito da un
+carattere ``\texttt{:}'' e prosegue con la lista dei \textsl{servizi} su cui
+le relative informazioni sono raggiungibili, scritti nell'ordine in cui si
vuole siano interrogati.
-Ogni servizio è specificato a sua volta da un nome, come \texttt{file},
-\texttt{dns}, \texttt{db}, ecc. che identifica la libreria dinamica che
-realizza l'interfaccia con esso. Per ciascun servizio se \texttt{NAME} è il
-nome utilizzato dentro \file{/etc/nsswitch.conf}, dovrà essere presente
-(usualmente in \file{/lib}) una libreria \texttt{libnss\_NAME} che ne
+Ogni servizio è specificato a sua volta da un nome, come \texttt{file},
+\texttt{dns}, \texttt{db}, ecc. che identifica la libreria dinamica che
+realizza l'interfaccia con esso. Per ciascun servizio se \texttt{NAME} è il
+nome utilizzato dentro \conffile{/etc/nsswitch.conf}, dovrà essere presente
+(usualmente in \file{/lib}) una libreria \texttt{libnss\_NAME} che ne
implementa le funzioni.
In ogni caso, qualunque sia la modalità con cui ricevono i dati o il supporto
\multicolumn{2}{|c|}{\textbf{Funzioni}}\\
\hline
\hline
- indirizzo&\file{/etc/hosts}&\struct{hostent}&\func{gethostbyname}&
- \func{gethostbyaddr}\\
- servizio &\file{/etc/services}&\struct{servent}&\func{getservbyname}&
- \func{getservbyaddr}\\
- rete &\file{/etc/networks}&\struct{netent}&\func{getnetbyname}&
- \func{getnetbyaddr}\\
- protocollo&\file{/etc/protocols}&\struct{protoent}&\func{getprotobyname}&
- \func{getprotobyaddr}\\
+ indirizzo &\conffile{/etc/hosts}&\struct{hostent}&\func{gethostbyname}&
+ \func{gethostbyaddr}\\
+ servizio &\conffile{/etc/services}&\struct{servent}&\func{getservbyname}&
+ \func{getservbyaddr}\\
+ rete &\conffile{/etc/networks}&\struct{netent}&\func{getnetbyname}&
+ \func{getnetbyaddr}\\
+ protocollo&\conffile{/etc/protocols}&\struct{protoent}&
+ \func{getprotobyname}&\func{getprotobyaddr}\\
\hline
\end{tabular}
\caption{Funzioni di risoluzione dei nomi per i vari servizi del
Entrambe le funzioni prendono come ultimo argomento una stringa \param{proto}
che indica il protocollo per il quale si intende effettuare la
-ricerca,\footnote{le informazioni mantenute in \file{/etc/services} infatti
- sono relative sia alle porte usate su UDP che su TCP, occorre quindi
+ricerca,\footnote{le informazioni mantenute in \conffile{/etc/services}
+ infatti sono relative sia alle porte usate su UDP che su TCP, occorre quindi
specificare a quale dei due protocolli si fa riferimento.} che nel caso si
IP può avere come valori possibili solo \texttt{udp} o
\texttt{tcp};\footnote{in teoria si potrebbe avere un qualunque protocollo fra
- quelli citati in \file{/etc/protocols}, posto che lo stesso supporti il
+ quelli citati in \conffile{/etc/protocols}, posto che lo stesso supporti il
concetto di \textsl{porta}, in pratica questi due sono gli unici presenti.}
se si specifica un puntatore nullo la ricerca sarà eseguita su un protocollo
qualsiasi.
Il primo argomento è il nome del servizio per \func{getservbyname},
specificato tramite la stringa \param{name}, mentre \func{getservbyport}
richiede il numero di porta in \param{port}. Entrambe le funzioni eseguono una
-ricerca sul file \file{/etc/services}\footnote{il \textit{Name Service Switch}
- astrae il concetto a qualunque supporto su cui si possano mantenere i
- suddetti dati. } ed estraggono i dati dalla prima riga che corrisponde agli
-argomenti specificati; se la risoluzione ha successo viene restituito un
-puntatore ad una apposita struttura \struct{servent} contenente tutti i
-risultati), altrimenti viene restituito un puntatore nullo. Si tenga presente
-che anche in questo caso i dati vengono mantenuti in una area di memoria
-statica e che quindi la funzione non è rientrante.
+ricerca sul file \conffile{/etc/services}\footnote{il \textit{Name Service
+ Switch} astrae il concetto a qualunque supporto su cui si possano
+ mantenere i suddetti dati. } ed estraggono i dati dalla prima riga che
+corrisponde agli argomenti specificati; se la risoluzione ha successo viene
+restituito un puntatore ad una apposita struttura \struct{servent} contenente
+tutti i risultati), altrimenti viene restituito un puntatore nullo. Si tenga
+presente che anche in questo caso i dati vengono mantenuti in una area di
+memoria statica e che quindi la funzione non è rientrante.
\begin{figure}[!htb]
\footnotesize \centering
\begin{functions}
\headdecl{netdb.h}
\funcdecl{void setservent(int stayopen)}
- Apre il file \file{/etc/services} e si posiziona al suo inizio.
+ Apre il file \conffile{/etc/services} e si posiziona al suo inizio.
\funcdecl{struct servent *getservent(void)}
- Legge la voce successiva nel file \file{/etc/services}.
+ Legge la voce successiva nel file \conffile{/etc/services}.
\funcdecl{void endservent(void)}
- Chiude il file \file{/etc/services}.
+ Chiude il file \conffile{/etc/services}.
\bodydesc{Le due funzioni \func{setservent} e \func{endservent} non
restituiscono nulla, \func{getservent} restituisce il puntatore ad una
\end{functions}
La prima funzione, \func{getservent}, legge una singola voce a partire dalla
-posizione corrente in \file{/etc/services}, pertanto si può eseguire una
+posizione corrente in \conffile{/etc/services}, pertanto si può eseguire una
lettura sequenziale dello stesso invocandola più volte. Se il file non è
aperto provvede automaticamente ad aprirlo, nel qual caso leggerà la prima
voce. La seconda funzione, \func{setservent}, permette di aprire il file
-\file{/etc/services} per una successiva lettura, ma se il file è già stato
+\conffile{/etc/services} per una successiva lettura, ma se il file è già stato
aperto riporta la posizione di lettura alla prima voce del file, in questo
modo si può far ricominciare da capo una lettura sequenziale. L'argomento
\param{stayopen}, se diverso da zero, fa sì che il file resti aperto anche fra
Il campo \var{ai\_protocol} permette invece di effettuare la selezione dei
risultati per il nome del servizio usando il numero identificativo del
rispettivo protocollo di trasporto (i cui valori possibili sono riportati in
-\file{/etc/protocols}); di nuovo i due soli valori utilizzabili sono quelli
+\conffile{/etc/protocols}); di nuovo i due soli valori utilizzabili sono quelli
relativi a UDP e TCP, o il valore nullo che indica di ignorare questo campo
nella selezione.
La funzione prende quattro argomenti, i primi due sono le stringhe che
indicano il nome della macchina a cui collegarsi ed il relativo servizio su
cui sarà effettuata la risoluzione; seguono il protocollo da usare (da
-specificare con il valore numerico di \file{/etc/protocols}) ed il tipo di
+specificare con il valore numerico di \conffile{/etc/protocols}) ed il tipo di
socket (al solito specificato con i valori illustrati in
sez.~\ref{sec:sock_type}). La funzione ritorna il valore del file descriptor
associato al socket (un numero positivo) in caso di successo, o -1 in caso di
I valori usati per \param{level}, corrispondenti ad un dato protocollo usato
da un socket, sono quelli corrispondenti al valore numerico che identifica il
-suddetto protocollo in \file{/etc/protocols}; dato che la leggibilità di un
+suddetto protocollo in \conffile{/etc/protocols}; dato che la leggibilità di un
programma non trarrebbe certo beneficio dall'uso diretto dei valori numerici,
più comunemente si indica il protocollo tramite le apposite costanti
\texttt{SOL\_*} riportate in tab.~\ref{tab:sock_option_levels}, dove si sono
confusa: infatti in Linux il valore si può impostare sia usando le costanti
\texttt{SOL\_*}, che le analoghe \texttt{IPPROTO\_*} (citate anche da
Stevens in \cite{UNP1}); entrambe hanno gli stessi valori che sono
- equivalenti ai numeri di protocollo di \file{/etc/protocols}, con una
+ equivalenti ai numeri di protocollo di \conffile{/etc/protocols}, con una
eccezione specifica, che è quella del protocollo ICMP, per la quale non
esista una costante, il che è comprensibile dato che il suo valore, 1, è
quello che viene assegnato a \const{SOL\_SOCKET}.}
pacchetti possono attraversare. Il valore può essere modificato anche per il
singolo socket con l'opzione \const{IP\_TTL}. Prende un valore intero, ma
dato che il campo citato è di 8 bit hanno senso solo valori fra 0 e 255. Il
- valore di default è 64, e non ci normalmente non c'è nessuna necessità di
- modificarlo,\footnote{l'unico motivo sarebbe per raggiungere macchine
- estremamente ``{lontane}'' in termini di \textit{hop}, ma è praticamente }
- aumentare il valore è una pratica poco gentile, in quanto in caso di
- problemi di routing si allunga inutilmente il numero di ritrasmissioni.
-
+ valore di default è 64, e normalmente non c'è nessuna necessità di
+ modificarlo.\footnote{l'unico motivo sarebbe per raggiungere macchine
+ estremamente ``{lontane}'' in termini di \textit{hop}, ma è praticamente
+ impossible trovarne.} Aumentare il valore è una pratica poco gentile, in
+ quanto in caso di problemi di routing si allunga inutilmente il numero di
+ ritrasmissioni.
+
\item[\procrelfile{/proc/sys/net/ipv4}{ip\_forward}] abilita l'inoltro dei
pacchetti da una interfaccia ad un altra, e può essere impostato anche per
la singola interfaccia. Prende un valore logico (0 disabilita, diverso da
- zero abilita).
+ zero abilita), di default è disabilitato.
-\item[\procrelfile{/proc/sys/net/ipv4}{ip\_dynaddr}] Abilita la riscrittura
+\item[\procrelfile{/proc/sys/net/ipv4}{ip\_dynaddr}] abilita la riscrittura
automatica degli indirizzi associati ad un socket quando una interfaccia
cambia indirizzo. Viene usato per le interfacce usate nei collegamenti in
dial-up, il cui indirizzo IP viene assegnato dinamicamente dal provider, e
può essere modificato. Un valore nullo disabilita la funzionalità, con 1 la
- si abilita, con 2 la si abilità in modalità \textsl{prolissa}.
+ si abilita, con 2 (o con qualunque altro valore diverso dai precedenti) la
+ si abilità in modalità \textsl{prolissa}; di default la funzionalità è
+ disabilitata.
-\item[\procrelfile{/proc/sys/net/ipv4}{ip\_autoconfig}] Specifica se
- l'indirizzo IP è stato configurato automaticamente via DHCP, BOOTP o RARP.
+\item[\procrelfile{/proc/sys/net/ipv4}{ip\_autoconfig}] specifica se
+ l'indirizzo IP è stato configurato automaticamente dal kernel all'avvio
+ attraverso DHCP, BOOTP o RARP; è un valore logico (0 falso, 1 vero)
+ accessibile in lettura, è inutilizzato nei kernel recenti ed eliminato a
+ partire dal 2.6.18.
\item[\procrelfile{/proc/sys/net/ipv4}{ip\_local\_port\_range}] imposta
l'intervallo dei valori usati per l'assegnazione delle porte effimere,
pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
\begin{basedescript}{\desclabelwidth{3.9cm}\desclabelstyle{\nextlinelabel}}
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_abort\_on\_overflow}] è un valore
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_abort\_on\_overflow}] Un valore
logico (disabilitato di default) che indica di azzerare le connessioni
quando il programma che le riceve è troppo lento ed incapace di accettarle.
Questo consente di recuperare le connessioni se si è avuto un eccesso dovuto
% \item[\texttt{tcp\_bic\_low\_window}]
% \item[\texttt{tcp\_bic\_fast\_convergence}]
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_dsack}] Abilita il supporto
- definito nell'\href{http://www.ietf.org/rfc/rfc2884.txt}{RFC~2884} per il
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_dsack}] Un valore logico che
+ abilita il supporto, definito
+ nell'\href{http://www.ietf.org/rfc/rfc2884.txt}{RFC~2884}, per il
\textit{Duplicate SACK}.\footnote{si indica con SACK (\textit{Selective
Acknowledgement}) un'opzione TCP, definita
nell'\href{http://www.ietf.org/rfc/rfc2018.txt}{RFC~2018}, usata per dare
- un \textit{acknowledgement} unico su blocchi di pacchetti non contigui.}
-
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_ecn}] Abilita il meccanismo della
- \textit{Explicit Congestion Notification} (o ECN) definito
- nell'\href{http://www.ietf.org/rfc/rfc2884.txt}{RFC~2884}. Si tenga presente
- che se si abilita questa opzione si possono avere dei malfunzionamenti
- apparentemente casuali dipendenti dalla destinazione, dovuti al fatto che
- alcuni vecchi router non supportano il meccanismo ed alla sua attivazione
- scartano i relativi pacchetti.\\
+ un \textit{acknowledgement} unico su blocchi di pacchetti non contigui,
+ che consente di diminuire il numero di pacchetti scambiati.} Di default è
+ abilitato.
+
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_ecn}] Un valore logico che abilita
+ il meccanismo della \textit{Explicit Congestion Notification} (in breve ECN)
+ nelle connessioni TCP. Questo è un meccanismo (è descritto in dettaglio
+ nell'\href{http://www.ietf.org/rfc/rfc3168.txt}{RFC~3168} mentre gli effetti
+ sulle prestazioni del suo utilizzo sono documentate
+ nell'\href{http://www.ietf.org/rfc/rfc2884.txt}{RFC~2884} ) che consente di
+ notificare quando una rotta o una rete è congestionata da un eccesso di
+ traffico, si può così essere avvisati e cercare rotte alternative oppure
+ diminuire l'emissione di pacchetti (in modo da non aumentare la
+ congestione). Di default è disabilitato.
+
+ Si tenga presente che se si abilita questa opzione si possono avere dei
+ malfunzionamenti apparentemente casuali dipendenti dalla destinazione,
+ dovuti al fatto che alcuni vecchi router non supportano il meccanismo ed
+ alla sua attivazione e scartano i relativi pacchetti, bloccando
+ completamente il traffico.\\
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_fack}] è un valore logico che
- abilita il supporto per il \textit{TCP Forward Acknowledgement}. Di default
- è abilitato.
+ abilita il supporto per il \textit{TCP Forward Acknowledgement}, un
+ algoritmo per il controllo della congestione del traffico. Di default è
+ abilitato.
% TODO documentare o descrivere che cos'è il TCP Forward Acknowledgement
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_fin\_timeout}] specifica il numero
interferenze radio, piuttosto che alla congestione dei router. Di default è
disabilitato.
-
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_keepalive\_intvl}] il numero di
secondi che deve trascorrere fra l'emissione di due successivi pacchetti di
test quando è abilitata la funzionalità del \textit{keepalive} (vedi
contrastare alcuni elementari attacchi di \textit{denial of service}.
Diminuire il valore non è mai raccomandato, in certe condizioni di rete può
essere opportuno aumentarlo, ma si deve tenere conto del fatto che ciascuna
- connessione orfana può consumare fino a 64K di memoria del kernel. Il di
- default viene impostato inizialmente al valore del parametro del kernel
+ connessione orfana può consumare fino a 64K di memoria del kernel. Il valore
+ di default viene impostato inizialmente al valore del parametro del kernel
\texttt{NR\_FILE}, e viene aggiustato a seconda della memoria disponibile.
% TODO verificare la spiegazione di connessione orfana
ritrasmissioni provocate dal riordinamento. Non è opportuno modificare
questo valore dal default che è 3.
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_retrans\_collapse}]
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_retrans\_collapse}] in caso di
+ pacchetti persi durante una connessione, per ottimizzare l'uso della banda
+ il kernel cerca di eseguire la ritrasmissione inviando pacchetti della
+ massima dimensione possibile; in sostanza dati che in precedenza erano stati
+ trasmessi su pacchetti diversi possono essere ritrasmessi riuniti su un solo
+ pacchetto (o su un numero minore di pacchetti di dimensione maggiore).
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_retries1}] imposta il massimo
numero di volte che protocollo tenterà la ritrasmissione si un pacchetto su
massimo di 100 secondi, che però è un valore considerato troppo basso.
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_rfc1337}]
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_rfc1337}] un valore logico che
+ indica allo stack TCP del kernel di abilitare il comportamento richiesto
+ nell'\href{http://www.ietf.org/rfc/rfc1337.txt}{RFC~1337}; di default è
+ disabilitato, il che significa che alla ricezione di un segmento RST in stao
+ \texttt{TIME\_WAIT} il socket viene chiuso immediatamente senza attendere la
+ conclusione del periodo di \texttt{TIME\_WAIT}.
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_rmem}]
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_sack}]
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_sack}] un valore logico che indica
+ al kernel di utilizzare il meccanismo del \textit{TCP selective
+ aknowledment} definito
+ nell'\href{http://www.ietf.org/rfc/rfc2018.txt}{RFC~2018}; di default è
+ abilitato.
+
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_stdurg}]
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_synack\_retries}]
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_syncookies}]
+
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_synack\_retries}] un valore intero
+ che indica il numero massimo di volte che verrà ritasmesso il segmento
+ SYN/ACK nella creazione di una connessione (vedi
+ sez.~\ref{sec:TCP_conn_cre}). Il valore di default è 5, e non si deve
+ superare il valore massimo di 255.
+
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_syncookies}] un valore logico
+ che abilita i \textit{TCP syncookies},\footnote{per poter usare quasta
+ funzionalità è necessario avere abilitato l'opzione
+ \texttt{CONFIG\_SYN\_COOKIES} nella compilazione del kernel.} di default è
+ disabilitato.
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_syn\_retries}] imposta il numero
di tentativi (il default è 5) di ritrasmissione dei pacchetti SYN di inizio
(si ricordi quanto illustrato in sez.~\ref{sec:TCP_func_connect}). Il valore
non deve superare 255.
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_timestamps}]
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_timestamps}] un valore logico che
+ attiva l'uso dei \textit{TCP timestamps}, definiti
+ nell'\href{http://www.ietf.org/rfc/rfc1323.txt}{RFC~1323}. Di default è
+ abilitato.
+
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_tw\_recycle}]
+
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_tw\_reuse}]
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_window\_scaling}]
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_window\_scaling}]
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_vegas\_cong\_avoid}]
+
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_westwood}]
+
\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_wmem}]
+
\end{basedescript}
% LocalWords: socket sez dotted decimal resolver Domain Name Service cap DNS