一种基于普通交换芯片的OpenFlow多级流表的实现方法

文档序号:8499885阅读:671来源:国知局
一种基于普通交换芯片的OpenFlow多级流表的实现方法【
技术领域
】[0001]本发明涉及数据通信领域,特别涉及一种基于普通交换芯片的OpenFlow多级流表的实现方法。【
背景技术
】[0002]随着数据通信设备的复杂程度不断提高,云计算及其业务的发展,服务器的应用需求产生了爆炸性的增长,随着社交网络,移动互联网,物联网等业务领域的快速发展,大数据正日益成为当前的焦点,其面向的海量数据处理也对当今的网络提出了更高的要求。传统的网络架构已经不能够满足今天的企业,运营商和终端用户的需求。【
发明内容】[0003]鉴于上述技术问题,本发明的目的在于提供一种基于普通交换芯片的OpenFlow多级流表的实现方法,以满足现有网络对数据通信处理的要求。[0004]为了达到上述目的,本发明采用如下的技术方案:[0005]一种基于普通交换芯片的OpenFlow多级流表的实现方法,该方法由网络设备维护一个或者若干个多级流表(FlowTable),并且数据流只按照这些流表进行转发,所述流表由一些关键字和执行动作组成的灵活规则,并且每个关键字字段都是可以通配的,流表本身的生成、维护、下发完全由外置的控制器(Controller)来管理。[0006]优选的,所述多级流表(FlowTable)的下发可以是主动的,也可以是被动的,在主动模式下,控制器(Controller)将自己收集的流表信息主动下发给网络设备,随后网络设备可以直接根据流表进行转发;在被动模式下,网络设备收到一个报文没有匹配的流表(FlowTable)记录时,将该报文转发给控制器(Controller),由控制器(Controller)进行决策该如何转发,并下发相应的流表。[0007]优选的,所述多级流表(FlowTable)里设有pipeline管道,基于该pipeline管道形成报文处理流水线,整个处理流程在报文入方向有32个匹配阶段(MatchStage),同时在报文出方向有32个匹配阶段(MatchStage)。[0008]优选的,所述pipeline管道基于以下三个步骤来实现:[0009]a)找到对应流表中最高优先级的匹配项;[0010]b)将匹配项中的指令(instruct1ns)应用到packet、match、act1n上,并更新对应流表中的动作信息;[0011]C)将报文中的匹配项和动作集送往多级流表中的下一个表(table)。如果没有在多级流表的所有的表(table)中匹配,那么有多种默认行为可以实现,如丢包、继续下一个表、发往controller。[0012]优选的,所述流表由流量实体(FlowEntry)组成,一个流表中包含多个流表项。[0013]优选的,所述流表流表项包括匹配字段(MatchFields)、计数器和指令集三个部分,所述匹配字段(MatchFields)是报文匹配的输入关键字,计数器是管理所需,指令集是决定报文如何转发,最基本的转发行为包括转发给某个端口、封装改写报文后转发以及丢弃。[0014]优选的,所述流表项通过匹配字段和优先级决定,在一个流表中匹配字段和优先级共同确定唯一的流表项,其中所有字段通配和优先级等于O的流表项为table-miss流表项,所述table-miss表项指定在流表中如何处理与其他流表项未匹配的数据包。[0015]优选的,在进行流表项匹配时,优先级最高的流表项必须被选择,此时与选择流表项相关的计数器也会被更新,选定流表项的指令集也被执行。[0016]优选的,对于table-miss表项,默认情况下,在流表中不存在table-miss表项,控制器可以在任何时候添加或删除它,而且它可能会超时失效,able-miss表项可以匹配流表中其他表项中不能匹配的数据,当数据包与table-miss表项匹配时,table-miss表项指令就会执行,如果该table-miss表项直接将数据包通过CONTROLLER端口发送到控制器,那么报文中的信息必须与一个table-miss表项匹配;如果该table-miss表项不存在,默认情况下,流表项无法将数据包丢弃。[0017]优选的,所述多级流表(FlowTable)按顺序编号,从O开始,据此构成的流水线处理总是从第一流表开始,数据包第一个与流表O的流表项匹配,其它流表根据第一个表的匹配结果来调用。[0018]优选的,所述流表进行处理时,将数据包与流表中的流表项进行匹配,从而选择流表项,如果匹配到了流表项,那么包括在该流表项的指令集被执行时,这些指令可能明确指导数据包传递到另一个流表,在那里同样的处理被重复执行。[0019]优选的,数据包与流表中的流表项进行匹配时,从数据包中提取相应的数据包匹配字段,利用该数据包匹配字段基于流水线处理进行表查找,该数据包匹配字段依赖于数据包类型,该类型包括各种数据包的报头字段;数据包匹配字段中的值用于查找匹配的流表项,如果流表项字段具有值的ANY(表示任意字段),则可以匹配报头中的所有可能的值;如果相应的交换机支持任意的位掩码对特定的匹配字段,这些掩码可以更精确地进行匹配。[0020]优选的,除了通过数据包报头字段进行匹配,也可以通过入口端口和元数据字段进行匹配。[0021]优选的,流表项只能指导数据包到大于自己表号的流表,如果匹配的流表项并没有指导数据包到另一个流表,流水线处理将停止在该表中,当流水线处理停止,数据包被与之相关的行动集处理并通常被转发;如果数据包在流表中没有匹配到流表项,这是一个table-miss的行为,table-miss行为依赖于表的配置。[0022]优选的,所述流表项可以通过控制器的请求或交换机流超时机制在流表中删除。[0023]本发明提供的OpenFlow的多级流表实现方案可以集中控制多厂商的环境,通过自动化减少复杂性,更高的创新,提高网络的可靠性和安全性,更细粒度的网络控制,以及更好的用户体验。[0024]本方案基于远程控制端Controller和OpenFlow多级流表实现,可以满足现有网络的需求,对于网络,逻辑上集中的控制层面能够支持网络资源的灵活调度,开放的接口能够支持网络能力的按需调度,标准的统一能够实现网络的虚拟透明。其能够有力的为云计算,大数据,日益增长的移动互联需求提供更高效,安全,方便的网络支持。【附图说明】[0025]以下结合附图和【具体实施方式】来进一步说明本发明。[0026]图1为本发明方法中OpenFlow概念图。[0027]图2为本发明方法中OpenFlow流表结构。[0028]图3为本发明方法中OpenFlow流水线流表结构。[0029]图4为本发明方法中OpenFlow多级流表匹配流程。[0030]图5为本发明方法中OpenFlow多级流表处理流程。【具体实施方式】[0031]为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。[0032]参见图1,本发明提供的基于普通交换芯片实现的OpenFl当前第1页1 2 3 4 
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1