The demands of programmability have become more and more exigent as novel network services appear, such as E-commerce, social softwares, and online videos. Commodity multi-core CPUs have been widely applied in network packet processing to get high programmability and reduce the time-to-market. However,there is a great gap between the packet processing performance of commodity multi-core and that of the traditional packet processing hardware, e.g., NP(Network Process). Recently, optimization of the packet processing performance of commodity multi-cores has become a hot topic in industry and academia. In this paper, based on a detailed analysis of the packet processing procedure, firstly we identify two dominating overheads, namely the virtual-to-physical address translation and the packet buffer management. Secondly, we make a comprehensive survey on the current optimization methods. Thirdly, based on the survey, the heterogeneous architecture of the commodity multi-core + FPGA is proposed as a promising way to improve the packet processing performance.Fourthly, a novel Self-Described Buffer(SDB) management technology is introduced to eliminate the overheads of the allocation and deallocation of the packet buffers offloaded to FPGA. Then, an evaluation testbed, named PIOT(Packet I/O Testbed), is designed and implemented to evaluate the packet forwarding performance. I/O capacity of different commodity multi-core CPUs and the performance of optimization methods are assessed and compared based on PIOT. At last, the future work of packet processing optimization on multi-core CPUs is discussed.
基于OpenFlow的SDN(Software Defined Networking)技术在数据中心中得到广泛研究和应用,如何缓解集中的控制平面成为网络性能的瓶颈是其中的研究热点.OpenFlow规范提出,当数据平面有缓存能力时,未命中的报文仅需发送少量摘要信息至控制器触发规则下发,从而减少控制平面与数据平面的通信负载.然而,现有的缓存模型采用报文粒度的缓存方式,使得同一条流的多个未命中报文会被送至控制器造成额外的通信负载,而且交换机处理报文的顺序会导致流内报文乱序,从而降低通信的性能.针对上述问题,该文提出了一种支持流内报文保序的OpenFlow交换机流缓存管理模型.通过基于流粒度的未命中报文缓存方式,进一步减少控制平面与数据平面的通信开销.通过设计流动作预处理机制,实现同一条流内报文传输保序.该文分别基于软件交换机OFSoftSwitch与硬件网络实验平台NetMagic对该流缓存管理模型进行了原型系统验证.