Блог им. sck

Декодирование пакетов от тестового FAST UDP Multicast MOEX

    • 26 января 2024, 14:14
    • |
    • sck
  • Еще

Всем добрый день!

Подключился к тестовому контуру FAST от MOEX и возникли трудности с декодированием UDP пакетов, поэтому решил обратиться за помощью к сообществу.
Написал небольшой скрипт на NodeJS для получения данных от сервера FAST.
При попытке вывода получаемых сообщений в консоль вылезают нечитабельные символы (декодирую в ASCII, также проверял UTF8 — там тоже есть проблемы с читабельностью):
Декодирование пакетов от тестового FAST UDP Multicast MOEX

Пробую перехватывать эти же пакеты с помощью Wireshark и вижу следующее:
Декодирование пакетов от тестового FAST UDP Multicast MOEX

Кроме того пробовал загрузить в Wireshark дампы пакетов с ftp сервера ftp.moex.com/pub/FAST/ASTS/dump/ они имеют следующий вид:
Декодирование пакетов от тестового FAST UDP Multicast MOEX

Вопрос в следующем: действительно ли так должны выглядеть пакеты от тестового FAST UDP (как в Wireshark) или я делаю что то неправильно?

PS: на сколько я понимаю сообщение должно прилетать примерно такого вида:

8=FIXT.1.19=47535=d49=MOEX34=1355252=200116063011036670460=3423=1911=279261128=9347=UTF-855=RU000A1011E948=RU000A1011E922=4461=DBXXXX167=CORP107=SberIOS 001P-167R 1Y SX5E T-W15=RUB120=RUB5217=4B0217201481B001P5385=RPS969=0.01223=0.00015508=10005850=6489997595=648999350=37351=СберИОС 001Р-167R 1Y SX5E T-W5382=175383=СберИОС167541=20201204224=2020120464=20200116870=2871=27872=2871=8872=3721310=1561=11309=1336=PSOB326=179680=3625=N10=052

443
7 комментариев
То что вы привели в конце топика, это не fast, это FIX. И они действительно читабельны.

А FAST по UDP хрен «зачитаешь» глазами, за исключением некоторых текстовых полей и то не полностью. Там данные нужно распаковывать по специальному алгоритму и потом парсить
avatar
Андрей К, Спасибо за комментарий. Посоветуйте, пожалуйста, что можно почитать по теме декодирования FAST. Документацию на ftp биржи читал, но так и не понял по какому принципу декодировать, видимо сказывается отсутствие опыта в данном направлении. 
avatar
sck, да вроде знаете, гуглится много статей, например jettekfix.com/education/fix-fast-tutorial/

для меня сейчас это как холодный душ, всопмнить все это и написать высокопроизводительный FAST парсер со всеми нюансами ). Будут какие то локальные вопросы, задавайте

для начала попринтуйте seq_num FAST пакета и его template_id.
seq_num хоть не пакуется и не кодируется и инкрементируется, будет видно наглядно

template_id дешифруется тож достаточно быстро
avatar
Андрей К, благодарю!
avatar
sck, получилось сделать?
sck, Добрый день, такая же проблема с декодирование, случайно наткнулся на эти комметарии) 
 

Мне приходит такое сообщение (это шаблон сердцебиения): \xe1.\x01\x00\xc0\x10\xbc\x04]\xe1\x03,$\x07\x0be[\x0e\xc3

После того как убираю первые 4 байта (преамбулу). Получаю:
\xc0\x10\xbc\x04]\xe1\x03,$\x07\x0be[\x0e\xc3

Смотрю на первый байт С0 = 1100 0000. pmap = 1000 000, но в этом сообщение (сообщение сердцебиения) вообще нет опциональных полей.

Буду очень благодарен подсказке)
Сам шаблон:
<template name=«0» id=«2108» xmlns="http://www.fixprotocol.org/ns/fast/td/1.1"><string name=«MessageType» id=«35»><constant value=«0» /></string><string name=«BeginString» id=«8»><constant value=«FIXT.1.1»/></string><string name=«SenderCompID» id=«49»><constant value=«MOEX»/></string><uInt32 name=«MsgSeqNum» id=«34»></uInt32><uInt64 name=«SendingTime» id=«52»></uInt64></template>  
кстати если nodejs умеет импортировать c++ библиотеки, то проще конечно взять готовый парсер на c++ и попробовать его залинковать подключить в nodejs, если я корректно выразился 
avatar

Читайте на SMART-LAB:
Инвестиции без спешки: торгуем в выходные
Алексей Девятов Рынок часто движется импульсами, тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят...
Фото
Собираем вопросы инвесторов
29 апреля представим финансовые результаты ДОМ.PФ за 3 месяца 2026 года А заодно ответим на вопросы инвесторов Напишите в комментариях к...
Фото
📍 Завтра — ещё одно знаковое событие апреля: Profit Conf
Продолжаем насыщенную деловую повестку: завтра команда ПАО «МГКЛ» примет участие в конференции Profit Conf. В программе: 🕚 в 11:00...
Фото
Обновляем стратегию 2026: год трудный, что изменилось, и в каком направлении мы движемся?
Квартальное обновление стратегии. Стратегия Mozgovik была представлена 17 января: https://smart-lab.ru/mobile/topic/1254157/ Что остается в...

теги блога sck

....все тэги



UPDONW
Новый дизайн