Type-length-value (TLV, также «type-length-value» или «tag-length-value») — широко распространённый метод записи коротких данных в компьютерных файлах и телекоммуникационных протоколах.

Метод определяет простую двоичную структуру из трёх полей: тег, длина данных и собственно данные. Первые два поля имеют фиксированную длину (обычно один или два октета на поле), длина третьего поля определяется значением второго поля (значение указывается в байтах). Тег является идентификатором данных, определяя их назначение.

Например, в спецификации PC/SC метод используется для передачи сведений о подключённом устройстве: строки названия устройства, производителя, серийного номера и т. п.

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

Другие способы представления данных Основные протоколы TCP/IP (в частности, IP, TCP и UDP) используют предопределенные статические поля. Основные протоколы TCP/IP, такие как HTTP, FTP, SMTP, POP3 и SIP, используют текстовые пары «Поле: Значение», отформатированные в соответствии с RFC 2822. ASN.1 определяет несколько правил кодирования на основе TLV (BER, DER), а также не связанных с TLV (PER, XER). В CSN.1 описываются правила кодирования без семантики TLV. Совсем недавно XML был использован для реализации обмена сообщениями между различными узлами в сети. Эти сообщения обычно содержат префикс текстовых команд на основе строк, например, с помощью BEEP.

См. также ASN.1 — язык для описания абстрактного синтаксиса данных Common Open Policy Service (COPS) IS-IS IEEE 802.1aq — Shortest Path Bridging KLV, очень похожая схема key-length-value Link Layer Discovery Protocol (LLDP) RADIUS OBEX

Примечания

Литература

Категория:Языки спецификаций Категория:Форматы данных