Correzioni ortografiche e materiale su sysctl del TCP
authorSimone Piccardi <piccardi@gnulinux.it>
Tue, 4 Sep 2007 13:48:22 +0000 (13:48 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Tue, 4 Sep 2007 13:48:22 +0000 (13:48 +0000)
errors.tex
fileadv.tex
filedir.tex
netlayer.tex
process.tex
sockctrl.tex
system.tex
tcpsock.tex
thread.tex

index 692d179ebb5921fe6f2d7dea0c9c724dc9a79b67..1b739be596c98d13f90e56497b36b9009d3305ad 100644 (file)
@@ -500,7 +500,7 @@ messaggio.
 % LocalWords:  SysV EMULTIHOP Multihop attempted ENODATA ENOLINK been severed
 % LocalWords:  ENOMSG desired ENOSR streams resources ENOSTR stream EOVERFLOW
 % LocalWords:  Value large defined STAT EPROTO ETIME Timer expired group wait
-% LocalWords:  waitpid Specification cap USB did respond
+% LocalWords:  waitpid Specification cap USB did respond Stale
 
 
 %%% Local Variables: 
index 4b603130f60921044b11ed1c67bcb1d20c99a5aa..e881d60111e12615ad2844a78a38e18491f94d1b 100644 (file)
@@ -3389,7 +3389,7 @@ all'accesso al disco; il suo prototipo 
 
 La funzione richiede che venga letto in anticipo il contenuto del file
 \param{fd} a partire dalla posizione \param{offset} e per un ammontare di
-\param{count} bytes, in modo da portarlo in cache.  La funzione usa la
+\param{count} byte, in modo da portarlo in cache.  La funzione usa la
 \index{memoria~virtuale} memoria virtuale ed il meccanismo della
 \index{paginazione} paginazione per cui la lettura viene eseguita in blocchi
 corrispondenti alle dimensioni delle pagine di memoria, ed i valori di
@@ -3444,13 +3444,13 @@ definisce la macro \macro{\_XOPEN\_SOURCE} ad almeno 600, 
 La funzione dichiara al kernel le modalità con cui intende accedere alla
 regione del file indicato da \param{fd} che inizia alla posizione
 \param{offset} e si estende per \param{len} byte. Se per \param{len} si usa un
-valora nullo la regione coperta sarà da \param{offset} alla fine del
+valore nullo la regione coperta sarà da \param{offset} alla fine del
 file.\footnote{questo è vero solo per le versioni più recenti, fino al kernel
   2.6.6 il valore nullo veniva interpretato letteralmente.} Le modalità sono
 indicate dall'argomento \param{advice} che è una maschera binaria dei valori
 illustrati in tab.~\ref{tab:posix_fadvise_flag}. Si tenga presente comunque
 che la funzione dà soltanto un avvertimento, non esiste nessun vincolo per il
-kernel, che utilzza semplicemente l'informazione.
+kernel, che utilizza semplicemente l'informazione.
 
 \begin{table}[htb]
   \centering
@@ -3465,11 +3465,11 @@ kernel, che utilzza semplicemente l'informazione.
                                    comportamento sarà identico a quello che si
                                    avrebbe senza nessun avviso.\\ 
     \const{POSIX\_FADV\_SEQUENTIAL}& L'applicazione si aspetta di accedere di
-                                   accedere ai dati spercificati in maniera
+                                   accedere ai dati specificati in maniera
                                    sequenziale, a partire dalle posizioni più
                                    basse.\\ 
     \const{POSIX\_FADV\_RANDOM}  & I dati saranno letti in maniera
-                                   completamete causale.\\
+                                   completamente causale.\\
     \const{POSIX\_FADV\_NOREUSE} & I dati saranno acceduti una sola volta.\\ 
     \const{POSIX\_FADV\_WILLNEED}& I dati saranno acceduti a breve.\\ 
     \const{POSIX\_FADV\_DONTNEED}& I dati non saranno acceduti a breve.\\ 
@@ -3484,7 +3484,7 @@ kernel, che utilzza semplicemente l'informazione.
 Anche \func{posix\_fadvise} si appoggia al sistema della memoria virtuale ed
 al meccanismo standard del \textit{readahead} utilizzato dal kernel; in
 particolare con \const{POSIX\_FADV\_SEQUENTIAL} si raddoppia la dimensione
-dell'ammontare di dati letti preventivamente rispetto al default, apettandosi
+dell'ammontare di dati letti preventivamente rispetto al default, aspettandosi
 appunto una lettura sequenziale che li utilizzerà, mentre con
 \const{POSIX\_FADV\_RANDOM} si disabilita del tutto il suddetto meccanismo,
 dato che con un accesso del tutto casuale è inutile mettersi a leggere i dati
@@ -3548,7 +3548,7 @@ possibile scrivere sul file indicato dall'argomento \param{fd} nella regione
 che inizia dalla posizione \param{offset} e si estende per \param{len} byte;
 se questa si estende oltre la fine del file le dimensioni di quest'ultimo
 saranno incrementate di conseguenza. Dopo aver eseguito con successo la
-funzione è garantito che una scrittura nella regione inidicata non fallirà per
+funzione è garantito che una scrittura nella regione indicata non fallirà per
 mancanza di spazio disco.
 
 
@@ -4467,10 +4467,11 @@ possibilit
 % LocalWords:  NUL sizeof casting printevent nread limits sysconf SC wrapper Di
 % LocalWords:  splice result argument DMA controller zerocopy Linus Larry Voy
 % LocalWords:  Jens Anxboe vmsplice seek ESPIPE GIFT TCP CORK MSG splicecp nr
-% LocalWords:  nwrite segs patch readahead
+% LocalWords:  nwrite segs patch readahead posix fadvise TC advice FADV NORMAL
 
 
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+% LocalWords:  SEQUENTIAL NOREUSE WILLNEED DONTNEED streaming fallocate EFBIG
index e4d61d0e270dbcc52b34e07609976bd41eb34748..04eef2a533beb608d196dca9a718924bca81b744 100644 (file)
@@ -525,7 +525,7 @@ sia come \itindex{pathname} \textit{pathname} assoluto che come
 \itindex{pathname} \textit{pathname} relativo.
 
 I permessi di accesso (vedi sez.~\ref{sec:file_access_control}) con cui la
-directory viene creata sono specificati dall'argomemto \param{mode}, i cui
+directory viene creata sono specificati dall'argomento \param{mode}, i cui
 possibili valori sono riportati in tab.~\ref{tab:file_permission_const}; si
 tenga presente che questi sono modificati dalla maschera di creazione dei file
 (si veda sez.~\ref{sec:file_perm_management}).  La titolarità della nuova
@@ -2558,7 +2558,7 @@ classici mantenuti negli inode.
 Per risolvere questo problema alcuni sistemi unix-like (e fra questi anche
 Linux) hanno introdotto un meccanismo generico che consenta di associare delle
 informazioni ai singoli file,\footnote{l'uso più comune è quello della ACL,
-  che tratteremo nella prossimaa sezione, ma si possono inserire anche altre
+  che tratteremo nella prossima sezione, ma si possono inserire anche altre
   informazioni.}  detto \textit{Extended Attributes}. Gli \textsl{attributi
   estesi} non sono altro che delle coppie nome/valore che sono associate
 permanentemente ad un oggetto sul filesystem, analoghi di quello che sono le
@@ -2597,7 +2597,7 @@ le esigenze pi
 rispondere in maniera adeguata a situazioni che richiedono una gestione
 complessa dei permessi di accesso.\footnote{già un requisito come quello di
   dare accesso in scrittura ad alcune persone ed in sola lettura ad altre non
-  si può soddisfare in maniera soddifacente.}
+  si può soddisfare in maniera soddisfacente.}
 
 Per questo motivo erano state progressivamente introdotte nelle varie versioni
 di Unix dei meccanismi di gestione dei permessi dei file più flessibili, nella
