EMZETT.
Войти

FIN

Коротко: Флаг TCP, которым одна сторона сигнализирует, что больше не будет отправлять данные, — начало упорядоченного закрытия соединения.

Подробнее: Поскольку соединение TCP состоит из двух независимых направлений данных, каждая сторона должна завершить своё направление отдельным FIN — поэтому полное упорядоченное закрытие обычно идёт через четырёхстороннее рукопожатие (FIN/ACK с обеих сторон). Одна сторона может уже «закончить отправку» (FIN отправлен), всё ещё получая данные от другой — это состояние называется half-close.

Подробности

Типичная последовательность при упорядоченном закрытии соединения:

  1. Клиент отправляет FIN — «мне больше нечего отправлять»
  2. Сервер подтверждает ACK и сам ещё может продолжать отправку (состояние half-close)
  3. Как только сервер тоже закончил, он отправляет собственный FIN
  4. Клиент подтверждает ACK — соединение полностью закрыто

См. также: RST, трёхстороннее рукопожатие, TCP, SYN, ACK