Порт задается 16-битным числом, значит максимальное кол-во портов - 65535.
Но нужно помнить, что некоторые порты зарезервированы (первые 1023), другие уже могут использоваться.
Обойти ограничение на кол-во портов ты никак не сможешь, т.к. это потребует изменение ядра ОС и TCP протокола.
Тут есть несколько возможных решений:
- Создать древовидную структуру сети, т.е. есть узлы, которые объединяют в себе несколько других (группу) и для отправки ты используешь не порт, а ID узла. Т.е. маршрутизация на стороне приложения
- Если нужно отправлять пакет всем, то задумайся над броадкастом.
- Задать предел для размера кластера, либо кол-ва клиентов
UPD:
1. Асинхронность из rust тут вообще ни о чем - это фича языка. Главное здесь - возможности ОС
2. Такое большое кол-во соединений приведет не только к большому потреблению ресурсов, но и большому кол-ву прерываний. Производительность снизится. Рекомендую пересмотреть архитектуру огромного кластера с полносвязной топологией.