Назад | Перейти на главную страницу

TCP-соединения в состоянии FIN-WAIT-2 на Linux не истекают по таймауту в соответствии с tcp_fin_timeout

Мы запускаем службу с большим количеством встроенных устройств в полевых условиях, их стек TCP немного глючит и иногда не закрывает соединения должным образом, в результате чего некоторые соединения застревают в FIN-WAIT-2 на сервере.

Обычно время ожидания этих подключений истекает в соответствии с /proc/sys/net/ipv4/tcp_fin_timeout, но наши связи по-прежнему видны спустя минуту в ss. Даже перезапуск процесса от них не избавится, единственный выход вроде перезагрузки.

Долгосрочное решение, конечно, состоит в том, чтобы исправить клиентов, чтобы правильно закрыть соединение, но меня беспокоит, что соединения не истекают по таймауту, хотя они должны быть. Что могло вызвать это? Как избавиться от бесполезных подключений?