tlv格式 什么是TLV結(jié)構(gòu)和TLV編碼規(guī)則?
什么是TLV結(jié)構(gòu)和TLV編碼規(guī)則?誤碼,ASN1標(biāo)準(zhǔn),全名標(biāo)簽(tag),長(zhǎng)度(length),值(value)。在IS-IS數(shù)據(jù)通信領(lǐng)域,TLV triplet:標(biāo)簽長(zhǎng)度值(TLV)。T.l字段的長(zhǎng)
什么是TLV結(jié)構(gòu)和TLV編碼規(guī)則?
誤碼,ASN1標(biāo)準(zhǔn),全名標(biāo)簽(tag),長(zhǎng)度(length),值(value)。
在IS-IS數(shù)據(jù)通信領(lǐng)域,TLV triplet:標(biāo)簽長(zhǎng)度值(TLV)。T.l字段的長(zhǎng)度通常是固定的(通常為1-4字節(jié)),而V字段的長(zhǎng)度是可變的。顧名思義,T字段表示消息的類型,l字段表示消息的長(zhǎng)度,V字段通常用于存儲(chǔ)消息的內(nèi)容。
什么是TLV編碼?
Tlvtlv是一種可變格式,表示:類型、長(zhǎng)度、值。類型:此字段是有關(guān)標(biāo)簽和編碼格式的信息。長(zhǎng)度:此字段是定義值的長(zhǎng)度。值:表示實(shí)際值。類型的長(zhǎng)度和長(zhǎng)度是固定的,一般是2或4個(gè)字節(jié)(具體的編碼和解析是統(tǒng)一的,本文取無(wú)符號(hào)長(zhǎng)的類型);值的長(zhǎng)度是由長(zhǎng)度指定的;在介紹編碼和解碼方法之前,我們需要了解大端和小端。由于網(wǎng)絡(luò)字節(jié)順序使用的是大端,主機(jī)字節(jié)序列有一些大端和一些小端,根據(jù)平臺(tái)的不同而有所不同。因此,編碼時(shí)需要使用兩個(gè)函數(shù):htonl:主機(jī)字節(jié)序列轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序列ntohl:網(wǎng)絡(luò)字節(jié)序列轉(zhuǎn)換為主機(jī)字節(jié)序列TLV優(yōu)點(diǎn):[1]編碼值也稱為TLV(type,length,value)triplet。編碼可以是基本的,也可以是結(jié)構(gòu)化的。如果它表示一個(gè)簡(jiǎn)單而完整的顯式值,則編碼是原始的;如果它表示的值具有嵌套結(jié)構(gòu),則構(gòu)造編碼。
2. TLV封裝和解包效率高,節(jié)省內(nèi)存。