Tag-length-value (Tag-length-value)

Перейти к навигации Перейти к поиску

Type-length-value (TLV, также «type-length-value»[1] или «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.

См. также[править | править код]

Примечания[править | править код]

Литература[править | править код]

  • Dubuisson, O. Chaper 18. Basic encoding rules (BER) // ASN.1 Communication Between Heterogeneous Systems. — Morgan Kaufmann, 2001. — 562 p. — ISBN 9780126333619.