From: Simone Piccardi Date: Fri, 8 Sep 2006 17:35:17 +0000 (+0000) Subject: Piccole correzioni. X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=commitdiff_plain;h=3a1ac30e65082d4e6ffd30c30e0c4a805f50da6e;p=gapil.git Piccole correzioni. --- diff --git a/sockctrl.tex b/sockctrl.tex index f90a45e..ea07241 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -2263,8 +2263,8 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: \texttt{/proc/sys/net/core} e \texttt{tcp\_wmem} e \texttt{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 - essere effettive devono essere impostate prima della chiamata alle funzioni + modifiche alle dimensioni dei buffer di ingresso e di uscita, per poter + essere effettive, devono essere impostate prima della chiamata alle funzioni \func{listen} o \func{connect}. \item[\const{SO\_LINGER}] questa opzione controlla le modalità con cui viene @@ -2353,15 +2353,15 @@ della connessione ed il socket verr Se invece non viene ricevuta nessuna risposta (indice che la macchina non è più raggiungibile) l'emissione dei messaggi viene ripetuta ad intervalli di 75 secondi per un massimo di 9 volte\footnote{entrambi questi valori possono - essere opportunamente modificati a livello di sistema (cioè per tutti i - socket) con gli opportuni parametri illustrati in sez.~\ref{sec:sock_sysctl} - ed a livello di singolo socket con le opzioni \texttt{TCP\_KEEP*} di + essere modificati a livello di sistema (cioè per tutti i socket) con gli + opportuni parametri illustrati in sez.~\ref{sec:sock_sysctl} ed a livello di + singolo socket con le opzioni \texttt{TCP\_KEEP*} di sez.~\ref{sec:sock_tcp_udp_options}.} (per un totale di 11 minuti e 15 secondi) dopo di che, se non si è ricevuta nessuna risposta, il socket viene chiuso dopo aver impostato un errore di \errcode{ETIMEDOUT}. Qualora la connessione si sia ristabilita e si riceva un successivo messaggio di risposta -il ciclo riparte come se niente fosse avvenuto. Infine se invece si riceve -come risposta un pacchetto ICMP di destinazione irraggiungibile (vedi +il ciclo riparte come se niente fosse avvenuto. Infine se si riceve come +risposta un pacchetto ICMP di destinazione irraggiungibile (vedi sez.~\ref{sec:icmp_protocol_xxx}), verrà restituito l'errore corrispondente. In generale questa opzione serve per individuare una caduta della connessione @@ -3164,7 +3164,7 @@ seguente elenco: \item[\const{TCP\_LINGER2}] imposta, in numero di secondi, il tempo di sussistenza dei socket terminati nello stato \texttt{FIN\_WAIT2} (si ricordi quanto visto in sez.~\ref{sec:TCP_conn_term}).\footnote{si tenga ben - presente che questa opzione non ha nulla a che fare con la + presente che questa opzione non ha nulla a che fare con l'opzione \const{SO\_LINGER} che abbiamo visto in sez.~\ref{sec:sock_options_main}.} Questa opzione consente di sovrascrivere il valore globale impostato con la \textit{sysctl} \texttt{tcp\_fin\_timeout} (vedi @@ -3788,10 +3788,10 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: memoria (se maggiore di 128Mb) e ridotto a 128 qualora la memoria sia poca (inferiore a 32Mb).\footnote{si raccomanda, qualora si voglia aumentare il valore oltre 1024, di seguire la procedura citata nella pagina di manuale - di TCP , e modificare il valore della costante \texttt{TCP\_SYNQ\_HSIZE} + di TCP, e modificare il valore della costante \texttt{TCP\_SYNQ\_HSIZE} nel file \texttt{include/net/tcp.h} dei sorgenti del kernel, in modo che - sia $\mathtt{tcp\_max\_syn\_backlog} \ge \mathtt{16*TCP\_SYNQ\_HSIZE}$, e - poi ricompilare il kernel.} + sia $\mathtt{tcp\_max\_syn\_backlog} \ge \mathtt{16*TCP\_SYNQ\_HSIZE}$, + per poi ricompilare il kernel.} \item[\texttt{tcp\_max\_tw\_buckets}] \item[\texttt{tcp\_mem}] diff --git a/tcpsock.tex b/tcpsock.tex index 7316b64..a82be2a 100644 --- a/tcpsock.tex +++ b/tcpsock.tex @@ -144,20 +144,21 @@ regolare la connessione. Normalmente vengono usate le seguenti opzioni: sez.~\ref{sec:tcp_protocol_xxx}) con la quale ciascun capo della comunicazione dichiara quanto spazio disponibile ha in memoria per i dati. Questo è un numero a 16 bit dell'header, che così può indicare un massimo di - 65535 byte;\footnote{ Linux usa come massimo 32767 per evitare problemi con + 65535 byte;\footnote{Linux usa come massimo 32767 per evitare problemi con alcune implementazioni che usano l'aritmetica con segno per implementare lo stack TCP.} ma alcuni tipi di connessione come quelle ad alta velocità (sopra i 45Mbit/sec) e quelle che hanno grandi ritardi nel cammino dei pacchetti (come i satelliti) richiedono una finestra più grande per poter ottenere il massimo dalla trasmissione, per questo esiste questa opzione che - indica un fattore di scala da applicare al valore della finestra - annunciata\footnote{essendo una nuova opzione per garantire la compatibilità - con delle vecchie implementazioni del protocollo la procedura che la - attiva prevede come negoziazione che l'altro capo della connessione - riconosca esplicitamente l'opzione inserendola anche lui nel suo SYN di - risposta dell'apertura della connessione.} per la connessione corrente - (espresso come numero di bit cui spostare a sinistra il valore della - finestra annunciata inserito nel pacchetto). + indica un fattore di scala da applicare al valore della + \itindex{advertised~window} finestra annunciata\footnote{essendo una nuova + opzione per garantire la compatibilità con delle vecchie implementazioni + del protocollo la procedura che la attiva prevede come negoziazione che + l'altro capo della connessione riconosca esplicitamente l'opzione + inserendola anche lui nel suo SYN di risposta dell'apertura della + connessione.} per la connessione corrente (espresso come numero di bit cui + spostare a sinistra il valore della finestra annunciata inserito nel + pacchetto). \item \textit{timestamp option}, è anche questa una nuova opzione necessaria per le connessioni ad alta velocità per evitare possibili corruzioni di dati