X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=sockctrl.tex;h=7bce251253307e488a21803192642346e343a13c;hb=250b32a55733b307d2eae8afb50b64af1b7c0bc8;hp=f98df0d8bf8585588047fcf323ef98ba89699fdb;hpb=78164bc1d89064e9341ea7cd27f4b1ca2d606d50;p=gapil.git diff --git a/sockctrl.tex b/sockctrl.tex index f98df0d..7bce251 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -2301,9 +2301,23 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: usualmente utilizzata per ricevere il codice di errore, come accennato in sez.~\ref{sec:TCP_sock_select}, quando si sta osservando il socket con una \func{select} che ritorna a causa dello stesso. -\end{basedescript} + +\item[\const{SO\_ATTACH\_FILTER}] questa opzione permette di agganciare ad un + socket un filtro di pacchetti che consente di selezionare quali pacchetti, + fra tutti quelli ricevuti, verranno letti. Viene usato pincipalmente con i + socket di tipo \const{PF\_PACKET} con la libreria \texttt{libpcap} per + implementare programmi di cattura dei pacchetti, torneremo su questo in + sez.~\ref{sec:packet_socket}. + +\item[\const{SO\_DETACH\_FILTER}] consente di distaccare un filtro + precedentemente aggiunto ad un socket. % TODO documentare SO_ATTACH_FILTER e SO_DETACH_FILTER +% riferimenti http://www.rcpt.to/lsfcc/lsf.html +% Documentation/networking/filter.txt + + +\end{basedescript} \subsection{L'uso delle principali opzioni dei socket} @@ -2591,7 +2605,7 @@ esiste, ma il comportamento di \const{SO\_REUSEADDR} possibile effettuare un \textit{completely duplicate binding} ed ottenere il successo di \func{bind} su un socket legato allo stesso indirizzo e porta solo se il programma che ha eseguito per primo \func{bind} su di essi ha impostato -questa opzione.\footnote{Questa restrizione permette di evitare il cosiddetto +questa opzione.\footnote{questa restrizione permette di evitare il cosiddetto \textit{port stealing}, in cui un programma, usando \const{SO\_REUSEADDR}, può collegarsi ad una porta già in uso e ricevere i pacchetti destinati ad un altro programma; con questa caratteristica ciò è possibile soltanto se il @@ -4108,13 +4122,13 @@ accessibile con \texttt{man 7 ip}, sono i seguenti: \item[\procrelfile{/proc/sys/net/ipv4}{ip\_local\_port\_range}] imposta l'intervallo dei valori usati per l'assegnazione delle porte effimere, permette cioè di modificare i valori illustrati in - fig.~\ref{fig:TCP_port_alloc}; prende due valori numerici, che indicano gli - estremi dell'intervallo. Si abbia cura di non definire un intervallo che si - sovrappone a quello delle porte usate per il \itindex{masquerading} - \textit{masquerading}, il kernel può gestire la sovrapposizione, ma si avrà - una perdita di prestazioni. Si imposti sempre un valore iniziale maggiore di - 1024 (o meglio ancora di 4096) per evitare conflitti con le porte usate dai - servizi noti. + fig.~\ref{fig:TCP_port_alloc}; prende due valori interi separati da spazi, + che indicano gli estremi dell'intervallo. Si abbia cura di non definire un + intervallo che si sovrappone a quello delle porte usate per il + \itindex{masquerading} \textit{masquerading}, il kernel può gestire la + sovrapposizione, ma si avrà una perdita di prestazioni. Si imposti sempre un + valore iniziale maggiore di 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}] permette di disabilitare per i socket \const{SOCK\_STREAM} la ricerca automatica della @@ -4411,11 +4425,17 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: 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\_recycle}] un valore logico, + disattivo di default, che abilita un rapido riutilizzo dei socket in stato + \texttt{TIME\_WAIT}. Non è opportuno abilitare questa opzione che può + causare problemi con il NAT. \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}] un valore + logico, attivo di default, che abilita la funzionalità del \textit{TCP + window scaling} definita + dall'\href{http://www.ietf.org/rfc/rfc1323.txt}{RFC~1323} \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_vegas\_cong\_avoid}]