X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=elemtcp.tex;h=1db669a29c80a1770eec1cff7c0ea1ed5067c510;hp=c77370107666b73540e30cd2c69737eddf6c82e6;hb=25de957ddf731370bec1eb74b13cf35aa7886d1b;hpb=718a0a24b34dce09e40eafc33c02ae494d100181 diff --git a/elemtcp.tex b/elemtcp.tex index c773701..1db669a 100644 --- a/elemtcp.tex +++ b/elemtcp.tex @@ -30,8 +30,8 @@ per capire il modello di programmazione ed il funzionamento delle API. In particolare ci concentreremo sulle modalità con le quali il protocollo dà inizio e conclude una connessione; faremo inoltre anche un breve accenno al significato di alcuni dei vari stati che il protocollo assume durante la vita -di una connessione, che possono essere osservati per ciascun socket attivo con -l'uso del programma \cmd{netstat}. +di una connessione, che possono essere osservati per ciascun +socket\index{socket} attivo con l'uso del programma \cmd{netstat}. \subsection{La creazione della connessione: il \textit{three way handshake}} \label{sec:TCPel_conn_cre} @@ -253,10 +253,9 @@ nel campo \textit{State}. Una descrizione completa del funzionamento del protocollo va al di là degli obiettivi di questo libro; un approfondimento sugli aspetti principali si trova in \capref{cha:tcp_protocol}, ma per una trattazione esauriente il -miglior riferimento resta (FIXME citare lo Stevens); qui ci limiteremo a -descrivere brevemente un semplice esempio di connessione e le transizioni che -avvengono nei due casi appena citati (creazione e terminazione della -connessione). +miglior riferimento resta \cite{TCPIll1}; qui ci limiteremo a descrivere +brevemente un semplice esempio di connessione e le transizioni che avvengono +nei due casi appena citati (creazione e terminazione della connessione). In assenza di connessione lo stato del TCP è \texttt{CLOSED}; quando una applicazione esegue una apertura attiva il TCP emette un SYN e lo stato @@ -507,12 +506,15 @@ dal lato client come parte dell'autenticazione. Questo viene fatto tramite la funzione \func{rresvport} assegnando al socket una porta libera nell'intervallo fra 512 e 1023. -Data una connessione TCP si suole chiamare \textit{socket pair} la -combinazione dei quattro numeri che definiscono i due capi della connessione e -cioè l'indirizzo IP locale e la porta TCP locale, e l'indirizzo IP remoto e la -porta TCP remota; questa combinazione, che scriveremo usando una notazione del -tipo (195.110.112.152:22, 192.84.146.100:20100), identifica univocamente una -connessione su internet. Questo concetto viene di solito esteso anche a UDP, +Data una connessione TCP si suole chiamare \textit{socket pair}\footnote{da + non confondere con la coppia di socket della omonima funzione + \func{socketpair} che fanno riferimento ad una coppia di socket sulla stessa + macchina, non ai capi di una connessione TCP.} la combinazione dei quattro +numeri che definiscono i due capi della connessione e cioè l'indirizzo IP +locale e la porta TCP locale, e l'indirizzo IP remoto e la porta TCP remota; +questa combinazione, che scriveremo usando una notazione del tipo +(195.110.112.152:22, 192.84.146.100:20100), identifica univocamente una +connessione su internet. Questo concetto viene di solito esteso anche a UDP, benché in questo caso non abbia senso parlare di connessione. L'utilizzo del programma \cmd{netstat} permette di visualizzare queste informazioni nei campi \textit{Local Address} e \textit{Foreing Address}.