@@ -2611,14 +2611,14 @@ Gli obiettivi erano per
 finanziamenti vennero ritirati senza che si fosse arrivati alla definizione di
 uno standard, dato però che una parte della documentazione prodotta era di
 alta qualità venne deciso di rilasciare al pubblico la diciassettesima bozza
-del documento, quella che va sotto il nome di POSIX 1003.1e Draft 17, che è
-divenuta la base sulla quale si definiscono quelle che vanno sotto il nome di
-\textit{Posix ACL}.
+del documento, quella che va sotto il nome di \textit{POSIX 1003.1e Draft 17},
+che è divenuta la base sulla quale si definiscono quelle che vanno sotto il
+nome di \textit{Posix ACL}.
 
 A differenza di altri sistemi (ad esempio FreeBSD) nel caso di Linux si è
 scelto di realizzare le ACL attraverso l'interfaccia degli \textit{Extended
   Attributes}, e fornire tutte le relative funzioni di gestione tramite una
-liberia, \texttt{libacl} che nasconde i dettagli implementativi delle stesse e
+libreria, \texttt{libacl} che nasconde i dettagli implementativi delle stesse e
 presenta ai programmi una interfaccia che fa riferimento allo standard POSIX
 1003.1e.
 
@@ -2757,7 +2757,7 @@ programmi e librerie) di cui il server potrebbe avere bisogno.
 % LocalWords:  gid Control List patch mandatory control execute group other all
 % LocalWords:  dell' effective passwd IGID locking swap saved text IRWXU IRWXG
 % LocalWords:  IRWXO ext reiser capability FSETID mask capabilities chroot jail
