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 kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchron ...
, TLV (type-length-value or tag-length-value) is an encoding scheme used for optional informational elements in a certain protocol. 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 arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
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 kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
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 The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution. SSH applications are based on ...
* 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 this b ...
*
RADIUS In classical geometry, a radius ( : radii) of a circle or sphere is any of the line segments from its center to its perimeter, and in more modern usage, it is also their length. The name comes from the latin ''radius'', meaning ray but also the ...
*
Link Layer Discovery Protocol The Link Layer Discovery Protocol (LLDP) is a vendor-neutral link layer protocol used by network devices for advertising their identity, capabilities, and neighbors on a local area network based on IEEE 802 technology, principally wired Ethern ...
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 management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the network using a cli ...
(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" (shortened as "iff") is a biconditional logical connective between statements, where either both statements are true or both are false. The connective is bicon ...
* 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, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All com ...


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 set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
protocols (particularly IP, TCP, and UDP) use predefined, static fields. Some
application layer An application layer is an abstraction layer that specifies the shared communications protocols and Interface (computing), interface methods used by Host (network), hosts in a communications network. An ''application layer'' abstraction is speci ...
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 data ...
,
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 typical ...
,
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. POP version 3 (POP3) is the version in common use, and along with IMAP the most common p ...
, and SIP, use text-based "Field: Value" pairs formatted according to . (
HTTP The Hypertext Transfer Protocol (HTTP) 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, ...
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 for defining data structures that can be serialized and deserialized in a cross-platform way. It is broadly used in telecommunications and computer networking, and ...
specifies several TLV-based encoding rules (
BER ''Ziziphus mauritiana'', also known as Indian jujube, Indian plum, Chinese date, Chinese apple, ber, and dunks is a tropical fruit tree species belonging to the family Rhamnaceae. It is often confused with the closely related jujube, Chinese j ...
, DER), as well as non-TLV based ones (
PER Per is a Latin preposition which means "through" or "for each", as in per capita. Per or PER may also refer to: Places * IOC country code for Peru * Pér, a village in Hungary * Chapman code for Perthshire, historic county in Scotland Math ...
, XER).
CSN.1 In telecommunications and computer networking, Concrete Syntax Notation One (CSN.1) is a standard Standard may refer to: Symbols * Colours, standards and guidons, kinds of military signs * Standard (emblem), a type of a large symbol or emblem u ...
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 arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
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 The Blocks Extensible Exchange Protocol (BEEP) is a framework for creating network application protocols. BEEP includes building blocks like framing, pipelining, multiplexing, reporting and authentication for connection and message-oriented pe ...
.


See also

* KLV, specific type of type-length-value encoding *
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 kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...


References

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