inserendola anche lui nel suo SYN di risposta dell'apertura della
connessione.} per la connessione corrente (espresso come numero di bit cui
spostare a sinistra il valore della finestra annunciata inserito nel
- pacchetto). Con Linux è possibile indicare al kernel di far negozioare il
+ pacchetto). Con Linux è possibile indicare al kernel di far negoziare il
fattore di scala in fase di creazione di una connessione tramite la
\textit{sysctl} \texttt{tcp\_window\_scaling} (vedi
sez.~\ref{sec:sock_ipv4_sysctl}).\footnote{per poter usare questa
funzionalità è comunque necessario ampliare le dimensioni dei buffer di
ricezione e spedizione, cosa che può essere fatta sia a livello di sistema
- con le opportune \textit{sysct} (vedi sez.~\ref{sec:sock_ipv4_sysctl}) che
+ con le opportune \textit{sysctl} (vedi sez.~\ref{sec:sock_ipv4_sysctl}) che
a livello di singoli socket con le relative opzioni (vedi
sez.~\ref{sec:sock_tcp_udp_options}).}
l'elenco delle porte assegnate dalla IANA (la \textit{Internet Assigned Number
Authority}) ma l'elenco viene costantemente aggiornato e pubblicato su
internet (una versione aggiornata si può trovare all'indirizzo
-\href{ftp://ftp.isi.edu/in-notes/iana/assignements/port-number}
-{\texttt{ftp://ftp.isi.edu/in-notes/iana/assignements/port-numbers}}); inoltre
+\href{http://www.iana.org/assignments/port-numbers}
+{\texttt{http://www.iana.org/assignments/port-numbers}}); inoltre
in un sistema unix-like un analogo elenco viene mantenuto nel file
\file{/etc/services}, con la corrispondenza fra i vari numeri di porta ed il
nome simbolico del servizio. I numeri sono divisi in tre intervalli:
sez.~\ref{sec:sock_generic_options}) che provvede all'esecuzione di questo
controllo.
+
\section{L'uso dell'I/O multiplexing}
\label{sec:TCP_sock_multiplexing}
dati in ricezione; per cui, nella situazione in cui si conosce almeno un
valore minimo, per evitare la penalizzazione dovuta alla ripetizione delle
operazioni di lettura per accumulare dati sufficienti, si può lasciare al
- kernel il compito di impostare un minimo al di sotto del quale il file
- descriptor, pur avendo disponibili dei dati, non viene dato per pronto in
- lettura.}
+ kernel il compito di impostare un minimo al di sotto del quale il socket,
+ pur avendo disponibili dei dati, non viene dato per pronto in lettura.}
anche a questo server le considerazioni finali di
sez.~\ref{sec:TCP_serv_select}.
+% TODO fare esempio con epoll
+
+
% LocalWords: socket TCP client dell'I multiplexing stream three way handshake
% LocalWords: header stack kernel SYN ACK URG syncronize sez bind listen fig
% LocalWords: accept connect active acknowledge l'acknowledge nell'header MSS
% LocalWords: sequence number l'acknowledgement dell'header options l'header
-% LocalWords: option MMS segment size MAXSEG window advertized Mbit sec nell'
+% LocalWords: option MMS segment size MAXSEG window advertised Mbit sec nell'
% LocalWords: timestamp RFC long fat close of l'end l'ACK half shutdown CLOSED
% LocalWords: netstat SENT ESTABLISHED WAIT IPv Ethernet piggybacking UDP MSL
% LocalWords: l'overhead Stevens Lifetime router hop limit TTL to live RST SSH
% LocalWords: SNDLOWAT third fset maxfd fileno ISSET closed how SHUT RD WR eof
% LocalWords: RDWR fifo Trip ping fourth CLR sull'I SETSIZE nread break Denial
% LocalWords: Service poll POLLIN POLLRDNORM POLLPRI POLLRDBAND POLLOUT events
-% LocalWords: POLLHUP POLLERR revents pollfd Di
+% LocalWords: POLLHUP POLLERR revents pollfd Di scaling SYNCNT DoS
%%% Local Variables:
%%% mode: latex