Materiale sui socket.
authorSimone Piccardi <piccardi@gnulinux.it>
Mon, 3 Sep 2007 07:12:21 +0000 (07:12 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Mon, 3 Sep 2007 07:12:21 +0000 (07:12 +0000)
filedir.tex
macro.tex
sockctrl.tex
tcpsock.tex

index 0df466c5a90e47276376b75d770a2f3c8b74e209..e4d61d0e270dbcc52b34e07609976bd41eb34748 100644 (file)
@@ -2622,6 +2622,10 @@ liberia, \texttt{libacl} che nasconde i dettagli implementativi delle stesse e
 presenta ai programmi una interfaccia che fa riferimento allo standard POSIX
 1003.1e.
 
+
+
+
+
 \itindend{Access~Control~List}
 
 
index 9f4ea326119848df6281c73faa7ef3ddba8c0b8a..5cc9c93590b4c0331f0c2283adabc198e3b16286 100644 (file)
--- a/macro.tex
+++ b/macro.tex
 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
 }                                     % configuration file name
 \newcommand{\procrelfile}[2]{%
-\index{file!filesystem~\texttt{/proc}!{#2}@{{\tt {#1}/{#2}}}}\texttt{#2}%
+\index{file!filesystem~\texttt{/proc}!{#1/#2}@{{\tt {#1/#2}}}}\texttt{#2}%
 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
 }   
 
index 66f480f7657b2211a634cafe58fcfd6592fb36c2..f5a4c43c9d7dfaf1e5df63d7e73366e5a8204e70 100644 (file)
@@ -3983,12 +3983,12 @@ corrispondono a nessun nodo di \func{sysctl}.
 \subsection{I valori di controllo per i socket generici}
 \label{sec:sock_gen_sysctl}
 
-Nella directory \texttt{/proc/sys/net/core} sono presenti i file
+Nella directory \texttt{/proc/sys/net/core/} sono presenti i file
 corrispondenti ai parametri generici di \textit{sysctl} validi per tutti i
 socket.  Quelli descritti anche nella pagina di manuale, accessibile con
 \texttt{man 7 socket} sono i seguenti:
 
-\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
+\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.
 \item[\procrelfile{/proc/sys/net/core}{rmem\_max}] imposta la dimensione
@@ -4002,16 +4002,16 @@ socket.  Quelli descritti anche nella pagina di manuale, accessibile con
 \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
-  di messaggi di avviso da parte kernel per eventi relativi a problemi sulla
-  rete, imponendo un limite che consente di prevenire eventuali attacchi di
-  \itindex{Denial~of~Service~(DoS)} \textit{Denial of Service} usando i
+  di messaggi di avviso da parte del kernel per eventi relativi a problemi
+  sulla rete, imponendo un limite che consente di prevenire eventuali attacchi
+  di \itindex{Denial~of~Service~(DoS)} \textit{Denial of Service} usando i
   log.\footnote{senza questo limite un attaccante potrebbe inviare ad arte un
     traffico che generi intenzionalmente messaggi di errore, per saturare il
     sistema dei log.}
 
   Il \itindex{bucket~filter} \textit{bucket filter} è un algoritmo generico
   che permette di impostare dei limiti di flusso su una quantità\footnote{uno
-    analogo viene usato nel \index{netfilter} \textit{netfilter} per imporre
+    analogo viene usato nel \itindex{netfilter} \textit{netfilter} per imporre
     dei limiti sul flusso dei pacchetti.}  senza dovere eseguire medie
   temporali, che verrebbero a dipendere in misura non controllabile dalla
   dimensione dell'intervallo su cui si media e dalla distribuzione degli
@@ -4041,7 +4041,7 @@ Oltre a questi nella directory \texttt{/proc/sys/net/core} si trovano altri
 file, la cui documentazione dovrebbe essere mantenuta nei sorgenti del kernel,
 nel file \texttt{Documentation/networking/ip-sysctl.txt}; la maggior parte di
 questi però non è documentato:
-\begin{basedescript}{\desclabelwidth{3.0cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{2.2cm}\desclabelstyle{\nextlinelabel}}
 \item[\procrelfile{/proc/sys/net/core}{dev\_weight}] blocco di lavoro
   (\textit{work quantum}) dello scheduler di processo dei pacchetti.
 
@@ -4086,7 +4086,7 @@ dello stesso (come ARP).
 I file che consentono di controllare le caratteristiche specifiche del
 protocollo IP in quanto tale, che sono descritti anche nella relativa pagina
 di manuale accessibile con \texttt{man 7 ip}, sono i seguenti:
-\begin{basedescript}{\desclabelwidth{3.5cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{2.2cm}\desclabelstyle{\nextlinelabel}}
 
 \item[\procrelfile{/proc/sys/net/ipv4}{ip\_default\_ttl}] imposta il valore di
   default per il campo TTL (vedi sez.~\ref{sec:IP_header}) di tutti i
@@ -4154,9 +4154,10 @@ di manuale accessibile con \texttt{man 7 ip}, sono i seguenti:
     precedenti questo comportamento poteva essere solo stabilito un volta per
     tutte in fase di compilazione del kernel con l'opzione
     \texttt{CONFIG\_IP\_ALWAYS\_DEFRAG}.} Prende un valore logico e di default
-  è disabilitato. Con i kernel dalla serie 2.4 in poi la deframmentazione viene
-  attivata automaticamente quando si utilizza il sistema del netfilter, e
-  questo parametro non è più presente. 
+  è disabilitato. Con i kernel dalla serie 2.4 in poi la deframmentazione
+  viene attivata automaticamente quando si utilizza il sistema del
+  \itindex{netfilter} \textit{netfilter}, e questo parametro non è più
+  presente.
 
 \item[\procrelfile{/proc/sys/net/ipv4}{ipfrag\_high\_thresh}] indica il limite
   massimo (espresso in numero di byte) sui pacchetti IP frammentati presenti
@@ -4187,7 +4188,7 @@ di manuale accessibile con \texttt{man 7 ip}, sono i seguenti:
 I file di \texttt{/proc/sys/net/ipv4} che invece fanno riferimento alle
 caratteristiche specifiche del protocollo TCP, elencati anche nella rispettiva
 pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
-\begin{basedescript}{\desclabelwidth{3.9cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{2.2cm}\desclabelstyle{\nextlinelabel}}
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_abort\_on\_overflow}] indica al
   kernel di azzerare le connessioni quando il programma che le riceve è troppo
@@ -4239,7 +4240,7 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_ecn}] abilita il meccanismo della
   \textit{Explicit Congestion Notification} (in breve ECN) nelle connessioni
   TCP. Prende valore logico che di default è disabilitato. La \textit{Explicit
-    Congestion Notification} \index{Explicit~Congestion~Notification} è un
+    Congestion Notification} \itindex{Explicit~Congestion~Notification} è un
   meccanismo che consente di notificare quando una rotta o una rete è
   congestionata da un eccesso di traffico,\footnote{il meccanismo è descritto
     in dettaglio nell'\href{http://www.ietf.org/rfc/rfc3168.txt}{RFC~3168}
@@ -4269,7 +4270,7 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
   ricezione del pacchetto FIN conclusivo, passati quali il socket viene
   comunque chiuso forzatamente.  Prende un valore intero che indica i secondi
   e di default è 60.\footnote{nei kernel della serie 2.2.x era il valore
-    utilizzato era invece di 120 secondi.} L'uso di questa opzione realizza
+    utilizzato era invece di 120 secondi.} L'uso di questa opzione realizza
   quella che in sostanza è una violazione delle specifiche del protocollo TCP,
   ma è utile per fronteggiare alcuni attacchi di
   \itindex{Denial~of~Service~(DoS)} \textit{Denial of Service}.
@@ -4322,7 +4323,8 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
   kernel. Prende un valore intero, il valore di default viene impostato
   inizialmente al valore del parametro del kernel \texttt{NR\_FILE}, e viene
   aggiustato a seconda della memoria disponibile.
-% TODO verificare la spiegazione di connessione orfana
+
+% TODO verificare la spiegazione di connessione orfana.
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_max\_syn\_backlog}] indica la
   lunghezza della coda delle connessioni incomplete, cioè delle connessioni
