Newsgroup: it.comp.programmare.win32
Titolo: time wait

ciao...avrei una domanda....da quanto ho letto il processo che inizia
la active close richiamando closesocket() e' quello che termina nello
stato time_wait(); da questo stato esce solo allo scadere del time
out, che puo' durare da 1 a 4 minuti a seconda dell'implementazione
dello stack tcp/ip - a meno che non si sia pasticciato con so_linger,
ma mi pare che si tratti di una cosa relativamente sporca ("the
time_wait state is you friend", diceva il compianto Stevens...). Mi
viene qualche curiosamento sul funzionamento dei server http,
dunque...quando hanno finito di spedire un file, la connessione sono
loro a chiuderla...e allora la porta gli va in time_wait...c'e' il
rischio che il server si impasti perche' non ha porte libere..? O in
effetti simili carichi non si verificano perche' un server solo non si
trova mai a servire qualche decina di migliaia di connessioni nel giro
di qualche minuto..?
Qualcuno sa(prebbe) darmi qualche delucidazione?
		Grazie
			Marcelo
 

 writes:
MV> ciao...avrei una domanda....da quanto ho letto il processo che inizia
MV> la active close richiamando closesocket() e' quello che termina nello
MV> stato time_wait(); da questo stato esce solo allo scadere del time
MV> out, che puo' durare da 1 a 4 minuti a seconda dell'implementazione
MV> dello stack tcp/ip - a meno che non si sia pasticciato con so_linger,
MV> ma mi pare che si tratti di una cosa relativamente sporca ("the
MV> time_wait state is you friend", diceva il compianto Stevens...).
Quel tempo gli serve per  aspettare che anche dall'altra parte cessino
di trasmettere e chiudano la connessione.  Non è detto che se A chiude
la connessione  anche B  cessi subito di  trasmettere. B manda  il suo
pacchetto  con FIN  alto quando  ha finito  di trasmettere  quello che
_lui_ doveva trasmettere.
MV> c'e' il
MV> rischio che il server si impasti perche' non ha porte libere..? O in
MV> effetti simili carichi non si verificano perche' un server solo non si
MV> trova mai a servire qualche decina di migliaia di connessioni nel giro
MV> di qualche minuto..?
Se non  ho fatto male  le ipotesi (pacchetti  di apertura di  48 byte)
servono 9 megabyte di dati che dovrebbero essere smaltiti da una linea
a 2  in un  minuto. Mi pare  che l'ipotesi  che fai si  sia realizzata
quando vennero zittiti alcuni grossi server WWW.
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+
| Attenzione: rispondo ad ogni invio di pubblicità non richiesta | 
| o spam di qualsiasi altro genere con un messaggio al provider  |
| di competenza. Ai sensi della legge sulla privacy NON avete il |
| permesso di utilizzare i miei dati per questi scopi.           |
+----------------------------------------------------------------+

quando vennero zittiti alcuni grossi server WWW.
questo e' appunto quanto congetturavo....grazie per la risposta
ciao ciao...
	Marcelo


wrote:
ciao... ho notato una cosa interessante, pero', che credo dipenda
dall'implementazione dello stack TCP IP sotto Windows...se ci sono 8
porte in time wait e l'http server chiude la connessione, la prima
delle porte che e' andata in wait viene magicamente sfrattata...
ciao,
	Marcelo