Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция11-13.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
616.45 Кб
Скачать

3.7.4. Транспортный уровень стека протоколов системы управления ip-cemu

Транспортный уровень стека протоколов TCP/IP системы управления выполняет функции, обеспечивающие два типа передачи блоков данных, сформированных на основе протоколов прикладного уровня:

  • передача блоков данных прикладного уровня с предварительным установлением логического соединения. Такой способ передачи реализуется при помощи протокола TCP (Transport Control Protocol), информационной единицей которого является сегмент. Протокол TCP обеспечивает проверку и восстановление правильной последовательности передаваемых сегментов, а также повторную передачу тех сегментов, содержимое которых было искажено;

  • дейтаграммная передача блоков данных прикладного уровня, реализуемая при помощи протокола UDP (User Datagram Protocol). Информационной единицей протокола UDP является дейтаграмма. Протокол UDP, в отличие от протокола TCP, не обеспечивает проверку правильности последовательности передаваемых дейтаграмм, а также не предусматривает повторную передачу дейтаграмм, содержимое которых было искажено.

Выбор одного из этих двух протоколов осуществляется в соответствии с информацией, сформированной на прикладном уровне стека протоколов TCP/IP. Рассмотрим каждый из протоколов транспортного уровня стека TCP/IP более подробно.

Протокол TCP обеспечивает передачу блоков данных прикладного уровня через создаваемое этим протоколом логическое соединение, которое ликвидируется сразу же после завершения передачи всех блоков данных. Структура TCP-сегмента показана на рис. 3.34.

Порт отправителя (16 бит)

Порт получателя (16 бит)

Порядковый номер (32 бита)

Номер подтверждения (32 бита)

Смещение данных

(4 бита)

Зарезервировано

(6 бит)

Флаги

(6 бит)

Размер окна

(16 бит)

Контрольная сумма (16 бит)

Указатель на неотложные данные (16 бит)

Параметры (переменная длина)

Выравнивание (переменная длина)

Поле данных (переменная длина)

Рис. 3.34. Структура ТСР-сегмента

Рассмотрим каждое из полей TCP-сегмента более подробно.

Номера портов отправителя и получателя выступают в роли идентификаторов, позволяющих получателю TCP-сегмента определить, при помощи какого протокола прикладного уровня стека TCP/IP должен быть обработан блок данных, содержащийся в поле данных этого ТСР-сегмента

Для идентификации ТСР-сегмента в созданном логическом соединении используются два 4-байтовых номера, хранящихся в полях «Порядковый номер» (Sequence Number) и «Номер подтверждения» (Acknowledgment Number). Значения этих полей выступают в роли счётчиков TCP-сегментов и используются для проверки и восстановления правильной последовательности передаваемых сегментов.

Поле «Смещение данных» содержит количество четырёхбайтовых слов в заголовке ТСР-сегмента.

Поле «Контрольная сумма» содержит инвертированную сумму всех 16-битных слов в заголовке и поле данных ТСР-сегмента. Значение этого поля используется для выявления случайных ошибок в заголовке и поле данных ТСР-сегмента. При обнаружении ошибки получатель искажённого ТСР-сегмента сформирует запрос на его повторную передачу.

«Поле данных» ТСР-сегмента содержит блоки данных, сформированные при помощи протоколов прикладного уровня стека TCP/IP.

Поле «Флаги» содержит команды, которыми могут обмениваться отправитель и получатель TCP-сегментов в рамках логического соединения. Для формирования определённой команды субъект должен установить в единицу соответствующий бит флагового поля. Протокол TCP предусматривает наличие шести различных команд, описание которых приведено в табл. 3.13.

Таблица 3.13. Команды протокола TCP

Номер бита, отвечающего за команду

Описание команды

сокращение, используемое для обозначения команды

1

Команда передачи неотложных данных

URG

2

Команда подтверждения успешного получения данных

АСК

3

Команда передачи данных вне очереди

PSH

4

Команда закрытия логического соединения

RST

5

Команда синхронизации значений счетчиков ТСР-сегментов

SYN

6

Команда, сигнализирующая о завершении передаваемых данных

FIN

