particolare è possibile conoscere l'interfaccia su cui è stato ricevuto un
pacchetto (nel campo \var{ipi\_ifindex}),\footnote{in questo campo viene
restituito il valore numerico dell'indice dell'interfaccia,
- sec.~\ref{sec:sock_ioctl_netdevice}.} l'indirizzo locale da esso
+ sez.~\ref{sec:sock_ioctl_netdevice}.} l'indirizzo locale da esso
utilizzato (nel campo \var{ipi\_spec\_dst}) e l'indirizzo remoto dello
stesso (nel campo \var{ipi\_addr}).
\end{figure}
Per eseguire questa operazione occorrerà allocare preventivamente un buffer di
-contentente un vettore di strutture \struct{ifreq}. La dimensione (in byte) di
+contenente un vettore di strutture \struct{ifreq}. La dimensione (in byte) di
questo buffer deve essere specificata nel campo \var{ifc\_len} di
\struct{ifconf}, mentre il suo indirizzo andrà specificato nel campo
\var{ifc\_req}. Qualora il buffer sia stato allocato come una stringa, il suo
il codice completo è fornito nei sorgenti allegati alla guida.
Il programma inizia (\texttt{\small 7--11}) con la creazione del socket
-necessario ad eseguire l'operazone, dopo di che si inizializzano
+necessario ad eseguire l'operazione, dopo di che si inizializzano
opportunamente (\texttt{\small 13--14}) i valori della struttura
\struct{ifconf} indicando la dimensione del buffer ed il suo
indirizzo;\footnote{si noti come in questo caso si sia specificato l'indirizzo
caratteristiche specifiche del protocollo TCP, elencati anche nella rispettiva
pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
\begin{basedescript}{\desclabelwidth{3.9cm}\desclabelstyle{\nextlinelabel}}
-\item[\texttt{tcp\_abort\_on\_overflow}]
-\item[\texttt{tcp\_adv\_win\_scale}]
+
+\item[\texttt{tcp\_abort\_on\_overflow}] è un valore logico (disabilitato di
+ default) che indica di azzerare le connessioni quando il dispositivo che le
+ riceve è troppo lento ed incapace di accettarle. Questo consente di
+ recuperare le connessioni se si è avuto un eccesso dovuto ad un qualche
+ picco di traffico, ma ovviamente va a discapito dei client che interrogano
+ il server. Pertanto è da abilitare soltanto quando si è sicuri che non è
+ possibile ottimizzare il server in modo che sia in grado di accettare
+ connessioni più rapidamente.
+
+\item[\texttt{tcp\_adv\_win\_scale}] permette di impostare il valore di scala
+ usato nell'opzione \textit{window scale} del protocollo TCP (vedi
+ sez.~\ref{sec:TCP_TCP_opt})
+
\item[\texttt{tcp\_app\_win}]
\item[\texttt{tcp\_bic\_low\_window}]
\item[\texttt{tcp\_bic\_fast\_convergence}]
\item[\texttt{tcp\_dsack}]
+
\item[\texttt{tcp\_ecn}]
+
\item[\texttt{tcp\_fack}]
\item[\texttt{tcp\_fin\_timeout}] specifica il numero di secondi (il default è
% LocalWords: metric EOPNOTSUPP mtu hwaddr ARPHRD interrupt DMA map qlen silly
% LocalWords: rename ifconf syndrome dell'ACK FTP ACCEPTFILTER advanced reno
% LocalWords: congestion control Networking cubic CUBIC highspeed HSTCP htcp
-% LocalWords: HTCP hybla HYBLA scalable SCALABLE
+% LocalWords: HTCP hybla HYBLA scalable SCALABLE ifc req iflist access ntoa
%%% Local Variables:
%%% mode: latex