Windows의 기본 TCP 연결 시간 초과는 어느 것입니까?


28

Windows의 기본 TCP 연결 시간 초과는 어느 것입니까? 구성 할 레지스트리 키가 있습니까? 아니면 동적으로 설정되어 있습니까?

답변:


23

초기 연결 의 기본값 은 72 초 이지만 Windows에서는 설정된 연결에 대해 값이 동적입니다 . 레지스트리 설정은이 기사에서 정의됩니다.

http://technet.microsoft.com/en-us/library/cc739819(WS.10).aspx

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ 서비스 : \ Tcpip \ Parameters

TcpInitialRTT : 새 연결에 대한 초기 시간 제한 설정을 정의합니다. 이 시간 (초)은 연결 시간이 초과되기 전에 재전송 할 때마다 두 배가됩니다. 기본값은 3입니다.

TcpMaxConnectRetransmissions : 연결 시간이 초과되기 전의 재전송 횟수를 정의합니다. 기본값은 5입니다.


연결을 변경 한 후 지정된 연결을 다시 설정하면되며 다시 부팅 할 필요가 없습니다. 짧은 시간 동안 Windows 7이 기존 연결을 사전에 삭제하지 못하도록 변경해야 할 사항을 알고 있습니까? TcpMaxDataRetransmissions16으로 변경하려고 시도했지만 (기본값은 5 임) PuTTY는 잠시 중단되면 여전히 연결을 정말 빨리 끊는 반면 OS X 및 동일한 네트워크의 ssh는 연결을 유지합니다. superuser.com/questions/529511/…
cnst

3
사실, 재부팅 후 작동했습니다! Windows에서는 아무것도 바뀌지 않습니다! 다시 부팅해야하는 것처럼 보이며 다시 부팅하지 않고 레지스트리를 편집하면 이전 연결 또는 새 연결에 설정이 적용되지 않습니다!
cnst

9

일반적으로 "연결 시간 초과"는 호스트에 대한 초기 연결을 만들기위한 시간 초과를 나타냅니다. 많은 시스템 (Windows 7 포함)에서이 값은 연결이 설정된 후 지속적인 통신을 위해 시간 초과와 별도의 설정을 사용하여 구성됩니다. 이 답변은 XP와 다른 Windows 7의 "초기 연결"시나리오를 해결합니다.

Windows 7의 경우 연결 시간 종료 설정 조정을 지원하려면 두 개의 핫픽스가 필요합니다. 'netsh'명령으로 새로운 설정을 구성 할 수 있습니다.

2786464 핫픽스 기사에서 :

참고 Windows 7 및 Windows Server 2008 R2에서 TCP 최대 SYN 재전송 (JH : MaxSynRetransmissions) 값은 2로 설정되어 있으며 구성 할 수 없습니다. 초기 시간 제한 값 (JH : InitialRTO)의 3 초 제한으로 인해 TCP 3 방향 핸드 셰이크는 21 초 시간 프레임 (3 초 + 2 * 3 초 + 4 * 3 초 = 21 초)으로 제한됩니다. ).

첫 번째 핫픽스는 기본값 2에서 재시도 설정을 변경할 수있는 'MaxSynRetransmissions'설정을 추가합니다. 두 번째 핫픽스는 초기 RTO 값을 기본값 3000ms (예, 밀리 초)에서 변경할 수있는 'InitialRto'설정을 추가합니다. 3000ms보다 짧은 것; 늘릴 수 없습니다. 상황에 따라 'MaxSynRetransmissions'핫픽스 만 필요할 수 있습니다.

두 핫픽스를 모두 설치하고 재부팅 한 다음 관리자 권한으로 명령 창을 엽니 다. 후속 netsh 명령 호출에는 추가 재부팅이 필요하지 않습니다.

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

참고 : Windows 텔넷은 실제 연결 시간 초과에 대한 참조로 사용됩니다. 별도로 설치해야하지만 쉽게 수행 할 수 있습니다.

추가 링크 / 쿠도 :


2

Vista 및 Windows 2008에는 TcpInitialRTT 및 TcpMaxConnectRetransmissions가 없을 수 있습니다.이 Microsoft 문서에는 포함되어 있지 않습니다. http://download.microsoft.com/download/c/2/6/c26893a6-46c7-4b5c-b287-830216597340/TCPIP_Reg.doc

그리고 이것은 그것이 얼마나 신뢰할 만한지 모르겠지만 적어도 TcpInitialRTT는 사라 졌다고 말합니다. http://pul.se/Blog-Post-TCP-IP-Stack-hardening-in-Operating-systems-starting-with-Windows-Vista_SharePoint-kHPTTCP0WJ5,7zq00hH0wINE


1

귀하의 질문을 올바르게 이해하면 다음을 언급 한 것입니다.

TcpTimedWaitDelay

이 키는 TCP / IP가 닫힌 연결을 해제하고 해당 자원을 재사용하기 전에 경과해야하는 시간을 결정합니다. 폐쇄와 해제 사이의이 간격을 TIME_WAIT 상태 또는 최대 세그먼트 수명 (2MSL) 상태의 두 배라고합니다. 이 시간 동안 클라이언트와 서버에 대한 연결을 다시 여는 데는 새로운 연결을 설정하는 것보다 비용이 적게 듭니다. 이 항목의 값을 줄이면 TCP / IP는 닫힌 연결을 더 빨리 해제하고 새 연결에 더 많은 리소스를 제공 할 수 있습니다. 실행중인 응용 프로그램에서 빠른 릴리스, 새 연결 작성 또는 TIME_WAIT 상태의 다중 연결로 인한 처리량이 적어 조정이 필요한 경우이 매개 변수를 조정하십시오.

정확한 키는 다음과 같습니다. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Tcpip \ Parameters \ TcpTimedWaitDelay

Win2008 이상을 사용하는 경우 설정하지 않았을 수 있지만 기본값은 10 진수 240 (240 초 또는 4 분)입니다. 다른 값으로 레지스트리에 키를 추가 할 수 있으며 재부팅 후 적용됩니다 (제작 환경의 Windows Server 2008R2에서 테스트 됨). 이것은 현대 네트워크의 품질을 고려할 때 엄청나게 높은 가치입니다.

한 달 전에 응용 프로그램을 서버에서 실행하여 Windows에서 지원할 수있는 최대 연결 수를 소모하여 해당 서버의 모든 네트워크 서비스를 정기적으로 종료했습니다. 서버에 대한 RDP를 관리 할 때 netstat -a에서 16,000 개 이상의 연결 우리는 10 진수 30 초 (30 초)로 값을 설정했으며 문제는 해결되었습니다-10,000 개 미만의 동시 연결 (앱이 빠르게 열고 닫기 때문에) 처리량 문제가 없습니다.


Windows Server 2012 및 2016에서 정확한 키는 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ TcpTimedWaitDelay
Vincent가

이 레지스트리 편집에 재부팅이 필요하다고 가정하는 것이 안전합니까?
Vincent
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.