

Упрощённая диаграмма состояний TCP.
| Состояния сеанса TCP | |
| CLOSED | Начальное состояние узла. Фактически фиктивное |
| LISTEN | Сервер ожидает запросов установления соединения от клиента |
| SYN-SENT | Клиент отправил запрос серверу на установление соединения и ожидает ответа |
| SYN-RECEIVED | Сервер получил запрос на соединение, отправил ответный запрос и ожидает подтверждения |
| ESTABLISHED | Соединение установлено, идёт передача данных |
| FIN-WAIT-1 | Одна из сторон (назовём её узел-1) завершает соединение, отправив сегмент с флагом FIN |
| CLOSE-WAIT | Другая сторона (узел-2) переходит в это состояние, отправив, в свою очередь сегмент ACK и продолжает одностороннюю передачу |
| FIN-WAIT-2 | Узел-1 получает ACK, продолжает чтение и ждёт получения сегмента с флагом FIN |
| LAST-ACK | Узел-2 заканчивает передачу и отправляет сегмент с флагом FIN |
| TIME-WAIT | Узел-1 получил сегмент с флагом FIN, отправил сегмент с флагом ACK и ждёт 2*MSL секунд, перед окончательным закрытием соединения |
| CLOSING | Обе стороны инициировали закрытие соединения одновременно: после отправки сегмента с флагом FIN узел-1 также получает сегмент FIN, отправляет ACK и находится в ожидании сегмента ACK (подтверждения на свой запрос о разъединении) |






