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