stringtranslate.com

Тип–длина–значение

В протоколах связи TLV ( тип-длина-значение или тег-длина-значение ) — это схема кодирования, используемая для информационных элементов. Поток данных, закодированный с помощью TLV, содержит код, относящийся к типу записи, длине значения записи и, наконец, само значение.

Подробности

Тип и длина имеют фиксированный размер (обычно 1–4 байта), а поле значения имеет переменный размер. Эти поля используются следующим образом:

Тип
Двоичный код, часто просто буквенно-цифровой, который указывает тип поля, которое представляет данная часть сообщения;
Длина
Размер поля значения (обычно в байтах);
Ценить
Последовательность байтов переменного размера, содержащая данные для этой части сообщения.

Некоторые преимущества использования решения системы представления данных TLV:

Примеры

Примеры из реальной жизни

Транспортные протоколы

Форматы хранения данных

Другой

Другие примеры

Представьте себе сообщение для совершения телефонного звонка. В первой версии системы это может использовать два элемента сообщения: «команда» и «phoneNumberToCall»:

command_c/4/makeCall_c/phoneNumberToCall_c/8/"722-4246"

Здесь command_c, makeCall_cи phoneNumberToCall_c— целочисленные константы, а 4 и 8 — длины полей «значение» соответственно.

Позже (в версии 2) может быть добавлено новое поле, содержащее номер вызывающего абонента:

command_c/4/makeCall_c/callingNumber_c/14/"1-613-715-9719"/phoneNumberToCall_c/8/"722-4246"

Система версии 1, получившая сообщение от системы версии 2, сначала прочтет command_cэлемент , а затем прочтет элемент типа callingNumber_c. Система версии 1 не понимает callingNumber_c, поэтому считывается поле длины (т.е. 14), и система пропускает вперед 14 байтов для считывания

phoneNumberToCall_c

который он понимает, и анализ сообщения продолжается.

Другие способы представления данных

Основные протоколы TCP/IP (в частности IP , TCP и UDP ) используют предопределенные статические поля.

Некоторые протоколы прикладного уровня , включая HTTP/1.1 (и его нестандартизированные предшественники), FTP , SMTP , POP3 и SIP , используют текстовые пары «Поле: Значение», отформатированные в соответствии с RFC  2822. ( HTTP представляет длину полезной нагрузки с помощью заголовка Content-Length и отделяет заголовки от полезной нагрузки пустой строкой, а заголовки друг от друга — новой строкой.)

ASN.1 определяет несколько правил кодирования на основе TLV ( BER , DER ), а также не основанных на TLV ( PER , XER ).

CSN.1 описывает правила кодирования с использованием не-TLV-семантики.

Совсем недавно [ когда? ] XML использовался для реализации обмена сообщениями между различными узлами в сети. Эти сообщения обычно имеют префикс в виде строковых текстовых команд, таких как BEEP .

Смотрите также

Ссылки

  1. ^ "Документация OpenWrt по ubus". openwrt.org . 15 апреля 2022 г. Получено 15 апреля 2022 г.