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 synchroniza ...
, 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 protocols 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 a ...
*
COPS
Cop or Cops commonly refers to:
* Police officer
Cop and other variants may also refer to:
Art and entertainment Film
* ''Cop'' (film), a 1988 American thriller
* ''Cops'' (film), an American silent comedy short starring Buster Keaton
* ''The ...
*
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 Ether ...
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 bicondi ...
*
QTFF (the basis for
MPEG-4 containers)
Other
* ubus used for
IPC
IPC may refer to:
Computing
* Infrastructure protection centre or information security operations center
* Instructions per cycle or instructions per clock, an aspect of central-processing performance
* Inter-process communication, the sharin ...
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. A ...
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 methods used by hosts in a communications network. An ''application layer'' abstraction is specified in both the Internet Protocol ...
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 typic ...
,
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 comm ...
, 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 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 Chinese jujube (' ...
,
DER
Der or DER may refer to:
Places
* Darkənd, Azerbaijan
* Dearborn (Amtrak station) (station code), in Michigan, US
* Der (Sumer), an ancient city located in modern-day Iraq
* d'Entrecasteaux Ridge, an oceanic ridge in the south-west Pacific Ocean ...
), 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 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 peer ...
.
See also
*
KLV
KLV (Key-Length-Value) is a data encoding standard, often used to embed information in video feeds. The standard uses a type–length–value encoding scheme. Items are encoded into Key-Length-Value triplets, where key identifies the data, length ...
, specific type of type-length-value encoding
*
Binary protocol
References
{{DEFAULTSORT:Type-length-value
Data transmission
Internet Standards
Internet protocols
Data serialization formats