TIME_WAIT в Linux годами объясняют неправильно
Я полез в исходники Linux TCP и снова наткнулся на старый сетевой миф.
В коде TIME_WAIT фактически зафиксирован на 60 секунд:
#define TCP_TIMEWAIT_LEN (60 * HZ)
Его нельзя настроить отдельно для сокета.
И да, tcp_fin_timeout, который часто советуют крутить в блогах, не управляет TIME_WAIT.
Он относится к состоянию FIN_WAIT2.
TIME_WAIT задан в исходниках ядра и не вынесен в отдельный sysctl.
Вот так появляются мифы: один параметр звучит похоже, его копируют из статьи в статью, а потом годами лечат не то состояние TCP.
Я полез в исходники Linux TCP и снова наткнулся на старый сетевой миф.
В коде TIME_WAIT фактически зафиксирован на 60 секунд:
#define TCP_TIMEWAIT_LEN (60 * HZ)
Его нельзя настроить отдельно для сокета.
И да, tcp_fin_timeout, который часто советуют крутить в блогах, не управляет TIME_WAIT.
Он относится к состоянию FIN_WAIT2.
TIME_WAIT задан в исходниках ядра и не вынесен в отдельный sysctl.
Вот так появляются мифы: один параметр звучит похоже, его копируют из статьи в статью, а потом годами лечат не то состояние TCP.