| 摘要: |
| 随着通用多核技术的发展,多核处理器在网络核心设备能够提供较高的I/O吞吐能力,并支持更复杂的网络处理,为网络处理与转发带来了前所未有的灵活性和普适性.但是,在核心网络中,多核处理器的处理与转发性能仍然面临着巨大的挑战.首先,随着网络带宽的不断提升,多核处理器需要提供越来越高的处理能力.其次,随着网络业务复杂度的提高,在网络报文处理与转发中,应用对报文的处理开销越来越大,对设备的I/O裸转发能力提出了更高的要求.提出了一种硬件缓冲区管理机制Self-Described Buffer(SDB),具有硬件低开销、软件高性能等优点.基于SDB的机制,设计并实现了一个通用的网络处理开发环境NPDK.NPDK采用零中断、零拷贝方式,提供内核与用户驱动,适用于通用多核CPU系统.不但具有简单、灵活、易开发等特点,而且在内核态下支持用户对每个CPU核上进行异构报文处理编程和在用户态下支持独占式多线程编程与共享式多进程并行编程.测试结果表明,基于SDB的网络处理开发环境在10G速率报文I/O转发性能接近线速,特别是64字节小报文可达到7.49Gbps.目前,NPDK已经在click路由器、OpenFlow交换机和网络探针等方面得到应用. |
| 关键词: 网络处理开发套件 自描述缓冲区 零中断 零拷贝 用户驱动 |
| DOI: |
| 分类号: |
| 基金项目:国家高技术研究发展计划(863)(2015AA010201);国家自然科学基金(61202483,61202485) |
|
| Network Processing Development Kit Based on Self-Described Buffer |
|
TANG Lu, XU Dong-Lai, LÜ Gao-Feng, LI Tao, SUN Zhi-Gang
|
|
College of Computer, National University of Defense Technology, Changsha 410073, China
|
| Abstract: |
| Incremental performance gain, especially in terms of higher I/O bandwidth and more complex packet processing capability, has made general purpose and multicore processors a preferable option building network devices in core networks, which brings unprecedented flexibility and universality into forwarding plane. However, challenges still exist because of lagging processing and forwarding performance. Firstly, with network link rate continuing booming, the multicore processor needs to offer corresponding higher processing throughput. Secondly, the increasing complexity of network services and applications will introduce more packet processing overhead inside network devices in forwarding and processing processes, indirectly resulting in higher requirements on pure I/O capabilities. Self-Described Buffer (SDB) is a hardware-based buffer management mechanism proposed in this paper which features low overhead in hardware and high performance in software. Furthermore, NPDK, a general network processing development environment has been designed and built based on SDB. It adopts zero interrupt and zero copy technology, provides kernel space and user space drivers and can be applied for general purposes and multicore systems. NPDK is not only easy to implement, flexible to program, feasible to deploy, but it also supports per-CPU-based hierarchical packet processing programmability in the kernel space, as well as monopolistic multi-threaded and shared multi-process programming in the user space. Experimental results show that NPDK can reach near line rate forwarding under 10Gbps link rate. Specifically 7.49Gbps for 64 Bytes packets. Currently NPDK has already been deployed and applied in Click routers, OpenFlow switches and network probing applications. |
| Key words: network processing development kit (NPDK) self-described buffer zero interrupt zero copy user driver |