Читая об исчерпании портов, я часто вижу, что он учитывает четверку tcp-соединения (src ip, src port, dst ip, dst port). Таким образом, может показаться, что с диапазоном портов 20000 (от 40000 до 60000) и таргетингом на порты назначения 8088 и 8087 с двумя клиентами на одном компьютере, используя один и тот же адрес src и адрес dst, я должен быть в состоянии открыть 40000 соединений. Однако в моем тесте это не так. Даже в этой конфигурации я могу открыть только 20000 подключений. Я сбросил вывод ss -s и отсортировал его по исходному порту. Вот выдержка:
ЗАКРЫТЬ-ОЖИДАНИЕ 26378 0 172.24.131.110 40001 172.24.131.97 9088
ЗАКРЫТЬ-ОЖИДАНИЕ 25029 0 172.24.131.110 40002 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 23840 0 172.24.131.110 40003 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 25207 0 172.24.131.110 40004 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 25572 0 172.24.131.110 40005 172.24.131.97 9088
ЗАКРЫТЬ-ОЖИДАНИЕ 26334 0 172.24.131.110 40006 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 27089 0 172.24.131.110 40007 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 23860 0 172.24.131.110 40008 172.24.131.97 9088
ЗАКРЫТЬ-ОЖИДАНИЕ 25463 0 172.24.131.110 40009 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 26603 0 172.24.131.110 40010 172.24.131.97 9088
ЗАКРЫТЬ-ОЖИДАНИЕ 25436 0 172.24.131.110 40011 172.24.131.97 9087
ЭСТАБ 0 0 172.24.131.110 40012 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 25042 0 172.24.131.110 40013 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 25738 0 172.24.131.110 40014 172.24.131.97 9087
ЗАКРЫТЬ-ОЖИДАНИЕ 27363 0 172.24.131.110 40015 172.24.131.97 9088
ЗАКРЫТЬ-ОЖИДАНИЕ 25860 0 172.24.131.110 40016 172.24.131.97 9088
Это продолжается до тех пор, пока не будет достигнуто значение 60000. Исходный порт никогда не используется дважды, как будто пул значений на самом деле является общим. Так ли это, или я где-то пропустил флаг конфигурации?
Версия ядра 4.15.0-144-универсальная.
Здесь действительно контролируется диапазон портов: если я изменю диапазон портов на 40000-50000, у меня будет только 10000 возможных подключений.
Клиентом и сервером для тестов являются инструменты веб-полиграфа.