@@ -4350,21 +4352,25 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
   prevenire alcuni semplici attacchi di \textit{denial of service}.
   
 
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_mem}] prende una tripletta di
-  valori interi usati dallo stack TCP per controllare il proprio uso della
-  memoria.  Il primo valore, chiamato \textit{low} nelle pagine di manuale,
-  indica il numero di pagine allocate sotto il quale non viene usato nessun
-  meccanismo di regolazione dell'uso della memoria.
+\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
+  tripletta di valori interi, che indicano un numero di pagine:
 
-  Il secondo valore, chiamato \textit{pressure} indica il numero di pagine
-  allocate passato il quale lo stack TCP inizia a moderare il suo consumo di
-  memoria. Si esce da questo stato di \textsl{pressione} sulla memoria quando
-  il numero di pagine scende sotto il precedente valore \textit{low}.
+  \begin{itemize*}
+  \item il primo valore, chiamato \textit{low} nelle pagine di manuale, indica
+    il numero di pagine allocate sotto il quale non viene usato nessun
+    meccanismo di regolazione dell'uso della memoria.
 
-  Il terzo valore, chiamato \textit{high} indica il numero massimo di pagine
-  che possono essere utilizzate dallo stack TCP/IP, e soprassiede ogni altro
-  valore specificato dagli altri limiti del kernel.
+  \item il secondo valore, chiamato \textit{pressure} indica il numero di
+    pagine allocate passato il quale lo stack TCP inizia a moderare il suo
+    consumo di memoria; si esce da questo stato di \textsl{pressione} sulla
+    memoria quando il numero di pagine scende sotto il precedente valore
+    \textit{low}.
 
