Который является тайм-аутом подключения TCP по умолчанию в Windows?

Хорошее решение для Вас было бы нашим сообщать продукту. Это идет с редактором свободной формы и позволяет Вам создавать пользовательские формы для BlackBerry. Пользователи могут затем заполнить формы и послать результаты по электронной почте. Вы видите это по skysoftsystems.com.

Спасибо.

28
задан 21 October 2010 в 01:21
4 ответа

В Windows значение является динамичным для установленных соединений, хотя значение по умолчанию для начальных соединений составляет 72 секунды. Настройки Registry определяются в этой статье:

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

HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services: \Tcpip \Parameters

TcpInitialRTT: Определяет то, что начальные настройки тайм-аута для новых соединений. Это число в секундах удвоено каждый раз, когда оно ретранслирует прежде, чем привести к таймауту соединения. Значения по умолчанию к 3.

TcpMaxConnectRetransmissions: Определяет количество повторных передач прежде, чем привести к таймауту соединения. Значения по умолчанию к 5.

23
ответ дан 28 November 2019 в 20:03

TcpInitialRTT и TcpMaxConnectRetransmissions не могут присутствовать в Vista и Windows 2008. Этот документ 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

2
ответ дан 28 November 2019 в 20:03

Если я правильно понял ваш вопрос, вы имеете в виду:

TcpTimedWaitDelay

Этот ключ определяет время, которое должно пройти, прежде чем TCP / IP сможет освободить закрытое соединение и повторно использовать его ресурсы . Этот интервал между закрытием и освобождением известен как состояние TIME_WAIT или состояние, в два раза превышающее максимальное время жизни сегмента (2MSL). В течение этого времени повторное открытие соединения с клиентом и сервером обходится дешевле, чем установка нового соединения. Уменьшая значение этой записи, TCP / IP может быстрее освобождать закрытые соединения и предоставлять больше ресурсов для новых соединений. Отрегулируйте этот параметр, если запущенное приложение требует быстрого выпуска, создания новых подключений или настройки из-за низкой пропускной способности, вызванной множественными подключениями в состоянии TIME_WAIT.

Точный ключ: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Tcpip \ Parameters \ TcpTimedWaitDelay

У вас может не быть его настройки, если вы используете Win2008 или более позднюю версию, но по умолчанию используется 240 десятичных знаков (240 секунд или 4 минуты). Вы можете добавить ключ в реестр с другим значением, и он вступит в силу после перезагрузки (проверено на Windows Server 2008R2 в производственной среде). Это абсурдно высокое значение, учитывая качество современных сетей.

У меня было приложение буквально меньше месяца назад, работающее на сервере, которое исчерпало максимальное количество подключений, которое Windows может поддерживать, и регулярно отключало все сетевые службы на этом сервере. Более 16000 подключений в netstat -a даже при использовании RDP к серверу. Мы установили значение 30 в десятичном формате (30 секунд) и вуаля, проблема была решена - менее 10 000 одновременных подключений (поскольку приложение быстро открывало и закрывало их) и никаких проблем с пропускной способностью.

1
ответ дан 28 November 2019 в 20:03

Обычно «тайм-аут соединения» относится к тайм-ауту для создания начального соединения с хостом. Во многих системах (включая Windows 7) это значение настраивается отдельно от тайм-аутов для текущей связи после установления соединения. В этом ответе рассматривается сценарий «начального подключения» для Windows 7, который отличается от XP.

Для Windows 7 требуются два исправления для поддержки настройки параметров тайм-аута подключения. Новые параметры можно настроить с помощью команды netsh.

Из статьи об исправлении 2786464:

Примечание. В Windows 7 и Windows Server 2008 R2 максимальное значение повторной передачи SYN TCP (JH: MaxSynRetransmissions) установлено равным 2 и не настраивается. Из-за 3-секундного ограничения начального значения тайм-аута (JH: InitialRTO) трехстороннее квитирование TCP ограничено 21-секундным таймфреймом (3 секунды + 2 * 3 секунды + 4 * 3 секунды = 21 секунда.

Первое исправление добавляет параметр «MaxSynRetransmissions», который позволяет изменить параметр повторной попытки со значения по умолчанию, равного 2. Второе добавляет параметр «InitialRto», который позволяет изменить значение исходного RTO по умолчанию, равное 3000 мс (да, миллисекунды ), но только до менее 3000 мс; его нельзя увеличить. В зависимости от ситуации вам может потребоваться только исправление «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 telnet используется в качестве справки для фактического тайм-аута соединения. Его необходимо установить отдельно, но это легко сделать.

Дополнительные ссылки / похвалы:

9
ответ дан 28 November 2019 в 20:03

Теги

Похожие вопросы