Для того, чтобы в рамках установленного TCP-соединения можно было проверять правильность последовательности передаваемых сегментов, а также организовать повторную передачу тех сегментов, заголовок которых был искажён, отправитель номерует отправляемые им ТСР-сегменты (номера содержатся в поле «Порядковый номер»). Для каждого отправленного ТСР-сегмента отправитель ожидает от получателя TCP-сегмент, подтверждающий успешное получение данных. ТСР-сегмент, подтверждающий успешное получение сегмента с номером n, содержит команду АСК, а поле «Номер подтверждения» заголовка этого сегмента содержит значение n+1. Время ожидания получения подтверждающего ТСР-сегмента ограничено - при отправке каждого ТСР-сегмента на стороне отправителя запускается так называемый таймер, и в случае, если по его истечении отправитель не получит подтверждения, то отосланный TCP-сегмент будет считаться утерянным и отправитель сформирует запрос на его повторную передачу.

При этом при передаче каждого нового TCP-сегмента старый таймер сбрасывается и запускается новый. Для TCP-сегментов, подтверждающих успешный приём данных, характерно свойство кумулятивности. Другими словами, TCP-сегмент, в котором содержится команда АСК и номер подтверждения которого равен п, отражает успешный приём ТСР-сегментов с порядковыми номерами вплоть до п-1. В случае неполучения одного из TCP-сегментов автоматически формируется запрос на повторную передачу путём отправки TCP-сегмента с командой АСК и номером подтверждения того сегмента, который необходимо передать повторно.

Для ускорения процесса передачи данных при помощи ТСР-протокола назначается так называемое окно, которое определяет количество TCP-сегментов, которое может быть отправлено без получения подтверждения. Значение размера окна определяется в соответствующем поле заголовка TCP-сегмента (рис. 3.34).

Далее рассмотрим пример установления TCP-соединения между ЦУС и маршрутизатором, предназначенного для последующей передачи информации управления.

На первом этапе установления соединения ЦУС направляет маршрутизатору TCP-сегмент, который в поле «Флаги» содержит команду SYN, а в поле «Порядковый номер» - начальное значение порядкового номера - ISNa. Таким образом, ЦУС формирует запрос на установление TCP-соединения с маршрутизатором.

ЦУС---------------------------- SYN, ISNa------------------------- Маршрутизатор

В качестве ответа на полученный запрос маршрутизатор посылает в ЦУС TCP-сегмент, в котором содержатся команды SYN и АСК в поле «Флаги», в поле «Номер подтверждения» указывается значение ISNa, увеличенное на единицу, а в поле «Порядковый номер» маршрутизатор определяет начальное значение счётчика своих сегментов - ISNb.

ЦУС < SYN, АСК, ISNb, ISNa+1---------------------Маршрутизатор

Завершая процесс установления соединения, ЦУС посылает маршрутизатору TCP-сегмент, в котором содержится команда АСК, поле «Порядковый номер» содержит значение ISNa+1, а поле «Номер подтверждения» - ISNb+1.

ЦУС АСК, ISNb+1, ISNa+1----------------------> Маршрутизатор

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

В IP-сетях протокол TCP используется для обработки блоков данных, сформированных на прикладном уровне при помощи протоколов FTP и Telnet.

Как уже отмечалось выше, помимо протокола TCP на транспортном уровне стека TCP/IP также используется протокол UDP, обеспечивающий дейтаграммную передачу блоков данных прикладного уровня. Структура дейтаграммы, сформированной при помощи протокола UDP, показана на рис. 3.35.

Номер порта отправителя (16 бит)

Номер порта получателя (16 бит)

Длина (16 бит)

Контрольная сумма (16 бит)

Поле данных (переменная длина)

Рис. 3.35. Структура UDP-дейтаграммы

Номера портов отправителя и получателя, содержащиеся в UDP-дейтаграмме, предназначены для определения протокола прикладного уровня стека TCP/IP, который должен быть использован для обработки блоков данных прикладного уровня, содержащихся в поле данных дейтаграммы.

Поле «Контрольная сумма» представляет собой инвертированную сумму 16-битовых слов заголовка и поля данных дейтаграммы. Это поле используется для обнаружения случайных ошибок в заголовке и поле данных дейтаграммы. В случае обнаружения ошибки в дейтаграмме получатель не формирует запрос на её повторную передачу, а просто отбрасывает искажённую дейтаграмму

Поле «Длина» содержит длину дейтаграммы в байтах, включая заголовок и поле данных. Максимальная длина дейтаграммы может достигать 65535 байт.

«Поле данных» дейтаграммы содержит блоки данных, сформированные при помощи протоколов прикладного уровня. В случае если блок данных прикладного уровня превышает максимально допустимую длину поля данных дейтаграммы, то на прикладном уровне этот блок данных фрагментируется на несколько блоков меньшей длины.

В IP-сети протокол UDP используется для обработки блоков данных, сформированных на прикладном уровне при помощи протокола SNMP.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]