-% LocalWords:  FTP Di filter reiserfs
+% LocalWords:  FTP Di filter reiserfs Attributes Solaris Posix FreeBSD libacl
 
 %%% Local Variables: 
 %%% mode: latex
index a992e0ccb11223e58152bafd4395cc1c4eb4d4fb..a9c7222d137f00c80c556da19af11ed034452825 100644 (file)
@@ -7,7 +7,7 @@
 %% with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the
 %% license is included in the section entitled "GNU Free Documentation
 %% License".
-%%
+%% 
 
 \chapter{Il livello di rete}
 \label{cha:network_layer}
index b5cfe14b9f019a61b22cff38013a2d88cc09b5a3..2daf77d6a2c33ca7eeb52fc3b0707f60b90b21cd 100644 (file)
@@ -50,7 +50,7 @@ specificato il flag \texttt{-static} durante la compilazione, tutti i
 programmi in Linux sono incompleti e necessitano di essere \textsl{collegati}
 alle librerie condivise quando vengono avviati.  La procedura è controllata da
 alcune variabili di ambiente e dal contenuto di \conffile{/etc/ld.so.conf}. I
-dettagli sono riportati nella man page di \cmd{ld.so}.
+dettagli sono riportati nella pagina di manuale di \cmd{ld.so}.
 
 Il sistema fa partire qualunque programma chiamando la funzione \func{main};
 sta al programmatore chiamare così la funzione principale del programma da cui
@@ -406,7 +406,7 @@ seguenti segmenti:
     automaticamente il codice necessario, seguendo quella che viene chiamata
     una \textit{calling convention}; quella standard usata con il C ed il C++
     è detta \textit{cdecl} e prevede che gli argomenti siano caricati nello