+  \item il terzo valore, chiamato \textit{high} indica il numero massimo di
+    pagine che possono essere utilizzate dallo stack TCP/IP, e soprassiede
+    ogni altro valore specificato dagli altri limiti del kernel.
+  \end{itemize*}
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_orphan\_retries}] indica il numero
   massimo di volte che si esegue un tentativo di controllo sull'altro capo di
@@ -4404,7 +4410,6 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
   nell'\href{http://www.ietf.org/rfc/rfc1122.txt}{RFC~1122} dove è indicato un
   massimo di 100 secondi, che però è un valore considerato troppo basso.
 
-
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_rfc1337}] indica allo stack TCP
   del kernel di abilitare il comportamento richiesto
   nell'\href{http://www.ietf.org/rfc/rfc1337.txt}{RFC~1337}. Prende un valore
@@ -4416,69 +4421,102 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_rmem}] viene usato dallo stack TCP
   per controllare dinamicamente le dimensioni dei propri buffer di ricezione,
   anche in rapporto alla memoria disponibile.  Prende una tripletta di valori
-  interi separati da spazi che indicano delle dimensioni in byte.
-
-  Il primo valore, chiamato \textit{min} nelle pagine di manuale, indica la
-  dimensione minima del buffer di ricezione; e di default vale 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
-  questo limite abbiamo comunque successo.\footnote{e non ha a che fare con la
-    dimensione del buffer di lettura di un socket dichiarata con l'opzione
-    \const{SO\_RCVBUF}.}
-
-  Il secondo valore, denominato \textit{default} nelle pagine di manuale,
-  indica la dimensione di default del buffer di ricezione di un socket TCP.
-  Questo valore sovrascrive il default iniziale impostato con
-  \procfile{/proc/sys/net/core/mem\_default} che vale per qualunque
-  protocollo.
-
-  Il terzo valore, denominato \textit{max} nelle pagine di manuale
-
-
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_sack}] un valore logico che indica
-  al kernel di utilizzare il meccanismo del \textit{TCP selective
-    aknowledment} definito
-  nell'\href{http://www.ietf.org/rfc/rfc2018.txt}{RFC~2018}; di default è
-  abilitato.
-
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_stdurg}] 
-
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_synack\_retries}] un valore intero
-  che indica il numero massimo di volte che verrà ritasmesso il segmento
-  SYN/ACK nella creazione di una connessione (vedi
-  sez.~\ref{sec:TCP_conn_cre}). Il valore di default è 5, e non si deve
-  superare il valore massimo di 255.
-
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_syncookies}] un valore logico
-  che abilita i \textit{TCP syncookies},\footnote{per poter usare quasta
-    funzionalità è necessario avere abilitato l'opzione
-    \texttt{CONFIG\_SYN\_COOKIES} nella compilazione del kernel.} di default è
-  disabilitato. 
+  interi separati da spazi che indicano delle dimensioni in byte:
+
+  \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
+    \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
+    questo limite abbiamo comunque successo.  Questo valore non viene comunque
+    ad incidere sulla dimensione del buffer di lettura di un singolo socket
+    dichiarata con l'opzione \const{SO\_RCVBUF}.
+
+  \item il secondo valore, denominato \textit{default} nelle pagine di
+    manuale, indica la dimensione di default, in byte, del buffer di ricezione
+    di un socket TCP.  Questo valore sovrascrive il default iniziale impostato
+    per tutti i socket con \procfile{/proc/sys/net/core/mem\_default} che vale
+    per qualunque protocollo. Il default è 87380 byte, ridotto a 43689 per
+    sistemi con poca memoria. Se si desiderano dimensioni più ampie per tutti
+    i socket si può aumentare questo valore, ma 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}
+    (di default è abilitato, vedi più avanti
+    \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
+    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
+    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
+  nell'\href{http://www.ietf.org/rfc/rfc2018.txt}{RFC~2018}. Prende un valore
+  logico e di default è abilitato.
+
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_stdurg}] indica al kernel di
+  utilizzare l'interpretazione che viene data
+  dall'\href{http://www.ietf.org/rfc/rfc1122.txt}{RFC~1122} del puntatore dei
+  \textit{dati urgenti} (vedi sez.~\ref{sec:TCP_urgent_data}) in cui questo
+  punta all'ultimo byte degli stessi; se disabilitato viene usata
+  l'interpretazione usata da BSD per cui esso punta al primo byte successivo.
+  Prende un valore logico e di default è disabilitato, perché abilitarlo può
+  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
+  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
+    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
+  \index{SYN~flood} \textit{SYN flood}, e deve essere utilizzato come ultima
+  risorsa dato che costituisce una violazione del protocollo TCP e confligge
+  con altre funzionalità come le estensioni e può causare problemi per i
+  client ed il reinoltro dei pacchetti.
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_syn\_retries}] imposta il numero
-  di tentativi (il default è 5) di ritrasmissione dei pacchetti SYN di inizio
-  connessione del \itindex{three~way~handshake} \textit{three way handshake}
-  (si ricordi quanto illustrato in sez.~\ref{sec:TCP_func_connect}). Il valore
-  non deve superare 255.
+  di tentativi di ritrasmissione dei pacchetti SYN di inizio connessione del
+  \itindex{three~way~handshake} \textit{three way handshake} (si ricordi
+  quanto illustrato in sez.~\ref{sec:TCP_func_connect}). Prende un valore
+  intero che di default è 5; non si deve superare il valore massimo di 255.
 
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_timestamps}] un valore logico che
-  attiva l'uso dei \textit{TCP timestamps}, definiti
-  nell'\href{http://www.ietf.org/rfc/rfc1323.txt}{RFC~1323}. Di default è
-  abilitato. 
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_timestamps}] abilita l'uso dei
+  \textit{TCP timestamps}, come definiti
+  nell'\href{http://www.ietf.org/rfc/rfc1323.txt}{RFC~1323}. Prende un valore
+  logico e di default è abilitato.
 
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_tw\_recycle}] un valore logico,
-  disattivo di default, che abilita un rapido riutilizzo dei socket in stato
-  \texttt{TIME\_WAIT}. Non è opportuno abilitare questa opzione che può
-  causare problemi con il NAT.
+\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.
 
