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.
См. также
[править | править код]- 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
Примечания
[править | править код]Литература
[править | править код]- Dubuisson, O. Chaper 18. Basic encoding rules (BER) // ASN.1 Communication Between Heterogeneous Systems. — Morgan Kaufmann, 2001. — 562 p. — ISBN 9780126333619.
Для улучшения этой статьи желательно: |