-    stack fal chiamante da destra a sinistra, e che si il chimante stesso ad
+    stack dal chiamante da destra a sinistra, e che si il chiamante stesso ad
     eseguire la ripulitura dello stack al ritorno della funzione, se ne
     possono però utilizzare di alternative (ad esempio nel pascal gli
     argomenti sono inseriti da sinistra a destra ed è compito del chiamato
@@ -1712,7 +1712,8 @@ dichiarandole tutte come \direct{volatile}.\footnote{la direttiva
 % LocalWords:  clearenv libc value overwrite string reference result argument
 % LocalWords:  socket variadic ellipsis header stdarg execl self promoting last
 % LocalWords:  float double short register type dest src extern setjmp jmp buf
-% LocalWords:  env return if while sottoprocesso Di
+% LocalWords:  env return if while Di page cdecl 
+% LocalWords:  environment
 
 %%% Local Variables: 
 %%% mode: latex
index f5a4c43c9d7dfaf1e5df63d7e73366e5a8204e70..a1f5d8be3e2497085a63db0678e424691518f3b6 100644 (file)
@@ -2107,7 +2107,7 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
   \func{setsockopt} darà un errore di \errcode{ENOPROTOOPT}. 
 
 \item[\const{SO\_SNDLOWAT}] questa opzione imposta il valore che indica il
-  numero minimo di byte che devono essere presenti nel buffer di scrittura
+  numero minimo di byte che devono essere presenti nel buffer di trasmissione
   perché il kernel li invii al protocollo successivo, consentendo ad una
   \func{write} di ritornare o segnalando ad una \func{select} (vedi
   sez.~\ref{sec:TCP_sock_select}) che è possibile eseguire una scrittura.
@@ -2240,17 +2240,17 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
   tipo \const{SOCK\_STREAM}.
 
 \item[\const{SO\_SNDBUF}] questa opzione imposta la dimensione del buffer di
-  uscita del socket. Prende per \param{optval} un intero indicante il numero
-  di byte. Il valore di default ed il valore massimo che si possono
+  trasmissione del socket. Prende per \param{optval} un intero indicante il
+  numero di byte. Il valore di default ed il valore massimo che si possono
   specificare come argomento per questa opzione sono impostabili
   rispettivamente tramite gli opportuni valori di \func{sysctl} (vedi
   sez.~\ref{sec:sock_sysctl}).
 
 \item[\const{SO\_RCVBUF}] questa opzione imposta la dimensione del buffer di
-  ingresso del socket. Prende per \param{optval} un intero indicante il numero
-  di byte. Il valore di default ed il valore massimo che si può specificare
-  come argomento per questa opzione sono impostabili tramiti gli opportuni
-  valori di \func{sysctl} (vedi sez.~\ref{sec:sock_sysctl}).
+  ricezione del socket. Prende per \param{optval} un intero indicante il
+  numero di byte. Il valore di default ed il valore massimo che si può
+  specificare come argomento per questa opzione sono impostabili tramiti gli
+  opportuni valori di \func{sysctl} (vedi sez.~\ref{sec:sock_sysctl}).
 
   Si tenga presente che nel caso di socket TCP, per entrambe le opzioni
   \const{SO\_RCVBUF} e \const{SO\_SNDBUF}, il kernel alloca effettivamente una
@@ -2267,7 +2267,7 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
     \procrelfile{/proc/sys/net/ipv4}{tcp\_rmem} in
     \texttt{/proc/sys/net/ipv4}, vedi sez.~\ref{sec:sock_sysctl}.} indica la
   memoria effettivamente impiegata.  Si tenga presente inoltre che le
-  modifiche alle dimensioni dei buffer di ingresso e di uscita, per poter
+  modifiche alle dimensioni dei buffer di ricezione e trasmissione, per poter
   essere effettive, devono essere impostate prima della chiamata alle funzioni
   \func{listen} o \func{connect}.
 
@@ -2304,7 +2304,7 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
 
 \item[\const{SO\_ATTACH\_FILTER}] questa opzione permette di agganciare ad un
   socket un filtro di pacchetti che consente di selezionare quali pacchetti,
-  fra tutti quelli ricevuti, verranno letti. Viene usato pincipalmente con i
+  fra tutti quelli ricevuti, verranno letti. Viene usato principalmente con i
   socket di tipo \const{PF\_PACKET} con la libreria \texttt{libpcap} per
   implementare programmi di cattura dei pacchetti, torneremo su questo in
   sez.~\ref{sec:packet_socket}.
@@ -2407,7 +2407,7 @@ comunicare con il server via rete.
 \end{figure}
 
 Abilitandola dopo un certo tempo le connessioni effettivamente terminate
-verrano comunque chiuse per cui, utilizzando ad esempio una \func{select}, se
+verranno comunque chiuse per cui, utilizzando ad esempio una \func{select}, se
 be potrà rilevare la conclusione e ricevere il relativo errore. Si tenga
 presente però che non può avere la certezza assoluta che un errore di
 \errcode{ETIMEDOUT} ottenuto dopo aver abilitato questa opzione corrisponda
@@ -2762,7 +2762,7 @@ sono definite in \file{netinet/ip.h}, ed accessibili includendo detto file.
     \const{IP\_DROP\_MEMBERSHIP}&         &$\bullet$&   &\struct{ip\_mreqn}& 
       Si sgancia da un gruppo di \textit{multicast}.\\
     \const{IP\_MULTICAST\_IF}   &         &$\bullet$&   &\struct{ip\_mreqn}& 
-      Omposta l'interfaccia locale di un socket \itindex{multicast} 
+      Imposta l'interfaccia locale di un socket \itindex{multicast} 
       \textit{multicast}.\\ 
    \hline
   \end{tabular}
@@ -3121,9 +3121,10 @@ quantit
     quando un programma di terminale invia un segmento TCP per ogni tasto
     premuto, 40 byte di intestazione di protocollo con 1 byte di dati
     trasmessi; per evitare situazioni del genere è stato introdotto
-    l'\textsl{algoritmo di Nagle}.}  Questo meccanismo è controllato da un
-  apposito algoritmo (detto \textsl{algoritmo di Nagle}, vedi
-  sez.~\ref{sez:tcp_protocol_xxx}). Il comportamento normale del protocollo
+    \index{algoritmo~di~Nagle} l'\textsl{algoritmo di Nagle}.}  Questo
+  meccanismo è controllato da un apposito algoritmo (detto
+  \index{algoritmo~di~Nagle} \textsl{algoritmo di Nagle}, vedi
+  sez.~\ref{sez:tcp_protocol_xxx}).  Il comportamento normale del protocollo
   prevede che i dati siano accumulati fintanto che non si raggiunge una
   quantità considerata adeguata per eseguire la trasmissione di un singolo
   segmento.
@@ -3134,10 +3135,11 @@ quantit
     richiesta HTTP.} in tal caso l'attesa introdotta dall'algoritmo di
   bufferizzazione non soltanto è inutile, ma peggiora le prestazioni
   introducendo un ritardo.  Impostando questa opzione si disabilita l'uso