-\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_tw\_reuse}] 
+\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_tw\_reuse}] abilita il riutilizzo
+  dello stato \texttt{TIME\_WAIT} quando questo è sicuro dal punto di vista
+  del protocollo. Prende un valore logico e di default è disabilitato. 
 
 \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_window\_scaling}] un valore
-  logico, attivo di default, che abilita la funzionalità del \textit{TCP
-    window scaling} definita
-  dall'\href{http://www.ietf.org/rfc/rfc1323.txt}{RFC~1323}
+  logico, attivo di default, che abilita la funzionalità del
+  \itindex{TCP~window~scaling} \textit{TCP window scaling} definita
+  dall'\href{http://www.ietf.org/rfc/rfc1323.txt}{RFC~1323}. Prende un valore
+  logico e di default è abilitato. Come accennato in
+  sez.~\ref{sec:TCP_TCP_opt} i 16 bit della finestra TCP comportano un limite
+  massimo di dimensione di 64Kb, ma esiste una opportuna opzione del
+  protocollo che permette di applicare un fattore di scale che consente di
+  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}] 
 
@@ -4488,6 +4526,10 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti:
 
 \end{basedescript}
 
+
+
+
+
 % LocalWords:  socket sez dotted decimal resolver Domain Name Service cap DNS
 % LocalWords:  client fig LDAP Lightweight Access Protocol NIS Information Sun
 % LocalWords:  like netgroup Switch Solaris glibc libc uclib NSS tab shadow uid
