img

Формат Type Length Value (TLV) в компьютерных сетях

Восьмая часть тут.

icon strelka icons icons

узнай больше на курсе

Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Онлайн-курс по MikroTik
Научись работать со стремительно набирающим популярность MikroTik
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Онлайн-курс по сетевым технологиям Huawei
Настрой сеть компании, используя оборудование Huawei в симуляторе eNSP
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту

Формат Type Length Value (TLV) является еще одним широко используемым решением проблемы маршалинга данных. На рисунке 1 показан пример протокола маршрутизации от промежуточной системы к промежуточной системе IS-IS.

Рис. 1 Пример формата TLV для IS-IS

На рисунке 1 пакет состоит из заголовка, который обычно имеет фиксированную длину, а затем из набора TLV. Каждый TLV форматируется на основе своего типа кода. В этом случае показаны два типа TLV (в IS-IS есть много других типов; два используются здесь для иллюстрации). Первый тип - 135, который несет информацию о версии 4 протокола IP (IPv4). Этот тип имеет несколько полей, некоторые из которых имеют фиксированную длину, например, метрика. Другие, однако, такие как префикс, имеют переменную длину; длина поля зависит от значения, размещенного в каком-либо другом поле в TLV. В этом случае поле длины префикса определяет длину поля префикса. Существуют также суб-TLV, которые имеют аналогичный формат и несут информацию, связанную с этой информацией IPv4. Тип 236 аналогичен 135, но он несет информацию по IPv6, а не IPv4.

По существу, TLV можно рассматривать как полный набор автономной информации, переносимой в более крупном пакете. TLV состоит из трех частей:

  • Тип кода, который описывает формат данных
  • Длина, которая описывает общую длину данных
  • Значение или сами данные

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

TLV обычно считаются очень гибким способом маршалинга данных в протоколах.


Словари общих объектов

Одной из основных проблем с полями фиксированной длины является фиксированность определений полей; если вы хотите изменить протокол поля фиксированной длины, вам нужно увеличить номер версии и изменить пакет, или вы должны создать новый тип пакета с различными кодировками для полей. Форматирование TLV решает эту проблему путем включения встроенных метаданных с передаваемыми данными за счет передачи большего количества информации и уменьшения компактности. Общие скомпилированные словари пытаются решить эту проблему, помещая словарь в общий файл (или библиотеку), а не в спецификацию. Рисунок 2 иллюстрирует процесс.

На рисунке 2 этот процесс начинается с того, что разработчик создает структуру данных для организации определенного набора данных, которые будут передаваться по сети. Как только структура данных построена, она компилируется в функцию или, возможно, копируется в библиотеку функций (1) и копируется в приемник (2). Затем приемник использует эту библиотеку для написания приложения для обработки этих данных (3). На стороне передатчика необработанные данные кодируются в формат (4), а затем передаются по протоколу через сеть к приемнику (5). Получатель использует свою общую копию формата данных (6) для декодирования данных и передачи декодированной информации принимающему приложению (7).

Этот вид системы сочетает в себе гибкость модели на основе TLV с компактностью протокола фиксированного поля. Хотя поля имеют фиксированную длину, определения полей задаются таким образом, чтобы обеспечить быстрое и гибкое обновление при необходимости изменения формата маршалинга. Пока общая библиотека отделена от приложения, использующего данные, словарь и грамматика могут быть изменены путем распространения новой версии исходной структуры данных.

Рис. 2 Общие скомпилированные словари

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

Важно: в то время как системы фиксированного формата и TLV рассчитывают на то, что разработчики читают спецификации и пишут код как форму совместного использования грамматики и словаря, системы общей структуры данных, описанные в этих лекциях, рассчитывают на то, что общий словарь будет распространяться каким-то другим способом. Есть много различных способов сделать -это, например, новая версия программного обеспечения может быть распространена среди всех отправителей и получателей, или некоторая форма распределенной базы данных может использоваться для обеспечения того, чтобы все отправители и получатели получали обновленные словари данных, или некоторая часть приложения, которая специально управляет маршалингом данных, может быть распределена и сопряжена с приложением, которое генерирует и потребляет данные. Некоторые системы такого рода передают общий словарь как часть первоначальной настройки сеанса.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Онлайн-курс по MikroTik
Научись работать со стремительно набирающим популярность MikroTik
Подробнее о курсе
Онлайн-курс по сетевым технологиям Huawei
Настрой сеть компании, используя оборудование Huawei в симуляторе eNSP
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Еще по теме:
img
XMPP – это основа для создания приложений с обменом сообщениями в реальном времени. Узнайте, как этот протокол работает, его особенности, преимущества и почему его продолжают использовать спустя два десятилетия.
img
Улучшение сети: находите и устраняйте задержки с помощью Wireshark.
img
Рассказываем про рекомендации для DNS по безопасности и производительности
img
Рассказываем как работает Wi-Fi 2.4 vs 5 ГГц: что лучше и почему вай фай опасен для здоровья?
img
Что такое DevOps, что нужно знать и сколько получают DevOps - специалисты?
Весенние скидки
30%
50%
60%
До конца акции: 30 дней 24 : 59 : 59