Cambiati indici, aggiunto riferimento per inotify, e qualcosa su TCP_CORK
[gapil.git] / sockctrl.tex
index ae340ef9484a64a5239109c8c813af2cdc09ee12..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
-  \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
-  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
-  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 è
@@ -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
-  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}] 
 
@@ -3245,7 +3254,7 @@ processo che riceve i segnali) che si effettuano chiamando \func{ioctl} con
 Benché non strettamente attinenti alla gestione dei socket, vale la pena di
 trattare qui l'interfaccia di accesso a basso livello ai dispositivi di rete
 che viene appunto fornita attraverso la funzione \texttt{ioctl}. Questa non è
-attinente a carattestiche specifiche di un qualche protocollo, ma si applica a
+attinente a caratteristiche specifiche di un qualche protocollo, ma si applica a
 tutti i socket, indipendentemente dal tipo o famiglia dello stesso, e permette
 di impostare e rilevare le funzionalità delle interfacce di rete.
 
@@ -3265,13 +3274,13 @@ Tutte le operazioni di questo tipo utilizzano come terzo argomento di
 il primo campo della struttura, \var{ifr\_name} per specificare il nome
 dell'interfaccia su cui si vuole operare (ad esempio \texttt{eth0},
 \texttt{ppp0}, ecc.), e si inseriscono (o ricevono) i valori relativi alle
-diversa carateristiche e funzionalità nel secondo campo, che come si può
+diversa caratteristiche e funzionalità nel secondo campo, che come si può
 notare è definito come una \ctyp{union} proprio in quanto il suo significato
 varia a secondo dell'operazione scelta.
 
 Si tenga inoltre presente che alcune di queste operazioni (in particolare
 quelle che modificano le caratteristiche dell'interfaccia) sono privilegiate e
-richiedono i privilegi di amministatore o la \itindex{capabilities}
+richiedono i privilegi di amministratore o la \itindex{capabilities}
 \textit{capability} \const{CAP\_NET\_ADMIN}, altrimenti si otterrà un errore
 di \errval{EPERM}.  Le costanti che identificano le operazioni disponibili
 sono le seguenti:
@@ -3726,4 +3735,12 @@ accessibile con \texttt{man 7 ip}, sono i seguenti:
 % LocalWords:  Documentation SIOCATMARK SIOCOUTQ FIONREAD TIOCOUTQ Denial work
 % LocalWords:  netfilter scheduler mark ARP DHCP BOOTP RARP nonlocal sniffer
 % LocalWords:  linux NODELAY MAXSEG CORK KEEPIDLE KEEPINTVL KEEPCNT SYNCNT INFO
-% LocalWords:  DEFER ACCEPT WINDOW CLAMP QUICKACK CONGESTION ENCAP urgent
+% 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:  SIOCGIFMETRIC SIOCSIFMETRIC SIOCGIFMTU SIOCSIFMTU SIOCGIFHWADDR
+% LocalWords:  SIOCSIFHWADDR SIOCSIFHWBROADCAST SIOCGIFMAP SIOCSIFMAP
+% LocalWords:  SIOCADDMULTI SIOCDELMULTI SIOCGIFTXQLEN SIOCSIFTXQLEN
+% LocalWords:  SIOCSIFNAME SIOCGIFCONF