Ускорьте свое изучение DPDK c ZSF Team!

Практическое обучение DPDK: от теории к реальным кейсам

Записаться на курс
Узнать больше

Поддержка

Мы не дадим вам застрять надолго

Системный подход

Весь наш опыт упакован в готовую для применения методологию

Фокус на практике

Вы отрабатываете каждый навык на реальных кейсах
Создано экспертами: о курсе DPDK

Программирование С/С++

Вам будет достаточно начального опыта: понимания синтаксиса языка, основ работы с указателями и базовыми структурами данных. Нам важно, чтобы вы могли читать и понимать код, а не писать сложные приложения с нуля.

Основы сетевых технологий

От вас потребуется поверхностное понимание работы сетей, как в общих чертах происходит обмен данными в сети. Глубоких знаний сетевых технологий не требуется — достаточно фундамента, на который мы будем опираться.

Работа с операционной системой Linux

Нужна уверенность на уровне пользователя: умение работать с командной строкой (терминалом), выполнять основные команды для навигации по файловой системе, управления файлами и процессами
Изучите фундаментальные аспекты DPDK и получите необходимые знания для создания высокопроизводительных сетевых приложений
Блок 1: Введение

В этой лекции даётся определение DPDK, рассматриваются его преимущества и отличия от стандартного сетевого стека Linux, а также описывается общая архитектура (EAL, PMD, Hugepages и т. д.). Практика посвящена установке и настройке DPDK в эмуляторе GNS3/QEMU: конфигурация системы, выделение больших страниц памяти и развертывание DPDK.

Блок 2: Сетевые основы
Разбираются уровни OSI (L1–L4), основные сетевые устройства и путь прохождения пакетов. В практической части вы настроите в Linux маршрутизацию и мост, чтобы понять, как работает пересылка пакетов на уровне L2 и L3.
Блок 3: Конфигурирование DPDK и запуск приложений
Лекция охватывает предварительные требования (PMD, Hugepages), знакомит с EAL и базовыми приложениями DPDK. В практикуме мы пройдёмся по исходному коду простого фильтра и сниффера, разберём ключевые функции библиотеки и проанализируем трафик.
Блок 4: Управление памятью
Рассматриваются основные структуры DPDK для работы с памятью: mbuf и mempool, а также ключевые рекомендации по работе с памятью. На практике вы разработаете простое hub-приложение: реализуете логику распределения пакетов, протестируете и отладите код.
Блок 5: Кольцевые буферы (Ring)
Обзор механизма DPDK Ring, его варианты (SP/SC/MP/MC) и примеры применения для организации очередей сообщений. В практической части создадите агрегатор метрик на основе кольцевого буфера: реализуете логику, управление памятью и протестируете решение.
Блок 6: Структуры DPDK: RTE таблицы, в частности ext hash
Разбор пакетной обработки группами (batch), основных возможностей RTE таблиц и хеш-таблицы rte_hash_ext. Практика посвящена построению простого коммутатора: создание и использование хеш-таблицы, реализация логики передачи пакетов.
Блок 7: Многопоточность в DPDK
Изучаются потоки в Linux, привязка к ядрам (core affinity), иерархия потоков DPDK и взаимодействие между ними. В практике вы разработаете многопоточное DPDK-приложение, состоящее из 3-х компонентов:  от простого запуска потоков до синхронизации
Блок 8: Receive Side Scaling (RSS)
В лекции рассматриваются основные этапы обработки входящих пакетов, детально изучается принцип работы RSS для распределения нагрузки по ядрам процессора, включая симметричный RSS (RSS) для балансировки двустороннего трафика. Анализируется вопрос отслеживания сессий и способы обеспечения симметрии потоков. Отдельно обсуждается реализация Software RSS. В практической части вы разработаете и протестируете модуль Software RSS для эмуляции аппаратного распределения трафика.
Блок 9: Модели обработки: Run-to-Completion и Pipeline
В лекции рассматриваются две основные модели обработки пакетов: Run-to-Completion (RTC) и Pipeline. Анализируются их принципы работы, преимущества и недостатки, сферы применения и влияние на производительность. Особое внимание уделяется особенностям реализации каждой модели в DPDK. В практической части вы реализуете и сравните обе модели на примере простого процессора пакетов: разработаете логику обработки для RTC и конвейерные стадии для Pipeline, протестируете производительность и масштабируемость.
Блок 10: Производительность в DPDK: Замеры и метрики
Лекция посвящена методам измерения производительности в DPDK. Рассматриваются высокоточные временные метки с использованием rte_rdtsc(), различные типы счётчиков (пакетов, байт, событий), библиотека метрик rte_metrics) и методы профилирования для выявления узких мест. Анализируются факторы, влияющие на производительность (выравнивание, размеры batch, префетчинг и т. д.). На практике вы интегрируете счётчики и метрики в существующее приложение, проведёте замеры производительности с использованием rte_rdtsc(), проанализируете результаты и выявите потенциальные оптимизации.
Блок 11: Основы QoS (Quality of Service)
Лекция знакомит с концепцией качества обслуживания (QoS): определяет его цели и необходимость в современных сетях. Рассматриваются ключевые аспекты QoS — классификация трафика и основные механизмы обеспечения качества обслуживания, такие как очереди (FIFO, Priority Queuing), шейпинг (Shaping) и полицинг (Policing). Практика посвящена реализации механизма QoS по ограничению скорости: вы реализуете policing и протестируете его работу на различном входящем трафике.
Блок 12: Финальный проект 
Вы разработаете многопоточный коммутатор: обеспечите безопасность доступа к хеш-таблице, организуете межпоточное общение, балансировку нагрузки и протестируете итоговое решение.
Теория, подкрепленная интенсивной практикой — залог глубокого усвоения материала
11 лекций
До 60 минут
11 практик
до 3х часов
1 Проект
Финальный проект
1 Блок
В неделю
3 Месяца
Всё обучение

Ключевые компетенции

Понимание архитектуры и ключевых библиотек DPDK, знание базовых сетевых технологий (L2-L4),  моделирование в GNS3

Практические навыки

Создание сетевых приложений с использованием DPDK, использование анализаторов и генераторов трафика для отладки и анализа.

Портфолио

Ваш собственный Git-репозиторий с базовыми сетевыми приложениями на DPDK, включая финальный проект.

ZSF TEAM И НАША МИССИЯ

Курс разработан и проводится экспертами ZSF Team с многолетним опытом построения высоконагруженных сетевых систем. Мы совмещаем глубокие теоретические знания с успешной реализацией коммерческих проектов.

Мы создаём Zero Space Framework (C++ & RUST), который объединяет DPDK, SPDK для работы с Nic, NVMe, gpu - создавая пространство без копирования - zero space

Фреймворк позволит создавать:
  • высокопроизводительные прототипы
  • обучение, диагностику сетей
  • продукты или части продукта — data planes 

Превзойдите скоростные ограничения с DPDK от ZSF Team!

Погрузитесь в мир высокопроизводительных сетей с нашим углубленным курсом по DPDK. Научитесь у экспертов-практиков и создавайте сетевые приложения, которые задают новые стандарты скорости и эффективности

Нажимая на кнопку, вы принимаете Положение и даете Согласие на обработку персональных данных.

© 2025 ZSF Team. All rights reserved