标题中文释义:利用 eBPF 在商品硬件中进行机器学习驱动的流量处理
作者:Jorge Gallego-Madrid, Irene Bru-Santa, Alvaro Ruiz-Rodenas, Ramon Sanchez-Iborra ∗ , Antonio Skarmeta
期刊/会议:Computer Networks 243 (2024) 110295
GitHub库:https://github.com/irenebru/eBPF-neural-network
环境配置 |
|
ML框架 |
Python 的 ScikitLearn(sklearn) |
把python代码变成c代码的库 |
TinyML 的 emlearn |
ABSTRACT
When combined with Machine Learning (ML) algorithms, it becomes a promising enabler to perform smart monitoring and networking tasks at any required place of the fog-edge-cloud continuum.
网络软件化正在为下一代网络(NGNS)的设计和开发铺平道路,这需要深刻改进现有的通信基础设施。NGNs的两个基本支柱是灵活性和智能,以创建弹性网络功能,能够以高效和具有成本效益的方式管理复杂的通信系统。从这个意义上说,扩展的伯克利数据包过滤器eBPF)是一种先进的解决方案,可以在通用硬件的Linux内核中实现低延迟流量处理。当与机器学习(ML)算法结合使用时,它成为在雾-边缘-云连续统一体的任何所需位置执行智能监控和网络任务的有前途的使能器(When combined with Machine Learning (ML) algorithms, it becomes a promising enabler to perform smart monitoring and networking tasks at any required place of the fog-edge-cloud continuum.)。在此工作中,我们提出了一种解决方案,该解决方案利用 eBPF将基于 ML的智能与 Linux 内核中的快速数据包处理集成在一起,以灵活的方式执行复杂的计算任务,节省资源并减少处理延迟。在物联网(IoT)场景中进行了实际实现和一系列实验,以评估该解决方案在 6LoWPAN 系统中检测攻击的性能。内核实现的表现表明,与使用用户空间的开发方法相比,:多层感知器(MLP)模型的执行时间(-97%)和CPU使用率(-6%)显著降低;因此,将我们的建议定位为将ML驱动的快速数据包处理嵌入Linux内核的有前途的解决方案。
-
Introduction
以前:在内核态用ebpf采集数据,在用户态用ML技术分析数据并预测
本文:都在内核态进行
研究背景和意义:
NGNs 的发展需要显著改善通信基础设施,而 eBPF 允许在商品硬件中进行高效的流量处理,与 ML 算法结合后,能够在雾 - 边缘 - 云连续体的任何所需位置执行智能监控和网络任务。
目前 eBPF 和 ML 的结合通常是在 Linux 内核级别收集流量数据,在用户平面分析数据并做出预测或决策,但这种解耦方式性能较低。
相关工作背景:
eBPF 是集成到 Linux 内核中的技术,能够在特权上下文安全地运行沙盒程序,主要用于安全、可观测性和网络等场景,通常与 Linux eXpress Data Path(XDP)结合实现灵活、高效和可移植的网络功能。
不同的工作提出使用 eBPF 程序作为由应用程序 / 控制级别运行的 ML 驱动框架的执行工具,但目前还没有使用 eBPF 能力在 Linux 内核中集成复杂 ML 模型的工作。
下一代网络(NGNs)的出现将要求通信基础设施在速度、灵活性、智能和延迟方面得到显著改善,这将使所有垂直领域的新用例得到进一步发展。[1]为了应对这种爆炸式增长,多个网络和流量管理解决方案正在出现,因为协调构成分散的Beyond-5G(B5G)架构的不同网络部分的复杂性将显着增加。[2].此外,由于需要对新硬件、软件和基础设施进行必要的投资,向新一代网络的过渡构成了重大挑战。
通过采用网络软件化方法,需要先进和新的技术来为NGN基础设施提供灵活性和智能。在这方面,最先进的技术是扩展的伯克利数据包过滤器(eBPF),它通过在Linux内核中安全执行代码,允许在通用硬件中高效处理流量[31鉴于非网络专用设备的能力,这一点尤为重要。
具体地说,在考虑雾-边缘-云连续体的场景中,借助机器学习(ML)技术,eBPF是NGN在基础设施的任何点执行智能网络和数据监控任务的支持者,这是管理预期的新服务和应用程序将产生的高吞吐量、低延迟流量的基本支柱。此外,该技术还有助于安全目的,因为它允许快速检查流量以实时检测攻击或入侵,这对于NGN来说也是至关重要的,因为未来基础设施中会出现新的攻击向量。众所周知,机器学习是向网络管理和编排提供智能决策的关键技术之一。[4].它使网络设备能够自动适应不断变化的网络条件,因为 ML驱动的机制可以检测异常、预测网络行为或预测故障和瓶颈[5]这样,这种主动性就可以用于自动执行网络管理任务,以实时优化网络,而无需人工干预。[6].
近年来,文献中探讨了 eBPF和 ML之间的协同作用【7,8】它们的融合使得能够以主动和智能的方式快速处理数据包,自动适应网络功能和服务应用程序的要求,从而全面提高网络性能、灵活性和可靠性。通常,它们以如下方式一起使用:eBPF负责在Linux的内核级别从流量流中收集数据,Linux的用户平面中的ML模型分析该信息并做出预测
然而,将流量处理和 ML处理解耦并不是最佳方法,因为在用户空间中执行计算任务与完整的内核实现相比,性能较低。其他实现选项,如数据面开发套件(DPDK)和AFXDP,also aim at improving the performance of data traffic processing【9,10】。AF_XDP是LinuxXDP的扩展,允许绕过 Linux 内核网