В настоящее время я изучаю некоторые внутренние принципы DOCSIS и связанные с ними. Одна вещь, с которой я немного борюсь, это то, как создаются файлы конфигурации кабельного модема.
Из того, что я собрал:
- CM-конфигурации - это двоичные файлы, основанные на формате TLV .
- Эти конфиги развертываются с использованием TFTP-сервера, подсказанного через DHCP самому модему при его загрузке.
Мне интересно знать, как структурированы эти файлы конфигурации. Я почти ничего не знаю о TLV, кроме того, что я читал в последние дни.
- Является ли TLV просто общим методом объединения данных? Похоже, что TLV используется как в двоичных формах, так и в JSON-подобных строках открытого текста.
- Являются ли части T и / или L TLV заданным размером (в байтах)? Откуда я знаю, где они отделяются?
- Мне кажется, я где-то читал, что в конфигурациях CM используется подмножество TLV, называемое TLV-BER. Если я не ошибаюсь, это добавляет поддержку вложенности TLV. Как это работает?
Я слышал, что документация DOCSIS хорошо документирована на CableLabs , но я пока не смог найти эту информацию. Полезные ссылки приветствуются.
У меня есть бинарный конфигурационный файл, который я смог декодировать с помощью онлайн-инструментов, но предположим, что я хочу создать свой собственный инструмент для этой цели, как мне это сделать?
Редактировать: вот выдержка из первых 64 байтов двоичного файла, для справки.
03010112 01021916 08040668 51E00601 07070104 01020065 09040000 17C8181D
08040203 A0000904 00001F40 0E021F40 01020001 0F010207 01040601 07270101