Jump to content

Экспресс-путь к данным

ПРП
Оригинальный автор(ы) Бренден Бланко,
Том Герберт
Разработчик(и) Сообщество открытого исходного кода, Google , Amazon , Intel , Microsoft [1]
Первоначальный выпуск 2016 ; 8 лет назад ( 2016 )
Написано в С
Операционная система Линукс , Винда
Тип Фильтрация пакетов
Лицензия Линукс: Лицензия GPL
Windows: лицензия MIT

XDP ( eXpress Data Path ) — это на основе eBPF, высокопроизводительный путь передачи данных используемый для отправки и получения сетевых пакетов с высокой скоростью в обход большей части операционной системы сетевого стека . Он встроен в ядро ​​Linux начиная с версии 4.8. [2] Эта реализация распространяется под лицензией GPL . Крупные технологические компании, включая Amazon, Google и Intel, поддерживают его развитие. Microsoft выпустила бесплатную реализацию XDP с открытым исходным кодом для Windows в мае 2022 года. [1] Он распространяется под лицензией MIT License . [3]

Путь к данным

[ редактировать ]
Пути потока пакетов в ядре Linux . XDP обходит сетевой стек и выделение памяти пакетов для метаданных .

Идея XDP заключается в том, чтобы добавить ранний перехватчик в путь RX ядра и позволить предоставленной пользователем программе eBPF решить судьбу пакета. Перехватчик помещается в драйвер контроллера сетевого интерфейса (NIC) сразу после обработки прерывания и до выделения памяти, необходимого самому сетевому стеку , поскольку выделение памяти может быть дорогостоящей операцией. Благодаря такой конструкции XDP может отбрасывать 26 миллионов пакетов в секунду на одно ядро ​​при использовании стандартного оборудования. [4]

Программа eBPF должна пройти предварительную проверку. [5] перед загрузкой, чтобы избежать выполнения вредоносного кода в пространстве ядра. Средство предварительной проверки проверяет, что программа не содержит выходов за пределы доступа, циклов или глобальных переменных.

Программе разрешено редактировать данные пакета, и после возврата программы eBPF код действия определяет, что делать с пакетом:

  • XDP_PASS: позволить пакету пройти через сетевой стек
  • XDP_DROP: молча отбросить пакет
  • XDP_ABORTED: удалить пакет с исключением точки трассировки
  • XDP_TX: вернуть пакет обратно на тот же сетевой адаптер, на который он прибыл.
  • XDP_REDIRECT: перенаправить пакет на другой сетевой адаптер или сокет пользовательского пространства через AF_XDP. семейство адресов

XDP требует поддержки в драйвере сетевого адаптера, но, поскольку не все драйверы поддерживают ее, он может вернуться к общей реализации, которая выполняет обработку eBPF в сетевом стеке, хотя и с более низкой производительностью. [6]

XDP имеет инфраструктуру для разгрузки программы eBPF на контроллер сетевого интерфейса, который ее поддерживает, что снижает нагрузку на процессор. В 2023 году только Нетроном [7] карты это поддерживают.

Microsoft сотрудничает с другими компаниями и добавляет поддержку XDP в свою MsQuic реализацию протокола QUIC . [1]

новое семейство адресов . Наряду с XDP, начиная с версии 4.18, в ядро ​​Linux вошло [8] AF_XDP, ранее известный как AF_PACKETv4 (который никогда не был включен в основное ядро), [9] представляет собой необработанный сокет , оптимизированный для высокопроизводительной обработки пакетов и обеспечивающий нулевое копирование между ядром и приложениями. Поскольку сокет можно использовать как для приема, так и для передачи, он поддерживает высокопроизводительные сетевые приложения исключительно в пользовательском пространстве. [10]

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б с Джавад, Усама (25 мая 2022 г.). «Microsoft переносит проект Linux XDP в Windows» . Неовин . Проверено 26 мая 2022 г.
  2. ^ «[GIT] Сеть — Дэвид Миллер» . lore.kernel.org . Проверено 14 мая 2019 г.
  3. ^ Ясар, Эрдем (25 мая 2022 г.). «Microsoft представила XDP с открытым исходным кодом для Windows» . облако7 . Проверено 26 мая 2022 г.
  4. ^ Хойланд-Йоргенсен, Токе (03 мая 2019 г.), Исходный текст и экспериментальные данные для нашей статьи, описывающей XDP: tohojo/xdp-paper , получено 21 мая 2019 г.
  5. ^ «Подробное введение в eBPF [LWN.net]» . lwn.net . Проверено 14 мая 2019 г.
  6. ^ "net: Общий XDP" . www.mail-archive.com . Проверено 14 мая 2019 г.
  7. ^ «BPF, eBPF, XDP и Bpfilter… Что это за вещи и что они значат для предприятия? — Netronome» . www.netronome.com . Проверено 14 мая 2019 г.
  8. ^ «kernel/git/torvalds/linux.git — дерево исходного кода ядра Linux» . git.kernel.org . Проверено 16 мая 2019 г.
  9. ^ «Вопросы по AF_PACKET V4 и AF_XDP» . Кернел.орг .
  10. ^ «Ускорение работы в сети с помощью AF_XDP [LWN.net]» . lwn.net . Проверено 16 мая 2019 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 28c75593d313d685d8d336f47eebf273__1711837680
URL1:https://arc.ask3.ru/arc/aa/28/73/28c75593d313d685d8d336f47eebf273.html
Заголовок, (Title) документа по адресу, URL1:
Express Data Path - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)