-  dell'\textsl{algoritmo di Nagle} ed i dati vengono inviati immediatamente in
-  singoli segmenti, qualunque sia la loro dimensione.  Ovviamente l'uso di
-  questa opzione è dedicato a chi ha esigenze particolari come quella
-  illustrata, che possono essere stabilite solo per la singola applicazione.
+  \index{algoritmo~di~Nagle} dell'\textsl{algoritmo di Nagle} ed i dati
+  vengono inviati immediatamente in singoli segmenti, qualunque sia la loro
+  dimensione.  Ovviamente l'uso di questa opzione è dedicato a chi ha esigenze
+  particolari come quella illustrata, che possono essere stabilite solo per la
+  singola applicazione.
 
   Si tenga conto che questa opzione viene sovrascritta dall'eventuale
   impostazione dell'opzione \const{TCP\_CORK} (il cui scopo è sostanzialmente
@@ -3160,15 +3162,15 @@ quantit
 \item[\const{TCP\_CORK}] questa opzione è il complemento naturale di
   \const{TCP\_NODELAY} e serve a gestire a livello applicativo la situazione
   opposta, cioè quella in cui si sa fin dal principio che si dovranno inviare
-  grosse quantità di dati. Anche in questo caso l'\textsl{algoritmo di Nagle}
-  tenderà a suddividerli in dimensioni da lui ritenute
-  opportune,\footnote{l'algoritmo cerca di tenere conto di queste situazioni,
-    ma essendo un algoritmo generico tenderà comunque ad introdurre delle
-    suddivisioni in segmenti diversi, anche quando potrebbero non essere
-    necessarie, con conseguente spreco di banda.}  ma sapendo fin dall'inizio
-  quale è la dimensione dei dati si potranno di nuovo ottenere delle migliori
-  prestazioni disabilitandolo, e gestendo direttamente l'invio del nostro
-  blocco di dati in soluzione unica.
+  grosse quantità di dati. Anche in questo caso \index{algoritmo~di~Nagle}
+  l'\textsl{algoritmo di Nagle} tenderà a suddividerli in dimensioni da lui
+  ritenute opportune,\footnote{l'algoritmo cerca di tenere conto di queste
+    situazioni, ma essendo un algoritmo generico tenderà comunque ad
+    introdurre delle suddivisioni in segmenti diversi, anche quando potrebbero
+    non essere necessarie, con conseguente spreco di banda.}  ma sapendo fin
+  dall'inizio quale è la dimensione dei dati si potranno di nuovo ottenere
+  delle migliori prestazioni disabilitandolo, e gestendo direttamente l'invio
+  del nostro blocco di dati in soluzione unica.
 
   Quando questa opzione viene abilitata non vengono inviati segmenti di dati
   fintanto che essa non venga disabilitata; a quel punto tutti i dati rimasti
@@ -3990,15 +3992,16 @@ socket.  Quelli descritti anche nella pagina di manuale, accessibile con
 
 \begin{basedescript}{\desclabelwidth{2.2cm}\desclabelstyle{\nextlinelabel}}
 \item[\procrelfile{/proc/sys/net/core}{rmem\_default}] imposta la dimensione
-  di default del buffer di lettura (cioè per i dati in ingresso) dei socket.
+  di default del buffer di ricezione (cioè per i dati in ingresso) dei socket.
 \item[\procrelfile{/proc/sys/net/core}{rmem\_max}] imposta la dimensione
-  massima che si può assegnare al buffer di ingresso dei socket attraverso
+  massima che si può assegnare al buffer di ricezione dei socket attraverso
   l'uso dell'opzione \const{SO\_RCVBUF}.
 \item[\procrelfile{/proc/sys/net/core}{wmem\_default}] imposta la dimensione
-  di default del buffer di scrittura (cioè per i dati in uscita) dei socket.
+  di default del buffer di trasmissione (cioè per i dati in uscita) dei
+  socket.
 \item[\procrelfile{/proc/sys/net/core}{wmem\_max}] imposta la dimensione
