X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=sockctrl.tex;h=4eb16391ee0a5d077814fabdfa068597c654d75e;hb=e12ba59975ac09f76b6bb9b401b24aab93fdfe46;hp=ea07241e4a2dda78cc3dd80177001da73293e7c5;hpb=3a1ac30e65082d4e6ffd30c30e0c4a805f50da6e;p=gapil.git diff --git a/sockctrl.tex b/sockctrl.tex index ea07241..4eb1639 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -2347,7 +2347,7 @@ connessione non esiste pi con l'invio di un segmento FIN all'altro capo della connessione.} In questo caso all'invio del messaggio di \textit{keep-alive} si otterrà come risposta un segmento RST che indica che l'altro capo non riconosce più l'esistenza -della connessione ed il socket verrà chiuso riportanto un errore di +della connessione ed il socket verrà chiuso riportando un errore di \errcode{ECONNRESET}. Se invece non viene ricevuta nessuna risposta (indice che la macchina non è @@ -3184,10 +3184,11 @@ seguente elenco: una dimensione minima pari a \texttt{SOCK\_MIN\_RCVBUF/2}. Questa opzione non deve essere utilizzata in codice che vuole essere portabile. -\item[\const{TCP\_INFO}] permette di ricevere una serie di informazioni - relative al socket che il kernel restituisce in una speciale struttura +\item[\const{TCP\_INFO}] opzione, specifica di Linux, ma introdotta anche in + altri kernel (ad esempio FreeBSD) di controllare lo stato di un socket TCP + in user space. L'opzione restituisce in una speciale struttura \struct{tcp\_info}, la cui definizione è riportata in - fig.~\ref{fig:tcp_info_struct}. + fig.~\ref{fig:tcp_info_struct}, tutta una serie di dati relativi al socket. \begin{figure}[!htb] \footnotesize \centering @@ -3199,9 +3200,35 @@ seguente elenco: \label{fig:tcp_info_struct} \end{figure} -\item[\const{TCP\_QUICKACK}] abilita la modalità speciale \textit{quickack}. +Con questa opzione diventa possibile ricevere una serie di informazioni +relative al socket così da poter effettuare dei controlli, senza passare +attraverso delle operazioni di lettura. Ad esempio si può verificare se un +socket è stato chiuso con una funzione analoga a quella illustrata in +fig.~\ref{fig:is_closing}, in cui si usa il campo \var{tcpi\_state} di +\struct{tcp\_info} per controllare lo stato del socket. -\item[\const{TCP\_CONGESTION}] Introdotta con il kernel 2.6.13. +\begin{figure}[!htb] + \footnotesize \centering + \begin{minipage}[c]{15cm} + \includestruct{listati/tcp_info.h} + \end{minipage} + \caption{Codice della funzione \texttt{is\_closing.c}, che controlla lo stato + di un socket TCP per verificare se si sta chiudendo.} + \label{fig:is_closing} +\end{figure} + +\item[\const{TCP\_QUICKACK}] abilita o disabilita la modalità speciale + \textit{quickack}, in cui i pacchetti ACK vengono inviati immediatamente + senza le attese talvolta imposte dal normale funzionamento del protocollo + TCP. Questa opzione prende un valore logico, e non è permanente, nel senso + che si limita a forzare al momento della chiamata un passaggio da o verso la + modalità \textit{quickack}; le operazioni successive potrebbero a loro volta + entrare o uscire da questa modalità a seconda del processo interno del + protocollo o dalle condizioni della connessione (ad esempio in presenza di + timeout ritardati per i pacchetti ACK). + +\item[\const{TCP\_CONGESTION}] Introdotta con il kernel 2.6.13, non è + documentata. \end{basedescript} @@ -3891,14 +3918,18 @@ pagina di manuale (accessibile con \texttt{man 7 tcp}), sono i seguenti: %%% End: % LocalWords: quest'ultime neigh dev weight cong mod somaxconn Di SIOCINQ DoS % LocalWords: Documentation SIOCATMARK SIOCOUTQ FIONREAD TIOCOUTQ Denial work -% LocalWords: netfilter scheduler mark ARP DHCP BOOTP RARP nonlocal sniffer +% LocalWords: netfilter scheduler mark ARP DHCP BOOTP RARP nonlocal sniffer is % LocalWords: linux NODELAY MAXSEG CORK KEEPIDLE KEEPINTVL KEEPCNT SYNCNT INFO % LocalWords: DEFER ACCEPT WINDOW CLAMP QUICKACK CONGESTION ENCAP urgent MSS % LocalWords: Segment SYN accept advertised window info quickack Nagle ifreq % LocalWords: ifr ppp union EPERM SIOCGIFNAME dell' interface index IFF NOARP % LocalWords: SIOCGIFINDEX SIOCGIFFLAGS POINTOPOINT RUNNING PROMISC NOTRAILERS -% LocalWords: ALLMULTI bundle PORTSEL ifmap AUTOMEDIA DYNAMIC SIOCSIFFLAGS +% LocalWords: ALLMULTI bundle PORTSEL ifmap AUTOMEDIA DYNAMIC SIOCSIFFLAGS way % LocalWords: SIOCGIFMETRIC SIOCSIFMETRIC SIOCGIFMTU SIOCSIFMTU SIOCGIFHWADDR -% LocalWords: SIOCSIFHWADDR SIOCSIFHWBROADCAST SIOCGIFMAP SIOCSIFMAP -% LocalWords: SIOCADDMULTI SIOCDELMULTI SIOCGIFTXQLEN SIOCSIFTXQLEN -% LocalWords: SIOCSIFNAME SIOCGIFCONF +% LocalWords: SIOCSIFHWADDR SIOCSIFHWBROADCAST SIOCGIFMAP SIOCSIFMAP sendfile +% LocalWords: SIOCADDMULTI SIOCDELMULTI SIOCGIFTXQLEN SIOCSIFTXQLEN three syn +% LocalWords: SIOCSIFNAME SIOCGIFCONF handshake retries MIN FreeBSD closing Mb +% LocalWords: abort overflow adv win app bic convergence dsack ecn fack frto +% LocalWords: intvl probes latency orphans l'ACK SYNQ HSIZE tw buckets mem rfc +% LocalWords: orphan reordering collapse sack stdurg synack syncookies recycle +% LocalWords: timestamps scaling vegas avoid westwood