Вы можете думать о количестве портов. В текущих версиях IPv4 в TCP доступно 65536 портов. Это не просто ограничение Linux, это часть протокола. Ваш IP-адрес идентифицирует ваш компьютер, а порт - программу на вашем компьютере.
Но количество подключений этим не ограничивается. Соединение состоит из 5 частей информации, в geek говорят 5 кортежей. Он определяется протоколом (TCP, UDP), локальным IP-адресом и портом, а также удаленным IP-адресом и портом. Итак, возьмите веб-сервер. Он может обслуживать много соединений на одном и том же порту (скорее всего, 80). Ваш веб-сервер может даже поддерживать несколько подключений к одному клиентскому компьютеру. Скажем, вы подключаетесь к google.com из двух окон. Ваша машина выберет неиспользуемый порт для каждого соединения. Итак, сервер Google должен будет отслеживать (TCP, google.com, 80, yourmachine, someport1) и (TCP, google.com, 80, yourmachine, someport2). В какой-то момент вы столкнетесь с ограничениями, но это не жесткий предел, и он очень зависит от системы.
И да, каждый сокет является дескриптором файла, но не все машины используют шорты для таблицы fd. В моей системе, не настроенной вообще, cat /proc/sys/fs/file-max
выдает 323997. Я уверен, что мог бы повысить его, если бы мне было нужно.
Таким образом, существует ограничение в 65336, но оно связано с адресацией, а не количеством соединений. Количество подключений ограничено, но больше из-за конфигурации системы и объема памяти.