-  massima che si può assegnare al buffer di uscita dei socket attraverso l'uso
-  dell'opzione \const{SO\_SNDBUF}.
+  massima che si può assegnare al buffer di trasmissione dei socket attraverso
+  l'uso dell'opzione \const{SO\_SNDBUF}.
 \item[\procrelfile{/proc/sys/net/core}{message\_cost},
   \procrelfile{/proc/sys/net/core}{message\_burst}] contengono le impostazioni
   del \itindex{bucket~filter} \textit{bucket filter} che controlla l'emissione
@@ -4097,7 +4100,7 @@ di manuale accessibile con \texttt{man 7 ip}, sono i seguenti:
   valore di default è 64, e normalmente non c'è nessuna necessità di
   modificarlo.\footnote{l'unico motivo sarebbe per raggiungere macchine
     estremamente ``{lontane}'' in termini di \textit{hop}, ma è praticamente
-    impossible trovarne.} Aumentare il valore è una pratica poco gentile, in
+    impossibile trovarne.} Aumentare il valore è una pratica poco gentile, in
   quanto in caso di problemi di routing si allunga inutilmente il numero di
   ritrasmissioni.
 
@@ -4353,7 +4356,7 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
   
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_mem}] viene usato dallo stack TCP
-  per gestire le modalità con cui esso utlizzerà la memoria. Prende una
+  per gestire le modalità con cui esso utilizzerà la memoria. Prende una
   tripletta di valori interi, che indicano un numero di pagine:
 
   \begin{itemize*}
@@ -4425,13 +4428,13 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
 
   \begin{itemize*}
   \item il primo valore, chiamato \textit{min} nelle pagine di manuale, indica
-    la dimensione minima del buffer di ricezione; il default è 4Kb, ma in
-    sistemi con poca memoria viene automaticamente ridotto a
+    la dimensione minima in byte del buffer di ricezione; il default è 4Kb, ma
+    in sistemi con poca memoria viene automaticamente ridotto a
     \const{PAGE\_SIZE}.  Questo valore viene usato per assicurare che anche in
     situazioni di pressione sulla memoria (vedi quanto detto per
-    \procrelfile{/proc/sys/net/ipv4}{tcp\_mem}) le allocazioni al di sotto di
+    \procrelfile{/proc/sys/net/ipv4}{tcp\_rmem}) le allocazioni al di sotto di
     questo limite abbiamo comunque successo.  Questo valore non viene comunque
-    ad incidere sulla dimensione del buffer di lettura di un singolo socket
+    ad incidere sulla dimensione del buffer di ricezione di un singolo socket
     dichiarata con l'opzione \const{SO\_RCVBUF}.
 
   \item il secondo valore, denominato \textit{default} nelle pagine di
@@ -4447,17 +4450,17 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
     \procrelfile{/proc/sys/net/ipv4}{tcp\_window\_scaling}).
 
   \item il terzo valore, denominato \textit{max} nelle pagine di manuale,
-    indica la dimensione massima, in byte, del buffer di ricezione di un
-    socket TCP; il default è 174760 byte, che viene ridotto automaticamente a
-    87380 per sistemi con poca memoria. Il valore non può comunque eccedere il
+    indica la dimensione massima in byte del buffer di ricezione di un socket
+    TCP; il default è 174760 byte, che viene ridotto automaticamente a 87380
+    per sistemi con poca memoria. Il valore non può comunque eccedere il
     limite generale per tutti i socket posto con
     \procfile{/proc/sys/net/core/rmem\_max}. Questo valore non viene ad
-    incidere sulla dimensione del buffer di lettura di un singolo socket
+    incidere sulla dimensione del buffer di ricezione di un singolo socket
     dichiarata con l'opzione \const{SO\_RCVBUF}.
   \end{itemize*}
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_sack}] indica al kernel di
-  utilizzare il meccanismo del \textit{TCP selective aknowledment} definito
+  utilizzare il meccanismo del \textit{TCP selective acknowledgement} definito
   nell'\href{http://www.ietf.org/rfc/rfc2018.txt}{RFC~2018}. Prende un valore
   logico e di default è abilitato.
 
@@ -4471,12 +4474,12 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
   dar luogo a problemi di interoperabilità.
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_synack\_retries}] indica il numero
-  massimo di volte che verrà ritasmesso il segmento SYN/ACK nella creazione di
+  massimo di volte che verrà ritrasmesso il segmento SYN/ACK nella creazione di
   una connessione (vedi sez.~\ref{sec:TCP_conn_cre}). Prende un valore intero
   ed il valore di default è 5; non si deve superare il valore massimo di 255.
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_syncookies}] abilita i \textit{TCP
-    syncookies}.\footnote{per poter usare quasta funzionalità è necessario
+    syncookies}.\footnote{per poter usare questa funzionalità è necessario
     avere abilitato l'opzione \texttt{CONFIG\_SYN\_COOKIES} nella compilazione
     del kernel.} Prende un valore logico, e di default è disabilitato. Questa
   funzionalità serve a fornire una protezione in caso di un attacco di tipo
