Wie vermeiden Webserver TIME_WAIT?

8

Ich schreibe einen einfachen HTTP-Server und lerne TIME_WAIT kennen. Wie gehen echte Web-Server in komplexen Umgebungen mit Anfragen von Tausenden von Benutzern um, ohne dass alle Sockets in TIME_WAIT stecken bleiben, nachdem eine Anfrage bearbeitet wurde? (Nicht zu fragen, Keep-Alive - das würde für einen einzelnen Client helfen, aber nicht für Tausende von verschiedenen Clients durchkommen).

Ich habe gelesen, dass Sie versuchen, den Client zuerst zu schließen, damit alle TIME_WAITs auf alle Clients verteilt werden, anstatt sich auf den Server zu konzentrieren.

Wie wird das gemacht? Irgendwann muss der Server clos / socket aufrufen.

    
DougN 17.09.2010, 20:02
quelle

1 Antwort

9

Der Peer, der den aktiven Abschluss initiiert, ist derjenige, der in TIME_WAIT geht. Solange der Client die Verbindung schließt, erhält der Client die TIME_WAIT und nicht den Server. Ich gehe darauf ein wenig genauer ein. in diesem Blogbeitrag .

    
Len Holgate 17.09.2010, 21:10
quelle

Tags und Links