分享自:

通过向量化数据包处理实现高速软件数据平面

期刊:IEEE Communications MagazineDOI:10.1109/MCOM.2018.1800069

本文档属于类型a,即报告了一项原创性研究。以下是针对该研究的学术报告:

作者及研究机构
本研究的主要作者包括David Barach、Leonardo Linguaglossa、Damjan Marion、Pierre Pfister、Salvatore Pontarelli和Dario Rossi。他们分别来自Cisco Systems和Telecom ParisTech等机构。该研究发表于2018年12月的《IEEE Communications Magazine》。

学术背景
本研究的主要科学领域是高速软件数据平面(high-speed software data plane)技术。随着网络传输速度和网络接口卡(NIC)能力的提升,传统的通用内核栈(general-purpose kernel stack)在处理多接口的高速数据包时显得过于缓慢。为了应对这一挑战,研究人员提出了内核旁路(kernel bypass)技术,将硬件抽象直接引入用户空间(user-space),从而实现高速数据包处理。
本研究的目标是介绍一种名为向量数据包处理器(Vector Packet Processor, VPP)的框架,并评估其设计选择(如批量数据包处理)对性能的影响。VPP是一种在用户空间中实现高速软件数据平面功能的框架,其设计灵感来源于Click模块化路由器,但通过批量处理等技术显著提升了处理吞吐量。

研究流程
本研究包括以下几个主要步骤:
1. VPP框架介绍:VPP是一种用户空间高速数据包处理框架,旨在利用通用CPU架构的优势。它运行在DPDK、Netmap等内核旁路技术之上,支持完整的网络栈功能,包括第2层和第3层功能。VPP的主要特点是其“运行至完成”(run-to-completion)模型和向量化处理(vectorized processing)机制。
2. 向量化处理机制:与传统的逐包处理不同,VPP采用批量处理方式,即每个节点在处理完一个批次(称为向量)中的所有数据包后,再移动到下一个节点。这种设计显著减少了指令缓存(instruction cache)和数据缓存(data cache)的未命中率,并提高了处理吞吐量。
3. 实验设置:实验硬件包括一台配备双Intel Xeon E5-2690处理器的服务器,每个处理器有12个物理核心,主频为2.60 GHz。服务器配备了两块Intel X520双端口10 Gb/s网卡。实验使用DPDK生成合成流量,并通过VPP处理这些流量,测量其处理速率。
4. 性能评估:实验评估了VPP在不同向量大小(vector size)下的性能表现,包括包处理速率(packet processing rate)、每包指令数(instructions per packet)、每时钟周期指令数(instructions per clock cycle, IPC)以及L1指令缓存未命中率(L1 instruction-cache miss rate)。此外,还评估了多循环(multi-loop)和数据预取(data prefetching)技术对性能的影响。

主要结果
1. 向量大小对性能的影响:实验结果表明,随着向量大小的增加,包处理速率显著提升,直到达到饱和点(约为256个包)。超过此点后,进一步增加向量大小反而会带来轻微的性能下降。
2. 多循环和数据预取的影响:启用多循环和数据预取技术后,VPP的性能显著提升。例如,在IPv4查找(ip4-lookup)和IPv6查找(ip6-lookup)任务中,启用四重循环(quad-loop)和预取技术后,每包处理成本分别减少了25%和10%。
3. 缓存未命中率:随着向量大小的增加,L1指令缓存未命中率显著降低,从而减少了CPU流水线的停顿时间,进一步提升了处理性能。

结论
本研究通过实验验证了VPP框架在高性能软件数据包处理中的显著优势。其向量化处理机制通过批量处理减少了框架开销,并通过多循环和数据预取技术进一步优化了代码执行效率。VPP的设计不仅适用于数据中心和网络功能虚拟化(NFV)环境,还为未来高速网络技术的发展提供了重要参考。

研究亮点
1. 向量化处理机制:VPP通过系统性批量处理显著提升了数据包处理吞吐量,这是其设计的主要创新点。
2. 多循环和数据预取技术:这些技术通过优化指令执行和数据访问,进一步提高了处理性能。
3. 实验验证:通过详尽的实验,本研究验证了VPP在不同网络操作场景下的性能表现,为其实际应用提供了有力支持。

其他有价值的内容
本研究还提到了VPP在多个应用领域的使用情况,包括数据中心虚拟交换机、容器间网络(inter-container networking)以及4G/5G网络中的虚拟网络功能(VNF)。此外,VPP作为开源软件,已在Fast Data I/O(FD.io)项目中发布,进一步推动了其在实际应用中的普及。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com