Я ищу установку, в которой одна Windows с одной сетевой картой способна обрабатывать более 65 тысяч открытых TCP-соединений IPv4 - да, по спецификации это невозможно по умолчанию.
Я нашел хороший учебник по настройке Как настроить стек TCP / IP для большого количества веб-запросов Windows и Linux относительно максимального количества используемых портов.
Моя идея состояла бы в том, чтобы настроить несколько IP-адресов для каждого контроллера Ethernet (MAC-адрес) и позволить DNS-серверу выполнять циклический перебор. Записи ресурсов CNAME.
Серверное приложение, работающее на машине Windows, будет связываться с несколькими IP-адресами, привязанными к одному и тому же MAC-адресу (контроллеру Ethernet).
Клиенты будут перенаправлены на другой IP-адрес DNS-сервером, обслуживаемым одним и тем же сервером.
Где определяется - официальная документация Microsoft в печатном виде или в Интернете приветствуется - сколько IP-адресов может быть установлено для каждого контроллера Ethernet? (Попробовать не надежно)
Есть ли другие идеи, как решить ограничения без дополнительных инфраструктурных изменений, например визуализация или дополнительная ник?
Вероятно, вы неправильно поняли ограничение. Если вы используете сервер с прослушивающими сокетами, ограничение на количество портов на вас не распространяется. Служба просто прослушивает один или несколько портов (например, порт 80 для веб-сервера) и не «израсходует» больше.
Только с клиентами сервиса картина другая. Им необходимо «зарезервировать» порт для каждого запроса на соединение, чтобы он служил конечной точкой соединения. Обычно порты не исчерпываются, если клиент по какой-либо причине не создает огромное количество подключений или не меняет их очень быстро, поэтому в системе заканчиваются порты до истечения таймера TIME_WAIT.
Один клиент открывает и поддерживает несколько TCP-подключений, но в моем сценарии этот клиент работает на нескольких рабочих станциях 1000
Значит, вы не видите исчерпания портов. Если у вас возникли проблемы, это будет связано с чем-то другим. Существует такая вещь, как ограничение памяти для невыгружаемого пула, которое в основном применяется к 32-битным системам и эффективно ограничивает количество подключений на уровне около 44000 - см. Раздел 4.8. Winsock FAQ для подробностей. Возможно, вы достигли и ряда других ограничений. это smallvoid.com статья объясняет некоторые из них.