Мы развертываем новый образ в полевых условиях и периодически в течение дня (1-3 в день) видим предупреждения tcp / ip event id 4227.
Сообщение о событии гласит:
TCP / IP не удалось установить исходящее соединение, поскольку выбранная локальная конечная точка недавно использовалась для подключения к той же удаленной конечной точке. Эта ошибка обычно возникает, когда исходящие соединения открываются и закрываются с высокой скоростью, что приводит к использованию всех доступных локальных портов и вынуждает TCP / IP повторно использовать локальный порт для исходящего соединения. Чтобы свести к минимуму риск повреждения данных, стандарт TCP / IP требует минимального периода времени между последовательными подключениями от данной локальной конечной точки к данной удаленной конечной точке.
Я создал скрипт, который слушает это событие и немедленно проверяет "netstat -ano". Сценарий резюмирует, в каком состоянии находятся порты, но я не вижу большого количества открытых портов. Вот результат скрипта:
50 портов в состоянии LISTENING
3 порта в состоянии TIME_WAIT
58 портов в состоянии УСТАНОВЛЕНО
Я не понимаю, почему такое небольшое количество портов вызывает предупреждение 4227. Кто-нибудь знает об этом?
PS> Я установил регистрацию TcpTimedWaitDelay на 30 секунд а-ля эта ссылка. Я также настроил больший динамический диапазон портов, используя следующие команды:
Netsh int ipv4 set dynamicport udp start = 35535 num = 30000
Netsh int ipv4 set dynamicport tcp start = 35535 num = 30000