一种数据处理方法和装置与流程

文档序号:13335470阅读:135来源:国知局
本发明涉及通信
技术领域
:,特别涉及一种数据处理方法和装置。
背景技术
::软件定义网络(softwaredefinednetwork,简称sdn)的核心为将网络设备的控制平面与数据平面分离,从而实现对网络设备的集中灵活控制。其中,控制平面用于提供流表项,数据平面用于根据由各流表项生成的流表处理数据。在数据平面根据流表处理数据之前,会先确定流表是否正在更新。只有在流表没有更新时,才在流表中查找与数据包匹配的流表项,进而按照匹配的流表项对应的动作指令处理数据包。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:在流表的更新过程中,会暂停在流表中查找与数据包匹配的流表项,这会导致对数据包的处理延迟,影响网络性能。技术实现要素:为了解决现有技术流表更新会造成数据包处理延迟的问题,本发明实施例提供了一种数据处理方法和装置。所述技术方案如下:第一方面,本发明实施例提供了一种数据处理方法,所述方法包括:获取数据包的头部字段的信息;采用所述信息在精配流表中查找与所述数据包相匹配的精配表项;当查找到与所述数据包相匹配的精配表项时,判断所述精配表项对应的通配表项的更新时间是否在所述精配表项的建立时间之前,所述精配表项中的精确流为所述精配表项对应的通配表项中的规则的子集;当所述精配表项对应的通配表项的更新时间在所述精配表项的建立时间之前时,按照所述精配表项对应的动作指令处理所述数据包;当所述精配表项对应的通配表项的更新时间不在所述精配表项的建立时间之前时,删除所述精配表项。在本发明中,精配表项包括精确流、时间标志和通配表项的指向信息。精确流可以针对数据包的头部的所有字段,即用于与数据包的头部的所有字段的值进行匹配,当精确流的值与数据包的头部的所有字段的值相同时,精确流所在的精配表项即为与数据包相匹配的精配表项。同时由于精确流可以针对数据包的头部的所有字段,因此找到的与数据包匹配的精配表项是唯一的,只要找到即可停止查找过程,消耗的时间较短,并且准确率高。通过直接采用数据包的头部字段的信息在精配流表中查找与数据包相匹配的精配表项,并在查找到与数据包相匹配的精配表项时,判断精配表项对应的通配表项的更新是否在精配表项的建立时间之前,在精配表项对应的通配表项的更新时间在精配表项的建立时间之前的情况下,才按照精配表项对应的动作指令处理数据包,由于在按照精配表项对应的动作指令处理数据包之前会确定精配表项对应的通配表项的更新时间在精配表项的建立时间之前,因此数据包处理按照的精配表项一定是有效的,不需要为了避免使用由于通配表项更新而失效的精配表项,在流表的更新过程中暂停查找与数据包匹配的流表项,流表的更新和流表项的查找可以同时进行,不会造成数据包的处理延迟,提高了数据处理的速度,提升了网络性能。在本发明一种可能的实现方式中,所述判断所述精配表项对应的通配表项的更新时间是否在所述精配表项的建立时间之前,包括:在所述精配表项中获取所述精配表项对应的通配表项的指向信息;通过所述指向信息确定所述精配表项对应的通配表项;在所述精配表项对应的通配表项中获取所述精配表项对应的通配表项的更新时间。在本发明中,精配表项包括精确流、时间标志和通配表项的指向信息,通配表项包括规则、动作指令和时间标志。如果精确流与规则中对应的值相同,即精确流与规则相匹配,则精确流所在的精配流表与规则所在的通配流表对应。在精配表项中得到指向信息,利用该指向信息即可确定对应的通配表项,再在通配表项中得到更新时间即可。同时精配表项的建立时间可以直接在精配表项中得到。可选地,所述指向信息为指向所述精配表项对应的通配表项的指针,或者所述精配表项对应的通配表项的标识。指向信息为指针,可以通过指针直接访问到精配表项对应的通配表项;指向信息为标识,也可以利用标识在通配表项中搜索到对应的通配表项。可选地,所述方法还包括:接收通配表项更新指令,所述通配表项更新指令包括待更新的规则;按照所述通配表项更新指令更新通配表项中的规则和更新时间。接收到更新指令时,只对通配表项和对应动作指令的更新时间进行更新,操作简单,对网络的影响小。在本发明另一种可能的实现方式中,所述方法还包括:当所述精配表项对应的通配表项的更新时间不在所述精配表项的建立时间之前时,采用所述信息在通配流表中查找与所述数据包相匹配的通配表项。与每次更新通配表项时在所有精配流表中查找与更新的通配表项匹配的精配表项并删除相比,本发明在与更新的通配表项对应的精配表项被找到时才删除,一方面可以有效避免查找对网络设备处理速度和性能的不良影响,另一方面也避免每次通配表项更新都相应更新精配表项,有效减少精配表项的更新次数,进一步减少对网络设备处理速度和性能的不良影响。而且在查找与更新的通配表项匹配的精配表项并删除的情况下,为了控制查找对网络设备造成的不良影响,会限制精配表项的数量。由于通配表项对数据包的头部的所有字段设定有具体数值,精配表项对数据包的头部的部分字段设定有具体数值,因此通配表项与数据包匹配时,需要所有的通配表项依次与数据包匹配,以找出与数据包最匹配的通配表项;而精配表项与数据包匹配时,只要找到一个与数据包匹配的精配表项即为所求。由此可见,精配表项的匹配速度远优于通配表项,精配表项的数量越多,数据包与精配表项匹配的几率越高。本发明不存在对网络设备的不良影响,对精配表项的数量没有限制,与查找与更新的通配表项匹配的精配表项并删除的情况相比,可以充分利用精配表项与数据包进行匹配,提高数据包的匹配速度,提高网络设备的转发能力。在本发明又一种可能的实现方式中,所述方法还包括:当找不到与所述数据包相匹配的精配表项时,采用所述信息在通配流表中查找与所述数据包相匹配的通配表项。在本发明又一种可能的实现方式中,所述方法还包括:当找不到与所述数据包相匹配的精配表项时,采用所述信息在通配流表中查找与所述数据包相匹配的通配表项。在本实施例中,通配表项包括规则、动作指令和时间标志。通配表项可以针对数据包的头部的部分字段,即用于与数据包的头部的部分字段的值进行匹配,当规则的值与数据包的头部的对应字段的值相同时,规则所在的通配表项即为与数据包相匹配的通配表项。可选地,所述方法还包括:当查找到与所述数据包相匹配的通配表项时,按照所述通配表项对应的动作指令处理所述数据包,并在所述精配流表中建立将所述信息和所述通配表项对应的动作指令对应的精配表项。利用匹配的通配表项建立精配表项,以在下次匹配时提高匹配速度。第二方面,本发明实施例提供了一种数据处理装置,所述装置包括用于实现上述第一方面所述的方法的单元,例如获取单元、精配单元、判断单元、精配处理单元、删除单元。本发明实施例提供的技术方案带来的有益效果是:通过直接采用数据包的头部字段的信息在精配流表中查找与数据包相匹配的精配表项,并在查找到与数据包相匹配的精配表项时,判断精配表项对应的通配表项的更新是否在精配表项的建立时间之前,在精配表项对应的通配表项的更新时间在精配表项的建立时间之前的情况下,才按照精配表项对应的动作指令处理数据包,由于在按照精配表项对应的动作指令处理数据包之前会确定精配表项对应的通配表项的更新时间在精配表项的建立时间之前,因此数据包处理按照的精配表项一定是有效的,不需要为了避免使用由于通配表项更新而失效的精配表项,在流表的更新过程中暂停查找与数据包匹配的流表项,流表的更新和流表项的查找可以同时进行,不会造成数据包的处理延迟,提高了数据处理的速度,提升了网络性能。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的数据处理方法的应用场景图;图2是本发明实施例提供的软件定义网络的架构图;图3a是本发明实施例提供的精配流表和一个通配流表的结构示意图;图3b是本发明实施例提供的精配流表和多个级联的通配流表的结构示意图;图4是本发明实施例提供的数据处理装置的硬件结构图;图5是本发明实施例提供的一种数据处理方法的流程图;图6是本发明实施例提供的一种数据处理方法的流程图;图7是本发明实施例提供的一种数据处理装置的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。下面先结合图1简单介绍一下本发明实施例提供的数据处理方法的应用场景。参见图1,第一终端10和第二终端20分别接入软件定义网络(softwaredefinednetwork,简称sdn)30,第一终端10向第二终端20发送的数据包通过sdn30中的网络设备40转发给第二终端。其中,网络设备40可以为交换机、路由器、网关中的至少一种。具体地,参见图2,sdn30包括管理平面31、控制平面32(即控制层(controllayer))和数据平面33(即基础设施层(infrastructurelayer)),控制平面32通过北向接口12与管理平面31通信,控制平面32通过南向接口23与数据平面33通信。其中,管理平面31通过北向接口调用控制平面32的基础服务,如链路信息的收集、流表的维护、转发规则的生成等,实现对数据平面33的数据包转发进行控制。控制平面32包括配置有软件的控制器,负责通过南向接口集中式地收集全局的链路信息,并根据路由策略计算生成转发数据包的规则(rule),该规则通过南向接口下发到数据平面的网络设备中。数据平面33由网络设备组成,负责查询流表(flowtable)并转发数据包。具体地,若数据包匹配流表中的规则,则按照匹配的规则对应的动作指令(action)处理数据包;若数据包未匹配流表中的规则,则将数据包发送给控制平面32,由控制平面32确定数据包的处理方式。另外,数据平面33还可以对各个流表项的匹配数量进行统计,并将计数记录在流表的各个流表项中。在具体实现中,网络设备中存储的流表包括通配流表(flowtable)和精配流表(microflowtable)。本发明对通配流表和精配流表的结构均进行改进。具体地,通配流表和精配流表中均增加一项时间标志(timestamp)。时间标志可以为物理时间值,如xxxx年xx月xx日xx时xx分xx秒,也可以为与物理时间值正相关的逻辑时间值,如100、200,100对应的物理时间值在200对应的物理时间值之前。参见图3a和图3b,通配流表中的通配表项包括规则(rule)、以及与规则对应的动作指令(action)和时间标志(timestamp)。规则可以针对数据包的头部的部分字段,即用于与数据包的头部的部分字段的值进行匹配。各个规则对应的动作指令可以包括端口转发、广播、丢弃中的一种或多种。与规则对应的时间标志表示通配表项的更新时间。在实际应用中,可以只采用一个通配流表与数据包进行匹配(参见图3a),也可以采用多个级联的通配流表依次与数据包进行级联(参见图3b)。多个级联的通配流表的规则给定的头部字段不同,以将匹配过程分解成多个步骤,形成流水线的处理方式,降低总的表项数量。当采用多个级联的通配流表时,动作指令还可以包括与指定通配流表进行匹配。参见图3a和图3b,精配流表中的精配表项包括精确流(microflow)、与精确流对应的时间标志(timestamp)和通配表项的指向信息。精确流可以针对数据包的头部的所有字段,即用于与数据包的头部的所有字段的值进行匹配。精确流对应的动作指令与精确流匹配的规则对应的动作指令相同,即各个精确流对应的动作指令可以包括端口转发、广播、丢弃中的一种或多种。与精确流对应的时间标志表示精配表项的建立时间。通配表项的指向信息可以为指向精配表项对应的通配表项的指针(pointer),或者精配表项对应的通配表项的标识。下面结合具体的硬件结构对实现本发明实施例提供的数据处理装置进行说明。参见图4,数据处理装置40可以为交换机等网络设备。装置40可以包括网络接口410、一个或一个以上计算机可读存储介质的存储器420、一个或者一个以上处理核心的处理器430等部件。本领域技术人员可以理解,图4中示出的结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:处理器430是装置40的控制中心,利用各种接口和线路连接整个装置40的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行装置40的各种功能和处理数据,从而对装置40进行整体监控。可选的,处理器430可包括一个或多个处理核心;优选的,处理器430可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器430中。存储器420可用于存储各种数据,例如各种配置参数、存储软件程序以及模块,处理器430通过运行存储在存储器420的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统421、获取模块422、精配模块423、判断模块424、精配处理模块425、删除模块426;存储数据区可存储根据装置40的使用所创建的数据,例如数据包的头部字段等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器420还可以包括存储器控制器,以提供处理器430对存储器420的访问。网络接口410可以为多个,该网络接口410用于与其它网络设备进行通信。可选地,装置40还可以包括总线440。其中,存储器420与网络接口410分别通过总线440与处理器430相连。本发明实施例提供了一种数据处理方法,参见图5,该方法包括:步骤s101:获取数据包的头部字段的信息。具体地,数据包一般包括头部和数据部分。头部可以包括输入端口、介质访问控制(mediaaccesscontrol,简称mac)源地址、mac目的地址、以太网类型、虚拟局域网标识(virtuallocalareanetworkidentified,简称vlanid)、互联网协议(internetprotocol,简称ip)源地址、ip目的地址、ip端口、传输控制协议(transmissioncontrolprotocol,简称tcp)源端口、tcp目的端口中的一种或多种字段。步骤s102:采用该信息在精配流表中查找与数据包相匹配的精配表项。在本实施例中,精配表项包括精确流、时间标志和通配表项的指向信息。精确流可以针对数据包的头部的所有字段,即用于与数据包的头部的所有字段的值进行匹配,当精确流的值与数据包的头部的所有字段的值相同时,精确流所在的精配表项即为与数据包相匹配的精配表项。步骤s103:当查找到与数据包相匹配的精配表项时,判断该精配表项对应的通配表项的更新时间是否在该精配表项的建立时间之前。当该精配表项对应的通配表项的更新时间在该精配表项的建立时间之前时,执行步骤s104;当该精配表项对应的通配表项的更新时间不在该精配表项的建立时间之前时,执行步骤s105。在本实施例中,通配表项包括规则、动作指令和时间标志。通配表项可以针对数据包的头部的部分字段,即用于与数据包的头部的部分字段的值进行匹配,当规则的值与数据包的头部的对应字段的值相同时,规则所在的通配表项即为与数据包相匹配的通配表项。精配表项中的精确流为精配表项对应的通配表项中的规则的子集。如果精确流与规则中对应的值相同,即精确流与规则相匹配,则精确流所在的精配流表与规则所在的通配流表对应。例如,一个通配表项a中的规则为输入端口a1、以及mac源地址b1,另一个通配表项b中的规则为ip源地址f1、ip目的地址g1;一个精配表项c中的精确流为输入端口a1、mac源地址b1、mac目的地址c1、以太网类型d1、vlanide1、ip源地址f1、ip目的地址g1、ip端口h1、tcp源端口i1、以及tcp目的端口j1,另一个精配表项d中的精确流为输入端口a1、mac源地址b1、mac目的地址c2、以太网类型d2、vlanide2、ip源地址f2、ip目的地址g2、ip端口h2、tcp源端口i2、以及tcp目的端口j2,又一个精配表项e中的精确流为输入端口a2、mac源地址b2、mac目的地址c1、以太网类型d1、vlanide1、ip源地址f1、ip目的地址g1、ip端口h1、tcp源端口i1、以及tcp目的端口j1;精配表项c与通配表项a、通配表项b对应,精配表项d与通配表项a对应,精配表项e与通配表项b对应。需要说明的是,流表更新时,控制平面向数据平面下发新的规则,该规则所在的通配表项中的规则和更新时间都进行了更新,更新的通配表项对应的精配表项也需要相应更新才能使用。通过判断该精配表项对应的通配表项的更新时间是否在该精配表项的建立时间之前,可以确定该精配表项是否在对应的通配表项进行更新后相应进行了更新。如果该精配表项对应的通配表项的更新时间在该精配表项的建立时间之前,则说明该精配表项是在对应的通配表项更新之后建立的,可以使用;如果该精配表项对应的通配表项的更新时间不在该精配表项的建立时间之前,则说明在该精配表项建立之后,对应的通配表项进行了更新,该精配表项已不能使用。步骤s104:按照该精配表项对应的动作指令处理数据包。在本实施例中,精配流表对应的动作指令即为精配流表对应的通配流表中的动作指令。具体地,动作指令可以包括端口转发、广播或者丢弃。相应地,对数据包的处理可以为在一个或多个端口发送数据包、在所有端口发送数据包或者丢弃数据包。步骤s105:删除该精配表项。本发明实施例通过直接采用数据包的头部字段的信息在精配流表中查找与数据包相匹配的精配表项,并在查找到与数据包相匹配的精配表项时,判断精配表项对应的通配表项的更新是否在精配表项的建立时间之前,在精配表项对应的通配表项的更新时间在精配表项的建立时间之前的情况下,才按照精配表项对应的动作指令处理数据包,由于在按照精配表项对应的动作指令处理数据包之前会确定精配表项对应的通配表项的更新时间在精配表项的建立时间之前,因此数据包处理按照的精配表项一定是有效的,不需要为了避免使用由于通配表项更新而失效的精配表项,在流表的更新过程中暂停查找与数据包匹配的流表项,流表的更新和流表项的查找可以同时进行,不会造成数据包的处理延迟,提高了数据处理的速度,提升了网络性能。需要说明的是,上述步骤s101可由图4所示装置中的处理器430执行存储器420中的获取模块422来实现;上述步骤s102可由图4所示装置中的处理器430执行存储器420中的精配模块423来实现;上述步骤s103可由图4所示装置中的处理器430执行存储器420中的判断模块424来实现;上述步骤s104可由图4所示装置中的处理器430执行存储器420中的精配处理模块425来实现;上述步骤s105可由图4所示装置中的处理器430执行存储器420中的删除模块426来实现。本发明实施例提供了一种数据处理方法,参见图6,该方法包括:步骤s201:获取数据包的头部字段的信息。可选地,该步骤s201可以包括:接收数据包;对数据包进行解析,得到数据包的头部字段的信息。在实际应用中,数据包可以是如图1所示的第一终端10发给一个网络设备40的,也可以是如图1所示的一个网络设备40发给另一个网络设备40的。具体地,数据包一般包括头部和数据部分。头部可以包括输入端口、mac源地址、mac目的地址、以太网类型、vlanid、ip源地址、ip目的地址、ip端口、tcp源端口、tcp目的端口中的一种或多种字段。在具体实现中,依据数据包的结构特点,即可从解析后的数据包中提取出头部字段的信息。步骤s202:采用该信息在精配流表中查找与数据包相匹配的精配表项。当查找到与数据包相匹配的精配表项时,执行步骤s203;当找不到与数据包相匹配的精配表项时,执行步骤s206。在本实施例中,精配表项包括精确流、时间标志和通配表项的指向信息。精确流可以针对数据包的头部的所有字段,即用于与数据包的头部的所有字段的值进行匹配,当精确流的值与数据包的头部的所有字段的值相同时,精确流所在的精配表项即为与数据包相匹配的精配表项。步骤s203:判断该精配表项对应的通配表项的更新时间是否在该精配表项的建立时间之前。当该精配表项对应的通配表项的更新时间在该精配表项的建立时间之前时,执行步骤s204;当该精配表项对应的通配表项的更新时间不在该精配表项的建立时间之前时,执行步骤s205-步骤s206。在本实施例中,通配表项包括规则、动作指令和时间标志。通配表项可以针对数据包的头部的部分字段,即用于与数据包的头部的部分字段的值进行匹配,当规则的值与数据包的头部的对应字段的值相同时,规则所在的通配表项即为与数据包相匹配的通配表项。如果精确流与规则中对应的值相同,即精确流与规则相匹配,则精确流所在的精配流表与规则所在的通配流表对应。在本实施例的一种实现方式中,该方法还可以包括:接收通配表项更新指令,通配表项更新指令包括待更新的规则;按照通配表项更新指令更新通配表项中的规则和更新时间。在具体实现中,控制平面向各个网络设备下发通配表项更新指令,通配表项更新指令包括待更新的规则。具体地,如果通配表项更新指令的目的是修改规则,则通配表项更新指令还包括被修改的规则(或找到其所有在通配表项的标识);如果通配表项更新指令的目的是增加规则,则通配表项更新指令还包括增加的规则对应的动作指令;如果通配表项更新指令的目的是删除规则,则通配表项更新指令可以只包括删除的规则(或找到其所有在通配表项的标识)。网络设备根据通配表项更新指令中待更新的规则对应更新通配表项中的规则,并相应修改通配表项的时间标志,以更新通配表项的更新时间。在实际应用中,如果网络设备采用多个级联的通配流表,则网络设备可以针对各个通配流表的更新指令进行相应更新,相互之间没有任何影响。可选地,该步骤s203可以包括:在精配表项中获取该精配表项对应的通配表项的指向信息;通过该指向信息确定该精配表项对应的通配表项;在该精配表项对应的通配表项中获取该精配表项对应的通配表项的更新时间。优选地,指向信息可以为指向精配表项对应的通配表项的指针,或者精配表项对应的通配表项的标识。需要说明的是,流表更新时,控制平面向数据平面下发新的规则,该规则所在的通配表项中的规则和更新时间都进行了更新,更新的通配表项对应的精配表项也需要相应更新才能使用。通过判断该精配表项对应的通配表项的更新时间是否在该精配表项的建立时间之前,可以确定该精配表项是否在对应的通配表项进行更新后相应进行了更新。如果该精配表项对应的通配表项的更新时间在该精配表项的建立时间之前,则说明该精配表项是在对应的通配表项更新之后建立的,可以使用;如果该精配表项对应的通配表项的更新时间不在该精配表项的建立时间之前,则说明在该精配表项建立之后,对应的通配表项进行了更新,该精配表项已不能使用。步骤s204:按照该精配表项对应的动作指令处理数据包。在本实施例中,精配流表对应的动作指令即为精配流表对应的通配流表中的动作指令。具体地,动作指令可以包括端口转发、广播或者丢弃。相应地,对数据包的处理可以为在一个或多个端口发送数据包、在所有端口发送数据包或者丢弃数据包。步骤s205:删除该精配表项。如前所述,流表更新时,只对通配表项进行了更新,并没有对与更新的通配表项对应的精配表项进行更新。当该精配表项对应的通配表项的更新时间不在该精配表项的建立时间之前时,说明在该精配表项建立之后,该精配表项对应的通配表项进行了更新,该精配表项已不能使用,因此将其删除,以实现精配表项的更新。与每次更新通配表项时在所有精配流表中查找与更新的通配表项匹配的精配表项并删除相比,本发明在与更新的通配表项对应的精配表项被找到时才删除,一方面可以有效避免查找对网络设备处理速度和性能的不良影响,另一方面也避免每次通配表项更新都相应更新精配表项,有效减少精配表项的更新次数,进一步减少对网络设备处理速度和性能的不良影响。而且在查找与更新的通配表项匹配的精配表项并删除的情况下,为了控制查找对网络设备造成的不良影响,会限制精配表项的数量。由于通配表项针对的是数据包的头部的部分字段,通配表项与数据包匹配时,需要所有的通配表项依次与数据包匹配,以找出与数据包最匹配的通配表项(即采用模糊匹配的方式实现);而精确表项针对的是数据包的头部的所有字段,精配表项与数据包匹配时,只要找到一个与数据包匹配的精配表项即为所求(即采用精确匹配的方式实现)。由此可见,精配表项的匹配速度远优于通配表项,精配表项的数量越多,数据包与精配表项匹配的几率越高。本发明不存在对网络设备的不良影响,对精配表项的数量没有限制,与查找与更新的通配表项匹配的精配表项并删除的情况相比,可以充分利用精配表项与数据包进行匹配,提高数据包的匹配速度,提高网络设备的转发能力。步骤s206:采用该信息在通配流表中查找与数据包相匹配的通配表项。当查找到与数据包相匹配的通配表项时,执行步骤s207;当找不到与数据包相匹配的通配表项时,执行步骤s208。在本实施例中,通配表项包括规则、动作指令和时间标志。通配表项可以针对数据包的头部的部分字段,即用于与数据包的头部的部分字段的值进行匹配,当规则的值与数据包的头部的对应字段的值相同时,规则所在的通配表项即为与数据包相匹配的通配表项。步骤s207:按照该通配表项对应的动作指令处理数据包,并在精配流表中建立将数据包的头部字段的信息和该通配表项对应的动作指令对应的精配表项。在本实施例中,通配流表对应的动作指令即为通配表项中的动作指令。具体地,动作指令可以包括端口转发、广播或者丢弃。相应地,对数据包的处理可以为在一个或多个端口发送数据包、在所有端口发送数据包或者丢弃数据包。在具体实现中,建立精配表项时,将数据包的头部字段的信息作为建立的精配表项中的精确流,将建立精配表项的时间作为建立的精配表项中的时间标志,并指向该通配表项的指针,或者该通配表项的标识将作为建立的精配表项中的指向信息。步骤s208:将数据包发送给控制平面。在具体实现中,若数据包未匹配流表中的规则,则将数据包发送给控制平面,由控制平面确定数据包的处理方式。本发明实施例通过直接采用数据包的头部字段的信息在精配流表中查找与数据包相匹配的精配表项,并在查找到与数据包相匹配的精配表项时,判断精配表项对应的通配表项的更新是否在精配表项的建立时间之前,在精配表项对应的通配表项的更新时间在精配表项的建立时间之前的情况下,才按照精配表项对应的动作指令处理数据包,由于在按照精配表项对应的动作指令处理数据包之前会确定精配表项对应的通配表项的更新时间在精配表项的建立时间之前,因此数据包处理按照的精配表项一定是有效的,不需要为了避免使用由于通配表项更新而失效的精配表项,在流表的更新过程中暂停查找与数据包匹配的流表项,流表的更新和流表项的查找可以同时进行,不会造成数据包的处理延迟,提高了数据处理的速度,提升了网络性能。参见图7,本发明实施例提供了一种数据处理装置,适用于图5或图6所示的实施例提供的数据处理方法,该装置包括获取单元301、精配单元302、判断单元303、精配处理单元304和删除单元305。其中,获取单元301用于获取数据包的头部字段的信息。精配单元302用于采用该信息在精配流表中查找与数据包相匹配的精配表项。判断单元303用于当查找到与数据包相匹配的精配表项时,判断精配表项对应的通配表项的更新时间是否在精配表项的建立时间之前,精配表项中的精确流为精配表项对应的通配表项中的规则的子集。精配处理单元304用于当精配表项对应的通配表项的更新时间在精配表项的建立时间之前时,按照精配表项对应的动作指令处理数据包。删除单元305用于当精配表项对应的通配表项的更新时间不在精配表项的建立时间之前时,删除精配表项。可选地,判断单元303可以包括信息获取子单元303a、确定子单元303b和时间获取子单元303c。其中,信息获取子单元303a用于在精配表项中获取精配表项对应的通配表项的指向信息。确定子单元303b用于通过指向信息确定精配表项对应的通配表项。时间获取子单元303c用于在精配表项对应的通配表项中获取精配表项对应的通配表项的更新时间。优选地,指向信息可以为指向精配表项对应的通配表项的指针,或者精配表项对应的通配表项的标识。可选地,该装置还可以包括接收单元306和更新单元307。其中,接收单元306用于接收通配表项更新指令,通配表项更新指令包括待更新的规则。更新单元307用于按照通配表项更新指令更新通配表项中的规则和更新时间。可选地,该装置还可以包括通配单元308。其中,通配单元308用于当精配表项对应的通配表项的更新时间不在精配表项的建立时间之前时,采用该信息在通配流表中查找与数据包相匹配的通配表项。可选地,该装置还可以包括通配单元308。其中,通配单元308用于当找不到与数据包相匹配的精配表项时,采用该信息在通配流表中查找与数据包相匹配的通配表项。优选地,该装置还可以包括通配处理单元309。其中,通配处理单元309用于当查找到与数据包相匹配的通配表项时,按照通配表项对应的动作指令处理数据包,并在精配流表中建立将该信息和通配表项对应的动作指令对应的精配表项。优选地,该装置还可以包括发送单元310。其中,发送单元310用于当找不到与数据包相匹配的通配表项时,将数据包发送给控制平面。可选地,获取单元301可以包括接收子单元301a和解析子单元301b。其中,接收子单元301a用于接收数据包。解析子单元301b用于对数据包进行解析,得到数据包的头部字段的信息。本发明实施例通过直接采用数据包的头部字段的信息在精配流表中查找与数据包相匹配的精配表项,并在查找到与数据包相匹配的精配表项时,判断精配表项对应的通配表项的更新是否在精配表项的建立时间之前,在精配表项对应的通配表项的更新时间在精配表项的建立时间之前的情况下,才按照精配表项对应的动作指令处理数据包,由于在按照精配表项对应的动作指令处理数据包之前会确定精配表项对应的通配表项的更新时间在精配表项的建立时间之前,因此数据包处理按照的精配表项一定是有效的,不需要为了避免使用由于通配表项更新而失效的精配表项,在流表的更新过程中暂停查找与数据包匹配的流表项,流表的更新和流表项的查找可以同时进行,不会造成数据包的处理延迟,提高了数据处理的速度,提升了网络性能。需要说明的是:上述实施例提供的数据处理装置在处理数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来动作指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1