logo
Cетевые технологий / Cетевые технологий / Сети-2

Протоколы с гибким форматом кадра

Для большей части протоколов характерны кадры, состоящие из служебных полей фиксированной длины. Исключение делается только для поля данных, с целью экономной пересылки как небольших квитанций, так и больших файлов. Способ определения окончания кадра путем задания длины поля данных, рассмотренный выше, как раз рассчитан на такие кадры с фиксированной структурой и фиксированными размерами служебных полей.

Однако существует ряд протоколов, в которых кадры имеют гибкую структуру. Например, к таким протоколам относятся очень популярный прикладной протокол управления сетями SNMP, а также протокол канального уровня РРР, используемый для соединений типа "точка-точка". Кадры таких протоколов состоят из неопределенного количества полей, каждое из которых может иметь переменную длину. Начало такого кадра отмечается некоторым стандартным образом, например с помощью флага, а затем протокол последовательно просматривает поля кадра и определяет их количество и размеры. Каждое поле обычно описывается двумя дополнительными полями фиксированного размера. Например, если в кадре встречается поле, содержащее некоторую символьную строку, то в кадр вставляются три поля:

Дополнительные поля "Тип" и "Длина" имеют фиксированный размер в один байт, поэтому протокол легко находит границы поля "Значение". Так как количество таких полей также неизвестно, для определения общей длины кадра используется либо общее поле "Длина", которое помещается в начале кадра и относится ко всем полям данных, либо закрывающий флаг.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4