Welches ist das Standard-TCP-Verbindungszeitlimit in Windows? Gibt es einen Registrierungsschlüssel, um ihn zu konfigurieren, oder ist er dynamisch festgelegt?
28
In Windows ist der Wert für hergestellte Verbindungen dynamisch , obwohl der Standardwert für anfängliche Verbindungen 72 Sekunden beträgt. Die Registrierungseinstellungen werden in diesem Artikel definiert:
http://technet.microsoft.com/en-us/library/cc739819(WS.10).aspx
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services: \ Tcpip \ Parameters
TcpInitialRTT : Definiert die anfänglichen Timeout -Einstellungen für neue Verbindungen. Diese Anzahl in Sekunden wird bei jeder erneuten Übertragung verdoppelt, bevor eine Verbindung unterbrochen wird. Der Standardwert ist 3.
TcpMaxConnectRetransmissions : Definiert die Anzahl der erneuten Übertragungen, bevor eine Verbindung unterbrochen wird. Der Standardwert ist 5.
TcpMaxDataRetransmissions
auf 16 zu wechseln (Standardeinstellung ist 5), aber mein PuTTY trennt die Verbindungen bei kurzen Ausfällen immer noch sehr schnell, wohingegen ssh unter OS X und demselben Netzwerk sie in Ordnung hält. superuser.com/questions/529511/...Normalerweise bezieht sich "Verbindungs-Timeout" auf das Timeout zum Herstellen der ersten Verbindung zu einem Host. In vielen Systemen (einschließlich Windows 7) wird dieser Wert unter Verwendung getrennter Einstellungen von Zeitüberschreitungen für die laufende Kommunikation konfiguriert, nachdem eine Verbindung hergestellt wurde. Diese Antwort befasst sich mit dem Szenario "Erstverbindung" für Windows 7, das sich von XP unterscheidet.
Für Windows 7 sind zwei Hotfixes erforderlich, um das Anpassen der Einstellungen für das Verbindungszeitlimit zu unterstützen. Die neuen Einstellungen können mit dem Befehl 'netsh' konfiguriert werden.
Hotfix Nr. 2786464: Hotfix ermöglicht die Konfiguration der maximalen TCP-SYN-Neuübertragungsmenge in Windows 7 oder Windows Server 2008 R2
Hotfix Nr. 2472264: Sie können einige TCP-Konfigurationen nicht mithilfe des Befehls netsh in Windows Server 2008 R2 anpassen
Aus dem 2786464-Hotfix-Artikel:
Der erste Hotfix fügt eine Einstellung "MaxSynRetransmissions" hinzu, mit der die Einstellung "Retry" vom Standardwert 2 geändert werden kann. Der zweite Hotfix fügt eine Einstellung "InitialRto" hinzu, mit der der RTO-Standardwert von 3000 ms (Ja, Millisekunden) geändert werden kann, jedoch nur auf etwas kürzer als 3000ms; es kann nicht erhöht werden. Abhängig von Ihrer Situation benötigen Sie möglicherweise nur den Hotfix 'MaxSynRetransmissions'.
Installieren Sie beide Hotfixes, starten Sie den Computer neu und öffnen Sie als Administrator ein Befehlsfenster. Weitere Neustarts sind für nachfolgende Netsh-Befehlsaufrufe nicht erforderlich.
Hinweis: Windows Telnet wird als Referenz für das tatsächliche Verbindungszeitlimit verwendet. Es muss separat installiert werden, ist aber einfach zu tun.
Zusätzliche Links / Kudos:
quelle
TcpInitialRTT und TcpMaxConnectRetransmissions sind in Vista und Windows 2008 möglicherweise nicht vorhanden. Dieses Microsoft-Dokument enthält sie nicht. http://download.microsoft.com/download/c/2/6/c26893a6-46c7-4b5c-b287-830216597340/TCPIP_Reg.doc
Und das sagt zumindest, dass TcpInitialRTT weg ist, obwohl ich nicht weiß, wie zuverlässig es ist. http://pul.se/Blog-Post-TCP-IP-Stack-hardening-in-Operating-Systems-starting-with-Windows-Vista_SharePoint-kHPTTCP0WJ5,7zq00hH0wINE
quelle
Wenn ich Ihre Frage richtig verstehe, beziehen Sie sich auf:
TcpTimedWaitDelay
Dieser Schlüssel bestimmt die Zeit, die vergehen muss, bevor TCP / IP eine geschlossene Verbindung freigeben und ihre Ressourcen wiederverwenden kann. Dieses Intervall zwischen dem Schließen und der Freigabe wird als TIME_WAIT-Status oder als doppelter Status der maximalen Segmentlebensdauer (2MSL) bezeichnet. Während dieser Zeit kostet das erneute Öffnen der Verbindung zu Client und Server weniger als das Herstellen einer neuen Verbindung. Durch Verringern des Werts dieses Eintrags kann TCP / IP geschlossene Verbindungen schneller freigeben und mehr Ressourcen für neue Verbindungen bereitstellen. Passen Sie diesen Parameter an, wenn die ausgeführte Anwendung eine schnelle Freigabe, das Erstellen neuer Verbindungen oder eine Anpassung aufgrund eines geringen Durchsatzes erfordert, der durch mehrere Verbindungen im Status TIME_WAIT verursacht wird.
Der genaue Schlüssel lautet: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Tcpip \ Parameters \ TcpTimedWaitDelay
Sie haben es möglicherweise nicht festgelegt, wenn Sie Win2008 oder höher verwenden, aber die Standardeinstellung ist 240 Dezimalstellen (dh 240 Sekunden oder 4 Minuten). Sie können den Schlüssel mit einem anderen Wert zur Registrierung hinzufügen. Dieser wird nach einem Neustart wirksam (getestet unter Windows Server 2008R2 in einer Produktionsumgebung). Dies ist angesichts der Qualität moderner Netze ein absurd hoher Wert.
Ich hatte eine Anwendung, die buchstäblich vor weniger als einem Monat auf einem Server lief, auf dem die maximale Anzahl von Verbindungen erschöpft war, die Windows unterstützen kann, und die jeden Netzwerkdienst auf diesem Server regelmäßig beendet hat. Über 16.000 Verbindungen in netstat -a, wenn Sie sogar eine RDP-Verbindung zum Server herstellen. Wir stellten den Wert auf 30 Dezimalstellen (30 Sekunden) und voila ein. Das Problem wurde behoben - weniger als 10.000 gleichzeitige Verbindungen (da die App sie schnell öffnete und schloss) und keine Durchsatzprobleme.
quelle