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