【技术实现步骤摘要】
一种OpenFlow大规模流表聚合与加速查找方法
[0001]本专利技术涉及一种基于动作集树的流表聚合方法,以及一种OpenFlow大规模流表聚合与加速查找方法。
技术介绍
[0002]软件定义网络(Software
‑
Defined Networking,SDN)作为一种创新网络架构,将逻辑控制功能从数据转发设备中解耦出来,构建逻辑上集中的SDN控制平面,进而向上层应用提供统一编程接口,从而大大提升网络的开放性、灵活性和可编程能力,成为迈向互联网未来最有前景的发展方向之一。SDN控制平面负责构建全局网络视图并制定流规则,进而通过以OpenFlow为代表的南向接口协议下发给数据平面的交换机,以指导网络数据包的转发行为。OpenFlow将各层网络协议首部的关键字段作为流表匹配字段,并引入通配符实现任意字段的组合,以灵活定义和管理不同粒度的网络流。由于TCAM存储器支持带通配符的三态数据查询,且具有并行查找整个数据集的能力,能在一个时钟周期内输出查找结果,因此OpenFlow交换机通常采用TCAM存储流表,以实
【技术保护点】
【技术特征摘要】
1.一种基于动作集树的OpenFlow流表聚合方法,该方法首先根据掩码将原始OpenFlow流表中的所有流表项划分至聚合流表内不同的元组中,然后在每个元组中不断选取匹配字段汉明距离为1的两条流表项进行合并,并将合并后的新流表项根据其掩码放置到对应的元组中继续聚合,直到无法聚合为止。在上述合并过程中,将所有流表项的动作集生成相应的动作集树,用于指导数据包的转发处理操作。2.根据权利要求1所述的一种基于动作集树的OpenFlow流表聚合方法,其特征在于,所述基于Trie树结构的动作集树,其设计如下:非叶子节点记录流表项合并时的比特位置信息,而叶子节点保存原始流表项的动作集和优先级,以用于数据包成功匹配聚合表项后确定对应的动作集。3.根据权利要求1和2所述的一种OpenFlow大规模流表加速查找方法,具体包括以下操作:a、OpenFlow分组转发操作每个到达OpenFlow交换机的数据包,通过查找流表匹配对应的流表项,进而根据其中的动作集进行转发;当一个数据包成功匹配SRAM子流表后,若其所属的流进入活跃状态,则需对该数据包所匹配表项进行转存操作。b、OpenFlow流表插入操作当OpenFlow交换机收到SDN控制器下发的带ADD命令的Flow_Mod消息时,需根据消息内容新建一条流表项,然后将其在OpenFlow子流表中进行聚合,并构建相应的动作集树;c、OpenFlow流表删除操作当OpenFlow交换机收到SDN控制器下发的带DELETE命令的Flow_Mod消息后,需删除对应的流表项;若待删除表项为聚合表项,则需对其进行拆分还原,再删除相应的流表项。4.根据权利要求3所述的OpenFlow大规模流表加速查找方法,其特征在于,所述OpenFlow分组转发操作,具体包括以下步骤:首先解析其首部字段,并提取其匹配字段,然后查找TCAM子流表;若查找成功,则根据匹配TCAM子表项中的索引值读取对应的DRAM子表项,进而查找其中的动作集(树),最后按照找到的动作集转发处理数据包,并更新DRAM子表项中的计数器与时间戳等内容字段;若TCAM查找失败,则进一步查找SRAM子流表;若查找成功,则同样根据对应的DRAM子表项进行数据包转发处理和内容字段更新。此时,若该数据包所属的流进入活跃状态,则将该流从SRAM子流表转存到TCAM子流表;若TCAM和SRAM子流表查找均失败,则意味着该数据包属于一条新流,于是将该数据包信息封装成packet
‑
in消息发送给控制器,以请求控制器下发对应的流规则。5.根据权利要求4所述的OpenFlow分组转发操作,其特征在于,所述OpenFlow流表项转存操作,其转存思想如下:首先获取...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。