shr3dd3r
8f13e6854d
Добавлено упоминание генерации шума на уровне транспортного адаптера; уточнения касательно разбиения пакетов; у шума можно настроить его характер, т.е. статистические характеристики не касающиеся его количества; формат LBM теперь формат KLV; у транспортных адаптеров теперь есть кодовое имя, определён базовый интерфейс и добавлено перечисление обязательных и рекомендуемых к имплементации видов адаптеров.
60 lines
2.8 KiB
Markdown
60 lines
2.8 KiB
Markdown
# Сериализация и формат KLV
|
||
|
||
Аббревиатура KLV расшифровывается как "Key-Length-Value" и используются в теле системных событий и рукопожатии. Данные сериализованные в формат KLV (AKA "данные в формате KLV") являются расположенными последовательно ячейками с ключом, длинной значения и значением, в неопределённом порядке относительно друг-друга. Положение ячеек относительно друг-друга не детерминированно и они могут быть намеренно перемешаны. Отсутствие каких-либо ячеек вообще обозначается единичным нулевым байтом.
|
||
|
||
Ключ является однобайтным числом без знака. Ключ всегда больше нуля. В каждом контексте (контекст системных событий и контекст рукопожатия) есть свой набор выделенных ключей. Все остальные, неиспользуемые ключи при парсинге опускаются. Длинна значения является двухбайтным числом без знака. Если ячейка пуста, то длинна нулевая. Значением является произвольная последовательность байт.
|
||
|
||
Одна ячейка имеет следующий вид:
|
||
|
||
```text
|
||
B: byte(s)
|
||
|
||
|------------|
|
||
| Key: 1B |
|
||
|------------|
|
||
| Length: 2B |
|
||
|------------|
|
||
| Value: ~B |
|
||
|------------|
|
||
```
|
||
|
||
Пример в шестнадцатеричном представлении:
|
||
|
||
```text
|
||
Length in bytes
|
||
|
|
||
VVVV
|
||
0xDA00080123456789ABCDEF
|
||
^^ ^^^^^^^^^^^^^^^^
|
||
| |
|
||
Key Value
|
||
```
|
||
|
||
Следовательно, форматированные данные целиком имеют вид:
|
||
|
||
```text
|
||
|------------|
|
||
| Cell 1: ~B |
|
||
|------------|
|
||
| Cell 2: ~B |
|
||
|------------|
|
||
| ... |
|
||
|------------|
|
||
| Cell N: ~B |
|
||
|------------|
|
||
```
|
||
|
||
Пример в шестнадцатеричном представлении:
|
||
|
||
```text
|
||
Cell #4 (1B)
|
||
Cell #2 (4B) |
|
||
| |
|
||
VVVVVVVVVVVVVV VVVVVVVV
|
||
0xDA00080123456789ABCDEFF10004FEDCBA98220000340001FF... (and so on)
|
||
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^
|
||
| |
|
||
Cell #1 (8 bytes length) |
|
||
Cell #3 (empty cell)
|
||
```
|