index 2b460beb53dea1f1fd81f59c27c4d994569cfefc..ff3a21885d591e032775433b3210ca42022191c9 100644 (file)
@@ -187,6 +187,7 @@ vengono anche dette \textit{long fat pipe options} dato che questo 
 che viene dato alle connessioni caratterizzate da alta velocità o da ritardi
 elevati. In ogni caso Linux supporta pienamente entrambe le opzioni.
 
+
 \subsection{La terminazione della connessione}
 \label{sec:TCP_conn_term}
 
@@ -965,12 +966,12 @@ kernel, compreso Linux 2.0, che mostrano le differenze fra diverse
 implementazioni.
 
 In Linux il significato di questo valore è cambiato a partire dal kernel 2.2
-per prevenire l'attacco chiamato \textit{syn flood}. Questo si basa
-sull'emissione da parte dell'attaccante di un grande numero di pacchetti SYN
-indirizzati verso una porta, forgiati con indirizzo IP fasullo\footnote{con la
-  tecnica che viene detta \textit{ip spoofing}.} così che i SYN$+$ACK vanno
-perduti e la coda delle connessioni incomplete viene saturata, impedendo di
-fatto ulteriori connessioni.
+per prevenire l'attacco chiamato \index{SYN~flood} \textit{SYN flood}. Questo
+si basa sull'emissione da parte dell'attaccante di un grande numero di
+pacchetti SYN indirizzati verso una porta, forgiati con indirizzo IP
+fasullo\footnote{con la tecnica che viene detta \textit{ip spoofing}.} così
+che i SYN$+$ACK vanno perduti e la coda delle connessioni incomplete viene
+saturata, impedendo di fatto ulteriori connessioni.
 
 Per ovviare a questo il significato del \param{backlog} è stato cambiato a
 indicare la lunghezza della coda delle connessioni complete. La lunghezza