Packet capture
SIMBA Recorder
Запись SIMBA-потока в собственный компактный rxbin.zst: вместо тяжелых pcap-сессий получаются replay-ready файлы для backtest и research
- Рынок
- Packet capture
- Кому полезно
- команды, которым нужны собственные исторические данные MOEX
- Статус
- Построено и эксплуатируется в нашей торговле
Обзор
Recorder не пытается хранить все как pcap, но ничего не выкидывает из рыночного потока. Он сохраняет сырой UDP payload целиком и добавляет сверху служебные поля replay-слоя: flow id, receive timestamp и length. A/B dedup фиксирует первый прилетевший пакет из дублирующей пары - гэпы в данных отсутствуют при правильно настроенном RX. В режиме DPDK RX hot path не делает системных вызовов: пакеты принимаются из кольца в userspace без задержек ядра, что критично для точности timestamp в replay. Recorder одинаково работает в колокации ЦОД MOEX и на удаленном VPS с kernel UDP: в обоих случаях на выходе полноценные rxbin.zst для бэктеста и ML. Сжатие достигается не потерей данных, а A/B dedup и zstd. На практике вместо порядка 25 ГБ сырого pcap часто получается около 3-4 ГБ rxbin.zst, которые сразу пригодны для replay, диагностики и ML-пайплайна.
Что это дает
нулевые гэпы данных при правильно настроенном A/B dedup и DPDK RX
работает в колокации MOEX и на VPS с kernel UDP - один бинарник, разный конфиг
намного меньше storage и сетевой перенос записей с colocated-сервера
свои воспроизводимые сессии вместо зависимости от чужих агрегатов
единый источник данных для backtest, ML и post-trade анализа
покрытие жизненного цикла: от инициализации до обработки сессий, ресетов и десинков
Возможности
Что внутри
Объем под ваш проект фиксируется в договоре: что переиспользуем из готового, что дорабатываем, интеграция, документация и поддержка
Полный сырой поток в rxbin.zst
Формат сохраняет весь сырой UDP payload без обрезки данных и добавляет сверху flow id, receive timestamp и length для точного replay.
A/B dedup + нулевые гэпы
Записывается первый пришедший пакет из A/B дублирующей пары - если одна нога потеряла пакет, вторая закрывает гэп. При исправном RX-контуре итоговая запись не содержит пропусков в sequence numbers.
Kernel UDP и DPDK RX
В режиме DPDK RX hot path не делает системных вызовов - пакеты читаются из кольца напрямую в userspace. Это исключает задержки ядра на критическом пути и обеспечивает точный NIC-timestamp для replay без jitter планировщика.
Ротация и доставка
Практичная схема работы через systemd, каталоги сессий и rsync для сбора данных с production-хоста.
Готовый вывод для replay
Записи напрямую используются backtester и chronbin pipeline без ручной нормализации перед каждым прогоном.

