TLV и протокол ASN.1

TLV — схема кодирования для использования информационных элементов, сокращённо Tag-length-value.
ASN.1 — абстрактная синтаксическая нотация, в том числе международный телекоммуникационный стандарт.

1) Tag Первые два бита кодируют класс текущего блока, это может быть sequence, например, и другие типы, следующий бит равен 0x00, если у нас простые данные, но 0x01, если внутри значения блока содержится дополнительные блоки ASN.1. Остальные биты содержат тип данных, например integer, bit_string, bool, Null и другие.
Если идентификатор типа содержит значение выше 31, то в последних битах будут все 0х01 (по определению их 5 битов).
2. Length. Если длина информационного сообщения меньше 0x80, то размер кодируется одним байтом, если сообщение x>0x80 и >0x100, то к размеру добавляется идентификатор 81. Если сообщение больше 0x100, то длина будет 82. Если длина блока равна 201, то значение в 16 ричное системе будет
81C9, что соответствует 1000 0001, 1100 1001. Важно что общая длина сообщения не может выйти за объем =65535 в 10 степени. Вообще рекомендуется передавать небольшие блоки данных, блок данных 16 /32 Кб отправится быстрее, чем блок 64 КБ. Важно помнить, что на уровне сети и сетевого соединения находится много сетевых устройств, возможно задержка. Tcp протокол запрашивает подтверждение. да и блок 32 КБ делится предположим по 4 Кб, получается 8 блоков
3)Value. Тут тоже все не так просто. Текст переводится в массив byte. Числа в зависимости от набора процессорных инструкций декодируются как big endian и little endian. Т е имеет значение порядок байтов в памяти компьютера. 4-байтное целое число 0x01020304 будет сохранено в памяти системы big endian следующим образом: 0x01 0x02 0x03 0x04, в системе little endian обратный порядок 0x04 0x03 0x02 0x01. Важна не запись, а учёт формата хранения данных в памяти для обмена с другими системами.