X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=tcpsock.tex;h=ae53fd0d1dc7585b0451710636820d80484c0772;hp=63b97438411db9afb5dc08415f464f0948f2b53b;hb=fcd431ebcd9f7a65680a669a2740ef5a2586531c;hpb=b99370b46df36884995d94ed00de41aa51b4e027 diff --git a/tcpsock.tex b/tcpsock.tex index 63b9743..ae53fd0 100644 --- a/tcpsock.tex +++ b/tcpsock.tex @@ -221,7 +221,7 @@ chiusura attiva. Nella sequenza indicata i dati verrebbero persi, dato che si è chiuso il socket dal lato che esegue la chiusura attiva; esistono tuttavia situazioni in cui si vuole poter sfruttare questa possibilità, usando una procedura che è chiamata \textit{half-close}; torneremo su questo aspetto e su -come utilizzarlo in \secref{xxx_shutdown}, quando parleremo della funzione +come utilizzarlo in \secref{sec:TCP_shutdown}, quando parleremo della funzione \func{shutdown}. La emissione del FIN avviene quando il socket viene chiuso, questo però non @@ -339,8 +339,8 @@ La MSL sulla rete; questo tempo è limitato perché ogni pacchetto IP può essere ritrasmesso dai router un numero massimo di volte (detto \textit{hop limit}). Il numero di ritrasmissioni consentito è indicato dal campo TTL dell'header di -IP (per maggiori dettagli vedi \secref{sec:IP_xxx}), e viene decrementato ad -ogni passaggio da un router; quando si annulla il pacchetto viene scartato. +IP (per maggiori dettagli vedi \secref{sec:ip_protocol}), e viene decrementato +ad ogni passaggio da un router; quando si annulla il pacchetto viene scartato. Siccome il numero è ad 8 bit il numero massimo di ``\textsl{salti}'' è di 255, pertanto anche se il TTL (da \textit{time to live}) non è propriamente un limite sul tempo di vita, si stima che un pacchetto IP non possa restare nella @@ -1034,8 +1034,8 @@ funzione. Se non ci sono connessioni pendenti da accettare la funzione mette in attesa il processo\footnote{a meno che non si sia impostato il socket per essere non bloccante (vedi \secref{sec:file_noblocking}), nel qual caso ritorna con l'errore \errcode{EAGAIN}. Torneremo su questa modalità di - operazione in \secref{sec:xxx_sock_noblock}.} fintanto che non ne arriva -una. + operazione in \secref{sec:TCP_sock_multiplexing}.} fintanto che non ne +arriva una. La funzione può essere usata solo con socket che supportino la connessione (cioè di tipo \const{SOCK\_STREAM}, \const{SOCK\_SEQPACKET} o @@ -1202,7 +1202,7 @@ si aspetta in una qualunque applicazione client/server. Per attivare immediatamente l'emissione del FIN e la sequenza di chiusura descritta in \secref{sec:TCP_conn_term}, si può invece usare la funzione \func{shutdown} su cui torneremo in seguito (vedi -\secref{sec:TCP_xxx_shutdown}). +\secref{sec:TCP_shutdown}). @@ -2384,7 +2384,7 @@ definitiva della connessione anche nel client, dove non comparir nell'output di \cmd{netstat}. Come abbiamo accennato in \secref{sec:TCP_conn_term} e come vedremo più avanti -in \secref{sec:TCP_xxx_shutdown} la chiusura di un solo capo di un socket è +in \secref{sec:TCP_shutdown} la chiusura di un solo capo di un socket è una operazione lecita, per cui la nostra scrittura avrà comunque successo (come si può constatare lanciando usando \cmd{strace}\footnote{il comando \cmd{strace} è un comando di debug molto utile che prende come parametro un @@ -2657,7 +2657,8 @@ riportando appunto come errore \errcode{ECONNRESET}. Occorre precisare che se si vuole che il client sia in grado di accorgersi del crollo del server anche quando non sta effettuando uno scambio di dati, è possibile usare una impostazione speciale del socket (ci torneremo in -\secref{sec:TCP_xxx_sockopt}) che provvede all'esecuzione di questo controllo. +\secref{sec:TCP_sock_options}) che provvede all'esecuzione di questo +controllo.