Дослідження та застосування технологій XDP для швидкісної обробки пакетів в Linux.

Автор: Давиденко Іван Андрійович
Кваліфікаційний рівень: магістр
Спеціальність: Системне програмування
Інститут: Інститут комп'ютерних технологій, автоматики та метрології
Форма навчання: денна
Навчальний рік: 2020-2021 н.р.
Мова захисту: українська
Анотація: Давиденко I.А. Пастернак І.І. (керівник). Дослідження та застосування технологій XDP для швидкісної обробки пакетів в Linux. Магістерська кваліфікаційна робота. – Національний університет Львівська політехніка, Львів, 2020. Розширена анотація. XDP (англ. eXpress Data Path) надає можливість написання обробників пакетів, результатом роботи яких є рішення про пропускання пакету в мережевий стек ОС, скидання пакету з припиненням подальшої обробки або перенаправлення пакету в інший мережний інтерфейс. Дані обробники завантажуються в ядро операційної системи у вигляді eBPF–програм. Завантажені модулі можна закріпити на мережевих інтерфейсах[1], після чого вони будуть виконуватись драйвером інтерфейса на кожному отриманому пакеті[2]. Завантажені XDP–програми мають доступ до інтерфейсів комунікації ядра операціїної системи Linux[3]. Головним таким інтерфейсом є BPF–таблиці, які виконують як конфігураційно–контрольну функцію для різного роду функціоналу мережного стеку ядра[4], так і програмованим каналом комунікації з процесами що працюють в просторі користувача. Об’єктом дослідження є нова технологія в ядрі Linux, яка перспективна для використання у існуючих системах для яких є критичним швидка обробка мережного трафіку. Предметом дослідження були особливості технології XDP, а саме методів розробки та відлагодження з її використанням, конкурентні переваги над іншими існуючими технологіями[5], а також визначення та порівняння наступних характеристик: швидкість обробки вхідних пакетів, часові накладні витрати на виконання та залежність використання ресурсів центрального процесора від об’ємів вхідного трафіку. Метою дослідження було знаходження конкурентнних переваг, якщо такі існують, по відношенню до інших існуючих технологій, виділення інструментарію для розробки високопродуктивних систем та особливостей технології XDP, що можуть бути застосовані у певних проограмних системах. В результаті дослідження було з’ясовано, що технологія XDP привносить можливість програмно–керованої обробки пакетів безпосередньо в мережний стек операційної системи, що вимагає більших ресурсів розробки та експлуатаці при використанні систем оминання мережного стеку. Це дає можливість виконувати високошвидкісну обробку пакетів і в той же час зберігати звичайний рівень інтеграції з мережним стеком та програмними системами, що працюють у просторі користувача та використовують стандарні програмні інтерфейси операційної системи. Таким чином, XDP є конкурентною технологією у сфері високопродуктивних обчислень (хмарні обчислення, дата центри, комп’ютерні центри), а саме для таких задач як: балансування навантаження між елементами мережної системи, високоточна синхронізація системних годинників серед членів комп’ютерної мережі, системи тунелювання трафіку (VPN/EVPN/MLAG). Ключові слова: комп’ютерні мережі, програмна обробка трафіку, мережний стек ядра, Linux, XDP. Перелік використаних джерел: 1. Kіcіnskі J. eBPF/XDP hardware offload to SmartNICs / J. Kіcіnskі, N. Vіljoen. // NetDev 1.2 - The Technіcal Conference on Linux Networkіng. – 2016. 2. McCanne S. The BSD Packet Fіlter: A New Archіtecture for User-level Capture / S. McCanne, V. Jacobson. // USENIX. – 1993. 3. Jesper D. B. eBPF - extended Berkeley Packet Fіlter [Електронний ресурс] / D. B. Jesper. – 2016. – Режим доступу до ресурсу: https://prototype-kernel.readthedocs.іo/en/latest/bpf/. 4. Jesper D. B. Project XDP cooperatіng wіth TC. [Електронний ресурс] / Dangaard Brouer Jesper. – 2018. – Режим доступу до ресурсу: https://gіthub.com/xdp-project/xdp-cpumap-tc. 5. Derі L. Modern packet capture and analysіs: Multі-core, multі-gіgabіt, and beyond / Luca Derі. // the 11th IFIP/IEEE Internatіonal Symposіum on Integrated Network Management (IM). – 2009.