论文部分内容阅读
软件定义网络的一个关键优势是基于各种数据包域的检查和匹配来执行特定的操作,从而对网络流量进行细化管理。但是,当前的网络转发设备将检查的字段限制在第2-4层报头,在使用更高层信息的流量处理时需要将数据包传递给控制器以进一步识别。这种方式虽然易于实现,但是控制器中的辅助应用程序需进行远程的数据包处理,这一过程引入了额外的处理延迟。因此,本课题提出了一种数据平面支持正则表达式引擎高效处理数据流量的SDN架构,利用从控制器下发的正则表达式规则集在数据平面本地检查数据包的有效载荷。但是,这里引入了另一个问题就是在正则表达式规则集合更新时,重新编译规则集合比较耗时,这将延迟数据平面的转发处理。为此我们又提出了增量构造DFA算法,与传统的子集构造算法相比较,该算法在编译速度上提升了 98%以上,解决了在数据平面编译规则集消耗时间的问题。论文的主要创新点和工作内容如下:1.国外大部分对SDN应用感知的研究,都是通过控制器去对数据流的应用层信息进行智能分析,然后将决策下发到数据平面做进一步地处理,这不但消耗了控制器的处理资源,而且还增加了数据流的处理时延。针对这一问题,我们提出了在数据平面结合正则表达式引擎的SDN应用感知架构,它可以实现对数据流应用层智能分析并作出快速决策。2.我们对传统的正则表达式匹配编译过程进行研究,得出由NFA到DFA的子集构造法是整个编译的时间瓶颈,它占据了 90%以上的编译时间。针对此,我们对子集构造的过程进行优化,提出了增量构造DFA算法,包括增量规则构造法和删除规则构造法,它通过保留中间状态、避免对已编译规则重复编译的方法,解决了规则集合更新变化过程中编译DFA消耗大量时间的问题。3.通过C++编程实现仿真增量更新规则数据平面应用层协议识别系统,我们总共写了 2500多行C++代码,通过独立的进程来模拟交换机,并调用pthread线程完成交换机内部的通信,之后结合网络排队模型对其进行理论分析。实验过程中,通过应用层协议识别引擎结合分类队列的调度模型对不同数据流量进行差异化处理,最后使指定流量得到加速转发,保障其服务质量。