У меня такая ситуация:
Есть ли тайм-аут для установленных соединений под Windows (в данном случае Win8.1)? Могу ли я изменить время ожидания?
я нашел этот, но, похоже, это не отвечает на мой вопрос об установленных соединениях.
По умолчанию установленное TCP-соединение не истекает по тайм-ауту (но может это сделать из-за аппаратных ограничений).
Приложение может использовать механизм поддержки активности TCP для проверки наличия разорванных соединений. В Firebird (> 1.5) пакеты поддержки активности TCP включены.
На сервере должен быть установлен "тайм-аут" поддержки активности. Интервал времени поддержки активности TCP по умолчанию в Windows составляет 2 часа (но рекомендуется 5 минут). Его можно установить в HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveTime
ключ реестра.
Более подробная информация по ссылкам выше:
сбойное клиентское соединение будет закрыто по истечении следующего интервала времени:
KEEPALIVE_TIME+ ( KEEPALIVE_PROBES+1)* KEEPALIVE_INTERVAL
Со следующими соответствующими значениями реестра в Windows:
KEEPALIVE_TIME = KeepAliveTime (default: 7200 seconds)
KEEPALIVE_INTERVAL = KeepAliveInterval (default: 1 second)
KEEPALIVE_PROBES = TCPMaxDataRetransmissions (default: 5)
Но:
По умолчанию сегмент поддержки активности отправляется каждые два часа [...]. Даже если этот параметр включен, другие протоколы верхнего уровня, такие как NetBIOS, отправляют свое собственное значение keepalive. Если интервал поддержки активности, который использует протокол верхнего уровня, меньше, чем интервал поддержки активности TCP, значение поддержки активности TCP никогда не отправляется. Например, сеансы NetBIOS через TCP / IP отправляют запрос поддержки активности NetBIOS каждые 60 минут. Следовательно, значения поддержки активности TCP, включенные для сеанса NetBIOS, никогда не используются.
В спецификации TCP нет тайм-аута или механизма поддержки активности. Существуют записи реестра, которые можно настроить для настройки сообщений поддержки активности TCP, но фактическое приложение может использовать сообщения поддержки активности. Смотрите ответ на этот вопрос:
Включение общесистемных сообщений поддержки активности TCP в системе Windows