一种基于流表的处理方法及系统的利记博彩app

文档序号:7813332阅读:354来源:国知局
一种基于流表的处理方法及系统的利记博彩app【专利摘要】本发明提供一种基于流表的处理方法及系统,通过建立包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段及掩码;并且所述匹配字段与预设报文数据段相关联在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段;将当前报文数据段与所述预设报文数据段相匹配;在所述匹配成功时,调用关联的预设指令集处理报文,提供了协议无关匹配(PIM,Protocol?independent?Match)的方式,即无需知道新业务的协议类型仅从预设的匹配字段即可直接进行报文处理,避免现有的因无匹配的业务支持的流表项则难以部署新业务的问题。【专利说明】一种基于流表的处理方法及系统【
技术领域
】[0001]本发明涉及网络【
技术领域
】,特别是涉及一种基于流表的处理方法及系统。【
背景技术
】[0002]当前的OpenFlowl.χ流表的协议强相关性使得数据转发芯片必须感知每种报文的协议和格式、并知道所有的特定操作。这不仅会导致数据转发芯片的复杂度上升、性能的下降、成本的提升,更重要的是,为了支持各种新业务和新协议,OpenFlowl.χ协议以及所有的数据转发芯片都必须不断地持续升级、完善,且无休无止。[0003]举例来说,虽然OpenFlowl.3支持的匹配(Match)字段超过四十个,但是依然支持有限的服务。如果需要部署新业务依旧需要等待,等待新的版本并且还需要设备升级来支持,才能部署新业务,非常不便。【
发明内容】[0004]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于流表的处理方法及系统,解决上述现有技术中流表匹配方式缺陷导致服务支持有限的问题。[0005]为实现上述目标及其他相关目标,本发明提供一种基于流表的处理方法,包括:建立包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段;并且所述匹配字段与预设报文数据段相关联在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段;所述匹配字段还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据,将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配;在所述匹配成功时,调用关联的预设指令集处理报文。[0006]可选的,所述基于流表的处理方法包括:建立关联列表,其中,所述关联列表包含:预定应用、与所述预定应用相关的所述匹配字段、以及与预定应用相关的控制指令之间的关联关系;根据预定应用而生成控制指令,以控制执行:使用包含有与所述预定应用相关匹配字段的流表项来处理报文。[0007]可选的,所述匹配字段的格式定义为:H扁移量,长度值,掩码位};所述预设偏移量的数据段长度为16bits,所述预设长度的数据段长度为8bits,所述掩码位长度为255bits。[0008]为实现上述目标及其他相关目标,本发明提供一种基于流表的处理系统,包括:交换设备,建立有包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段;并且所述匹配字段与预设报文数据段相关联;在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段;所述匹配字段还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据,将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配;在所述匹配成功时,调用关联的预设指令集处理报文。[0009]可选的,所述基于流表的处理系统包括:连接所述交换设备的控制器,其建立有关联列表,其中,所述关联列表包含:预定应用、与所述预定应用相关的所述匹配字段、以及与预定应用相关的控制指令之间的关联关系;所述控制器用于根据预定应用而生成控制指令,以控制所述交换设备执行:使用包含有与所述预定应用相关匹配字段的流表项来处理报文。[0010]可选的,所述匹配字段的格式定义为:H扁移量,长度值,掩码位};所述预设偏移量的数据段长度为16bits,所述预设长度的数据段长度为8bits,所述掩码位长度为255bits。[0011]如上所述,本发明提供一种基于流表的处理方法及系统,通过建立包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段;并且所述匹配字段与预设报文数据段相关联在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段;所述匹配字段还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据,将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配;在所述匹配成功时,调用关联的预设指令集处理报文,提供了协议无关匹配(PIM,ProtocolindependentMatch)的方式,即无需知道新业务的协议类型仅从预设的匹配字段即可直接进行报文处理,避免现有的因无匹配的业务支持的流表项则难以部署新业务的问题。【专利附图】【附图说明】[0012]图1显示为本发明一实施例中的基于流表的处理方法的流程示意图。[0013]图2显不为本发明一实施例中的基于流表的处理系统的结构不意图。[0014]元件标号说明[0015]I基于流表的处理系统[0016]11交换设备[0017]12控制器[0018]SI?S2方法步骤【具体实施方式】[0019]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。[0020]如图1所示,本发明提供一种基于流表的处理方法,可应用于如软件定义网络(SoftwareDefinedNetwork,SDN),是一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制;SDN网络由OpenFlow交换机、FlowVisor和Controller三部分组成。OpenFlow交换机进行数据层的转发;FlowVisor对网络进行虚拟化!Controller对网络进行集中控制,实现控制层的功能;OpenFlow交换机是整个OpenFlow网络的核心部件,主要管理数据层的转发。OpenFlow交换机接收到数据包后,首先在本地的流表上查找转发目标端口,如果没有匹配,则把数据包转发给Controller,由控制层决定转发端口。OpenFlow协议用来描述控制器和交换机之间交互所用信息的标准,以及控制器和交换机的接口标准。协议的核心部分是用于OpenFlow协议信息结构的集合。[0021]OpenFlow采用流表来进行处理,一个流表中包含多个流表项;每个流表项包含:[0022]I)匹配字段:对数据包匹配。包括入口端口和数据包报头,以及由前一个表指定的可选的元数据。[0023]2)优先级:流表项的匹配次序[0024]3)计数器:更新匹配数据包的计数[0025]4)指令:修改行动集或流水线处理;[0026]5)其他;皆为现有不一一列举;[0027]本发明是可应用于SDN网络,并对上述现有的流表功能加以改进来提升效率,可在流表项中新增包括预设偏移量及预设长度数据段的匹配字段或者替代原有的匹配字段,本发明的方法包括:[0028]步骤S1:建立包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段;并且,所述匹配字段与预设报文数据段相关联。[0029]在本实施例中,所述匹配字段的格式可例如定义为:H扁移量,长度值,掩码位};本发明统计目前的各种报文结构,从而优选的,将所述预设偏移量长度例如为16bits,也就是说,提供了最大2的16次方个位数的偏移可调,所述预设长度的数据段长度例如8bits,即提供了最大取2的8次方位的数据;所述匹配字段的缺省值例如可以是{0Byte,6Byte}等(后文中Byte用B表示),当然上述数值皆为举例,本领域技术人员应当可以加以变化。[0030]在本实施例中,所述预设报文数据段即例如为报文中的协议版本号、VlanTag、TTL、IP地址等,本发明的匹配字段不关注由协议所定义的报文数据结构,只是参考现有协议的报文结构进行假定,例如匹配字段为{12B,2B}在报文所取的值是反映IPv4报文的数据值,再例如假定在{22B,1B}的值为TTL值,根据上述假定建立不同匹配字段与预设报文数据段的关联关系,并且在现有的流表中,所述各预设报文数据段也是需要有对应的指令集(OpenFlowl.χ协议中的Act1n或Instruct1n)作处理的,例如作转发处理前需要TTL值减1,并在TTL减I后为O时丢弃的指令,因此,本发明可据以建立“匹配字段-预设报文数据段-预设指令集”之间的关联关系。[0031]理想的是所取的预设报文数据段都是精确的,但由于存在协议格式的差异会有一定的误差,为了能使整个报文处理过程效率更高而减少Table-miss流表项的执行,本发明在所述流表项还增加了掩码,所述掩码是可以包含在所述匹配字段内或者是作为独立字段存在于流表项的;所述掩码用于与上所述当前报文数据段以获取所需位数的数据,例如掩码为“101”,其中各位可以是Byte,亦可为bit;则与上当前报文数据段后表示只取两边“I”对应的值,而中间O处的值皆为0,由于掩码的使用屈于现有,因此不再重复赘述;而利用掩码在本发明里,可以更加精准地控制所需位数,例如IPv4和IPv6报文存在结构差异,能在IPv4中取出所需数据段的匹配字段未必适用于IPv6,则可根据现有协议预设多种掩码遍历地试用来尝试是否适配,即可效率更高、更准确地处理报文。[0032]步骤S2:在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段。[0033]在本实施例中,不考虑报文的协议类型,而是通过前述预设的匹配字段直接至报文中获取数据,例如{22B,1B}在报文中取当前报文数据段,即偏移22Byte,取IByte的数据。[0034]步骤S3:所述匹配字段还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据,将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配。[0035]在本实施例中,即例如将匹配字段{12B,2B}在报文中取当前报文数据段,进而通过与预设掩码结合以取出精准的位数,同假定在{12B,2B}的值为预设报文数据段进行比较,预设报文数据段的值为“0x0800”表示是IPv4的报文,而所取的当前报文数据段若是相同值,则说明匹配上了;若所有流表项都匹配不上,则可如OpenFlowl.3协议中定义的,按table-miss流表项执行动作。[0036]步骤S4:在所述匹配成功时,调用关联的预设指令集处理报文。[0037]在本实施例中,在上述匹配成功后,即可调用相关联的预设指令集处理报文,例如修改目的IP地址、TTL减I后转发等等。[0038]并且,上述步骤处理是可以在交换设备例如Openflow交换机执行的;更进一步的,为了控制交换机可以根据特定应用程序需求(例如新的业务部署的需求)来执行对应流表项处理,则所述方法还可包括:[0039]步骤A:建立关联列表,其中,所述关联列表包含:预定应用、与所述预定应用相关的所述匹配字段、以及与预定应用相关的控制指令之间的关联关系;[0040]步骤B:根据预定应用而生成控制指令,以控制执行:使用包含有与所述预定应用相关匹配字段的流表项来处理报文。[0041]所述步骤A及B是可以在控制交换设备的控制器中执行的,即所述控制器可根据应用建立无关协议的所述关联列表,在有应用需求时,可调用对应的控制指令集来控制交换设备使用匹配字段相对应的流表项进行报文处理,从而实现应用需求;从而,在交换设备端无需了解协议类型,无需了解业务是新的还是已有的,只需要受控调用对应流表项进行处理即可,这样,即使需要做新业务部署,亦无需等待Openflowl.χ的匹配字段类型扩充来支持,提升了效率。[0042]另外,通过调整包含匹配字段的流表项的先后顺序亦可提高准确性,例如先匹配报文的IP协议类型,待IP协议类型确定后则报文的结构基本是确定了的,那后续的匹配就不太会出现问题。[0043]再者,为了进一步再提升匹配的准确性,优选的,所述匹配可以是:将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配,如此可以减少对所述预设报文数据段预设时的准确性的要求。[0044]在一实施例中,所述预设偏移量的数据段长度为16bits,所述预设长度的数据段长度为8bits,即可取到255位的数据,因此,对应的所述掩码长度为255bits。[0045]如图2所示,本发明提供一种基于流表的处理系统1,其技术原理同上述方法大致相同,因此下文不再对重复的技术细节进行赘述;所述处理系统I包括:交换设备11,建立有包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段;并且所述匹配字段与预设报文数据段相关联;在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段;所述匹配字段还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据,将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配;在所述匹配成功时,调用关联的预设指令集处理报文;所述系统I还可以包括:连接所述交换设备的控制器12,其建立有关联列表,其中,所述关联列表包含:预定应用、与所述预定应用相关的所述匹配字段、以及与预定应用相关的控制指令之间的关联关系;所述控制器用于根据预定应用而生成控制指令,以控制所述交换设备执行:使用包含有与所述预定应用相关匹配字段的流表项来处理报文。[0046]需说明的是,在本实施例中,所述处理系统I可以是在SDN网络内,而所述控制器可例如为Openflow技术原理的控制设备或者Openflow控制器;而所述交换设备则例如为Openflow交换机;利用本发明的协议无关性,平台无关性,从而改进了SDN的网络处理方式,经控制器11或者更上位的应用层通过控制器11发来对应匹配字段的指令,所述交换设备12即可根据匹配字段进行处理,即使是需新部署的在原有流表项中未支持的业务,亦可通过所述匹配字段进行模糊式的处理;通过本发明的方式,使得交换设备12、控制器11和上位应用程序各自的独立和商用化成为可能,不再需要进行整体系统配套。[0047]可选的,所述匹配字段的格式定义为:{偏移量,长度值};所述预设偏移量的数据段长度为16bits,所述预设长度的数据段长度为8bits。[0048]可选的,所述流表项还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据。[0049]可选的,所述匹配包括:将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配。[0050]可选的,所述预设偏移量的数据段长度为16bits,所述预设长度的数据段长度为8bits,所述掩码长度为255bits。[0051]综上所述,本发明提供一种基于流表的处理方法及系统,通过建立包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段;并且所述匹配字段与预设报文数据段相关联在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段;所述匹配字段还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据,将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配;在所述匹配成功时,调用关联的预设指令集处理报文,提供了协议无关匹配(PIM,ProtocolindependentMatch)的方式,即无需知道新业务的协议类型仅从预设的匹配字段即可直接进行报文处理,避免现有的因无匹配的业务支持的流表项则难以部署新业务的问题。[0052]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所屈【
技术领域
】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。【权利要求】1.一种基于流表的处理方法,其特征在于,包括:建立包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段;并且,所述匹配字段与预设报文数据段相关联;在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段;所述匹配字段还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据,将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配;在所述匹配成功时,调用关联的预设指令集处理报文。2.根据权利要求1所述的基于流表的处理方法,其特征在于,包括:建立关联列表,其中,所述关联列表包含:预定应用、与所述预定应用相关的所述匹配字段、以及与预定应用相关的控制指令之间的关联关系;根据预定应用而生成控制指令,以控制执行:使用包含有与所述预定应用相关匹配字段的流表项来处理报文。3.根据权利要求1所述的基于流表的处理方法,其特征在于,所述匹配字段的格式定义为:{偏移量,长度值,掩码位};所述预设偏移量的数据段长度为16bits,所述预设长度的数据段长度为8bits,所述掩码位长度为255bits。4.一种基于流表的处理系统,其特征在于,包括:交换设备,建立有包含匹配字段及对应预设指令集的流表项,其中,所述匹配字段包括:用于存储预设偏移量及预设长度的数据段;并且所述匹配字段与预设报文数据段相关联;在接收到报文时,通过流表项的匹配字段在报文中对应预设偏移量的位置获取对应预设长度的当前报文数据段;所述匹配字段还包括掩码,所述掩码用于与上所述当前报文数据段以获取所需位数的数据,将当前报文数据段与所述预设报文数据段分别与上所述掩码后进行匹配;在所述匹配成功时,调用关联的预设指令集处理报文。5.根据权利要求4述的基于流表的处理系统,其特征在于,包括:连接所述交换设备的控制器,其建立有关联列表,其中,所述关联列表包含:预定应用、与所述预定应用相关的所述匹配字段、以及与预定应用相关的控制指令之间的关联关系;所述控制器用于根据预定应用而生成控制指令,以控制所述交换设备执行:使用包含有与所述预定应用相关匹配字段的流表项来处理报文。6.根据权利要求4述的基于流表的处理系统,其特征在于,所述匹配字段的格式定义为:{偏移量,长度值,掩码位};所述预设偏移量的数据段长度为16bits,所述预设长度的数据段长度为8bits,所述掩码位长度为255bits。【文档编号】H04L12/741GK104168203SQ201410446809【公开日】2014年11月26日申请日期:2014年9月3日优先权日:2014年9月3日【发明者】翟跃申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1