论文部分内容阅读
近年来,随着移动设备数量和应用类型的急剧膨胀,传统互联网的结构和功能日趋复杂,网络设备在不断加入的复杂协议之后变得臃肿不堪。于是软件定义网络(SDN)应运而生。SDN通过把原有网络体系解耦为控制平面和数据平面,减少了网络设备的诸多复杂功能,革命性地改变了现有网络架构。作为SDN的核心技术,OpenFlow定义了一系列SDN网络中控制器与交换机的通信标准以及OpenFlow交换机的组织方式。它将网络的处理层次扁平化,但是这种不断追求更细粒度的数据包处理方式又给OpenFlow交换机具体的设计带来了很大挑战。 首先,OpenFlow所定义的流表项中包含的匹配字段不断增加,这种不断扩充的数据平面的抽象,将使得硬件成本急剧增加。其次,流表所占空间将会随着网络规模和控制粒度的需求而不断增大,流表所需的存储空间会比路由表大很多数量级,这将远超过甚至是下一代SDN交换机的能力。最后,OpenFlow中多级流表和流水线结构的具体设计不明确,但交换机中流表的实际硬件资源开销是与流表的具体设计相关的。这需要明确并一般化多级流表和流水线的具体设计,从而达到降低交换机设计的复杂度以及优化存储空间的目的。 本研究主要从两个角度(基于流表项匹配字段和流表项动作字段)分别对OpenFlow流表存储空间进行优化。通过分析流表项结构,提出将流表项匹配字段拆分为常见匹配字段和不常见匹配字段,即拆分流表为多个结构相对简单的子流表的方法。在此理论基础上,建立问题模型,提出了一种基于dynamic count filter的分级流水线算法HPDCF(Hierarchical Pipelinebased Dynamic Count Filter)。实验结果表明,HPDCF算法可有效降低流表存储空间,并且可根据不同网络的特征动态更新子表结构。另外,基于流表项动作字段对流表存储空间进行的优化,主要针对流表最基本的转发功能,以网络出口链路负载均衡的场景为例,对交换机流表存储空间进行优化。实验实现采用Open vSwitch作为OpenFlow交换机,通过重新组织流表项中动作字段的存储方式,可以极大地节省流表所占用的存储空间,并保证不影响流表查找的速度。