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 Удалена вся информация о соединении.Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Имя состояния
Имя состояния Имя состояния представляет собой строку текста, которая раскрывает содержательный смысл данного состояния. Имя всегда записывается с заглавной буквы. Поскольку состояние системы является составной частью процесса ее функционирования, рекомендуется в
10.17 Состояния TCP
10.17 Состояния TCP Соединение TCP проходит несколько стадий: устанавливается соединение посредством обмена сообщениями, затем пересылаются данные, а далее соединение закрывается с помощью обмена специальными сообщениями. Каждый шаг в работе соединения соответствует
19.8.3 Коды состояния
19.8.3 Коды состояния Коды состояния используются подобно электронной почте и пересылке файлов (FTP). Наиболее распространенные значения кодов: 1xx Информация. Не используется, но зарезервирован для применения в будущем. 2xx Успешно. Запрошенная операция была успешно
Строка состояния
Строка состояния Строка состояния (рис. 2.13) расположена в нижней части рабочего стола. Рис. 2.13. Строка состоянияОна содержит текущие координаты курсора, а также кнопки включения/выключения режимов черчения: Snap Mode – включение и выключение шаговой привязки курсора; Grid
Строка состояния
Строка состояния Как уже говорилось выше, в нижней части окна программы AutoCAD расположена строка состояния (рис. 1.18). Рис. 1.18. Строка состоянияОна содержит текущие координаты указателя мыши, а также кнопки включения/выключения режимов черчения. Кратко рассмотрим
Строка состояния
Строка состояния В нижней части окна находится строка состояния (рис. 1.39). Это еще один элемент интерфейса, который в Word 2007 подвергся изменению и доработке. Рис. 1.39. Строка состоянияКроме традиционных данных о документе (общего количества страниц в документе и номера
Проблема состояния
Проблема состояния В начале предыдущей главы было указано, что HTTP является сетевым протоколом, не обеспечивающим сохранение состояний. Именно этот факт делает процесс разработки Web-приложений столь отличающимся от процесса построения выполняемого компоновочного
Строка состояния
Строка состояния Строка состояния (рис. 2.10) расположена в нижней части рабочего стола. Рис. 2.10. Строка состоянияОна содержит текущие координаты курсора, а также кнопки включения/выключения режимов черчения: • SNAP – Snap Mode, включение и выключение шаговой привязки
20.7. Состояния потока
20.7. Состояния потока Пользователей библиотеки iostream, разумеется, интересует, находится ли поток в ошибочном состоянии. Например, если мы пишемint ival;cin ival;и вводим слово "Borges", то cin переводится в состояние ошибки после неудачной попытки присвоить строковый литерал целому
Состояния блока
Состояния блока Каждая операционная система предоставляет некий вид механизма использования/освобождения для синхронизации событий ресурсов. Поскольку для Firebird нужен управляющий механизм с множеством состояний, он реализует свою собственную систему управления
Строка состояния
Строка состояния Строка состояния (рис. 2.7) расположена в нижней части рабочего стола. Рис. 2.7. Строка состоянияОна содержит текущие координаты курсора, а также кнопки включения/выключения режимов черчения: Snap Mode – включение и выключение шаговой привязки курсора; Grid Display
8.4.2 Состояния Потока
8.4.2 Состояния Потока Каждый поток (istream или ostream) имеет ассоциированное с ним состояние, и обработка ошибок и нестандартных условий осуществляется с помощью соответствующей установки и проверки этого состояния.Поток может находиться в одном из следующих состояний:enum
Строка состояния
Строка состояния Этот элемент имеет информативное значение. Многие пользователи пренебрегают строкой состояния, что совершенно неправильно – использование строки состояния почти всегда делает работу более простой и наглядной.На первый взгляд строка состояния несет в
13.1.3. Панель состояния
13.1.3. Панель состояния В нижней части окна MS Word отображается строка состояния (рис. 110). Поговорим о ее элементах (по порядку слева направо):Стр. номер — номер текущей страницы.Разд. номер — указывает номер раздела документа.Номер /число — показывает номер текущей страницы
Состояния ссылок
Состояния ссылок Ссылка может находиться в одном из двух состояний - она может быть пустой или присоединенной. Мы уже видели, что изначально ссылка всегда находится в состоянии void и может стать присоединенной благодаря созданию объекта. Вот как выглядит более полная