Software-defined Networking is an approach that decouples the software-based control plane from the hardware-based data plane proposed for enterprise networks; OpenFlow is the most famous flexible protocol that can manage network traffic between the control and the data plane. Software-Defined Networking (SDN) requires up to 18 fields of the packets header to be checked against a big many-fields ruleset to categorize packets into flows, the process of categorizing packets into flows is called packet classification. Network switches process all packets belonging to the same flow in a similar manner by applying the same actions defined in the corresponding rule. Packet classification facilitates supporting new services such as filtering, blocking unsafe sites traffic, routing packets based on the packet's header information, and giving priority to specific flows. High-performance algorithms for many-field packet classification had been gained much interest in the research communities. This paper presents a new method to implement the many-fields packet classification of SDN flow table using Rectangle Tree (R-Tree). In this method, source and destination IP addresses from each flow table entry have been converted to a two-dimensional point. The remainders of the rule's fields have been concatenated into a single field by taking the most important bits with rules' ID in order to be inserted into the R-tree, for each rule an effective small binary flag is used to indicate the field's size, type, and ranges. Subsequently, searching is performed on the rectangle tree to find the matched rules according to the highest priority. In the simulation using the class-bench databases, the results show that this method achieves very good performance, classification speed and reduces the number of memory accesses significantly.
翻译:软件定义网络是一种将基于软件的控制平面与基于硬件的数据平面解耦的方法,专为企业网络设计;OpenFlow是最著名的灵活协议,可管理控制平面与数据平面之间的网络流量。软件定义网络(SDN)需要对多达18个数据包头部字段与大规模多字段规则集进行匹配,以将数据包分类为流,该过程称为包分类。网络交换机通过应用对应规则中定义的相同操作,以相同方式处理属于同一流的所有数据包。包分类技术有助于支持过滤、阻断不安全站点流量、基于数据包头信息路由报文以及为特定流设置优先级等新服务。面向多字段包分类的高性能算法在研究界引起了广泛关注。本文提出了一种利用矩形树(R-Tree)实现SDN流表多字段包分类的新方法。该方法将每个流表项中的源IP地址与目的IP地址转换为二维点,通过提取规则字段中最重要的比特位并结合规则标识符,将剩余字段拼接为单一字段后插入R树,同时为每条规则使用有效的小型二进制标志位指示字段尺寸、类型和范围。随后在矩形树上执行搜索以根据最高优先级匹配规则。基于class-bench数据库的仿真结果表明,该方法在分类速度方面表现优异,并显著减少了内存访问次数。