OpenFlow switches are fundamental components of software defined networking, where the key operation is to look up flow tables to determine which flow an incoming packet belongs to. This needs to address the same multi-field rule-matching problem as legacy packet classification, but faces more serious scalability challenges. The demand of fast on-line updates makes most existing solutions unfit, while the rest still lacks the scalability to either large data sets or large number of fields to match for a rule. In this work, we propose TupleChain for fast OpenFlow table lookup with multifaceted scalability. We group rules based on their masks, each being maintained with a hash table, and explore the connections among rule groups to skip unnecessary hash probes for fast search. We show via theoretical analysis and extensive experiments that the proposed scheme not only has competitive computing complexity, but is also scalable and can achieve high performance in both search and update. It can process multiple millions of packets per second, while dealing with millions of on-line updates per second at the same time, and its lookup speed maintains at the same level no mater it handles a large flow table with 10 million rules or a flow table with every entry having as many as 100 match fields.
翻译:OpenFlow交换机是软件定义网络的基本组件,其核心操作是通过查找流表来确定输入数据包所属的数据流。这需要解决与传统数据包分类相同的多字段规则匹配问题,但面临着更为严峻的可扩展性挑战。快速在线更新的需求使得现有大多数解决方案不再适用,而其余方案仍缺乏对大规模数据集或单条规则大量匹配字段的可扩展能力。本文提出TupleChain方案,用于实现具备多维可扩展性的OpenFlow表快速查找。我们根据规则掩码对规则进行分组,每个分组通过哈希表维护,并通过探索规则组间的关联关系来跳过不必要的哈希探测以实现快速查找。理论分析与大量实验表明,所提方案不仅具有竞争力的计算复杂度,同时具备良好的可扩展性,能在查找和更新操作中均实现高性能。该系统每秒可处理数百万个数据包,同时能应对每秒数百万次的在线更新;无论是处理包含1000万条规则的大型流表,还是处理每条表项均包含多达100个匹配字段的流表,其查找速度均能保持在同一水平。