Диаграмма состояний TCP

Диаграмма состояний TCP

Последовательность действий TCP во время установления и завершения соединения можно определить с помощью диаграммы состояний TCP (state transition diagram). Ее мы изобразили на рис. 2.4.

Рис. 2.4. Диаграмма состояний TCP

Для соединения определено 11 различных состояний, а правила TCP предписывают переходы от одного состояния к другому в зависимости от текущего состояния и сегмента, полученного в этом состоянии. Например, если приложение выполняет активное открытие в состоянии CLOSED (Закрыло), TCP отправляет сегмент SYN, и новым состоянием становится SYN_SENT (Отправлен SYN). Если затем TCP получает сегмент SYN с сегментом ACK, он отправляет сегмент ACK, и следующим состоянием становится ESTABLISHED (Соединение установлено). В этом последнем состоянии проходит большая часть обмена данными.

Две стрелки, идущие от состояния ESTABLISHED, относятся к разрыву соединения. Если приложение вызывает функцию close перед получением признака конца файла (активное закрытие), происходит переход к состоянию FIN_WAIT_1 (Ожидание FIN 1). Но если приложение получает сегмент FIN в состоянии ESTABLISHED (пассивное закрытие), происходит переход в состояние CLOSE_WAIT (Ожидание закрытия).

Мы отмечаем нормальные переходы клиента с помощью более толстой сплошной линии, а нормальные переходы сервера — с помощью штриховой линии. Мы также должны отметить, что существуют два перехода, о которых мы не говорили: одновременное открытие (когда оба конца связи отправляют сегменты SYN приблизительно в одно время, и эти сегменты пересекаются в сети) и одновременное закрытие (когда оба конца связи отправляют сегменты FIN). В главе 18 [111] содержатся примеры и описания обоих этих сценариев, которые хотя и возможны, но встречаются достаточно редко.

Одна из причин, по которым мы приводим здесь диаграмму перехода состояний, — мы хотим показать все 11 состояний TCP и их названия. Эти состояния отображаются программой netstat, которая является полезным средством отладки клиент-серверных приложений. Мы будем использовать программу netstat для отслеживания изменений состояния в главе 5.

Поделитесь на страничке

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

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

ГЛАВА 6 Диаграмма состояний (statechart diagram)

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

ГЛАВА 6 Диаграмма состояний (statechart diagram) Рассмотренная выше диаграмма классов представляет собой логическую модель статического представления моделируемой системы. Речь идет о том, что на данной диаграмме изображаются только взаимосвязи структурного характера, не


Глава 4. Механизм определения состояний

Из книги Excel. Мультимедийный курс автора Мединов Олег

Глава 4. Механизм определения состояний В данной главе все внимание будет уделено механизму определения состояний пакетов (state machine). По прочтении ее у вас должно сложиться достаточно четкое представление о работе механизма, а способствовать этому должен значительный


Диаграмма как графический объект

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Диаграмма как графический объект Диаграмма – это не что иное, как совокупность графических объектов. Вы можете изменить форму и цвет отдельных компонентов диаграммы или добавить к ним какие-либо эффекты. Для этого необходимо перейти на вкладку Формат, которая


13.1.4. Диаграмма видов сложности

Из книги Объектно-ориентированный анализ и проектирование с примерами приложений на С++ автора Буч Гради

13.1.4. Диаграмма видов сложности Выше были показаны две различные шкалы для анализа сложности. Данные шкалы фактически перпендикулярны друг другу. Рис. 13.1 может помочь при выяснении связей. В каждом из девяти блоков на рисунке приведен общий источник определенного вида


5.3. Диаграммы состояний и переходов

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

5.3. Диаграммы состояний и переходов Существенное: состояния и переходы Диаграмма состоянии и переходов показывает: пространство состояний данного класса; события, которые влекут переход из одного состояния в другое; действия, которые происходят при изменении состояния.


13.1.4. Диаграмма видов сложности

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

13.1.4. Диаграмма видов сложности Выше были показаны две различные шкалы для анализа сложности. Данные шкалы фактически перпендикулярны друг другу. Рис. 13.1 может помочь при выяснении связей. В каждом из девяти блоков на рисунке приведен общий источник определенного вида


10.17.1 Анализ состояний соединения TCP

Из книги Визуальное моделирование электронных схем в PSPICE автора Хайнеманн Роберт

10.17.1 Анализ состояний соединения TCP Команда netstat -an позволяет проверить текущее состояние соединения. Ниже показаны соединения в состояниях listen, startup, established, closing и time-wait.Отметим, что номер порта соединения указан в конце каждого локального и внешнего адреса. Видно, что


10.2.2. Изображение неопределённых состояний в PROBE[35]

Из книги CSS3 для веб-дизайнеров автора Сидерхолм Дэн

10.2.2. Изображение неопределённых состояний в PROBE[35] В этом разделе вам снова понадобится то изображение, которое вы получили после выполнения предыдущего шага (см. рис. 10.12), чтобы точнее исследовать области перехода между цифровыми состояниями. Для этого вам потребуется


Переход всех возможных состояний

Из книги Новый ум короля [О компьютерах, мышлении и законах физики] автора Пенроуз Роджер

Переход всех возможных состояний Вместо того чтобы перечислять несколько свойств, к которым хочется применить переход, можно использовать значение all. Тогда переход будет наложен на все возможные свойства.Заменим перечисление background и color на значение all. Теперь эти


Оформление состояний hover и focus

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Оформление состояний hover и focus Добавим изменение цвета текста и фона для состояния :hover каждой ссылки. Мы вновь применим RGBA, чтобы задать тексту полупрозрачный белый фон.#nav li a { padding: 5px 15px; font-weight: bold; color: #ccc; color: rgba(255, 255, 255, 0.7); text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);}#nav li a: hover,#nav li a: focus { color: #fff;


Диаграмма состояний SCRIPT

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

Диаграмма состояний SCRIPT Порядок работы SCRIPT при установлении и завершении ассоциаций может быть проиллюстрирован диаграммой состояний (рис. 2.8). Рис. 2.8. Диаграмма состояний SCRIPTКак и на рис. 2.4, переходы из одного состояния в другое регулируются правилами SCRIPT и


Диаграмма классов

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

Диаграмма классов На рисунке приведена диаграмма классов модуля ABCObjects. Класс SpriteABC описан в модуле ABCSprites, однако, приведен на диаграмме как один из