Cambiati indici, aggiunto riferimento per inotify, e qualcosa su TCP_CORK
[gapil.git] / sockctrl.tex
index 5ce4c6b7af6b87c9a3dc90ea64834efc3ad5ec91..18cada6e51c6bb9b0a4e9faffa384ac59eba370c 100644 (file)
@@ -3074,17 +3074,20 @@ opzioni 
   trasmissione di tanti pacchetti piccoli, che comporta un utilizzo non
   ottimale della banda disponibile, un meccanismo di bufferizzazione dei
   pacchetti uscenti controllato da un apposito algoritmo (detto
   trasmissione di tanti pacchetti piccoli, che comporta un utilizzo non
   ottimale della banda disponibile, un meccanismo di bufferizzazione dei
   pacchetti uscenti controllato da un apposito algoritmo (detto
-  \textsl{algoritmo di Nagle}, vedi sez.\ref{sez:tcp_protocol_xxx}).
-  Il comportamento normale prevede invece che i pacchetti siano accumulati
+  \textsl{algoritmo di Nagle}, vedi sez.\ref{sez:tcp_protocol_xxx}).  Il
+  comportamento normale prevede invece che i pacchetti siano accumulati
   fintanto che non si raggiunge una quantità di dati considerata adeguata per
   fintanto che non si raggiunge una quantità di dati considerata adeguata per
-  eseguire la trasmissione. 
+  eseguire la trasmissione.
 
   Impostando questa opzione si disabilita questo meccanismo ed i pacchetti
   vengono inviati immediatamente qualunque sia la loro dimensione; l'opzione
   viene sovrascritta dall'eventuale impostazione \const{TCP\_CORK} (che blocca
   l'invio immediato), tuttavia quando la si abilita viene sempre forzato lo
   scaricamento della coda di invio (con conseguente trasmissione di tutti i
 
   Impostando questa opzione si disabilita questo meccanismo ed i pacchetti
   vengono inviati immediatamente qualunque sia la loro dimensione; l'opzione
   viene sovrascritta dall'eventuale impostazione \const{TCP\_CORK} (che blocca
   l'invio immediato), tuttavia quando la si abilita viene sempre forzato lo
   scaricamento della coda di invio (con conseguente trasmissione di tutti i
-  pacchetti pendenti), anche qualora si fosse già abilitata \const{TCP\_CORK}.
+  pacchetti pendenti), anche qualora si fosse già abilitata
+  \const{TCP\_CORK}.\footnote{si tenga presente però che \const{TCP\_CORK} può
+    essere specificata insieme a \const{TCP\_NODELAY} soltanto a partire dal
+    kernel 2.5.71.}
 
 \item[\const{TCP\_MAXSEG}] permette di leggere e modificare il valore della
   \itindex{Maximum~Segment~Size} MSS dei pacchetti uscenti, e se l'opzione è
 
 \item[\const{TCP\_MAXSEG}] permette di leggere e modificare il valore della
   \itindex{Maximum~Segment~Size} MSS dei pacchetti uscenti, e se l'opzione è
@@ -3095,7 +3098,13 @@ opzioni 
 
 \item[\const{TCP\_CORK}] quando questa opzione viene abilitata non vengono
   inviati pacchetti di dati fintanto che essa non venga disabilitata; a quel
 
 \item[\const{TCP\_CORK}] quando questa opzione viene abilitata non vengono
   inviati pacchetti di dati fintanto che essa non venga disabilitata; a quel
-  punto tutti i pacchetti rimasti in coda saranno inviati. 
+  punto tutti i dati rimasti in coda saranno inviati in un solo pacchetto.
+  Questa opzione viene usata per gestire direttamente il flusso dei dati
+  mettendo un ``\textsl{tappo}'' al flusso di uscita, in modo ottimizzare a
+  mano il throughput.
+
+  Questa opzione non è disponibile su tutti i kernel unix-like e deve essere
+  evitata se si vuole avere codice portabile.
 
 \item[\const{TCP\_KEEPINTVL}] 
 
 
 \item[\const{TCP\_KEEPINTVL}]