X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=sockctrl.tex;h=9d5279e6ab62856b34ff617697608b440c23c03e;hp=9f451e90110bcd60550cb4eec3214924b670e631;hb=0e932d7963332ca87688c3695d7386d45ddcc46a;hpb=5d7fe3ee9e2509853d2d06902b6b503680135641 diff --git a/sockctrl.tex b/sockctrl.tex index 9f451e9..9d5279e 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -1,6 +1,6 @@ %% sockctrl.tex %% -%% Copyright (C) 2004-2018 Simone Piccardi. Permission is granted to +%% Copyright (C) 2004-2019 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -36,8 +36,8 @@ porte o altre proprietà del sistema. \label{sec:sock_resolver} \itindbeg{resolver} La risoluzione dei nomi è associata tradizionalmente al -servizio del \itindex{Domain~Name~Service} \textit{Domain Name Service} che -permette di identificare le macchine su internet invece che per numero IP +servizio del \itindex{Domain~Name~Service~(DNS)} \textit{Domain Name Service} +che permette di identificare le macchine su internet invece che per numero IP attraverso il relativo \textsl{nome a dominio}.\footnote{non staremo ad entrare nei dettagli della definizione di cosa è un nome a dominio, dandolo per noto, una introduzione alla problematica si trova in \cite{AGL} (cap.~9) @@ -2352,12 +2352,12 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: L'opzione utilizza per \param{optval} un intero usato come valore logico. Quando viene abilitata gli errori riportati da messaggi ICMP per un socket - UDP non vengono passati al programma in user space. Con le versioni 2.0.x - del kernel erano anche abilitate altre opzioni di compatibilità per i socket - raw (modifiche casuali agli header, perdita del flag di \textit{broadcast}) - che sono state rimosse con il passaggio al 2.2; è consigliato correggere i - programmi piuttosto che usare questa funzione. Dal kernel 2.4 viene - ignorata, e dal 2.6 genera un messaggio di log del kernel. + UDP non vengono passati al programma in \textit{user space}. Con le versioni + 2.0.x del kernel erano anche abilitate altre opzioni di compatibilità per i + socket raw (modifiche casuali agli header, perdita del flag di + \textit{broadcast}) che sono state rimosse con il passaggio al 2.2; è + consigliato correggere i programmi piuttosto che usare questa funzione. Dal + kernel 2.4 viene ignorata, e dal 2.6 genera un messaggio di log del kernel. \item[\constd{SO\_BUSY\_POLL}] questa opzione, presente dal kernel 3.11, imposta un tempo approssimato in microsecondi, per cui in caso di ricezione @@ -3804,7 +3804,7 @@ quantità di dettagli è fornita nel seguente elenco: \item[\constd{TCP\_INFO}] questa opzione, specifica di Linux, ma introdotta anche in altri kernel (ad esempio FreeBSD) permette di controllare lo stato - interno di un socket TCP direttamente da un programma in user space. + interno di un socket TCP direttamente da un programma in \textit{user space}. L'opzione restituisce in una speciale struttura \struct{tcp\_info}, la cui definizione è riportata in fig.~\ref{fig:tcp_info_struct}, tutta una serie di dati che il kernel mantiene, relativi al socket. Anche questa opzione @@ -4735,8 +4735,8 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: \item[\sysctlrelfiled{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} \itindex{Explicit~Congestion~Notification} è un - meccanismo che consente di notificare quando una rotta o una rete è + Congestion Notification} \itindex{Explicit~Congestion~Notification~(ECN)} + è 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} mentre gli effetti sulle prestazioni del suo utilizzo sono documentate @@ -4991,11 +4991,12 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: \item[\sysctlrelfiled{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.\footnote{il - \itindex{Network~Address~Translation} \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 \textit{netfilter}.} + causare problemi con il NAT.\footnote{la + \itindex{Network~Address~Translation~(NAT)} \textit{Network Address + Translation} (abbreviato in NAT) è 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 + \textit{netfilter}.} \item[\sysctlrelfiled{net/ipv4}{tcp\_tw\_reuse}] abilita il riutilizzo dello stato \texttt{TIME\_WAIT} quando questo è sicuro dal punto di vista