10.17 Состояния TCP

10.17 Состояния TCP

Соединение TCP проходит несколько стадий: устанавливается соединение посредством обмена сообщениями, затем пересылаются данные, а далее соединение закрывается с помощью обмена специальными сообщениями. Каждый шаг в работе соединения соответствует определенному состоянию этого соединения. Программное обеспечение TCP на каждом конце соединения постоянно отслеживает текущее состояние другой стороны соединения.

Ниже мы кратко рассмотрим типичную смену состояний сервера и клиента, расположенных на разных концах соединения. Мы не ставим целью дать исчерпывающее описание всех возможных состояний при пересылке данных. Оно приведено в RFC 793 и документе Host Requirements.

Во время установки соединений сервер и клиент проходят схожие последовательности состояний. Состояния сервера показаны в таблице 10.3, а состояния клиента — в таблице 10.4.

Таблица 10.3 Последовательность состояний сервера

Состояние сервера Событие Описание
CLOSED (закрыто) Фиктивное состояние перед началом установки соединения.
Пассивное открытие серверным приложением.
LISTEN (отслеживание) Сервер ожидает соединения с клиентом.
Сервер TCP получает SYN и посылает SYN/ACK. Сервер получил SYN и послал SYN/ACK. Переходит к ожиданию ACK.
SYN-RECEIVED Сервер TCP получает ACK.
ESTABLISHED (установлено) Получен ACK, открыто соединение.

Таблица 10.4 Последовательность состояний клиента

Состояние сервера Событие Описание
CLOSED Фиктивное состояние перед началом соединения.
Клиентское приложение запрашивает соединение. Клиент TCP посылает SYN.
SYN-SENT Клиент TCP послал SYN серверу.
Клиент TCP получает SYN/ACK и посылает ACK. Клиент получил SYN/ACK от сервера и отправил обратно ACK.
ESTABLISHED (установлено) Можно перейти к пересылке данных.

Если бы партнеры одновременно пытались установить соединение друг с другом (что случается крайне редко), каждый прошел бы через состояния CLOSED, SYN-SENT, SYN-RECEIVED и ESTABLISHED.

Конечные стороны соединения остаются в состоянии ESTABLISHED, пока одна из сторон не приступит к закрытию соединения, послав сегмент FIN. В процессе обычного закрытия сторона, инициирующая это закрытие, проходит через состояния, показанные в таблице 10.5. Ее партнер проходит через состояния, представленные в таблице 10.6.

Таблица 10.5 Последовательность состояний стороны, закрывающей соединение

Состояния закрывающей стороны Событие Описание
ESTABLISHED Локальное приложение запрашивает закрытие соединения.
TCP посылает FIN/ACK.
FIN-WAIT-1 Закрывающая сторона ожидает ответа партнера. Напомним, что от партнера все еще могут прибывать новые данные.
TCP получает ACK.
FIN-WAIT-2 Закрывающая сторона получила ACK от партнера, но еще не пришел FIN. Закрывающая сторона ожидает FIN, принимая поступающие данные.
TCP получает FIN/ACK.
Посылает ACK.
TIME-WAIT Соединение поддерживается в неопределенном состоянии, чтобы позволить прибыть или отбросить все еще существующие в сети дублированные данные или дублированный FIN. Период ожидания вдвое больше оценки максимального времени жизни сегмента.
CLOSED Удалена вся информация о соединении.

Таблица 10.6 Последовательность состояний партнера по закрытию соединения

Состояние партнера Событие Описание
ESTABLISHED TCP получает FIN/ACK.
CLOSE-WAIT Прибыл FIN.
TCP посылает ACK.
TCP ожидает от своего приложения закрытия соединения. В этот момент приложение может посылать достаточно большое количество данных.
Локальное приложение инициализирует закрытие соединения.
TCP посылает FIN/ACK.
LAST-ACK TCP ожидает конечный ACK.
TCP получает ACK.
CLOSED Удалена вся информация о соединении.
Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Имя состояния

Из книги Самоучитель UML автора Леоненков Александр

Имя состояния Имя состояния представляет собой строку текста, которая раскрывает содержательный смысл данного состояния. Имя всегда записывается с заглавной буквы. Поскольку состояние системы является составной частью процесса ее функционирования, рекомендуется в


8.4.2 Состояния Потока

Из книги C++ автора Хилл Мюррей

