Tre righe su ''quickack''.
[gapil.git] / sockctrl.tex
index ea07241e4a2dda78cc3dd80177001da73293e7c5..d6da06a68604b27ce45b37d2406c44222d09c935 100644 (file)
@@ -3184,10 +3184,11 @@ seguente elenco:
   una dimensione minima pari a \texttt{SOCK\_MIN\_RCVBUF/2}. Questa opzione
   non deve essere utilizzata in codice che vuole essere portabile.
 
-\item[\const{TCP\_INFO}] permette di ricevere una serie di informazioni
-  relative al socket che il kernel restituisce in una speciale struttura
+\item[\const{TCP\_INFO}] opzione, specifica di Linux, ma introdotta anche in
+  altri kernel (ad esempio FreeBSD) di controllare lo stato di un socket TCP
+  in user space. L'opzione restituisce in una speciale struttura
   \struct{tcp\_info}, la cui definizione è riportata in
-  fig.~\ref{fig:tcp_info_struct}.
+  fig.~\ref{fig:tcp_info_struct}, tutta una serie di dati relativi al socket.
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -3199,9 +3200,33 @@ seguente elenco:
   \label{fig:tcp_info_struct}
 \end{figure}
 
-\item[\const{TCP\_QUICKACK}] abilita la modalità speciale \textit{quickack}.
+Con questa opzione diventa possibile ricevere una serie di informazioni
+relative al socket così da poter effettuare dei controlli, senza passare
+attraverso delle operazioni di lettura. Ad esempio si può verificare se un
+socket è stato chiuso con un codice come quello illustrato in
+fig.~\ref{fig:is_closing}.
 
-\item[\const{TCP\_CONGESTION}] Introdotta con il kernel 2.6.13.
+\begin{figure}[!htb]
+  \footnotesize \centering
+  \begin{minipage}[c]{15cm}
+    \includestruct{listati/tcp_info.h}
+  \end{minipage}
+  \caption{Codice della funzione \texttt{is\_closing.c}, che controlla lo stato
+    di un socket TCP per verificare se si sta chiudendo..}
+  \label{fig:is_closing}
+\end{figure}
+
+\item[\const{TCP\_QUICKACK}] abilita la modalità speciale \textit{quickack},
+  in cui i pacchetti ACK vengono inviati immediatamente senza le attese
+  talvolta imposte dal normale funzionamento del protocollo TCP. Questa
+  opzione prende un valore logico, e non è permanente, nel senso che si limita
+  a forzare un passaggio da o verso la modalità \textit{quickack}, le
+  operazioni successive potrebbero a loro volta entrare o uscire da questa
+  modalità a seconda delle condizioni (ad esempio in presenza di timeout
+  ritardati per i pacchetti ACK) o del processamento dei dati.
+
+\item[\const{TCP\_CONGESTION}] Introdotta con il kernel 2.6.13, non
+  documentata.
 
 \end{basedescript}