"Oskar Andreasson. Iptables Tutorial 1.1.19 " - читать интересную книгу автора

посмотреть с точки зрения ядра, то все выглядит несколько сложнее.
Рассмотрим порядок изменения состояния соединения в таблице
/proc/net/ip_conntrack. После передачи первого пакета SYN.
tcp 6 117 SYN_SENT src=192.168.1.5 dst=192.168.1.35 sport=1031 \
dport=23 [UNREPLIED] src=192.168.1.35 dst=192.168.1.5 sport=23 \ dport=1031
use=1
Как видите, запись в таблице отражает точное состояние соединения - был
отмечен факт передачи пакета SYN (флаг SYN_SENT), на который ответа пока не
было (флаг [UNREPLIED]). После получения пакета-ответа, соединение
переводится в следующее внутреннее состояние:
tcp 6 57 SYN_RECV src=192.168.1.5 dst=192.168.1.35 sport=1031 \
dport=23 src=192.168.1.35 dst=192.168.1.5 sport=23 dport=1031 \ use=1
Теперь запись сообщает о том, что обратно прошел пакет SYN/ACK. На этот
раз соединение переводится в состояние SYN_RECV. Это состояние говорит о
том, что пакет SYN был благополучно доставлен получателю и в ответ на него
пришел пакет-подтверждение (SYN/ACK). Кроме того, механизм определения
состояния "увидев" пакеты, следующие в обеих направлениях, снимает флаг
[UNREPLIED]. И наконец после передачи заключительного ACK-пакета, в
процедуре установления соединения
tcp 6 431999 ESTABLISHED src=192.168.1.5 dst=192.168.1.35 \ sport=1031
dport=23 src=192.168.1.35 dst=192.168.1.5 \ sport=23 dport=1031 use=1
соединение переходит в состояние ESTABLISHED (установленное). После
приема нескольких пакетов через это соединение, к нему добавится флаг
[ASSURED] (уверенное).
При закрытии, TCP соединение проходит через следующие состояния.

Как видно из рисунка, соединение не закрывается до тех пор пока не
будет передан последний пакет ACK. Обратите внимание - эта картинка
описывает нормальный процесс закрытия соединения. Кроме того, если
соединение отвергается, то оно может быть закрыто передачей пакета RST
(сброс). В этом случае соединение будет закрыто по истечение
предопределенного времени.
При закрытии, соединение переводится в состояние TIME_WAIT,
продолжительность которого по-умолчанию соответствует 2 минутам, в течение
которого еще возможно прохождение пакетов через брандмауэр. Это является
своего рода "буферным временем", которое дает возможность пройти пакетам,
"увязшим" на том или ином маршрутизаторе (роутере).
Если соединение закрывается по получении пакета RST, то оно переводится
в состояние CLOSE. Время ожидания до фактического закрытия соединения
по-умолчанию устанавливается равным 10 секунд. Подтверждение на пакеты RST
не передается и соединение закрывается сразу же. Кроме того имеется ряд
других внутренних состояний. В таблице ниже приводится список возможных
внутренних состояний соединения и соответствующие им размеры таймаутов.
Таблица 4-2. Internal states
(Состояние - Время ожидания )
NONE - 30 минут
ESTABLISHED - 5 дней
SYN_SENT - 2 минуты
SYN_RECV - 60 секунд
FIN_WAIT - 2 минуты