8.4.2 Состояния Потока Каждый поток (istream или ostream) имеет ассоциированное с ним состояние, и обработка ошибок и нестандартных условий осуществляется с помощью соответствующей установки и проверки этого состояния.Поток может находиться в одном из следующих состояний:enum


Проблема состояния

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Проблема состояния В начале предыдущей главы было указано, что HTTP является сетевым протоколом, не обеспечивающим сохранение состояний. Именно этот факт делает процесс разработки Web-приложений столь отличающимся от процесса построения выполняемого компоновочного


Строка состояния

Из книги AutoCAD 2009 для студента. Самоучитель автора Соколова Татьяна Юрьевна

Строка состояния Строка состояния (рис. 2.13) расположена в нижней части рабочего стола. Рис. 2.13. Строка состоянияОна содержит текущие координаты курсора, а также кнопки включения/выключения режимов черчения: Snap Mode – включение и выключение шаговой привязки курсора; Grid


Строка состояния

Из книги AutoCAD 2009. Начали! автора Соколова Татьяна Юрьевна

Строка состояния Строка состояния (рис. 2.7) расположена в нижней части рабочего стола. Рис. 2.7. Строка состоянияОна содержит текущие координаты курсора, а также кнопки включения/выключения режимов черчения: Snap Mode – включение и выключение шаговой привязки курсора; Grid Display


Строка состояния

Из книги Word 2007.Популярный самоучитель автора Краинский И

Строка состояния В нижней части окна находится строка состояния (рис. 1.39). Это еще один элемент интерфейса, который в Word 2007 подвергся изменению и доработке. Рис. 1.39. Строка состоянияКроме традиционных данных о документе (общего количества страниц в документе и номера


13.1.3. Панель состояния

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

13.1.3. Панель состояния В нижней части окна MS Word отображается строка состояния (рис. 110). Поговорим о ее элементах (по порядку слева направо):Стр. номер — номер текущей страницы.Разд. номер — указывает номер раздела документа.Номер /число — показывает номер текущей страницы


Строка состояния

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Строка состояния Как уже говорилось выше, в нижней части окна программы AutoCAD расположена строка состояния (рис. 1.18). Рис. 1.18. Строка состоянияОна содержит текущие координаты указателя мыши, а также кнопки включения/выключения режимов черчения. Кратко рассмотрим


Состояния ссылок

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Состояния ссылок Ссылка может находиться в одном из двух состояний - она может быть пустой или присоединенной. Мы уже видели, что изначально ссылка всегда находится в состоянии void и может стать присоединенной благодаря созданию объекта. Вот как выглядит более полная


10.17 Состояния TCP

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

10.17 Состояния TCP Соединение TCP проходит несколько стадий: устанавливается соединение посредством обмена сообщениями, затем пересылаются данные, а далее соединение закрывается с помощью обмена специальными сообщениями. Каждый шаг в работе соединения соответствует


19.8.3 Коды состояния

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

19.8.3 Коды состояния Коды состояния используются подобно электронной почте и пересылке файлов (FTP). Наиболее распространенные значения кодов: 1xx Информация. Не используется, но зарезервирован для применения в будущем. 2xx Успешно. Запрошенная операция была успешно


Строка состояния

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Строка состояния Строка состояния (рис. 2.10) расположена в нижней части рабочего стола. Рис. 2.10. Строка состоянияОна содержит текущие координаты курсора, а также кнопки включения/выключения режимов черчения: • SNAP – Snap Mode, включение и выключение шаговой привязки


Состояния блока

Из книги C++ для начинающих автора Липпман Стенли

Состояния блока Каждая операционная система предоставляет некий вид механизма использования/освобождения для синхронизации событий ресурсов. Поскольку для Firebird нужен управляющий механизм с множеством состояний, он реализует свою собственную систему управления


20.7. Состояния потока

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

20.7. Состояния потока Пользователей библиотеки iostream, разумеется, интересует, находится ли поток в ошибочном состоянии. Например, если мы пишемint ival;cin ival;и вводим слово "Borges", то cin переводится в состояние ошибки после неудачной попытки присвоить строковый литерал целому


Строка состояния

Из книги автора

Строка состояния Этот элемент имеет информативное значение. Многие пользователи пренебрегают строкой состояния, что совершенно неправильно – использование строки состояния почти всегда делает работу более простой и наглядной.На первый взгляд строка состояния несет в