Какое время ожидания TCP-соединения по умолчанию в Windows? Есть ключ реестра для его настройки или он установлен динамически?
28
В Windows значение является динамическим для установленных соединений , хотя по умолчанию для начальных соединений составляет 72 секунды. Настройки реестра определены в этой статье:
http://technet.microsoft.com/en-us/library/cc739819(WS.10).aspx
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services: \ Tcpip \ Parameters
TcpInitialRTT : определяет начальные настройки времени ожидания для новых подключений. Это число в секундах удваивается каждый раз, когда оно передается, прежде чем синхронизировать соединение. По умолчанию 3.
TcpMaxConnectRetransmissions : определяет количество повторных передач до тайм-аута соединения. По умолчанию 5.
TcpMaxDataRetransmissions
на 16 (по умолчанию должно быть 5), но мой PuTTY по-прежнему очень быстро разрывает соединения при кратковременных сбоях, тогда как ssh в OS X и той же сети поддерживает их в порядке. superuser.com/questions/529511/...Обычно «время ожидания соединения» относится к времени ожидания для создания начального соединения с хостом. Во многих системах (включая Windows 7) это значение настраивается с использованием параметров, отличных от тайм-аутов для текущей связи после установления соединения. В этом ответе рассматривается сценарий «начального подключения» для Windows 7, который отличается от XP.
Для Windows 7 необходимы два исправления для поддержки настройки времени ожидания подключения. Новые настройки можно настроить с помощью команды «netsh».
Исправление # 2786464: Исправление позволяет настроить максимальный объем повторной передачи SYN в TCP в Windows 7 или Windows Server 2008 R2
Исправление # 2472264: невозможно настроить некоторые конфигурации TCP с помощью команды netsh в Windows Server 2008 R2
Из статьи об исправлении 2786464:
Первое исправление добавляет параметр «MaxSynRetransmissions», который позволяет изменить настройку повтора со значения по умолчанию, равного 2. Второе добавляет параметр «InitialRto», который позволяет изменить значение начального RTO со значения по умолчанию 3000 мс (да, миллисекунд), но только на что-то короче 3000 мс; это не может быть увеличено. В зависимости от вашей ситуации вам может понадобиться только исправление MaxSynRetransmissions.
Установите оба исправления, перезагрузите компьютер и откройте командное окно с правами администратора. Дальнейшие перезагрузки не требуются для последующих вызовов команды netsh.
Примечание. Windows telnet используется для ссылки на фактическое время ожидания соединения. Он должен быть установлен отдельно, но это легко сделать.
Дополнительные ссылки / респект:
источник
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
источник
Если я правильно понимаю ваш вопрос, вы имеете в виду:
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, и регулярно отключало все сетевые службы на этом сервере. Более 16 000 подключений в netstat -a, когда вам даже удается подключиться к RDP к серверу. Мы установили значение 30 десятичных (30 секунд) и вуаля, проблема была решена - менее 10000 одновременных подключений (так как приложение быстро открывало и закрывало их) и никаких проблем с пропускной способностью.
источник