X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=sockctrl.tex;h=f98df0d8bf8585588047fcf323ef98ba89699fdb;hb=78164bc1d89064e9341ea7cd27f4b1ca2d606d50;hp=1547493af0bf58e0f9a360d34622d45cc0ab7207;hpb=606aa86c70578ff2e1f6dcf26a87532609d2e09e;p=gapil.git diff --git a/sockctrl.tex b/sockctrl.tex index 1547493..f98df0d 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -2924,11 +2924,12 @@ sez.~\ref{sec:net_sendmsg}). ricerca è disabilitata ed è responsabilità del programma creare pacchetti di dimensioni appropriate e ritrasmettere eventuali pacchetti persi. Se l'opzione viene abilitata, il kernel si incaricherà di tenere traccia - automaticamente della \textit{Path MTU} verso ciascuna destinazione, e - rifiuterà immediatamente la trasmissione di pacchetti di dimensioni maggiori - della MTU con un errore di \errval{EMSGSIZE}.\footnote{in caso contrario la - trasmissione del pacchetto sarebbe effettuata, ottenendo o un fallimento - successivo della trasmissione, o la frammentazione dello stesso.} + automaticamente della \itindex{Maximum~Transfer~Unit} \textit{Path MTU} + verso ciascuna destinazione, e rifiuterà immediatamente la trasmissione di + pacchetti di dimensioni maggiori della MTU con un errore di + \errval{EMSGSIZE}.\footnote{in caso contrario la trasmissione del pacchetto + sarebbe effettuata, ottenendo o un fallimento successivo della + trasmissione, o la frammentazione dello stesso.} \item[\const{IP\_MTU}] Permette di leggere il valore della \textit{Path MTU} di percorso del socket. L'opzione richiede per \param{optval} un intero che @@ -4084,7 +4085,6 @@ accessibile con \texttt{man 7 ip}, sono i seguenti: 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 @@ -4094,16 +4094,16 @@ accessibile con \texttt{man 7 ip}, sono i seguenti: 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 (o con qualunque altro valore diverso dai precedenti) la - si abilità in modalità \textsl{prolissa}; di default la funzionalità è - disabilitata. + può essere modificato. Prende un valore intero, con 0 si disabilita la + funzionalità, con 1 la 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 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. + attraverso DHCP, BOOTP o RARP. Riporta un valore logico (0 falso, 1 vero) + accessibile solo in lettura, è inutilizzato nei kernel recenti ed eliminato + a partire dal kernel 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, @@ -4116,26 +4116,41 @@ accessibile con \texttt{man 7 ip}, sono i seguenti: 1024 (o meglio ancora di 4096) per evitare conflitti con le porte usate dai servizi noti. -\item[\procrelfile{/proc/sys/net/ipv4}{ip\_no\_pmtu\_disc}] imposta la - disciplina di ricerca della \itindex{Maximum~Transfer~Unit} \textit{Path - MTU} (vedi sez.~\ref{sec:net_lim_dim} e sez.~\ref{sec:sock_ipv4_options}). - -\item[\procrelfile{/proc/sys/net/ipv4}{ipfrag\_high\_thresh}] 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 valore - \texttt{ipfrag\_low\_thresh}. +\item[\procrelfile{/proc/sys/net/ipv4}{ip\_no\_pmtu\_disc}] permette di + disabilitare per i socket \const{SOCK\_STREAM} la ricerca automatica della + \itindex{Maximum~Transfer~Unit} \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} \textit{Path MTU discovery} + fallisce; dato che questo può avveniera a causa di router\footnote{ad + esempio se si scartano tutti i pacchetti ICMP, il problema è affrontato + anche in sez.~1.4.4 di \cite{FwGL}.} o interfacce\footnote{ad esempio se i + due capi di un collegamento \textit{point-to-point} non si accordano sulla + stessa MTU.} mal configurate è opportuno correggere le configurazioni, + perché disabilitare globalmente il procedimento con questo parametro ha + pesanti ripercussioni in termini di prestazioni di rete. + +\item[\procrelfile{/proc/sys/net/ipv4}{ip\_always\_defrag}] fa si che tutti i + pacchetti IP frammentati siano riassemblati, anche in caso in successivo + immediato inoltro;\footnote{introdotto con il kernel 2.2.13, nelle versioni + precedenti questo comportamento poteva essere solo stabilito un volta per + tutte in fase di compilazione del kernel con l'opzione + \texttt{CONFIG\_IP\_ALWAYS\_DEFRAG}.} prende un valore logico e di default + è disabilitato. Con i kernel dalla serie 2.4 in poi la deframmentazione viene + attivata automaticamente quando si utilizza il sistema del netfilter, e + questo parametro non è più presente. + +\item[\procrelfile{/proc/sys/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 + valore \texttt{ipfrag\_low\_thresh}. \item[\procrelfile{/proc/sys/net/ipv4}{ipfrag\_low\_thresh}] soglia bassa (specificata in byte) cui viene riportata la coda dei pacchetti IP frammentati quando si raggiunge il valore \texttt{ipfrag\_high\_thresh}. -\item[\procrelfile{/proc/sys/net/ipv4}{ip\_always\_defrag}] se abilitato - (prende un intero come valore logico) tutti i pacchetti IP frammentati - saranno riassemblati, anche in caso in successivo immediato - inoltro.\footnote{introdotto con il kernel 2.2.13, nelle versioni precedenti - questo comportamento poteva essere solo in fase di compilazione del kernel - con l'opzione \texttt{CONFIG\_IP\_ALWAYS\_DEFRAG}.} - \item[\procrelfile{/proc/sys/net/ipv4}{ip\_nonlocal\_bind}] se abilitato (prende un intero come valore logico) è possibile che una applicazione possa collegarsi (con \func{bind} su un indirizzo non locale. Questo può risultare @@ -4371,12 +4386,19 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: 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\_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}] +\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 @@ -4384,15 +4406,23 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: (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