Короткий ответ - нет, это не предел.
Поле TCP Порт 2x байт и имеет количество 65536. Это число ограничивает количество адресов сервер может иметь. Но это не ограничивает количество клиентов до ~ 64k. Каждый пакет TCP имеет два поля порта, одно для пункта назначения и одно для источника (а также два IP-адреса).
Данное TCP-соединение представляет собой кортеж источника и назначения, каждый с IP-адресом и номером порта. Пункт назначения (на стороне сервера) остается фиксированным, но адрес источника (на стороне клиента) может варьироваться в зависимости от порта и IP-адреса.
Рассматривать:
- IP-адрес сервера - 100.0.0.1 (фиксированный)
- Порт сервера - 80 (фиксированный)
- IP-адрес клиента - 0.0.0.0 - 255.255.255.255 (32-разрядный диапазон)
- Порт клиента - 0 - 65535 (16-битный диапазон)
Да, клиент (или офис) с одним IP-адресом может одновременно подключаться к вашему серверу только 65535 раз, но если у этого клиента (или офиса) было несколько адресов IPv4, они могли бы подключить многократные из этого числа.
Как правило, на многих клиентских устройствах используются миллионы IP-адресов , и если бы они использовали только один исходный порт для подключения к порту вашего единственного сервера, то вы уже могли бы увидеть потенциал, превышающий число 65536.
Теоретический математический предел протокола IP / TCP составляет 2 ^ 32 * 2 ^ 16. Практически количество IP-адресов меньше - вам нужно будет вычесть некоторые зарезервированные блоки IP. Также практически число клиентских портов меньше, потому что на типичном клиентском компьютере будет запущено несколько приложений, подключающихся к другим серверам, что также уменьшает пул портов TCP, но этот пул редко используется - после окончания сеанса TCP номер порта снова доступен в бассейне.
Примечание. Для IPv6 количество IP-адресов увеличивается, но поле «Порт» для TCP остается того же размера.