X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=sockctrl.tex;h=3a5303499bc90207910970929b0bc5b801036dbb;hb=e51dd0ef809bae5d7e8247e8e043f73d02cd0153;hp=1547493af0bf58e0f9a360d34622d45cc0ab7207;hpb=606aa86c70578ff2e1f6dcf26a87532609d2e09e;p=gapil.git diff --git a/sockctrl.tex b/sockctrl.tex index 1547493..3a53034 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -145,23 +145,23 @@ tab.~\ref{tab:sys_NSS_classes}. \textbf{Classe} & \textbf{Tipo di corrispondenza}\\ \hline \hline - \texttt{shadow} & corrispondenze fra username e proprietà dell'utente - (\acr{uid}, ecc.).\\ - \texttt{group} & corrispondenze fra nome del gruppo e proprietà dello + \texttt{shadow} & Corrispondenze fra username e proprietà dell'utente + (\acr{uid}, ecc.).\\ + \texttt{group} & Corrispondenze fra nome del gruppo e proprietà dello stesso.\\ - \texttt{aliases} & alias per la posta elettronica.\\ - \texttt{ethers} & corrispondenze fra numero IP e MAC address della + \texttt{aliases} & Alias per la posta elettronica.\\ + \texttt{ethers} & Corrispondenze fra numero IP e MAC address della scheda di rete.\\ - \texttt{hosts} & corrispondenze fra nome a dominio e numero IP.\\ - \texttt{netgroup} & corrispondenze gruppo di rete e macchine che lo + \texttt{hosts} & Corrispondenze fra nome a dominio e numero IP.\\ + \texttt{netgroup} & Corrispondenze gruppo di rete e macchine che lo compongono.\\ - \texttt{networks} & corrispondenze fra nome di una rete e suo indirizzo + \texttt{networks} & Corrispondenze fra nome di una rete e suo indirizzo IP.\\ - \texttt{protocols}& corrispondenze fra nome di un protocollo e relativo + \texttt{protocols}& Corrispondenze fra nome di un protocollo e relativo numero identificativo.\\ - \texttt{rpc} & corrispondenze fra nome di un servizio RPC e relativo + \texttt{rpc} & Corrispondenze fra nome di un servizio RPC e relativo numero identificativo.\\ - \texttt{services} & corrispondenze fra nome di un servizio e numero di + \texttt{services} & Corrispondenze fra nome di un servizio e numero di porta. \\ \hline \end{tabular} @@ -291,40 +291,40 @@ comportamento del \textit{resolver}. \textbf{Costante} & \textbf{Significato} \\ \hline \hline - \const{RES\_INIT} & viene attivato se è stata chiamata + \const{RES\_INIT} & Viene attivato se è stata chiamata \func{res\_init}. \\ - \const{RES\_DEBUG} & stampa dei messaggi di debug.\\ - \const{RES\_AAONLY} & accetta solo risposte autoritative.\\ - \const{RES\_USEVC} & usa connessioni TCP per contattare i server + \const{RES\_DEBUG} & Stampa dei messaggi di debug.\\ + \const{RES\_AAONLY} & Accetta solo risposte autoritative.\\ + \const{RES\_USEVC} & Usa connessioni TCP per contattare i server invece che l'usuale UDP.\\ - \const{RES\_PRIMARY} & interroga soltanto server DNS primari. + \const{RES\_PRIMARY} & Interroga soltanto server DNS primari. \\ - \const{RES\_IGNTC} & ignora gli errori di troncamento, non ritenta la + \const{RES\_IGNTC} & Ignora gli errori di troncamento, non ritenta la richiesta con una connessione TCP.\\ - \const{RES\_RECURSE} & imposta il bit che indica che si desidera + \const{RES\_RECURSE} & Imposta il bit che indica che si desidera eseguire una interrogazione ricorsiva.\\ - \const{RES\_DEFNAMES} & se attivo \func{res\_search} aggiunge il nome + \const{RES\_DEFNAMES} & Se attivo \func{res\_search} aggiunge il nome del dominio di default ai nomi singoli (che non contengono cioè un ``\texttt{.}'').\\ - \const{RES\_STAYOPEN} & usato con \const{RES\_USEVC} per mantenere + \const{RES\_STAYOPEN} & Usato con \const{RES\_USEVC} per mantenere aperte le connessioni TCP fra interrogazioni diverse. \\ - \const{RES\_DNSRCH} & se attivo \func{res\_search} esegue le ricerche + \const{RES\_DNSRCH} & Se attivo \func{res\_search} esegue le ricerche di nomi di macchine nel dominio corrente o nei domini ad esso sovrastanti.\\ - \const{RES\_INSECURE1} & blocca i controlli di sicurezza di tipo 1.\\ - \const{RES\_INSECURE2} & blocca i controlli di sicurezza di tipo 2.\\ - \const{RES\_NOALIASES} & blocca l'uso della variabile di ambiente + \const{RES\_INSECURE1} & Blocca i controlli di sicurezza di tipo 1.\\ + \const{RES\_INSECURE2} & Blocca i controlli di sicurezza di tipo 2.\\ + \const{RES\_NOALIASES} & Blocca l'uso della variabile di ambiente \texttt{HOSTALIASES}.\\ - \const{RES\_USE\_INET6} & restituisce indirizzi IPv6 con + \const{RES\_USE\_INET6} & Restituisce indirizzi IPv6 con \func{gethostbyname}. \\ - \const{RES\_ROTATE} & ruota la lista dei server DNS dopo ogni + \const{RES\_ROTATE} & Ruota la lista dei server DNS dopo ogni interrogazione.\\ - \const{RES\_NOCHECKNAME}& non controlla i nomi per verificarne la + \const{RES\_NOCHECKNAME}& Non controlla i nomi per verificarne la correttezza sintattica. \\ - \const{RES\_KEEPTSIG} & non elimina i record di tipo \texttt{TSIG}.\\ + \const{RES\_KEEPTSIG} & Non elimina i record di tipo \texttt{TSIG}.\\ \const{RES\_BLAST} & \\ - \const{RES\_DEFAULT} & è l'insieme di \const{RES\_RECURSE}, + \const{RES\_DEFAULT} & Combinazione di \const{RES\_RECURSE}, \const{RES\_DEFNAMES} e \const{RES\_DNSRCH}.\\ \hline \end{tabular} @@ -430,12 +430,12 @@ tab.~\ref{tab:DNS_address_class}.\footnote{esisteva in realt \textbf{Costante} & \textbf{Significato} \\ \hline \hline - \const{C\_IN} & indirizzi internet, in pratica i soli utilizzati oggi.\\ - \const{C\_HS} & indirizzi \textit{Hesiod}, utilizzati solo al MIT, oggi + \const{C\_IN} & Indirizzi internet, in pratica i soli utilizzati oggi.\\ + \const{C\_HS} & Indirizzi \textit{Hesiod}, utilizzati solo al MIT, oggi completamente estinti. \\ - \const{C\_CHAOS}& indirizzi per la rete \textit{Chaosnet}, un'altra rete + \const{C\_CHAOS}& Indirizzi per la rete \textit{Chaosnet}, un'altra rete sperimentale nata al MIT. \\ - \const{C\_ANY} & indica un indirizzo di classe qualunque.\\ + \const{C\_ANY} & Indica un indirizzo di classe qualunque.\\ \hline \end{tabular} \caption{Costanti identificative delle classi di indirizzi per l'argomento @@ -468,47 +468,47 @@ e che normalmente sono anche usati come nomi per indicare i record. \textbf{Costante} & \textbf{Significato} \\ \hline \hline - \const{T\_A} & indirizzo di una stazione.\\ - \const{T\_NS} & server DNS autoritativo per il dominio richiesto.\\ - \const{T\_MD} & destinazione per la posta elettronica.\\ - \const{T\_MF} & redistributore per la posta elettronica.\\ - \const{T\_CNAME} & nome canonico.\\ - \const{T\_SOA} & inizio di una zona di autorità.\\ - \const{T\_MB} & nome a dominio di una casella di posta.\\ - \const{T\_MG} & nome di un membro di un gruppo di posta.\\ - \const{T\_MR} & nome di un cambiamento di nome per la posta.\\ - \const{T\_NULL} & record nullo.\\ - \const{T\_WKS} & servizio noto.\\ - \const{T\_PTR} & risoluzione inversa di un indirizzo numerico.\\ - \const{T\_HINFO} & informazione sulla stazione.\\ - \const{T\_MINFO} & informazione sulla casella di posta.\\ - \const{T\_MX} & server cui instradare la posta per il dominio.\\ - \const{T\_TXT} & stringhe di testo (libere).\\ - \const{T\_RP} & nome di un responsabile (\textit{responsible person}).\\ - \const{T\_AFSDB} & database per una cella AFS.\\ - \const{T\_X25} & indirizzo di chiamata per X.25.\\ - \const{T\_ISDN} & indirizzo di chiamata per ISDN.\\ - \const{T\_RT} & router.\\ - \const{T\_NSAP} & indirizzo NSAP.\\ - \const{T\_NSAP\_PTR}& risoluzione inversa per NSAP (deprecato).\\ - \const{T\_SIG} & firma digitale di sicurezza.\\ - \const{T\_KEY} & chiave per firma.\\ - \const{T\_PX} & corrispondenza per la posta X.400.\\ - \const{T\_GPOS} & posizione geografica.\\ - \const{T\_AAAA} & indirizzo IPv6.\\ - \const{T\_LOC} & informazione di collocazione.\\ - \const{T\_NXT} & dominio successivo.\\ - \const{T\_EID} & identificatore di punto conclusivo.\\ - \const{T\_NIMLOC}& posizionatore \textit{nimrod}.\\ - \const{T\_SRV} & servizio.\\ - \const{T\_ATMA} & indirizzo ATM.\\ - \const{T\_NAPTR} & puntatore ad una \textit{naming authority} .\\ - \const{T\_TSIG} & firma di transazione.\\ - \const{T\_IXFR} & trasferimento di zona incrementale.\\ - \const{T\_AXFR} & trasferimento di zona di autorità.\\ - \const{T\_MAILB} & trasferimento di record di caselle di posta.\\ - \const{T\_MAILA} & trasferimento di record di server di posta.\\ - \const{T\_ANY} & valore generico.\\ + \const{T\_A} & Indirizzo di una stazione.\\ + \const{T\_NS} & Server DNS autoritativo per il dominio richiesto.\\ + \const{T\_MD} & Destinazione per la posta elettronica.\\ + \const{T\_MF} & Redistributore per la posta elettronica.\\ + \const{T\_CNAME} & Nome canonico.\\ + \const{T\_SOA} & Inizio di una zona di autorità.\\ + \const{T\_MB} & Nome a dominio di una casella di posta.\\ + \const{T\_MG} & Nome di un membro di un gruppo di posta.\\ + \const{T\_MR} & Nome di un cambiamento di nome per la posta.\\ + \const{T\_NULL} & Record nullo.\\ + \const{T\_WKS} & Servizio noto.\\ + \const{T\_PTR} & Risoluzione inversa di un indirizzo numerico.\\ + \const{T\_HINFO} & Informazione sulla stazione.\\ + \const{T\_MINFO} & Informazione sulla casella di posta.\\ + \const{T\_MX} & Server cui instradare la posta per il dominio.\\ + \const{T\_TXT} & Stringhe di testo (libere).\\ + \const{T\_RP} & Nome di un responsabile (\textit{responsible person}).\\ + \const{T\_AFSDB} & Database per una cella AFS.\\ + \const{T\_X25} & Indirizzo di chiamata per X.25.\\ + \const{T\_ISDN} & Indirizzo di chiamata per ISDN.\\ + \const{T\_RT} & Router.\\ + \const{T\_NSAP} & Indirizzo NSAP.\\ + \const{T\_NSAP\_PTR}& Risoluzione inversa per NSAP (deprecato).\\ + \const{T\_SIG} & Firma digitale di sicurezza.\\ + \const{T\_KEY} & Chiave per firma.\\ + \const{T\_PX} & Corrispondenza per la posta X.400.\\ + \const{T\_GPOS} & Posizione geografica.\\ + \const{T\_AAAA} & Indirizzo IPv6.\\ + \const{T\_LOC} & Informazione di collocazione.\\ + \const{T\_NXT} & Dominio successivo.\\ + \const{T\_EID} & Identificatore di punto conclusivo.\\ + \const{T\_NIMLOC}& Posizionatore \textit{nimrod}.\\ + \const{T\_SRV} & Servizio.\\ + \const{T\_ATMA} & Indirizzo ATM.\\ + \const{T\_NAPTR} & Puntatore ad una \textit{naming authority}.\\ + \const{T\_TSIG} & Firma di transazione.\\ + \const{T\_IXFR} & Trasferimento di zona incrementale.\\ + \const{T\_AXFR} & Trasferimento di zona di autorità.\\ + \const{T\_MAILB} & Trasferimento di record di caselle di posta.\\ + \const{T\_MAILA} & Trasferimento di record di server di posta.\\ + \const{T\_ANY} & Valore generico.\\ \hline \end{tabular} \caption{Costanti identificative del tipo di record per l'argomento @@ -570,18 +570,18 @@ tab.~\ref{tab:h_errno_values}. \textbf{Costante} & \textbf{Significato} \\ \hline \hline - \const{HOST\_NOT\_FOUND} & l'indirizzo richiesto non è valido e la - macchina indicata è sconosciuta. \\ - \const{NO\_ADDRESS} & il nome a dominio richiesto è valido, ma non ha + \const{HOST\_NOT\_FOUND} & L'indirizzo richiesto non è valido e la + macchina indicata è sconosciuta.\\ + \const{NO\_ADDRESS} & Il nome a dominio richiesto è valido, ma non ha un indirizzo associato ad esso (alternativamente può essere indicato come - \const{NO\_DATA}). \\ - \const{NO\_RECOVERY} & si è avuto un errore non recuperabile - nell'interrogazione di un server DNS. \\ - \const{TRY\_AGAIN} & si è avuto un errore temporaneo + \const{NO\_DATA}).\\ + \const{NO\_RECOVERY} & Si è avuto un errore non recuperabile + nell'interrogazione di un server DNS.\\ + \const{TRY\_AGAIN} & Si è avuto un errore temporaneo nell'interrogazione di un server DNS, si può ritentare l'interrogazione in un secondo - tempo. \\ + tempo.\\ \hline \end{tabular} \caption{Valori possibili della variabile \var{h\_errno}.} @@ -959,17 +959,17 @@ tab.~\ref{tab:sock_getipnodebyname_flags}. \textbf{Costante} & \textbf{Significato} \\ \hline \hline - \const{AI\_V4MAPPED} & usato con \const{AF\_INET6} per richiedere una + \const{AI\_V4MAPPED} & Usato con \const{AF\_INET6} per richiedere una ricerca su un indirizzo IPv4 invece che IPv6; gli eventuali risultati saranno rimappati su indirizzi IPv6.\\ - \const{AI\_ALL} & usato con \const{AI\_V4MAPPED}; richiede sia + \const{AI\_ALL} & Usato con \const{AI\_V4MAPPED}; richiede sia indirizzi IPv4 che IPv6, e gli indirizzi IPv4 saranno rimappati in IPv6.\\ - \const{AI\_ADDRCONFIG}& richiede che una richiesta IPv4 o IPv6 venga + \const{AI\_ADDRCONFIG}& Richiede che una richiesta IPv4 o IPv6 venga eseguita solo se almeno una interfaccia del sistema è associata ad un indirizzo di tale tipo.\\ - \const{AI\_DEFAULT} & il valore di default, è equivalente alla + \const{AI\_DEFAULT} & Il valore di default, è equivalente alla combinazione di \const{AI\_ADDRCONFIG} e di \const{AI\_V4MAPPED}.\\ \hline @@ -1338,7 +1338,7 @@ bit della maschera. \textbf{Costante} & \textbf{Significato} \\ \hline \hline - \const{AI\_PASSIVE} & viene utilizzato per ottenere un indirizzo in + \const{AI\_PASSIVE} & Viene utilizzato per ottenere un indirizzo in formato adatto per una successiva chiamata a \func{bind}. Se specificato quando si è usato \const{NULL} come valore per \param{node} gli @@ -1349,25 +1349,25 @@ bit della maschera. \textit{loopback}. Se invece non è impostato gli indirizzi verranno restituiti in formato adatto ad una chiamata a \func{connect} o \func{sendto}.\\ - \const{AI\_CANONNAME} & richiede la restituzione del nome canonico della + \const{AI\_CANONNAME} & Richiede la restituzione del nome canonico della macchina, che verrà salvato in una stringa il cui indirizzo sarà restituito nel campo \var{ai\_canonname} della prima struttura \struct{addrinfo} dei risultati. Se il nome canonico non è disponibile al suo posto viene restituita una copia di \param{node}. \\ - \const{AI\_NUMERICHOST}& se impostato il nome della macchina specificato + \const{AI\_NUMERICHOST}& Se impostato il nome della macchina specificato con \param{node} deve essere espresso in forma numerica, altrimenti sarà restituito un errore \const{EAI\_NONAME} (vedi tab.~\ref{tab:addrinfo_error_code}), in questo modo si evita ogni chiamata alle funzioni di risoluzione.\\ - \const{AI\_V4MAPPED} & stesso significato dell'analoga di + \const{AI\_V4MAPPED} & Stesso significato dell'analoga di tab.~\ref{tab:sock_getipnodebyname_flags}.\\ - \const{AI\_ALL} & stesso significato dell'analoga di + \const{AI\_ALL} & Stesso significato dell'analoga di tab.~\ref{tab:sock_getipnodebyname_flags}.\\ - \const{AI\_ADDRCONFIG} & stesso significato dell'analoga di + \const{AI\_ADDRCONFIG} & Stesso significato dell'analoga di tab.~\ref{tab:sock_getipnodebyname_flags}.\\ \hline \end{tabular} @@ -1392,37 +1392,37 @@ corrispondente \textbf{Costante} & \textbf{Significato} \\ \hline \hline - \const{EAI\_FAMILY} & la famiglia di indirizzi richiesta non è + \const{EAI\_FAMILY} & La famiglia di indirizzi richiesta non è supportata. \\ - \const{EAI\_SOCKTYPE}& il tipo di socket richiesto non è supportato. \\ - \const{EAI\_BADFLAGS}& il campo \var{ai\_flags} contiene dei valori non + \const{EAI\_SOCKTYPE}& Il tipo di socket richiesto non è supportato. \\ + \const{EAI\_BADFLAGS}& Il campo \var{ai\_flags} contiene dei valori non validi. \\ - \const{EAI\_NONAME} & il nome a dominio o il servizio non sono noti, + \const{EAI\_NONAME} & Il nome a dominio o il servizio non sono noti, viene usato questo errore anche quando si specifica il valore \const{NULL} per entrambi gli argomenti \param{node} e \param{service}. \\ - \const{EAI\_SERVICE} & il servizio richiesto non è disponibile per il tipo + \const{EAI\_SERVICE} & Il servizio richiesto non è disponibile per il tipo di socket richiesto, anche se può esistere per altri tipi di socket. \\ - \const{EAI\_ADDRFAMILY}& la rete richiesta non ha nessun indirizzo di rete + \const{EAI\_ADDRFAMILY}& La rete richiesta non ha nessun indirizzo di rete per la famiglia di indirizzi specificata. \\ - \const{EAI\_NODATA} & la macchina specificata esiste, ma non ha nessun + \const{EAI\_NODATA} & La macchina specificata esiste, ma non ha nessun indirizzo di rete definito. \\ - \const{EAI\_MEMORY} & è stato impossibile allocare la memoria necessaria + \const{EAI\_MEMORY} & È stato impossibile allocare la memoria necessaria alle operazioni. \\ - \const{EAI\_FAIL} & il DNS ha restituito un errore di risoluzione + \const{EAI\_FAIL} & Il DNS ha restituito un errore di risoluzione permanente. \\ - \const{EAI\_AGAIN} & il DNS ha restituito un errore di risoluzione + \const{EAI\_AGAIN} & Il DNS ha restituito un errore di risoluzione temporaneo, si può ritentare in seguito. \\ - \const{EAI\_SYSTEM} & c'è stato un errore di sistema, si può controllare + \const{EAI\_SYSTEM} & C'è stato un errore di sistema, si può controllare \var{errno} per i dettagli. \\ % \hline % TODO estensioni GNU, trovarne la documentazione -% \const{EAI\_INPROGRESS}& richiesta in corso. \\ -% \const{EAI\_CANCELED}& la richiesta è stata cancellata.\\ -% \const{EAI\_NOTCANCELED}& la richiesta non è stata cancellata. \\ -% \const{EAI\_ALLDONE} & tutte le richieste sono complete. \\ -% \const{EAI\_INTR} & richiesta interrotta. \\ +% \const{EAI\_INPROGRESS}& Richiesta in corso. \\ +% \const{EAI\_CANCELED}& La richiesta è stata cancellata.\\ +% \const{EAI\_NOTCANCELED}& La richiesta non è stata cancellata. \\ +% \const{EAI\_ALLDONE} & Tutte le richieste sono complete. \\ +% \const{EAI\_INTR} & Richiesta interrotta. \\ \hline \end{tabular} \caption{Costanti associate ai valori dei codici di errore della funzione @@ -1633,17 +1633,17 @@ tab.~\ref{tab:getnameinfo_flags}. \textbf{Costante} & \textbf{Significato} \\ \hline \hline - \const{NI\_NOFQDN} & richiede che venga restituita solo il nome della + \const{NI\_NOFQDN} & Richiede che venga restituita solo il nome della macchina all'interno del dominio al posto del nome completo (FQDN).\\ - \const{NI\_NUMERICHOST}& richiede che venga restituita la forma numerica + \const{NI\_NUMERICHOST}& Richiede che venga restituita la forma numerica dell'indirizzo (questo succede sempre se il nome non può essere ottenuto).\\ - \const{NI\_NAMEREQD} & richiede la restituzione di un errore se il nome + \const{NI\_NAMEREQD} & Richiede la restituzione di un errore se il nome non può essere risolto.\\ - \const{NI\_NUMERICSERV}& richiede che il servizio venga restituito in + \const{NI\_NUMERICSERV}& Richiede che il servizio venga restituito in forma numerica (attraverso il numero di porta).\\ - \const{NI\_DGRAM} & richiede che venga restituito il nome del + \const{NI\_DGRAM} & Richiede che venga restituito il nome del servizio su UDP invece che quello su TCP per quei pichi servizi (porte 512-214) che soni diversi nei due protocolli.\\ @@ -1920,11 +1920,11 @@ riassunti i valori che possono essere usati per l'argomento \textbf{Livello} & \textbf{Significato} \\ \hline \hline - \const{SOL\_SOCKET}& opzioni generiche dei socket.\\ - \const{SOL\_IP} & opzioni specifiche per i socket che usano IPv4.\\ - \const{SOL\_TCP} & opzioni per i socket che usano TCP.\\ - \const{SOL\_IPV6} & opzioni specifiche per i socket che usano IPv6.\\ - \const{SOL\_ICMPV6}& opzioni specifiche per i socket che usano ICMPv6.\\ + \const{SOL\_SOCKET}& Opzioni generiche dei socket.\\ + \const{SOL\_IP} & Opzioni specifiche per i socket che usano IPv4.\\ + \const{SOL\_TCP} & Opzioni per i socket che usano TCP.\\ + \const{SOL\_IPV6} & Opzioni specifiche per i socket che usano IPv6.\\ + \const{SOL\_ICMPV6}& Opzioni specifiche per i socket che usano ICMPv6.\\ \hline \end{tabular} \caption{Possibili valori dell'argomento \param{level} delle @@ -2013,49 +2013,49 @@ tab.~\ref{tab:sock_opt_socklevel}. \hline \hline \const{SO\_KEEPALIVE}&$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - controlla l'attività della connessione.\\ + Controlla l'attività della connessione.\\ \const{SO\_OOBINLINE}&$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - lascia in linea i dati \itindex{out-of-band} + Lascia in linea i dati \itindex{out-of-band} \textit{out-of-band}.\\ \const{SO\_RCVLOWAT} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - basso livello sul buffer di ricezione.\\ + Basso livello sul buffer di ricezione.\\ \const{SO\_SNDLOWAT} &$\bullet$&$\bullet$& &\texttt{int}& - basso livello sul buffer di trasmissione.\\ + Basso livello sul buffer di trasmissione.\\ \const{SO\_RCVTIMEO} &$\bullet$&$\bullet$& &\texttt{timeval}& - timeout in ricezione.\\ + Timeout in ricezione.\\ \const{SO\_SNDTIMEO} &$\bullet$&$\bullet$& &\texttt{timeval}& - timeout in trasmissione.\\ + Timeout in trasmissione.\\ \const{SO\_BSDCOMPAT}&$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - abilita la compatibilità con BSD.\\ + Abilita la compatibilità con BSD.\\ \const{SO\_PASSCRED} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - abilita la ricezione di credenziali.\\ + Abilita la ricezione di credenziali.\\ \const{SO\_PEERCRED} &$\bullet$& & &\texttt{ucred}& - restituisce le credenziali del processo remoto.\\ + Restituisce le credenziali del processo remoto.\\ \const{SO\_BINDTODEVICE}&$\bullet$&$\bullet$& &\texttt{char *}& - lega il socket ad un dispositivo.\\ + Lega il socket ad un dispositivo.\\ \const{SO\_DEBUG} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - abilita il debugging sul socket.\\ + Abilita il debugging sul socket.\\ \const{SO\_REUSEADDR}&$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - consente il riutilizzo di un indirizzo locale.\\ + Consente il riutilizzo di un indirizzo locale.\\ \const{SO\_TYPE} &$\bullet$& & &\texttt{int}& - restituisce il tipo di socket.\\ + Restituisce il tipo di socket.\\ \const{SO\_ACCEPTCONN}&$\bullet$& & &\texttt{int}& - indica se il socket è in ascolto.\\ + Indica se il socket è in ascolto.\\ \const{SO\_DONTROUTE}&$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - non invia attraverso un gateway.\\ + Non invia attraverso un gateway.\\ \const{SO\_BROADCAST}&$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - attiva o disattiva il \itindex{broadcast} + Attiva o disattiva il \itindex{broadcast} \textit{broadcast}.\\ \const{SO\_SNDBUF} &$\bullet$&$\bullet$& &\texttt{int}& - imposta dimensione del buffer di trasmissione.\\ + Imposta dimensione del buffer di trasmissione.\\ \const{SO\_RCVBUF} &$\bullet$&$\bullet$& &\texttt{int}& - imposta dimensione del buffer di ricezione.\\ + Imposta dimensione del buffer di ricezione.\\ \const{SO\_LINGER} &$\bullet$&$\bullet$& &\texttt{linger}& - indugia nella chiusura con dati da spedire.\\ + Indugia nella chiusura con dati da spedire.\\ \const{SO\_PRIORITY} &$\bullet$&$\bullet$& &\texttt{int}& - imposta la priorità del socket.\\ + Imposta la priorità del socket.\\ \const{SO\_ERROR} &$\bullet$& & &\texttt{int}& - riceve e cancella gli errori pendenti.\\ + Riceve e cancella gli errori pendenti.\\ \hline \end{tabular} \caption{Le opzioni disponibili al livello \const{SOL\_SOCKET}.} @@ -2301,9 +2301,23 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: usualmente utilizzata per ricevere il codice di errore, come accennato in sez.~\ref{sec:TCP_sock_select}, quando si sta osservando il socket con una \func{select} che ritorna a causa dello stesso. -\end{basedescript} + +\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 + 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}. + +\item[\const{SO\_DETACH\_FILTER}] consente di distaccare un filtro + precedentemente aggiunto ad un socket. % TODO documentare SO_ATTACH_FILTER e SO_DETACH_FILTER +% riferimenti http://www.rcpt.to/lsfcc/lsf.html +% Documentation/networking/filter.txt + + +\end{basedescript} \subsection{L'uso delle principali opzioni dei socket} @@ -2591,7 +2605,7 @@ esiste, ma il comportamento di \const{SO\_REUSEADDR} possibile effettuare un \textit{completely duplicate binding} ed ottenere il successo di \func{bind} su un socket legato allo stesso indirizzo e porta solo se il programma che ha eseguito per primo \func{bind} su di essi ha impostato -questa opzione.\footnote{Questa restrizione permette di evitare il cosiddetto +questa opzione.\footnote{questa restrizione permette di evitare il cosiddetto \textit{port stealing}, in cui un programma, usando \const{SO\_REUSEADDR}, può collegarsi ad una porta già in uso e ricevere i pacchetti destinati ad un altro programma; con questa caratteristica ciò è possibile soltanto se il @@ -2713,42 +2727,42 @@ sono definite in \file{netinet/ip.h}, ed accessibili includendo detto file. \hline \hline \const{IP\_OPTIONS} &$\bullet$&$\bullet$&&\texttt{void *}& %??? - imposta o riceve le opzioni di IP.\\ + Imposta o riceve le opzioni di IP.\\ \const{IP\_PKTINFO} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - passa un messaggio di informazione.\\ + Passa un messaggio di informazione.\\ \const{IP\_RECVTOS} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - passa un messaggio col campo TOS.\\ + Passa un messaggio col campo TOS.\\ \const{IP\_RECVTTL} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - passa un messaggio col campo TTL.\\ + Passa un messaggio col campo TTL.\\ \const{IP\_RECVOPTS} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - passa un messaggio con le opzioni IP.\\ + Passa un messaggio con le opzioni IP.\\ \const{IP\_RETOPTS} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - passa un messaggio con le opzioni IP non trattate.\\ + Passa un messaggio con le opzioni IP non trattate.\\ \const{IP\_TOS} &$\bullet$&$\bullet$& &\texttt{int}& - imposta il valore del campo TOS.\\ + Imposta il valore del campo TOS.\\ \const{IP\_TTL} &$\bullet$&$\bullet$& &\texttt{int}& - imposta il valore del campo TTL.\\ + Imposta il valore del campo TTL.\\ \const{IP\_HDRINCL} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - passa l'intestazione di IP nei dati.\\ + Passa l'intestazione di IP nei dati.\\ \const{IP\_RECVERR} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - abilita la gestione degli errori.\\ + Abilita la gestione degli errori.\\ \const{IP\_MTU\_DISCOVER} &$\bullet$&$\bullet$& &\texttt{int}& - imposta il Path MTU \itindex{Maximum~Transfer~Unit} Discovery.\\ + Imposta il Path MTU \itindex{Maximum~Transfer~Unit} Discovery.\\ \const{IP\_MTU} &$\bullet$& & &\texttt{int}& - legge il valore attuale della \itindex{Maximum~Transfer~Unit} MTU.\\ + Legge il valore attuale della \itindex{Maximum~Transfer~Unit} MTU.\\ \const{IP\_ROUTER\_ALERT} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - imposta l'opzione \textit{IP router alert} sui pacchetti.\\ + Imposta l'opzione \textit{IP router alert} sui pacchetti.\\ \const{IP\_MULTICAST\_TTL} &$\bullet$&$\bullet$& &\texttt{int}& - imposta il TTL per i pacchetti \itindex{multicast} \textit{multicast}.\\ + Imposta il TTL per i pacchetti \itindex{multicast} \textit{multicast}.\\ \const{IP\_MULTICAST\_LOOP} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - controlla il reinvio a se stessi dei dati di \itindex{multicast} + Controlla il reinvio a se stessi dei dati di \itindex{multicast} \textit{multicast}.\\ \const{IP\_ADD\_MEMBERSHIP} & &$\bullet$& &\struct{ip\_mreqn}& - si unisce a un gruppo di \itindex{multicast} \textit{multicast}.\\ + Si unisce a un gruppo di \itindex{multicast} \textit{multicast}.\\ \const{IP\_DROP\_MEMBERSHIP}& &$\bullet$& &\struct{ip\_mreqn}& - si sgancia da un gruppo di \textit{multicast}.\\ + Si sgancia da un gruppo di \textit{multicast}.\\ \const{IP\_MULTICAST\_IF} & &$\bullet$& &\struct{ip\_mreqn}& - imposta l'interfaccia locale di un socket \itindex{multicast} + Omposta l'interfaccia locale di un socket \itindex{multicast} \textit{multicast}.\\ \hline \end{tabular} @@ -2924,11 +2938,12 @@ sez.~\ref{sec:net_sendmsg}). ricerca è disabilitata ed è responsabilità del programma creare pacchetti di dimensioni appropriate e ritrasmettere eventuali pacchetti persi. Se l'opzione viene abilitata, il kernel si incaricherà di tenere traccia - automaticamente della \textit{Path MTU} verso ciascuna destinazione, e - rifiuterà immediatamente la trasmissione di pacchetti di dimensioni maggiori - della MTU con un errore di \errval{EMSGSIZE}.\footnote{in caso contrario la - trasmissione del pacchetto sarebbe effettuata, ottenendo o un fallimento - successivo della trasmissione, o la frammentazione dello stesso.} + automaticamente della \itindex{Maximum~Transfer~Unit} \textit{Path MTU} + verso ciascuna destinazione, e rifiuterà immediatamente la trasmissione di + pacchetti di dimensioni maggiori della MTU con un errore di + \errval{EMSGSIZE}.\footnote{in caso contrario la trasmissione del pacchetto + sarebbe effettuata, ottenendo o un fallimento successivo della + trasmissione, o la frammentazione dello stesso.} \item[\const{IP\_MTU}] Permette di leggere il valore della \textit{Path MTU} di percorso del socket. L'opzione richiede per \param{optval} un intero che @@ -3058,32 +3073,32 @@ strutture collegate all'uso delle opzioni TCP sono definite in \hline \hline \const{TCP\_NODELAY} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - spedisce immediatamente i dati in segmenti singoli.\\ + Spedisce immediatamente i dati in segmenti singoli.\\ \const{TCP\_MAXSEG} &$\bullet$&$\bullet$& &\texttt{int}& - valore della \itindex{Maximum~Segment~Size} MSS per i segmenti in + Valore della \itindex{Maximum~Segment~Size} MSS per i segmenti in uscita.\\ \const{TCP\_CORK} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - accumula i dati in un unico segmento.\\ + Accumula i dati in un unico segmento.\\ \const{TCP\_KEEPIDLE} &$\bullet$&$\bullet$& &\texttt{int}& - tempo in secondi prima di inviare un \textit{keepalive}.\\ + Tempo in secondi prima di inviare un \textit{keepalive}.\\ \const{TCP\_KEEPINTVL} &$\bullet$&$\bullet$& &\texttt{int}& - tempo in secondi prima fra \textit{keepalive} successivi.\\ + Tempo in secondi prima fra \textit{keepalive} successivi.\\ \const{TCP\_KEEPCNT} &$\bullet$&$\bullet$& &\texttt{int}& - numero massimo di \textit{keepalive} inviati.\\ + Numero massimo di \textit{keepalive} inviati.\\ \const{TCP\_SYNCNT} &$\bullet$&$\bullet$& &\texttt{int}& - numero massimo di ritrasmissioni di un SYN.\\ + Numero massimo di ritrasmissioni di un SYN.\\ \const{TCP\_LINGER2} &$\bullet$&$\bullet$& &\texttt{int}& - tempo di vita in stato \texttt{FIN\_WAIT2}.\\ + Tempo di vita in stato \texttt{FIN\_WAIT2}.\\ \const{TCP\_DEFER\_ACCEPT}&$\bullet$&$\bullet$& &\texttt{int}& - ritorna da \func{accept} solo in presenza di dati.\\ + Ritorna da \func{accept} solo in presenza di dati.\\ \const{TCP\_WINDOW\_CLAMP}&$\bullet$&$\bullet$& &\texttt{int}& - valore della \itindex{advertised~window} \textit{advertised window}.\\ + Valore della \itindex{advertised~window} \textit{advertised window}.\\ \const{TCP\_INFO} &$\bullet$& & &\struct{tcp\_info}& - restituisce informazioni sul socket.\\ + Restituisce informazioni sul socket.\\ \const{TCP\_QUICKACK} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - abilita la modalità \textit{quickack}.\\ + Abilita la modalità \textit{quickack}.\\ \const{TCP\_CONGESTION} &$\bullet$&$\bullet$& &\texttt{char *}& - imposta l'algoritmo per il controllo della congestione.\\ + Imposta l'algoritmo per il controllo della congestione.\\ \hline \end{tabular} \caption{Le opzioni per i socket TCP disponibili al livello @@ -3388,7 +3403,7 @@ quantit \textbf{Nome}&\textbf{Configurazione}&\textbf{Riferimento} \\ \hline \hline - reno& -- &algoritmo tradizionale, usato in caso di assenza degli altri.\\ + reno& -- &Algoritmo tradizionale, usato in caso di assenza degli altri.\\ \texttt{bic} &\texttt{TCP\_CONG\_BIC} & \href{http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/index.htm} {\texttt{http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/index.htm}}.\\ @@ -3444,9 +3459,9 @@ file.\footnote{come per TCP, la definizione delle opzioni effettivamente \hline \hline \const{UDP\_CORK} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& %??? - accumula tutti i dati su un unico pacchetto.\\ + Accumula tutti i dati su un unico pacchetto.\\ \const{UDP\_ENCAP} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& %??? - non documentata.\\ + Non documentata.\\ \hline \end{tabular} \caption{Le opzioni per i socket UDP disponibili al livello @@ -3454,6 +3469,8 @@ file.\footnote{come per TCP, la definizione delle opzioni effettivamente \label{tab:sock_opt_udplevel} \end{table} +% TODO documentare \const{UDP\_ENCAP} + Ancora una volta le descrizioni contenute tab.~\ref{tab:sock_opt_udplevel} sono un semplice riferimento, una maggiore quantità di dettagli sulle caratteristiche delle opzioni citate è quello dell'elenco seguente: @@ -3623,36 +3640,36 @@ sono le seguenti: \textbf{Flag} & \textbf{Significato} \\ \hline \hline - \const{IFF\_UP} & l'interfaccia è attiva.\\ - \const{IFF\_BROADCAST} & l'interfaccia ha impostato un indirizzo di + \const{IFF\_UP} & L'interfaccia è attiva.\\ + \const{IFF\_BROADCAST} & L'interfaccia ha impostato un indirizzo di \itindex{broadcast} \textit{broadcast} valido.\\ - \const{IFF\_DEBUG} & è attivo il flag interno di debug.\\ - \const{IFF\_LOOPBACK} & l'interfaccia è una interfaccia di + \const{IFF\_DEBUG} & È attivo il flag interno di debug.\\ + \const{IFF\_LOOPBACK} & L'interfaccia è una interfaccia di \textit{loopback}.\\ - \const{IFF\_POINTOPOINT}& l'interfaccia è associata ad un collegamento + \const{IFF\_POINTOPOINT}&L'interfaccia è associata ad un collegamento \textsl{punto-punto}.\\ - \const{IFF\_RUNNING} & l'interfaccia ha delle risorse allocate (non può + \const{IFF\_RUNNING} & L'interfaccia ha delle risorse allocate (non può quindi essere disattivata).\\ - \const{IFF\_NOARP} & l'interfaccia ha il protocollo ARP disabilitato o + \const{IFF\_NOARP} & L'interfaccia ha il protocollo ARP disabilitato o l'indirizzo del livello di rete non è impostato.\\ - \const{IFF\_PROMISC} & l'interfaccia è in \index{modo~promiscuo} + \const{IFF\_PROMISC} & L'interfaccia è in \index{modo~promiscuo} \textsl{modo promiscuo} (riceve cioè tutti i pacchetti che vede passare, compresi quelli non direttamente indirizzati a lei).\\ - \const{IFF\_NOTRAILERS}& evita l'uso di \textit{trailer} nei pacchetti.\\ - \const{IFF\_ALLMULTI} & riceve tutti i pacchetti di \itindex{multicast} + \const{IFF\_NOTRAILERS}& Evita l'uso di \textit{trailer} nei pacchetti.\\ + \const{IFF\_ALLMULTI} & Riceve tutti i pacchetti di \itindex{multicast} \textit{multicast}.\\ - \const{IFF\_MASTER} & l'interfaccia è il master di un bundle per il + \const{IFF\_MASTER} & L'interfaccia è il master di un bundle per il bilanciamento di carico.\\ - \const{IFF\_SLAVE} & l'interfaccia è uno slave di un bundle per il + \const{IFF\_SLAVE} & L'interfaccia è uno slave di un bundle per il bilanciamento di carico.\\ - \const{IFF\_MULTICAST} & l'interfaccia ha il supporto per il + \const{IFF\_MULTICAST} & L'interfaccia ha il supporto per il \textit{multicast} \itindex{multicast} attivo.\\ - \const{IFF\_PORTSEL} & l'interfaccia può impostare i suoi parametri - hardware (con l'uso di \struct{ifmap})..\\ - \const{IFF\_AUTOMEDIA} & l'interfaccia è in grado di selezionare + \const{IFF\_PORTSEL} & L'interfaccia può impostare i suoi parametri + hardware (con l'uso di \struct{ifmap}).\\ + \const{IFF\_AUTOMEDIA} & L'interfaccia è in grado di selezionare automaticamente il tipo di collegamento.\\ - \const{IFF\_DYNAMIC} & gli indirizzi assegnati all'interfaccia vengono + \const{IFF\_DYNAMIC} & Gli indirizzi assegnati all'interfaccia vengono persi quando questa viene disattivata.\\ % \const{IFF\_} & .\\ \hline @@ -4039,7 +4056,7 @@ questi per moderata. \item[\procrelfile{/proc/sys/net/core}{no\_cong}] valore per l'occupazione - della coda di ricezione sotto la quale si si considera di non avere + della coda di ricezione sotto la quale si considera di non avere congestione. \item[\procrelfile{/proc/sys/net/core}{no\_cong\_thresh}] valore minimo @@ -4050,9 +4067,9 @@ questi per % ottimizzazione per l'uso come router. \item[\procrelfile{/proc/sys/net/core}{somaxconn}] imposta la dimensione - massima del \textit{backlog} della funzione \func{listen} (vedi - sez.~\ref{sec:TCP_func_listen}), e corrisponde al valore della costante - \const{SOMAXCONN}; il suo valore di default è 128. + massima utilizzabile per il \textit{backlog} della funzione \func{listen} + (vedi sez.~\ref{sec:TCP_func_listen}), e corrisponde al valore della + costante \const{SOMAXCONN}; il suo valore di default è 128. \end{basedescript} @@ -4067,8 +4084,8 @@ vengono usati all'interno di quest'ultimo (come ICMP, TCP e UDP) o a fianco dello stesso (come ARP). I file che consentono di controllare le caratteristiche specifiche del -protocollo IP in quanto tale, descritti anche nella pagina di manuale -accessibile con \texttt{man 7 ip}, sono i seguenti: +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}} \item[\procrelfile{/proc/sys/net/ipv4}{ip\_default\_ttl}] imposta il valore di @@ -4084,7 +4101,6 @@ accessibile con \texttt{man 7 ip}, sono i seguenti: quanto in caso di problemi di routing si allunga inutilmente il numero di ritrasmissioni. - \item[\procrelfile{/proc/sys/net/ipv4}{ip\_forward}] abilita l'inoltro dei pacchetti da una interfaccia ad un altra, e può essere impostato anche per la singola interfaccia. Prende un valore logico (0 disabilita, diverso da @@ -4094,48 +4110,63 @@ accessibile con \texttt{man 7 ip}, sono i seguenti: automatica degli indirizzi associati ad un socket quando una interfaccia cambia indirizzo. Viene usato per le interfacce usate nei collegamenti in dial-up, il cui indirizzo IP viene assegnato dinamicamente dal provider, e - può essere modificato. Un valore nullo disabilita la funzionalità, con 1 la - si abilita, con 2 (o con qualunque altro valore diverso dai precedenti) la - si abilità in modalità \textsl{prolissa}; di default la funzionalità è - disabilitata. + può essere modificato. Prende un valore intero, con 0 si disabilita la + funzionalità, con 1 la si abilita, con 2 (o con qualunque altro valore + diverso dai precedenti) la si abilità in modalità \textsl{prolissa}; di + default la funzionalità è disabilitata. \item[\procrelfile{/proc/sys/net/ipv4}{ip\_autoconfig}] specifica se l'indirizzo IP è stato configurato automaticamente dal kernel all'avvio - attraverso DHCP, BOOTP o RARP; è un valore logico (0 falso, 1 vero) - accessibile in lettura, è inutilizzato nei kernel recenti ed eliminato a - partire dal 2.6.18. + attraverso DHCP, BOOTP o RARP. Riporta un valore logico (0 falso, 1 vero) + accessibile solo in lettura, è inutilizzato nei kernel recenti ed eliminato + a partire dal kernel 2.6.18. \item[\procrelfile{/proc/sys/net/ipv4}{ip\_local\_port\_range}] imposta l'intervallo dei valori usati per l'assegnazione delle porte effimere, permette cioè di modificare i valori illustrati in - fig.~\ref{fig:TCP_port_alloc}; prende due valori numerici, che indicano gli - estremi dell'intervallo. Si abbia cura di non definire un intervallo che si - sovrappone a quello delle porte usate per il \itindex{masquerading} - \textit{masquerading}, il kernel può gestire la sovrapposizione, ma si avrà - una perdita di prestazioni. Si imposti sempre un valore iniziale maggiore di - 1024 (o meglio ancora di 4096) per evitare conflitti con le porte usate dai - servizi noti. - -\item[\procrelfile{/proc/sys/net/ipv4}{ip\_no\_pmtu\_disc}] imposta la - disciplina di ricerca della \itindex{Maximum~Transfer~Unit} \textit{Path - MTU} (vedi sez.~\ref{sec:net_lim_dim} e sez.~\ref{sec:sock_ipv4_options}). - -\item[\procrelfile{/proc/sys/net/ipv4}{ipfrag\_high\_thresh}] limite massimo - (espresso in numero di byte) sui pacchetti IP frammentati presenti in coda; - quando questo valore viene raggiunta la coda viene ripulita fino al valore - \texttt{ipfrag\_low\_thresh}. + fig.~\ref{fig:TCP_port_alloc}; prende due valori interi separati da spazi, + che indicano gli estremi dell'intervallo. Si abbia cura di non definire un + intervallo che si sovrappone a quello delle porte usate per il + \itindex{masquerading} \textit{masquerading}, il kernel può gestire la + sovrapposizione, ma si avrà una perdita di prestazioni. Si imposti sempre un + valore iniziale maggiore di 1024 (o meglio ancora di 4096) per evitare + conflitti con le porte usate dai servizi noti. + +\item[\procrelfile{/proc/sys/net/ipv4}{ip\_no\_pmtu\_disc}] permette di + disabilitare per i socket \const{SOCK\_STREAM} la ricerca automatica della + \itindex{Maximum~Transfer~Unit} \textit{Path MTU} (vedi + sez.~\ref{sec:net_lim_dim} e sez.~\ref{sec:sock_ipv4_options}); prende un + valore logico, e di default è disabilitato (cioè la ricerca viene eseguita). + + In genere si abilita questo parametro quando per qualche motivo il + procedimento del \itindex{Maximum~Transfer~Unit} \textit{Path MTU discovery} + fallisce; dato che questo può avveniera a causa di router\footnote{ad + esempio se si scartano tutti i pacchetti ICMP, il problema è affrontato + anche in sez.~1.4.4 di \cite{FwGL}.} o interfacce\footnote{ad esempio se i + due capi di un collegamento \textit{point-to-point} non si accordano sulla + stessa MTU.} mal configurate è opportuno correggere le configurazioni, + perché disabilitare globalmente il procedimento con questo parametro ha + pesanti ripercussioni in termini di prestazioni di rete. + +\item[\procrelfile{/proc/sys/net/ipv4}{ip\_always\_defrag}] fa si che tutti i + pacchetti IP frammentati siano riassemblati, anche in caso in successivo + immediato inoltro;\footnote{introdotto con il kernel 2.2.13, nelle versioni + 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. + +\item[\procrelfile{/proc/sys/net/ipv4}{ipfrag\_high\_thresh}] indica il limite + massimo (espresso in numero di byte) sui pacchetti IP frammentati presenti + in coda; quando questo valore viene raggiunta la coda viene ripulita fino al + valore \texttt{ipfrag\_low\_thresh}. \item[\procrelfile{/proc/sys/net/ipv4}{ipfrag\_low\_thresh}] soglia bassa (specificata in byte) cui viene riportata la coda dei pacchetti IP frammentati quando si raggiunge il valore \texttt{ipfrag\_high\_thresh}. -\item[\procrelfile{/proc/sys/net/ipv4}{ip\_always\_defrag}] se abilitato - (prende un intero come valore logico) tutti i pacchetti IP frammentati - saranno riassemblati, anche in caso in successivo immediato - inoltro.\footnote{introdotto con il kernel 2.2.13, nelle versioni precedenti - questo comportamento poteva essere solo in fase di compilazione del kernel - con l'opzione \texttt{CONFIG\_IP\_ALWAYS\_DEFRAG}.} - \item[\procrelfile{/proc/sys/net/ipv4}{ip\_nonlocal\_bind}] se abilitato (prende un intero come valore logico) è possibile che una applicazione possa collegarsi (con \func{bind} su un indirizzo non locale. Questo può risultare @@ -4371,12 +4402,19 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: 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}] +\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}] +\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. \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_syn\_retries}] imposta il numero di tentativi (il default è 5) di ritrasmissione dei pacchetti SYN di inizio @@ -4384,15 +4422,29 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: (si ricordi quanto illustrato in sez.~\ref{sec:TCP_func_connect}). Il valore non deve superare 255. -\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_timestamps}] -\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_tw\_recycle}] +\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\_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\_reuse}] -\item[\procrelfile{/proc/sys/net/ipv4}{tcp\_window\_scaling}] +\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} \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_vegas\_cong\_avoid}] + \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_westwood}] + \item[\procrelfile{/proc/sys/net/ipv4}{tcp\_wmem}] + \end{basedescript} % LocalWords: socket sez dotted decimal resolver Domain Name Service cap DNS