Ограничение на количество одновременных попыток сетевых подключений
В ОС Windows XP SP2(x86,x64)/SP3, 2003 Server SP1(x86)/SP2(x86,x64), Vista без SP(x86,x64) и с SP1(x86,x64) существует ограничение на количество одновременных попыток сетевых подключений. Это может негативно повлиять на скорость сканирования сети и на работу большого числа проверок типа "TCP-порт", вызывая ошибку "Connect timed out" и ложное срабатывание сигнализации (если она настроена).
Попытка подключения
Для установления TCP соединения локальный компьютер сперва посылает удалённому компьютеру приглашение к соединению (так называемый SYN пакет).
Состояние, в котором при этом находится локальный компьютер, называют полуоткрытым соединением (англ. half-open connection) или попыткой подключения (англ. connection attempt).
Далее, в зависимости от ответа удалённого компьютера, полуоткрытое соединение либо закрывается, либо переходит в нормальное установленное TCP соединение.
Сущность ограничения
Ограничение заключается в том, что компьютеру не разрешается иметь более 10 одновременных полуоткрытых исходящих соединений. При достижении предела новые попытки подключений ставятся в очередь.
Таким образом, фактически ограничена скорость подключения к другим компьютерам.
На количество установленных соединений жесткого предела в системе нет. Кроме того, ограничение никак не затрагивает входящие соединения.
Ограничение введено компанией Microsoft в попытке замедлить распространение вирусов с зараженного компьютера, а также ограничить возможности участия компьютера в DoS-атаках.
Проверка срабатывания
Чтобы проверить, срабатывает ли на вашем компьютере это ограничение, загляните в Просмотр событий (например, через Панель управления - Администрирование или Пуск - Выполнить - EventVwr.msc). Каждое сообщение
«EventID 4226: Достигнут предел безопасности TCP/IP налагаемых на количество попыток одновременных подключений»
или в английской версии
«EventID 4226: TCP/IP has reached the security limit imposed on the number of concurrent TCP connect attempts»
говорит о том, что ограничение сработало.
Влияние ограничения на работу программы
Операционная система подсчитывает все полуоткрытые соединения, даже если они устанавливаются из разных программ. Если у вас работает какой-либо файлообменный P2P-клиент или подобная программа, часто устанавливающая TCP-соединения, то это может оказать влияние на работу программы во время проверок хостов и сканирования TCP-портов. К возникновению ошибки подключения к TCP-порту "Connect timed out" может привести и большое количество одновременно проверяемых хостов с настроенной проверкой TCP-порт. Следует учитывать эту особенность при срабатывании сигнализации, если она настроена на возникновение ошибки проверки.
По этой же причине сканирование сети (построение карты) с использованием TCP-пинга может занять довольно продолжительное время. Это происходит из-за того, что Windows ставит сверхлимитные подключения в очередь, практически "замораживая" их на длительный период. Программа при сканировании сети использует большое количество потоков, одновременно осуществляющих попытки подключения к заданным портам. Из-за существующего ограничения первые 10 потоков могут отработать штатным образом, а остальные просто "зависнут" в очереди. Следует учесть эту особенность при использовании способа сканирования сети TCP-пинг.
Снятие ограничения под Windows XP SP2(x86,x64)/SP3, 2003 Server SP1(x86)/SP2(x86,x64), Vista без SP(x86,x64) и с SP1(x86,x64)
Можно убрать ограничение (точнее, увеличить предел полуоткрытых соединений), отредактировав системный файл tcpip.sys.
- Скачайте патчер: http://half-open.com/download_ru.htm.
- Разархивируйте его в любую папку и запустите Half-open limit fix (для пользователей Vista: правый клик, «Запуск от имени администратора»).
- Выберите новый предел количества одновременных полуоткрытых исходящих соединений и нажмите «Внести в tcpip.sys» (советуем установить предел, равный 512).
- Перезагрузите компьютер.
Может потребоваться повторный запуск Half-open limit fix после обновлений Windows или установки SP, так как иногда Microsoft заменяет старый файл tcpip.sys на новый. Если программа перестанет работать с обновленным tcpip.sys на сайте half-open.com появится новая версия.
Для пользователей Vista: Возможно когда-нибудь после обновления Windows или установки SP на рабочем столе появятся надписи «Тестовый режим». Они могут появиться, так как в Vista SP1 есть обязательная проверка подписи драйверов, и файл tcpip.sys подписывается тестовой подписью, после того как пропатчен. Скорее всего, чтобы они исчезли, понадобится просто еще раз пропатчить tcpip.sys.
Обновления Windows время от времени заменяют файл tcpip.sys, и процедуру надо повторять.
Программа работает в среде Windows XP/Vista/7/8.1/10/11, Server 2003/2008/2012/2016/2019/2022. Вы можете скачать и попробовать 30-дневную пробную версию бесплатно.