Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответ на номер 3.docx
Скачиваний:
29
Добавлен:
01.04.2025
Размер:
221 Кб
Скачать
☆

3.2 Терминология

Прежде чем мы сможем обсудить многие детали действия TCP протокола, нам необходимо ввести подробную терминологию. Для поддержания TCP соединения необходимо иметь несколько переменных. Мы решили, что эти переменные будут помещены в соответствующую запись - блок управления передачей (Transmission Control Block - TCB). Среди переменных блока TCB имеются номера местного и чужого сокетов, флаги безопасности и приоритета для данного соединения, указатели буферов посылки и получения, указатели текущего сегмента и очереди повторной посылки. Кроме всего этого в TCB имеются несколько переменных, имеющих отношение к номерам очередей отправителя и получателя.

Отправление

SND.UNA

посылка неподтверждена

SND.NXT

послать следующий сегмент

SND.WND

отправить окно

SND.UP

отправить срочный указатель

SND.WL1

номер очереди сегмента, использованный для обновления последнего окна

SND.WL2

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

ISS

первоначальный номер очереди отправления

Получение

RCV.NXT

- получить следующий сегмент

RCV.WND

- получить окно

RCV.UP

- получить срочный указатель

IRS

- первоначальный номер очереди получения

Нижеприведенные диаграммы могут помочь связать некоторые из этих переменных с местом в очереди

Очередь отправления

  1. старые номера очереди, которые получили подтверждение

  2. номера очереди для данных, не получивших подтверждения

  3. номера очереди, допущенные к новой передаче

  4. следующие номера очереди, чья передача еще не разрешена

Рис. 4 Очередь отправления

Окно отправления - это участок очереди, отмеченный меткой 3 на рисунке 4.

Очередь получения

  1. старые номера очереди, которые получили подтверждение

  2. номера очереди, допущенные к очередному этапу получения

  3. следующие номера очереди, еще не получившие разрешения

Рис. 5 Очередь получения

Окно получения - это участок очереди, отмеченный меткой 2 на рисунке 5.

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

Переменные для очередного сегмента

SEG.SEQ

номер очереди для сегмента

SEG.ACK

номер подтверждения для сегмента

SEG.LEN

длина сегмента

SEG.WND

окно для сегмента

SEG.UP

срочный указатель для сегмента

SEG.PRC

приоритет для сегмента

Соединение во время функционирования проходит через серии промежуточных состояний. Это состояния LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT, а также фиктивное состояние CLOSED. Состояние CLOSED является фиктивным, поскольку оно представляет состояние, когда не существует блока TCP, а потому и нет соединения. Краткое описание состояний:

LISTEN

Ожидание запроса на соединение со стороны чужих портов и программ TCP

SYN-SENT

Ожидание парного запроса на установление соединения. С нашей стороны запрос уже сделан.

SYN-RECEIVED

Ожидание подтверждения после того, как запрос соединения уже принят и отправлен.

ESTABLISHED

Состояние открытого соединения, принимаемые данные можно представить пользователю. Это нормальное состояние соединения в фазе передачи данных.

FIN-WAIT-1

Ожидание запроса от чужой программы TCP, или подтверждения ранее отправленного запроса на закрытие соединения.

FIN-WAIT-2

Ожидание запроса на закрытие соединения со стороны чужой программы TCP.

CLOSE-WAIT

Ожидание запроса на закрытие соединения со стороны своего клиента.

CLOSING

Ожидание подтверждения со стороны чужой программы TCP запроса о закрытии соединения.

LAST-ACK

Ожидание запроса на закрытие соединения, ранее отправленного чужой программе TCP (запрос включал также подтверждение получения чужого запроса на закрытие соединения).

TIME-WAIT

Ожидание когда истечет достаточное количество времени и можно быть уверенным, что чужая программа TCP получила подтверждение своего запроса на закрытие соединения.

CLOSED

Состояние полного отсутствия соединения.

Соединение TCP переходит с одного состояния на другое в ответ на события. Событие - это запросы клиента (открытие, посылка, получение, закрытие, отказ, получение состояния соединения), приход сегментов, и особенно тех, которые содержат флаги SYN, ACK, RST и FIN, а также истечение выделенного времени.

Диаграмма состояний на рисунке 6 иллюстрирует лишь смену состояний, а также вызвавшие это события, производимые действия, но не адреса, условия ошибок, не действия, не связанные прямо с изменением состояния.

Более подробные сведения о действиях программы протокола TCP в ответ на события приведены в последней главе.

Замечание. Данная диаграмма является лишь сводной, но не должна восприниматься как полная спецификация.