Параметр tcp-fin-wait-timeout отвечает за время ожидания завершения соединения в состоянии FIN-WAIT. Когда TCP соединение завершается, одна сторона отправляет пакет с флагом FIN, а другая сторона должна отправить ACK и перейти в состояние FIN-WAIT. После этого она ждет еще какое-то время завершения соединения перед закрытием его окончательно. Параметр tcp-fin-wait-timeout устанавливает время ожидания завершения соединения в этом состоянии.
Параметр tcp-close-wait-timeout отвечает за время ожидания закрытия соединения после того, как закрытие было инициировано одной из сторон. Находясь в состоянии CLOSE-WAIT, сторона, которая инициировала закрытие, ожидает пока другая сторона закроет соединение. Параметр tcp-close-wait-timeout устанавливает время ожидания закрытия соединения в этом состоянии.
Для настройки таймаутов tcp-fin-wait-timeout и tcp-close-wait-timeout в connection tracker'е Mikrotik необходимо использовать команду:
/ip firewall connection tracking set tcp-fin-wait-timeout=10m tcp-close-wait-timeout=5m
Значения параметров (10m и 5m) указывают время ожидания в минутах. Эти значения можно изменить в зависимости от требований к сети и работе системы.
Диаграмма работы соединений в системе с установленными значениями tcp-fin-wait-timeout и tcp-close-wait-timeout может выглядеть следующим образом:
- Клиент и сервер устанавливают TCP соединение
- Клиент отправляет FIN и переходит в состояние FIN-WAIT
- Сервер получает FIN, отправляет ACK и также переходит в состояние FIN-WAIT
- Ожидание завершения соединения в состоянии FIN-WAIT (время устанавливается параметром tcp-fin-wait-timeout)
- Сервер отправляет FIN, клиент отправляет ACK и переходит в состояние CLOSE-WAIT
- Ожидание закрытия соединения в состоянии CLOSE-WAIT (время устанавливается параметром tcp-close-wait-timeout)
- Закрытие соединения
Установка правильных значений параметров tcp-fin-wait-timeout и tcp-close-wait-timeout поможет оптимизировать работу сети и улучшить производительность.