完整内容请参考浅谈VPP与DPDK技术以及产业界应用实例 - 星融元Asterfusion
VPP(Vector packet processing)是 Linux 基金会下FD.io项目的一部分。VPP 的目标是提供一个快速的L2-L4 用户态网络堆栈,该堆栈可在x86、Arm 和 Power 等常见架构上运行。VPP 从网络 IO 层读取最大可用数据包矢量,然后通过数据包处理图(Packet Processing graph)处理这个矢量。VPP集成了DPDK(Data Plane Development Kit)项目,通过它直接访问硬件网卡资源。
什么是矢量包处理?
与矢量包处理相对的是传统的“标量(scalar)”处理。在标量处理模式下,系统一次仅处理一个数据包,完成整个包处理流程后再处理下一个包。在这种模式下,每个数据包都需要独立分配计算资源、缓存管理、并经历上下文切换。当网络I/O速度很高时,这些额外的开销与处理单个包的时间相近,导致效率低下。

矢量处理通过引入以下改进克服了标量处理的不足:
- 批量处理多个数据包:VPP通过将一组数据包(典型为

最低0.47元/天 解锁文章
2465

被折叠的 条评论
为什么被折叠?



