■ Вычисление тайм-аута повторной пересылки

■ Снижение обратного трафика при перегрузке сети

■ Сигнализация поступления сегментов не по порядку

■ Зондирование закрытия приемного окна

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.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату