Correzioni ortografiche e poco altro.
[gapil.git] / sockctrl.tex
index ea07241e4a2dda78cc3dd80177001da73293e7c5..4eb16391ee0a5d077814fabdfa068597c654d75e 100644 (file)
@@ -2347,7 +2347,7 @@ connessione non esiste pi
   con l'invio di un segmento FIN all'altro capo della connessione.} In questo
 caso all'invio del messaggio di \textit{keep-alive} si otterrà come risposta
 un segmento RST che indica che l'altro capo non riconosce più l'esistenza
-della connessione ed il socket verrà chiuso riportanto un errore di
+della connessione ed il socket verrà chiuso riportando un errore di
 \errcode{ECONNRESET}.
 
 Se invece non viene ricevuta nessuna risposta (indice che la macchina non è
@@ -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,35 @@ 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 una funzione analoga a quella illustrata in
+fig.~\ref{fig:is_closing}, in cui si usa il campo \var{tcpi\_state} di
+\struct{tcp\_info} per controllare lo stato del socket.
 
-\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 o disabilita 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 al momento della chiamata un passaggio da o verso la
+  modalità \textit{quickack}; le operazioni successive potrebbero a loro volta
+  entrare o uscire da questa modalità a seconda del processo interno del
+  protocollo o dalle condizioni della connessione (ad esempio in presenza di
+  timeout ritardati per i pacchetti ACK).
+
+\item[\const{TCP\_CONGESTION}] Introdotta con il kernel 2.6.13, non è
+  documentata.
 
 \end{basedescript}
 
@@ -3891,14 +3918,18 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
 %%% End: 
 % LocalWords:  quest'ultime neigh dev weight cong mod somaxconn Di SIOCINQ DoS
 % LocalWords:  Documentation SIOCATMARK SIOCOUTQ FIONREAD TIOCOUTQ Denial work
-% LocalWords:  netfilter scheduler mark ARP DHCP BOOTP RARP nonlocal sniffer
+% LocalWords:  netfilter scheduler mark ARP DHCP BOOTP RARP nonlocal sniffer is
 % LocalWords:  linux NODELAY MAXSEG CORK KEEPIDLE KEEPINTVL KEEPCNT SYNCNT INFO
 % LocalWords:  DEFER ACCEPT WINDOW CLAMP QUICKACK CONGESTION ENCAP urgent MSS
 % LocalWords:  Segment SYN accept advertised window info quickack Nagle ifreq
 % LocalWords:  ifr ppp union EPERM SIOCGIFNAME dell' interface index IFF NOARP
 % LocalWords:  SIOCGIFINDEX SIOCGIFFLAGS POINTOPOINT RUNNING PROMISC NOTRAILERS
-% LocalWords:  ALLMULTI bundle PORTSEL ifmap AUTOMEDIA DYNAMIC SIOCSIFFLAGS
+% LocalWords:  ALLMULTI bundle PORTSEL ifmap AUTOMEDIA DYNAMIC SIOCSIFFLAGS way
 % LocalWords:  SIOCGIFMETRIC SIOCSIFMETRIC SIOCGIFMTU SIOCSIFMTU SIOCGIFHWADDR
-% LocalWords:  SIOCSIFHWADDR SIOCSIFHWBROADCAST SIOCGIFMAP SIOCSIFMAP
-% LocalWords:  SIOCADDMULTI SIOCDELMULTI SIOCGIFTXQLEN SIOCSIFTXQLEN
-% LocalWords:  SIOCSIFNAME SIOCGIFCONF
+% LocalWords:  SIOCSIFHWADDR SIOCSIFHWBROADCAST SIOCGIFMAP SIOCSIFMAP sendfile
+% LocalWords:  SIOCADDMULTI SIOCDELMULTI SIOCGIFTXQLEN SIOCSIFTXQLEN three syn
+% LocalWords:  SIOCSIFNAME SIOCGIFCONF handshake retries MIN FreeBSD closing Mb
+% LocalWords:  abort overflow adv win app bic convergence dsack ecn fack frto
+% LocalWords:  intvl probes latency orphans l'ACK SYNQ HSIZE tw buckets mem rfc
+% LocalWords:  orphan reordering collapse sack stdurg synack syncookies recycle
+% LocalWords:  timestamps scaling vegas avoid westwood