We use cookies to improve your experience with our site.

基于多核系统优化多维包分类

Optimizing Multi-Dimensional Packet Classification for Multi-Core Systems

  • 摘要: 包分类已经研究了二十年,它根据给定的规则集将数据包分为特定的流。随着软件定义网络概念的提出,包分类研究的热点之一就是将五元组模型扩展为多元组。一般来说,多个字段的数据包分类是一个复杂的问题。尽管现有的基于软件的五元组分类算法在实践中已经被证明是非常不错的,但是它们难以扩展到多元组的数据包分类中。同时,基于硬件的解决方案不仅灵活度低而且成本昂贵功耗较大。
    在本文中,我们提出了一种利用多核系统来优化的通用多维包分类方法。在我们的方法中,基于分解算法我们设计了新的数据结构来优化数据包的分类和更新。对于多字段规则,规则集根据字段的数量被分割成几个部分,每个部分独立匹配。这样,字段被并行处理,所有的部分结果最后被合并在一起。另外,为了获得更好的性能,我们提出了一种基于贪婪的CPU亲和算法。
    我们实现了一个原型,并评估其吞吐量和延迟。实验结果表明,与其他算法相比,我们的方法比其他分解算法的吞吐量高出40%,规则增量更新的时延低43%。此外,我们的方法平均节省39%的内存消耗,并具有良好的可扩展性。最后,我们给出了一个通用的模型,可以为任何类型的数据包分类定制。

     

    Abstract: Packet classification has been studied for decades; it classifies packets into specific flows based on a given rule set. As software-defined network was proposed, a recent trend of packet classification is to scale the five-tuple model to multi-tuple. In general, packet classification on multiple fields is a complex problem. Although most existing softwarebased algorithms have been proved extraordinary in practice, they are only suitable for the classic five-tuple model and difficult to be scaled up. Meanwhile, hardware-specific solutions are inflexible and expensive, and some of them are power consuming. In this paper, we propose a universal multi-dimensional packet classification approach for multi-core systems. In our approach, novel data structures and four decomposition-based algorithms are designed to optimize the classification and updating of rules. For multi-field rules, a rule set is cut into several parts according to the number of fields. Each part works independently. In this way, the fields are searched in parallel and all the partial results are merged together at last. To demonstrate the feasibility of our approach, we implement a prototype and evaluate its throughput and latency. Experimental results show that our approach achieves a 40% higher throughput than that of other decomposed-based algorithms and a 43% lower latency of rule incremental update than that of the other algorithms on average. Furthermore, our approach saves 39% memory consumption on average and has a good scalability.

     

/

返回文章
返回