Typ-délka-hodnota - Type-length-value
Tento článek má několik problémů. Prosím pomozte zlepšit to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
V rámci protokoly datové komunikace, TLV (typ-délka-hodnota nebo hodnota délky značky) je kódovací schéma používané pro volitelný informační prvek v určitém protokolu.
Typ a délka mají pevnou velikost (obvykle 1–4 bajty) a pole hodnoty má proměnnou velikost. Tato pole se používají následovně:
- Typ
- Binární kód, často jednoduše alfanumerický, který označuje druh pole, které tato část zprávy představuje;
- Délka
- Velikost hodnotového pole (obvykle v bajtech);
- Hodnota
- Série bajtů proměnné velikosti, která obsahuje data pro tuto část zprávy.
Některé výhody použití řešení datového systému reprezentace TLV jsou:
- Sekvence TLV lze snadno prohledávat pomocí zobecněných funkcí analýzy;
- Nové prvky zprávy, které jsou přijímány ve starším uzlu, lze bezpečně přeskočit a zbytek zprávy lze analyzovat. To je podobné tomu neznámému XML tagy lze bezpečně přeskočit;
- Prvky TLV lze umístit v libovolném pořadí do těla zprávy;
- Prvky TLV se obvykle používají v binárním formátu, což umožňuje rychlejší analýzu a menší data než ve srovnatelných textových protokolech.
Příklady
Představte si zprávu, abyste uskutečnili telefonní hovor. V první verzi systému by to mohlo používat dva prvky zprávy: „příkaz“ a „phoneNumberToCall“:
- command_c / 4 / makeCall_c / phoneNumberToCall_c / 8 / "722-4246"
Tady command_c
, makeCall_c
a phoneNumberToCall_c
jsou celočíselné konstanty a 4 a 8 jsou délky polí „hodnota“.
Později (ve verzi 2) bylo možné přidat nové pole obsahující volací číslo:
- command_c / 4 / makeCall_c / callingNumber_c / 14 / "1-613-715-9719" / phoneNumberToCall_c / 8 / "722-4246"
Systém verze 1, který přijal zprávu ze systému verze 2, by si nejprve přečetl command_c
prvek a poté načíst prvek typu callingNumber_c
. Systém verze 1 nerozumí;callingNumber_c
čte se tedy pole délky (tj. 14) a systém přeskočí o 14 bajtů dopředu, aby mohl číst
phoneNumberToCall_c
kterému rozumí a analýza zpráv pokračuje.
Příkladem použití je Link Layer Discovery Protocol což umožňuje odesílání informací specifických pro organizaci jako prvek TLV v paketech LLDP. Dalším příkladem je protokol RR používaný v mobilních telefonech GSM, definovaný v 3GPP 04.18.
V protokolu RR je každá zpráva definována jako posloupnost informačních prvků.
TLV se používají v mnoha protokolech, například COPS, IS-IS, a POLOMĚR, stejně jako formáty pro ukládání dat, jako je MFF a QTFF (základ pro MPEG-4 kontejnery ).
Jiné způsoby reprezentace dat
Jádro TCP / IP protokoly (zejména IP, TCP, a UDP ) použijte předdefinovaná statická pole.
Běžný TCP / IP - protokoly založené na HTTP, FTP, SMTP, POP3, a SIP použijte textové páry „Pole: Hodnota“ formátované podle RFC 2822.
ASN.1 určuje několik pravidel kódování založených na TLV (BER, DER ), stejně jako ty, které nejsou založeny na TLV (ZA, XER ).
ČSN.1 popisuje pravidla kódování pomocí sémantiky jiné než TLV.
Poslední dobou, XML byl použit k implementaci zpráv mezi různými uzly v síti. Tyto zprávy mají obvykle předponu textových příkazů založených na řádcích, například s PÍPNUTÍ.
Viz také
- KLV, pro velmi podobné schéma délky klíče
Reference
externí odkazy
- tlve „Běžný analyzátor TLV