Корпорация BBC открыла наработки по обработке сетевых пакетов в обход ядра Linux
Как сообщает opennet.ru британская вещательная корпорация (BBC) открыла код, разработанный в рамках проекта IP Studio для повышения пропускной способности систем потокового вещания через IP-сети. Разработка базируется на фреймворке Netmap и ориентирована на повышение пропускной способности в конфигурациях с 100-гигабитными каналами связи за счет применения техники обхода штатных обработчиков пакетов сетевого стека ядра ('kernel bypass') и предоставления средств для прямой передачи пакетов между приложениями и сетевым оборудованием.
В ходе экспериментов с разработкой программного продукта для потокового вещания инженеры BBC обратили внимание, что узким местом при обработке очень большого числа сетевых пакетов являются операции копирования пакетов в различные области памяти, которые в процессе обработки через стандартную систему сокетов производятся несколько раз. Использование Netmap помогло сократить число операций копирования за счет прямой передачи сразу нескольких пакетов сетевой карте. В качестве сетевого адаптера в BBC использовался Mellanox ConnectX-4, для которого имеется открытый драйвер для ядра Linux, но отсутствует поддержка в Netmap.
На основе имеющегося драйвера разработчики BBC подготовили код для поддержки сетевых адапетров Mellanox в Netmap и добились производительности на уровне 80 гигабит в секунду при однопоточном тестировании. В итоге для включения в основной состав проекта Netmap был предложен новый драйвер mlx5 с поддержкой прямого взаимодействия c 10/25/40/50/100-гигабитными сетевыми адапетрами Mellanox ConnectX-4 и ConnectX-5.