Ответ 1
Один порт прослушивания может принимать более одного соединения одновременно.
Существует ли ограничение в 64K, которое часто цитируется, но это для каждого клиента на порт сервера и нуждается в уточнении.
Каждый пакет TCP/IP имеет в основном четыре поля для адресации; это:
source_ip source_port destination_ip destination_port
< client > < server >
Внутри стека TCP эти четыре поля используются в качестве составного ключа для сопоставления пакетов с соединениями (например, файловые дескрипторы).
Если клиент имеет много соединений с одним и тем же портом в одном и том же пункте назначения, то три из этих полей будут одинаковыми - только source_port
может различаться для разных соединений. Порты - это 16-разрядные номера, поэтому максимальное количество подключений, которое любой конкретный клиент может иметь к любому данному хост-порту, составляет 64 КБ.
Тем не менее, у нескольких клиентов может быть до 64K подключений к некоторому серверному порту, и если у сервера есть несколько портов или он многопользовательский, то вы можете умножить это дальше.
Таким образом, реальный предел является файловыми дескрипторами. Каждому отдельному сокетному соединению предоставляется файловый дескриптор, поэтому ограничение - это действительно количество дескрипторов файлов, которые система настроена для разрешения и ресурсов для обработки. Максимальный предел, как правило, превышает 300K, но настраивается, например. с sysctl.
Реальные ограничения, которые хвастаются для обычных ящиков, составляют около 80 тыс., например, однопоточные серверы обмена сообщениями Jabber.