it-swarm.com.de

Welches ist das Standardzeitlimit TCP Verbindungszeitlimit in Windows?

Welches ist die Standardeinstellung TCP Verbindungszeitlimit in Windows? Es gibt einen Registrierungsschlüssel zum Konfigurieren oder es wird dynamisch festgelegt?

In Windows ist der Wert für hergestellt 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 Zahl 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.

24
sysadmin1138

Normalerweise bezieht sich "Verbindungszeitlimit" auf das Zeitlimit zum Erstellen der ersten Verbindung zu einem Host. In vielen Systemen (einschließlich Windows 7) wird dieser Wert mithilfe separater 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.

Aus dem 2786464-Hotfix-Artikel:

Hinweis In Windows 7 und Windows Server 2008 R2 ist der Wert TCP maximale SYN-Neuübertragung (JH: MaxSynRetransmissions)) auf 2 festgelegt und kann nicht konfiguriert werden. Aufgrund der 3-Sekunden-Begrenzung der Initiale Timeout-Wert (JH: InitialRTO), der Drei-Wege-Handshake TCP ist auf einen Zeitrahmen von 21 Sekunden begrenzt (3 Sekunden + 2 * 3 Sekunden + 4 * 3 Sekunden = 21 Sekunden)). .

Der erste Hotfix fügt eine 'MaxSynRetransmissions'-Einstellung hinzu, mit der die Wiederholungseinstellung vom Standardwert 2 geändert werden kann. Der zweite fügt die' InitialRto'-Einstellung hinzu, mit der der anfängliche RTO-Wert von der Standardeinstellung von 3000 ms (ja, Millisekunden) geändert werden kann, jedoch nur bis 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 neu und öffnen Sie ein Befehlsfenster als Administrator. Weitere Neustarts sind für nachfolgende netsh-Befehlsaufrufe nicht erforderlich.

C:\Windows\system32>NET SESSION >nul 2>&1

C:\Windows\system32>IF %ERRORLEVEL% EQU 0 (ECHO Administrator PRIVILEGES Detected!) ELSE ( ECHO NOT AN ADMIN! )
Administrator PRIVILEGES Detected!

C:\Windows\system32>netsh interface tcp show global
Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : enabled
Chimney Offload State               : automatic
NetDMA State                        : enabled
Direct Cache Acess (DCA)            : disabled
Receive Window Auto-Tuning Level    : normal
Add-On Congestion Control Provider  : none
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled
Initial RTO                         : 3000
Non Sack Rtt Resiliency             : disabled
Max SYN Retransmissions             : 2
** The above autotuninglevel setting is the result of Windows Scaling heuristics

overriding any local/policy configuration on at least one profile.

C:\Windows\system32>cmd /v:on /c "echo !TIME! & telnet 192.168.1.254 & echo !TIME!"
14:10:30.53
Connecting To 192.168.1.254...Could not open connection to the Host, on port 23: Connect failed
14:10:51.60


C:\Windows\system32>netsh interface tcp set global MaxSynRetransmissions=3
Ok.


C:\Windows\system32>netsh interface tcp show global
Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : enabled
Chimney Offload State               : automatic
NetDMA State                        : enabled
Direct Cache Acess (DCA)            : disabled
Receive Window Auto-Tuning Level    : normal
Add-On Congestion Control Provider  : none
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled
Initial RTO                         : 3000
Non Sack Rtt Resiliency             : disabled
Max SYN Retransmissions             : 3
** The above autotuninglevel setting is the result of Windows Scaling heuristics

overriding any local/policy configuration on at least one profile.

C:\Windows\system32>cmd /v:on /c "echo !TIME! & telnet 192.168.1.254 & echo !TIME!"
14:27:02.33
Connecting To 192.168.1.254...Could not open connection to the Host, on port 23:
 Connect failed
14:27:47.41

C:\Windows\system32>netsh interface tcp set global MaxSynRetransmissions=2
Ok.


C:\Windows\system32>netsh interface tcp set global InitialRto=1000
Ok.


C:\Windows\system32>netsh interface tcp show global
Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : enabled
Chimney Offload State               : automatic
NetDMA State                        : enabled
Direct Cache Acess (DCA)            : disabled
Receive Window Auto-Tuning Level    : normal
Add-On Congestion Control Provider  : none
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled
Initial RTO                         : 1000
Non Sack Rtt Resiliency             : disabled
Max SYN Retransmissions             : 2
** The above autotuninglevel setting is the result of Windows Scaling heuristics

overriding any local/policy configuration on at least one profile.


C:\Windows\system32>cmd /v:on /c "echo !TIME! & telnet 192.168.1.254 & echo !TIME!"
14:29:06.13
Connecting To 192.168.1.254...Could not open connection to the Host, on port 23:
 Connect failed
14:29:13.20

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/Lob:

10
Josh Hansen

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 besagt, dass zumindest 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

2
lethargo

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 Schließen und Freigeben wird als TIME_WAIT-Status oder doppelt so hoch wie der maximale Segmentlebensdauer-Status (2MSL) bezeichnet. Während dieser Zeit kostet das erneute Öffnen der Verbindung zum 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 für die ausgeführte Anwendung eine schnelle Freigabe, das Erstellen neuer Verbindungen oder eine Anpassung aufgrund eines geringen Durchsatzes erforderlich ist, 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 eingestellt, 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. Er wird nach einem Neustart wirksam (getestet unter Windows Server 2008R2 in einer Produktionsumgebung). Dies ist angesichts der Qualität moderner Netzwerke ein absurd hoher Wert.

Ich hatte vor weniger als einem Monat eine Anwendung, die buchstäblich auf einem Server ausgeführt wurde, der die maximale Anzahl von Verbindungen erschöpft hat, die Windows unterstützen kann, und jeden Netzwerkdienst auf diesem Server regelmäßig beendet hat. Über 16.000 Verbindungen in netstat -a, wenn Sie sogar RDP zum Server verwalten. Wir haben den Wert auf 30 Dezimalstellen (30 Sekunden) eingestellt und voila, das Problem wurde behoben - weniger als 10.000 gleichzeitige Verbindungen (da die App sie schnell öffnete und schloss) und keine Durchsatzprobleme.

1
denislin