X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=sockctrl.tex;h=fc4a614d999ef24884a7e91837d871705f2f79b5;hb=154622c3382b558d8c0b7984ee76d96d09d44c71;hp=f98df0d8bf8585588047fcf323ef98ba89699fdb;hpb=78164bc1d89064e9341ea7cd27f4b1ca2d606d50;p=gapil.git diff --git a/sockctrl.tex b/sockctrl.tex index f98df0d..fc4a614 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 @@ -4051,9 +4065,9 @@ questi per % ottimizzazione per l'uso come router. \item[\procrelfile{/proc/sys/net/core}{somaxconn}] imposta la dimensione - massima del \textit{backlog} della funzione \func{listen} (vedi - sez.~\ref{sec:TCP_func_listen}), e corrisponde al valore della costante - \const{SOMAXCONN}; il suo valore di default è 128. + massima utilizzabile per il \textit{backlog} della funzione \func{listen} + (vedi sez.~\ref{sec:TCP_func_listen}), e corrisponde al valore della + costante \const{SOMAXCONN}; il suo valore di default è 128. \end{basedescript} @@ -4068,8 +4082,8 @@ vengono usati all'interno di quest'ultimo (come ICMP, TCP e UDP) o a fianco dello stesso (come ARP). I file che consentono di controllare le caratteristiche specifiche del -protocollo IP in quanto tale, descritti anche nella pagina di manuale -accessibile con \texttt{man 7 ip}, sono i seguenti: +protocollo IP in quanto tale, che sono descritti anche nella relativa pagina +di manuale accessibile con \texttt{man 7 ip}, sono i seguenti: \begin{basedescript}{\desclabelwidth{3.5cm}\desclabelstyle{\nextlinelabel}} \item[\procrelfile{/proc/sys/net/ipv4}{ip\_default\_ttl}] imposta il valore di @@ -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}]