@@ -4499,7 +4502,12 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_tw\_recycle}] abilita il
   riutilizzo rapido dei socket in stato \texttt{TIME\_WAIT}. Prende un valore
   logico e di default è disabilitato. Non è opportuno abilitare questa opzione
-  che può causare problemi con il NAT.
+  che può causare problemi con il NAT.\footnote{il \textit{Network Address
+      Translation} è una tecnica, impiegata nei firewall e nei router, che
+    consente di modificare al volo gli indirizzi dei pacchetti che transitano
+    per una macchina, Linux la supporta con il \itindex{netfilter}
+    \textit{netfilter}, per maggiori dettagli si consulti il cap.~2 di
+    \cite{FwGL}.}
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_tw\_reuse}] abilita il riutilizzo
   dello stato \texttt{TIME\_WAIT} quando questo è sicuro dal punto di vista
@@ -4516,17 +4524,51 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
   aumentarne le dimensioni. Questa è pienamente supportata dallo stack TCP di
   Linux, ma se lo si disabilita la negoziazione del
   \itindex{TCP~window~scaling} \textit{TCP window scaling} con l'altro capo
-  della conessione non viene effettuata.
-
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_vegas\_cong\_avoid}] 
+  della connessione non viene effettuata.
 
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_westwood}] 
+%\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_vegas\_cong\_avoid}] 
+% TODO: controllare su internet
 
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_wmem}] 
+%\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_westwood}] 
+% TODO: controllare su internet
 
-\end{basedescript}
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_wmem}] viene usato dallo stack TCP
+  per controllare dinamicamente le dimensioni dei propri buffer di spedizione,
+  adeguandole in rapporto alla memoria disponibile.  Prende una tripletta di
+  valori interi separati da spazi che indicano delle dimensioni in byte:
 
+  \begin{itemize*}
+  \item il primo valore, chiamato \textit{min}, indica la dimensione minima in
+    byte del buffer di spedizione; il default è 4Kb. Come per l'analogo di
+    \procrelfile{/proc/sys/net/ipv4}{tcp\_rmem}) viene usato per assicurare
+    che anche in situazioni di pressione sulla memoria (vedi
+    \procrelfile{/proc/sys/net/ipv4}{tcp\_mem}) le allocazioni al di sotto di
+    questo limite abbiamo comunque successo.  Di nuovo questo valore non viene
+    ad incidere sulla dimensione del buffer di trasmissione di un singolo
+    socket dichiarata con l'opzione \const{SO\_SNDBUF}.
+
+  \item il secondo valore, denominato \textit{default}, indica la dimensione
+    di default in byte del buffer di spedizione di un socket TCP.  Questo
+    valore sovrascrive il default iniziale impostato per tutti i tipi di
+    socket con \procfile{/proc/sys/net/core/wmem\_default}. Il default è 87380
+    byte, ridotto a 43689 per sistemi con poca memoria. Si può aumentare
+    questo valore quando si desiderano dimensioni più ampie del buffer di
+    trasmissione per i socket TCP, ma come per il precedente
+    \procrelfile{/proc/sys/net/ipv4}{tcp\_rmem}) se si vuole che in
+    corrispondenza aumentino anche le dimensioni usate per la finestra TCP si
+    deve abilitare il \itindex{TCP~window~scaling} \textit{TCP window scaling}
+    con \procrelfile{/proc/sys/net/ipv4}{tcp\_window\_scaling}.
+
+  \item il terzo valore, denominato \textit{max}, indica la dimensione massima
+    in byte del buffer di spedizione di un socket TCP; il default è 128Kb, che
+    viene ridotto automaticamente a 64Kb per sistemi con poca memoria. Il
+    valore non può comunque eccedere il limite generale per tutti i socket
+    posto con \procfile{/proc/sys/net/core/wmem\_max}. Questo valore non viene
+    ad incidere sulla dimensione del buffer di trasmissione di un singolo
+    socket dichiarata con l'opzione \const{SO\_SNDBUF}.
+  \end{itemize*}
 
+\end{basedescript}
 
 
 
@@ -4604,9 +4646,11 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
 % 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 ifc req iflist access ntoa
