Я немного читал о соединениях TIME_WAIT и знаю, что они должны быть безвредными для моего сервера (соединение закрыто, поэтому с этим сокетом не связан ни один ресурс).
Недавно мой сервер достиг магического числа 60k портов в состоянии TIME_WAIT; и мне интересно, закончатся ли у меня свободные порты?
Мой сервер использует динамические локальные порты из этого пула, установленного в ядре:
# sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
Будет ли он использовать один из портов TIME_WAIT при создании нового соединения? или попробовать связать с другим открытым портом?
Если я установлю эту переменную на порты 1024-65535, что произойдет, если у меня будет запущено какое-то приложение на портах в этом диапазоне?
Это не вопрос, как минимизировать время ожидания состояний соединения TIME_WAIT.
Текущие модификации ядра:
# sysctl net.ipv4.tcp_tw_recycle
net.ipv4.tcp_tw_recycle = 0
# sysctl net.ipv4.tcp_tw_reuse
net.ipv4.tcp_tw_reuse = 1
# sysctl net.ipv4.tcp_fin_timeout
net.ipv4.tcp_fin_timeout = 30
# sysctl net.ipv4.tcp_timestamps
net.ipv4.tcp_timestamps = 1
# sysctl net.ipv4.tcp_sack
net.ipv4.tcp_sack = 1