Эта ссылка очень помогла мне интерпретировать netstat -a
Копия оттуда -
TCP Connection States
Ниже приводится краткое объяснение этого рукопожатия. В этом контексте «клиент» - это узел, запрашивающий соединение, а «сервер» - это узел, принимающий соединение. Обратите внимание, что эта нотация не отражает отношения клиент / сервер как принципала архитектуры.
Установление соединения
Клиент отправляет на сервер сообщение SYN, содержащее порт сервера и начальный порядковый номер (ISN) клиента (активное открытие).
Сервер отправляет обратно свой собственный SYN и ACK (который состоит из ISN + 1 клиента).
Клиент отправляет ACK (который состоит из ISN + 1 сервера).
Разрыв соединения (модифицированное трехстороннее рукопожатие).
Клиент отправляет FIN (активное закрытие). Теперь это полузакрытое соединение. Клиент больше не отправляет данные, но все еще может получать данные с сервера. После получения этого FIN сервер переходит в состояние пассивного закрытия.
Сервер отправляет ACK (который является последовательностью FIN клиента + 1)
Сервер отправляет свой собственный FIN.
Клиент отправляет ACK (который является последовательностью FIN сервера + 1). После получения этого ACK сервер закрывает соединение.
Полузакрытое соединение может использоваться для прекращения отправки данных во время приема данных. Сокет-приложения могут вызвать завершение работы со вторым аргументом, установленным в 1, чтобы войти в это состояние.
Объяснение состояний, как показано в Netstat:
Состояние Объяснение
SYN_SEND
Указывает на активное открытие.
SYN_RECEIVED
Сервер только что получил SYN от клиента.
ESTABLISHED
Клиент получил SYN сервера и сеанс установлен.
LISTEN
Сервер готов к приему соединения.
ПРИМЕЧАНИЕ. См. Документацию по вызову сокета listen (). TCP-сокеты в состоянии прослушивания не отображаются - это ограничение NETSTAT. Дополнительные сведения см. В следующей статье базы знаний Майкрософт:
134404 NETSTAT.EXE не показывает сокеты прослушивания TCP
FIN_WAIT_1 Указывает на активное закрытие.
TIMED_WAIT
Клиент переходит в это состояние после активного закрытия.
CLOSE_WAIT
Указывает на пассивное закрытие. Сервер только что получил первый FIN от клиента.
FIN_WAIT_2
Клиент только что получил подтверждение своего первого FIN с сервера.
LAST_ACK
Сервер находится в этом состоянии, когда он отправляет свой собственный FIN.
CLOSED
Сервер получил ACK от клиента, и соединение закрыто.