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