Af Xdp Dpdk Bypass

Ingress-пайплайн: DPDK / AF_XDP Kernel Bypass и Gossip-сеть

Published: 2026-06-25 · Trading

AF_XDP Kernel Bypass — это метод обхода сетевого стека ядра Linux для передачи Ethernet-кадров напрямую в пользовательское пространство процесса. Совместно с привязкой потоков к фи

⚡ Быстрый ответ

  • Hardware alignment and kernel bypass network ingress pipeline using ConnectX-6 NIC, F-Stack, AF_XDP, and lock-free rings.
  • Core pinning assigns specific CPU cores to network polling, Hawkes math calculation, and order execution to achieve microsecond latency.

Safety Guards

Rule Max Limit Action On Breach
packet_processing_timeout_ms 1 alert_and_reconnect
cpu_utilization_cap 100 log_health_check

Руководство по интеграции

Обновлено: 2026-07-04
*Дисклеймер: Данный материал носит исключительно информационный характер и не является финансовой рекомендацией.*

## Как технология AF_XDP Kernel Bypass и Core Pinning снижают сетевую задержку HFT-ботов?

AF_XDP Kernel Bypass — это метод обхода сетевого стека ядра Linux для передачи Ethernet-кадров напрямую в пользовательское пространство процесса. Совместно с привязкой потоков к физическим ядрам процессора (Core Pinning) и использованием lock-free очередей, это позволяет десериализовать котировки и отправлять ордера с микросекундной задержкой и нулевым джиттером.































Ядро процессора Выделенная задача пайплайна Преимущество для латентности
Core 0 (CPU 0) Системные прерывания ОС, SSH-сессии, фоновые демоны Изолирует операционную систему от критически важных торговых вычислений.
Core 1 (CPU 1) Поллинг сетевого стека F-Stack (AF_XDP), сборка TCP, TLS, парсинг SBE Обеспечивает непрерывный прием рыночных данных без переключения контекста.
Core 2 (CPU 2) Расчет интенсивности потока ордеров (Hawkes MLE) на AVX-512 Минимизирует задержку математических прогнозов ликвидности.
Core 3 (CPU 3) Исполнение торговых ордеров (Order Execution) Исключает очереди при отправке транзакций на биржу.


### Механика Kernel Bypass
Для достижения микросекундных задержек в обработке котировок HFT-боты используют технологию обхода сетевого стека ядра Linux (Kernel Bypass). Сетевая карта Mellanox ConnectX-6 Dx настраивается на прямую передачу кадров Ethernet в пользовательское пространство процесса (UMEM) через сокеты `AF_XDP` в режиме Zero-Copy.

### Пайплайн обработки сетевых пакетов (Ingress Pipeline)
1. **Аппаратный Ingress (NIC)**: Сетевой адаптер считывает кадр из физического уровня и с помощью DMA перекладывает его в буфер UMEM.
2. **Десериализация (CPU Core 1)**: Процесс-воркер, использующий фреймворк F-Stack (DPDK / AF_XDP), забирает пакет из UMEM, собирает TCP-поток, расшифровывает TLS 1.3 и парсит бинарную SBE-структуру `CleanSbeMarketPayload`.
3. **Lock-Free Handoff**: Процесс выполняет `enqueue_by_reference(...)` в кольцевую очередь `PureCdefSpscQueue` (Single Producer Single Consumer). Данная очередь не использует мьютексы и синхронизируется исключительно на уровне шины процессора через когерентность кэшей MESI (кэш-линия переходит в статус Modified, о чем уведомляется ядро расчета математики).

### Core Pinning (Привязка ядер процессора)
Для исключения переключения контекста планировщика и джиттера L1/L2 кэшей, Hyper-Threading (SMT) отключается в BIOS, а потоки жестко закрепляются за физическими ядрами:
- **Core 0 (CPU 0)**: Выделено под системные прерывания Linux, SSH-сессии и фоновые демоны.
- **Core 1 (CPU 1)**: Выделено под поллинг (polling) сетевого стека F-Stack (обработка сетевых пакетов).
- **Core 2 (CPU 2)**: Выделено под модуль Hawkes MLE (расчет интенсивности потока ордеров на AVX-512).
- **Core 3 (CPU 3)**: Выделено под исполнение ордеров (order execution) и работу со стаканом.