1

Я анализирую пакеты, отправляемые с телеметрического устройства MT4000. Я настроил слушателя в терминале (Linux) и настроил отображение пакетов, полученных в шестнадцатеричном формате.

Пока что входящий пакет выглядит так:

10:57:54.973363 IP 31.70.199.41.30000 > Dans-iPod.30000: UDP, length 37
0x0000:  0019 216b a7b2 0018 3f49 8ac1 0800 4568  ..!k....?I....Eh
0x0010:  0041 007a 0000 ed11 245c 1f46 c729 c0a8  .A.z....$\.F.)..
0x0020:  0156 7530 7530 002d c20f 000a 0200 2020  .Vu0u0.-........
0x0030:  2020 2020 2020 2031 2020 2020 2020 2030  .......1.......0
0x0040:  3132 3938 3130 3030 3239 3832 3133 20    12981000298213.

Используя эту таблицу из справочного руководства по MT4000, я попытался сопоставить гекс с правильным использованием.

* Я не могу опубликовать изображение, так как у меня еще нет 10 репутации. Вы можете найти разбивку пакетов UDP в справочном руководстве по API MT4000 или, я думаю, просто разбивку стандартных пакетов UDP.

В руководстве предлагается, чтобы байт 0 содержал 8-битное поле для версии и длины. Этот API поддерживает только версию 4 с длиной заголовка IP 5 * 4 = 20 байт. Это поле должно быть установлено в 0x45.2 "

Используя эту информацию, я вижу, что байт версии номер 15, а не 0. После этого все совпадает, но я не могу найти объяснение первых 14 байтов: 0019 216b a7b2 0018 3f49 8ac1 0800

Любая помощь будет очень ценится, спасибо заранее,

издание

1 ответ1

3

14 байтов перед заголовком IP являются заголовком Ethernet, последние два байта которого (0800) указывают протокол более высокого уровня (IP).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .