Type–length–value
   HOME

TheInfoList



OR:

Within
communication protocols A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics, and synchronization of ...
, TLV (type-length-value or tag-length-value) is an encoding scheme used for informational elements. A TLV-encoded data stream contains code related to the record type, the record value's length, and finally the value itself.


Details

The type and length are fixed in size (typically 1–4 bytes), and the value field is of variable size. These fields are used as follows: ; Type: A binary code, often simply alphanumeric, which indicates the kind of field that this part of the message represents; ; Length: The size of the value field (typically in bytes); ; Value: Variable-sized series of bytes which contains data for this part of the message. Some advantages of using a TLV representation data system solution are: * TLV sequences are easily searched using generalized parsing functions; * New message elements which are received at an older node can be safely skipped and the rest of the message can be parsed. This is similar to the way that unknown
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
tags can be safely skipped; * TLV elements can be placed in any order inside the message body; * TLV elements are typically used in a binary format and
binary protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics, and synchronization of ...
s which makes parsing faster and the data smaller than in comparable text based protocols.


Examples


Real-world examples


Transport protocols

* TLS (and its predecessor SSL) use TLV-encoded messages. * SSH * COPS *
IS-IS Intermediate System to Intermediate System (IS-IS, also written ISIS) is a routing protocol designed to move information efficiently within a computer network, a group of physically connected computers or similar devices. It accomplishes thi ...
*
RADIUS In classical geometry, a radius (: radii or radiuses) of a circle or sphere is any of the line segments from its Centre (geometry), center to its perimeter, and in more modern usage, it is also their length. The radius of a regular polygon is th ...
* Link Layer Discovery Protocol allows for the sending of organizational-specific information as a TLV element within LLDP packets * Media Redundancy Protocol allows organizational-specific information *
Dynamic Host Configuration Protocol The Dynamic Host Configuration Protocol (DHCP) is a network protocol, network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the netw ...
(DHCP) uses TLV encoded options *RR protocol used in GSM cell phones (defined in 3GPP 04.18). In this protocol each message is defined as a sequence of information elements.


Data storage formats

*
IFF In logic and related fields such as mathematics and philosophy, "if and only if" (often shortened as "iff") is paraphrased by the biconditional, a logical connective between statements. The biconditional is true in two cases, where either both ...
*
Matroska Matroska (styled Matroška) is a project to create a container format that can hold an unlimited number of video, audio, picture, or subtitle tracks in one file. The Matroska Multimedia Container is similar in concept to other containers like ...
uses TLV for markup tags * QTFF (the basis for MPEG-4 containers)


Other

* ubus used for IPC in
OpenWrt OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux kernel, Linux, primarily used on Embedded system, embedded devices to Router (computing), route network traffic. The main components ...


Other examples

Imagine a message to make a telephone call. In a first version of a system this might use two message elements: a "command" and a "phoneNumberToCall": ;command_c/4/makeCall_c/phoneNumberToCall_c/8/"722-4246" Here command_c, makeCall_c and phoneNumberToCall_c are integer constants and 4 and 8 are the lengths of the "value" fields, respectively. Later (in version 2) a new field containing the calling number could be added: ;command_c/4/makeCall_c/callingNumber_c/14/"1-613-715-9719"/phoneNumberToCall_c/8/"722-4246" A version 1 system which received a message from a version 2 system would first read the command_c element and then read an element of type callingNumber_c. The version 1 system does not understand callingNumber_c, so the length field is read (i.e. 14) and the system skips forward 14 bytes to read ;phoneNumberToCall_c which it understands, and message parsing carries on.


Other ways of representing data

Core
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
protocols (particularly IP, TCP, and UDP) use predefined, static fields. Some
application layer An application layer is an abstraction layer that specifies the shared communication protocols and interface methods used by hosts in a communications network. An ''application layer'' abstraction is specified in both the Internet Protocol Su ...
protocols, including HTTP/1.1 (and its non-standardized predecessors),
FTP The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
,
SMTP The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typi ...
,
POP3 In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. Today, POP version 3 (POP3) is the most commonly used version. Together with IMAP, i ...
, and SIP, use text-based "Field: Value" pairs formatted according to . (
HTTP HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
represents length of payload with a Content-Length header and separates headers from the payload with an empty line and headers from each other with a new line.)
ASN.1 Abstract Syntax Notation One (ASN.1) is a standard interface description language (IDL) for defining data structures that can be serialized and deserialized in a cross-platform way. It is broadly used in telecommunications and computer networ ...
specifies several TLV-based encoding rules ( BER, DER), as well as non-TLV based ones ( PER, XER). CSN.1 describes encoding rules using non-TLV semantics. More recently,
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
has been used to implement messaging between different nodes in a network. These messages are typically prefixed with line-based text commands, such as with BEEP.


See also

* KLV, specific type of type-length-value encoding


References

{{DEFAULTSORT:Type-length-value Data serialization formats Data transmission Internet Standards Internet protocols