-% LocalWords:  hop Selective Acknowledgement acknowledgement Explicit RTO stack
-% LocalWords:  Notification wireless denial pressure
+% LocalWords:  HTCP hybla HYBLA scalable SCALABLE ifc req iflist access ntoa Kb
+% LocalWords:  hop Selective acknowledgement Explicit RTO stack firewall
+% LocalWords:  Notification wireless denial pressure ATTACH DETACH
+% LocalWords:  libpcap discovery point l'overhaed min PAGE flood
+% LocalWords:  selective COOKIES NAT
 
 %%% Local Variables: 
 %%% mode: latex
index d33c0c8bb122f7ae3a41ca4d8cf340583d800494..469e2ea10a796057aa6ca9b38c9a3c8e39e65fdf 100644 (file)
@@ -2696,7 +2696,7 @@ che errori relativi alla stessa linea non vengano ripetuti.
 % LocalWords:  strftime thread EOF modifiable lvalue app errcode strerror LC at
 % LocalWords:  perror string errnum MESSAGES error message ErrCode strtol log
 % LocalWords:  program invocation argv printf print progname exit count fname
-% LocalWords:  lineno one standardese Di
+% LocalWords:  lineno one standardese Di page
 
 
 
index ff3a21885d591e032775433b3210ca42022191c9..5378a2d79fdaa08aef39829a72406d3d15a35ea2 100644 (file)
@@ -165,12 +165,12 @@ connessione.  Normalmente vengono usate le seguenti opzioni:
   spostare a sinistra il valore della finestra annunciata inserito nel
   pacchetto). Con Linux è possibile indicare al kernel di far negoziare il
   fattore di scala in fase di creazione di una connessione tramite la
-  \textit{sysctl} \texttt{tcp\_window\_scaling} (vedi
-  sez.~\ref{sec:sock_ipv4_sysctl}).\footnote{per poter usare questa
+  \textit{sysctl} \itindex{TCP~window~scaling} \texttt{tcp\_window\_scaling}
+  (vedi sez.~\ref{sec:sock_ipv4_sysctl}).\footnote{per poter usare questa
     funzionalità è comunque necessario ampliare le dimensioni dei buffer di
     ricezione e spedizione, cosa che può essere fatta sia a livello di sistema
-    con le opportune \textit{sysctl} (vedi sez.~\ref{sec:sock_ipv4_sysctl}) che
-    a livello di singoli socket con le relative opzioni (vedi
+    con le opportune \textit{sysctl} (vedi sez.~\ref{sec:sock_ipv4_sysctl})
+    che a livello di singoli socket con le relative opzioni (vedi
     sez.~\ref{sec:sock_tcp_udp_options}).}
 
 \item \textit{timestamp option}, è anche questa una nuova opzione necessaria
@@ -1980,7 +1980,7 @@ in sez.~\ref{sec:file_line_io} a proposito dell'I/O su terminale), solo allora
 \func{fgets} ritornerà ed il client scriverà quanto immesso sul socket, per
 poi passare a rileggere quanto gli viene inviato all'indietro dal server, che
 a sua volta sarà inviato sullo standard output, che nel caso ne provoca
-l'immediatamente stampa a video.
+l'immediata stampa a video.
 
 
 \subsection{La conclusione normale}
index b541e079bc80588a6a7a8ab9cc952f61d99d37b4..a42e2cccaf010a614b42b94f63623a240d527809 100644 (file)
@@ -14,7 +14,7 @@
 
 Tratteremo in questo capitolo un modello di programmazione multitasking,
 quello dei \textit{thread}, alternativo al modello classico dei processi,
-tipico di Unix. Ne esaminiremo le caratteristiche, vantaggi e svantaggi, e le
+tipico di Unix. Ne esamineremo le caratteristiche, vantaggi e svantaggi, e le
 diverse realizzazioni che sono disponibili per Linux; nella seconda parte
 tratteremo in dettaglio quella che è l'implementazione principale, che fa
 riferimento all'interfaccia standardizzata da POSIX.1e. 
@@ -25,7 +25,7 @@ riferimento all'interfaccia standardizzata da POSIX.1e.
 
 Questa prima sezione costituisce una introduzione ai \textit{thread} e
 tratterà i concetti principali del relativo modello di programmazione,
-esamineremo anche queli modelli sono disponibili per Linux, dando una breve
+esamineremo anche quali modelli sono disponibili per Linux, dando una breve
 panoramica sulle implementazioni alternative.
 
 
@@ -101,7 +101,11 @@ delle \acr{glibc}.
 
 
 
+% LocalWords:  thread multitasking POSIX sez Posix Library kernel glibc mutex
+
+
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+