Type-length-value

Type-length-value

Within data communication protocols, optional information may be encoded as a type-length-value or TLV element inside of the protocol.

The type and length fields are fixed in size (typically 1-4 bytes), and the value field is of variable size. These fields are used as follows:;Type: A numeric code 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 set of bytes which contains data for this part of the message.

Some of the advantages of using a TLV representation 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 tags can be safely skipped.
* TLV elements are typically used in a binary format which makes parsing faster and the data smaller.

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 revision 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.

An example of usage is the Link Layer Discovery Protocol which allows for the sending of organizational-specific information as a TLV element within LLDP packets. Another example is the RR protocol used in GSM cell phones, defined in 3GPP 04.18.

In the RR protocol, each message is defined as a sequence of information elements.

Many other protocols use TLVs, such as COPS, IS-IS, and RADIUS.

Other ways of representing data

Core TCP/IP protocols (particularly IP, TCP, and UDP) use predefined, static fields.

Common TCP/IP-based protocols such as HTTP, FTP, SMTP, POP3, and SIP use text-based "Field: Value" pairs formatted according to [http://tools.ietf.org/html/rfc2822 RFC 2822] .

ASN.1 standards body 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 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.

ee also

* Common Open Policy Service (COPS)
* IS-IS
* KLV, for a very similar key-length-value scheme
* Link Layer Discovery Protocol
* RADIUS


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Type-Length-Value — Das Type Length Value Format (Abk.: TLV) wird in Netzwerkprotokollen genutzt, um eine variable Anzahl von Attributen in einer Nachricht zu übertragen. Ein Attribut wird durch folgendes Tripel (Type, Length, Value) übermittelt: Type: bestimmt den… …   Deutsch Wikipedia

  • Attribute-value pair — A name–value pair, key–value pair, field–value pair or attribute–value pair is a fundamental data representation in computing systems and applications. Designers often desire an open ended data structure that allows for future extension without… …   Wikipedia

  • Type safety — In computer science, type safety is a property of some programming languages that is defined differently by different communities, but most definitions involve the use of a type system to prevent certain erroneous or undesirable program behavior… …   Wikipedia

  • value — A word with several quite different meanings: in statistical analysis of quantitative data sets, the value is the score or figure observed on a particular variable for a particular case, or in specific circumstances, that is, it is a quantified… …   Dictionary of sociology

  • Type 23 frigate — HMS Somerset Class overview Name: Type 23 class Builders: Yarrow Shipbuilders and …   Wikipedia

  • Type-in program — NOTOC A type in program, or just type in, is a computer program listing printed in a computer magazine or book, meant to be typed in by the reader in order to run the program on a computer. Very common in the early home computer era of the late… …   Wikipedia

  • Type 214 submarine — The Type 214 is a diesel electric submarine developed by Howaldtswerke Deutsche Werft GmbH (HDW). It features diesel propulsion with an air independent propulsion (AIP) system using Siemens polymer electrolyte module (PEM) hydrogen fuel cells. It …   Wikipedia

  • value entry —    In Microsoft Windows, the actual data in the Registry, stored in the keys. Each value entry has a name, a data type (which determines the length and the format of the value), and the value itself.    See also hive; key; Registry; sub hive; sub …   Dictionary of networking

  • Type 45 240 mm howitzer — Infobox Weapon name=Type 45 240 mm howitzer caption= origin=Japan type=Heavy howitzer is artillery=yes service=1912 1945 used by=Japan wars=Sino Japanese War, World War II designer= design date= manufacturer= unit cost= production date= number=80 …   Wikipedia

  • Data type — For other uses, see Data type (disambiguation). In computer programming, a data type is a classification identifying one of various types of data, such as floating point, integer, or Boolean, that determines the possible values for that type; the …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”