CN105553880B - 一种软件定义网络中的数据处理方法及装置 - Google Patents
一种软件定义网络中的数据处理方法及装置 Download PDFInfo
- Publication number
- CN105553880B CN105553880B CN201510982876.5A CN201510982876A CN105553880B CN 105553880 B CN105553880 B CN 105553880B CN 201510982876 A CN201510982876 A CN 201510982876A CN 105553880 B CN105553880 B CN 105553880B
- Authority
- CN
- China
- Prior art keywords
- priority
- target
- flow entry
- request message
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种软件定义网络中的数据处理方法及装置,应用于交换机,包括:在接收到目标数据包后,判断目标数据包是否与当前所存在的流表匹配,如果不匹配,将目标数据包封装成目标流表项请求消息;在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项;为所述目标流表项请求消息设置优先级标签,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列;将位于所述第一类优先级队列中的所述带标签的目标流表项请求消息发送至所述控制器;将目标流表项添加到流表中,并按照处理该目标数据包的规则处理目标数据包。可见,本发明中使需要被尽早处理的数据包能够及时接入网络并得到处理。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种软件定义网络中的数据处理方法及装置。
背景技术
软件定义网络SDN(Software-Defined Networking)作为一种新兴的网络架构,将控制功能从各个交换机中抽离出来,集中到控制器,便于通过编程实现对交换机的灵活配置,提高了网络管理的效率。SDN还支持一组应用程序编程接口API(ApplicationProgramming Interface),用于支持和兼容常见的网络服务,例如:路由功能、IP多播、网络安全、网络访问控制、网络带宽管理、网络流量工程、网络服务质量和存储优化等,使得用户能根据业务需求进行灵活裁剪,快速满足业务需求变化。目前,SDN技术已经在校园网、企业网、数据中心网络等领域内获得了成功应用。
在现有的SDN中,控制器负责维护监控全网信息,例如网络拓扑,网络资源等,进而依据数据包的管理策略生成相应的处理规则,即流表项,并将这些流表项下发到交换机中,交换机将这些流表项添加至流表,其中,流表包括多个流表项,每个流表项包括匹配域、计数器、计时器和动作集。交换机不断从端口获取数据包,从数据包中提取相应的字段作为匹配字段,将提取出的匹配字段与所有流表项中匹配域中的匹配项进行匹配,其中,匹配项为OpenFlow1.3Specification中定义的OXM_TLV格式,常见的匹配项有IPv4源地址和目的地址、TCP/UDP端口号、MPLS/VLAN标签id、以太网帧类型等字段,具体的,匹配成功则按照该流表项中的动作集对数据包进行处理,例如转发、丢弃等17种动作;而匹配失败则将该数据包封装成流表项请求消息发送给控制器,用于请求相应的流表项,控制器接收流表项请求消息并处理后下发相应的流表项,交换机接收到该流表项并将其增加到流表中,随后,控制器下发封装该数据包和处理该数据包的规则的消息至交换机,其中,处理该数据包的规则与控制器下发的流表项中的动作集相同,交换机接收该消息后对该数据包进行相应处理。
所有匹配失败的数据包的流表项请求消息在由交换机生成并发送给控制器以及控制器处理这些消息的顺序都按照先入先出队列FIFO(First Input First Output)的顺序进行,当流表项请求消息达到一定规模时,后到的流表项请求消息需要等待较长的时间才能被处理,使得该后到的流表项请求消息所对应的数据包被丢弃的概率大大提高。但是,当前SDN中的业务存在不同延迟需求,例如高时延敏感性低数据量的数据包更期望被及时处理,现有的SDN不能满足这种要求。
发明内容
本发明实施例提供了一种软件定义网络中的数据处理方法及装置,以按照实际需要控制数据包等待处理的时间,从而使需要被尽早处理的数据包能够及时得到处理。具体技术方案如下:
第一方面,本发明实施例提供了一种软件定义网络中的数据处理方法,应用于交换机,包括步骤:
在接收到发送者发送的目标数据包后,确定所述目标数据包所对应的目标流表匹配字段;
基于所述目标流表匹配字段,判断所述目标数据包是否与当前所存在流表中的流表项匹配,如果不匹配,将所述目标数据包封装成目标流表项请求消息;
从所述目标流表匹配字段中,确定所述目标数据包所对应的目标优先级表匹配字段;
基于所述目标优先级表匹配字段,在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项,所述业务优先级表包括多个业务优先级表项;
基于所确定出的目标业务优先级表项,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列;其中,所述业务优先级表为根据预先接收的控制器基于用户自定义的数据包业务类型的优先级下发的优先级消息形成的,所述优先级消息包括标识数据包业务类型的优先级表匹配字段与优先级标签的对应关系,其中,所述业务优先级表项用于指示相应数据包所对应的流表项请求消息的优先级标签以及所对应的第一类优先级队列,所述优先级标签与第一类优先级队列具有对应关系;
按照基于优先级标签所确定的处理顺序,将位于所述第一类优先级队列中的所述带标签的目标流表项请求消息发送至所述控制器,以使:所述控制器在确定所述带标签的目标流表项请求信息所对应的预先构建的第二类优先级缓存队列后,对所述带标签的目标流表项请求消息进行解标签处理得到所述目标流表项请求消息,将所述目标流表项请求消息存放至所确定出的第二类优先级缓存队列,按照基于所述第二类优先级缓存队列对应的优先级标签所确定的处理顺序,处理位于所述第二类优先级队列中的所述目标流表项请求消息,生成对应的目标流表项后下发至交换机,并将封装所述目标数据包及处理该目标数据包的规则的消息下发至所述交换机,其中,所述第二类优先级队列与优先级标签具有对应关系;
将所述目标流表项添加到流表中,并按照所述处理该目标数据包的规则处理所述目标数据包。
可选的,本发明实施例所提供的一种软件定义网络中的数据处理方法还包括:
判断所述目标数据包与当前所存在流表中的流表项匹配时,按照该流表项中的动作集处理所述数据包。
可选的,所述业务类型优先级表项包括:优先级匹配域和指令集,其中,所述优先级匹配域的字段为标识数据包业务类型的优先级表匹配字段,所述指令集包括:第一动作:为流表项请求消息设置相应优先级匹配域的字段值所对应的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中;
所述基于所述目标优先级表匹配字段,在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项,包括:
在预设业务优先级表中,查询字段与所述目标优先级表匹配字段相匹配的优先级匹配域,将所查询到的优先级匹配域所对应的业务类型优先级表项确定为所述目标优先级表匹配字段所对应的目标业务类型优先级表项;
所述基于所确定出的目标业务优先级表项,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列,包括:
根据所确定出的目标业务类型优先级表项中的指令集中的第一动作,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并根据所确定出的目标类型优先级表项中的指令集中的第二动作,将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列。
可选的,所述业务类型优先级表还包括:
默认业务类型优先级表项,所述默认业务类型优先级表项中的优先级匹配域的字段为:标识非用户自定义的数据包业务类型的优先级表匹配字段,第一动作为:为流表项请求消息设置优先级最低的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中。
可选的,所述从所述目标流表匹配字段中,确定所述目标数据包所对应的目标优先级表匹配字段具体为:
将所述目标流表匹配字段中与所述目标数据包业务类型相关的部分字段作为所述目标数据包所对应的目标优先级表匹配字段,或者,将所述目标流表匹配字段中的全部字段作为所述目标数据包所对应的目标优先级表匹配字段。
第二方面,本发明实施例还提供了一种软件定义网络中的数据处理装置,应用于交换机,包括:
流表匹配字段确定模块,用于在接收到发送者发送的目标数据包后,确定所述目标数据包所对应的目标流表匹配字段;
数据包封装模块,用于基于所述目标流表匹配字段,判断所述目标数据包是否与当前所存在流表中的流表项匹配,如果不匹配,将所述目标数据包封装成目标流表项请求消息;
优先级表匹配字段确定模块,用于从所述目标流表匹配字段中,确定所述目标数据包所对应的目标优先级表匹配字段;
业务优先级表项确定模块,用于基于所述目标优先级表匹配字段,在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项,所述业务优先级表包括多个业务优先级表项;
带标签的流表项请求消息形成模块,用于基于所确定出的目标业务优先级表项,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列;其中,所述业务优先级表为根据预先接收的控制器基于用户自定义的数据包业务类型的优先级下发的优先级消息形成的,所述优先级消息包括标识数据包业务类型的优先级表匹配字段与优先级标签的对应关系,其中,所述业务优先级表项用于指示相应数据包所对应的流表项请求消息的优先级标签以及所对应的第一类优先级队列,所述优先级标签与第一类优先级队列具有对应关系;
带标签的流表项请求消息发送模块,用于按照基于优先级标签所确定的处理顺序,将位于所述第一类优先级队列中的所述带标签的目标流表项请求消息发送至所述控制器,以使:所述控制器在确定所述带标签的目标流表项请求信息所对应的预先构建的第二类优先级缓存队列后,对所述带标签的目标流表项请求消息进行解标签处理得到所述目标流表项请求消息,将所述目标流表项请求消息存放至所确定出的第二类优先级缓存队列,按照基于所述第二类优先级缓存队列对应的优先级标签所确定的处理顺序,处理位于所述第二类优先级队列中的所述目标流表项请求消息,生成对应的目标流表项后下发至交换机,并将封装所述目标数据包及处理该数据包的规则的消息下发至所述交换机,其中,所述第二类优先级队列与优先级标签具有对应关系;
第一数据包处理模块,用于将所述目标流表项添加到流表中,并按照所述处理该数据包的规则处理所述数据包。
可选的,本发明实施例所提供的一种软件定义网络中的数据处理装置还包括:
第二数据包处理模块,用于判断所述目标数据包与当前所存在流表中的流表项匹配时,按照该流表项中的动作集处理所述数据包。
可选的,所述业务类型优先级表项包括:优先级匹配域和指令集,其中,所述优先级匹配域的字段为标识数据包业务类型的优先级表匹配字段,所述指令集包括:第一动作:为流表项请求消息设置相应优先级匹配域的字段所对应的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中;
所述业务优先级表项确定模块,具体用于:
在预设业务优先级表中,查询字段与所述目标优先级表匹配字段相匹配的优先级匹配域,将所查询到的优先级匹配域所对应的业务类型优先级表项确定为所述目标优先级表匹配字段所对应的目标业务类型优先级表项;
所述带标签的流表项请求消息形成模块,具体用于:
根据所确定出的目标业务类型优先级表项中的指令集中的第一动作,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并根据所确定出的目标类型优先级表项中的指令集中的第二动作,将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列。
可选的,所述业务类型优先级表还包括:
默认业务类型优先级表项,所述默认业务类型优先级表项中的优先级匹配域的字段为:标识非用户自定义的数据包业务类型的优先级表匹配字段,第一动作为:为流表项请求消息设置优先级最低的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中。
可选的,所述优先级表匹配字段确定模块,具体用于:
将所述目标流表匹配字段中与所述目标数据包业务类型相关的部分字段作为所述目标数据包所对应的目标优先级表匹配字段,或者,将所述目标流表匹配字段中的全部字段作为所述目标数据包所对应的目标优先级表匹配字段。
本发明实施例提供的一种软件定义网络中的数据处理方法及装置,交换机根据预先接收的控制器基于用户自定义的流量业务类型优先级下发的优先级消息,形成业务类型优先级表,进而,在接收到数据包时,交换机将与流表匹配失败的数据包进行业务类型优先级表查询,形成带标签的流表项请求消息,并按照标签将流表项请求消息加入对应的第一优先级缓存队列,依次发送至控制器;控制器根据标签将流表项请求消息存入第二优先级缓存队列,并优先处理高优先级队列中的流表项请求消息,处理后下发相应的流表项,交换机接收到该流表项并在流表中增加该流表项,并根据接收到的封装数据包和对应处理方式的消息对该数据包进行处理。可见,通过本方案可以按照实际需要控制数据包处理请求等待处理的时间,使需要被尽早处理的数据包处理请求能够及时得到处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种软件定义网络中的数据处理方法的流程图;
图2为本发明实施例所提供的一种软件定义网络中的数据处理装置的示意图;
图3为本发明实施例所提供的业务类型优先级表项的示意图;
图4为本发明实施例所提供的一种软件定义网络中的数据处理方法的原理图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了按照实际需要控制数据包等待处理的时间,使需要被尽早处理的数据包能够及时得到处理,本发明实施例提供了一种软件定义网络中的数据处理方法及装置。
下面首先对本发明实施例所提供的一种软件定义网络中的数据处理方法进行介绍。
如图1和图4所示,一种软件定义网络中的数据处理方法,应用于交换机,可以包括:
S101,在接收到发送者发送的目标数据包后,确定所述目标数据包所对应的目标流表匹配字段;
其中,在接收到发送者发送的目标数据包后,从该目标数据包中提取相应的字段作为目标流表匹配字段,具体提取方式可以采用现有提取方式。提取的字段可以为:与目标数据包相关的IPv4源地址和目的地址、TCP/UDP端口号、MPLS/VLAN标签id、以太网帧类型等字段中的一项或多项。
并且,需要强调的是,该发送者发送的任意一数据包均可以作为目标数据包,并且,该发送者可以为具有数据发送需求的终端设备,一个数据流可以包括多个数据包,每个数据包均可以作为目标数据包,当然并不局限于此。
S102,基于所述目标流表匹配字段,判断所述目标数据包是否与当前所存在流表中的流表项匹配,如果不匹配,将所述目标数据包封装成目标流表项请求消息;
需要说明的是,流表中包括多个流表项,每个流表项包括匹配域和动作集等,每个匹配域中可以有至少一个字段,至少一个字段可以包括IPv4源地址和目的地址,TCP/UDP端口号,MPLS/VLAN标签id,以太网帧类型等字段中的一个或多个,当然并不局限于此。具体的,在确定目标数据包所对应的目标流表匹配字段后,将该目标流表匹配字段与所有流表项中匹配域中的字段进行匹配,如果匹配不成功,则将该目标数据包封装成目标流表项请求消息,具体封装方式可以采用现有方式,在此不做具体限定。
其中,判断所述目标数据包是否与当前所存在流表中的流表项匹配具体指:判断所述目标数据包的所述目标流表匹配字段的字段值是否与当前所存在流表中的一流表项中的匹配域的字段的字段值均相同,如果相同,表明所述目标数据包与当前所存在流表中的流表项匹配,否则,表明所述目标数据包与当前所存在流表中的流表项不匹配。
S103,从所述目标流表匹配字段中,确定所述目标数据包所对应的目标优先级表匹配字段;
具体的,在实际应用时,可以将该目标流表匹配字段中与该目标数据包业务类型相关的部分字段作为该目标数据包所对应的目标优先级表匹配字段,也可以将该目标流表匹配字段中的全部字段作为该目标数据包所对应的目标优先级表匹配字段,这都是合理的,只要确定出的目标优先级表匹配字段可以实现区分不同业务类型的数据包的效果即可。
S104,基于所述目标优先级表匹配字段,在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项;
S105,基于所确定出的目标业务优先级表项,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列;
具体的,所述业务优先级表为根据预先接收的控制器下发的优先级消息形成的,其中,该优先级消息是控制器基于用户自定义的数据包业务类型的优先级下发的,该优先级消息中包括标识数据包业务类型的优先级表匹配字段与优先级标签的对应关系。
进一步的,该业务优先级表包括多个业务优先级表项,如图3所示,该业务类型优先级表项可以包括:优先级匹配域和指令集,其中,所述优先级匹配域的字段为标识数据包业务类型的优先级表匹配字段,所述指令集包括:第一动作:为流表项请求消息设置相应优先级匹配域的字段值所对应的优先级标签,例如,如图4所示,按照优先级从高到低的顺序,优先级标签可以为Q1、Q2、Q3等;第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中。即该业务优先级表项用于指示相应数据包所对应的流表项请求消息的优先级标签以及所对应的第一类优先级队列。
如图3所示,该业务类型优先级表项中还可以包括:计数器和计时器,具体的,计数器可以用于记录该业务类型优先级表项被查询或被匹配的次数;计时器可以记录该业务类型优先级表项的累积使用时间,在该累积使用时间达到预设的阈值后,可以对该业务类型优先级表项做删除或更改等处理。
更进一步的,在确定了该目标数据包所对应的目标优先级表匹配字段后,在预设业务优先级表中,查询字段与该目标优先级表匹配字段相匹配的优先级匹配域,将所查询到的优先级匹配域所对应的业务类型优先级表项确定为该目标优先级表匹配字段所对应的目标业务类型优先级表项。
进而,根据所确定出的目标业务类型优先级表项中的指令集中的第一动作,为该目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并根据所确定出的目标类型优先级表项中的指令集中的第二动作,将该带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列,例如,若该目标流表项请求消息的优先级标签为Q1,则将该带标签的目标流表项请求消息存放至第一类优先级缓存队列Q1中,当然并不局限于此。
需要说明的是,该业务类型优先级表中还包括:默认业务类型优先级表项;
对于用户没有自定义的数据包业务类型,在该业务类型优先级表中配置默认业务类型优先级表项,该默认业务类型优先级表项中的优先级匹配域的字段为:标识非用户自定义的数据包业务类型的优先级表匹配字段,第一动作为:为流表项请求消息设置优先级最低的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中。
S106,按照基于优先级标签所确定的处理顺序,将位于所述第一类优先级队列中的所述带标签的目标流表项请求消息发送至所述控制器,以使:所述控制器对所述带标签的目标流表项请求消息进行解标签处理得到所述目标流表项请求消息,将所述目标流表项请求消息存放至预先构建的第二类优先级缓存队列,按照基于所述第二类优先级缓存队列对应的优先级标签所确定的处理顺序,处理位于所述第二类优先级队列中的所述目标流表项请求消息,生成对应的目标流表项后下发至交换机,并将封装所述目标数据包及处理该数据包的规则的消息下发至所述交换机,其中,所述第二类优先级队列与优先级标签具有对应关系;
具体的,可以按照基于优先级标签所确定的处理顺序,将位于所述第一类优先级队列中的带标签的目标流表项请求消息发送至所述控制器,例如,如图4所示,该带标签的目标流表项请求消息的优先级标签为Q1,另有一个带标签的流表项请求消息的优先级标签为Q2,由于Q1对应的优先级比Q2对应的优先级高,所以先将位于第一类优先级队列Q1中的优先级标签为Q1的带标签的目标流表项请求消息发送至所述控制器。并且,需要强调的是,每一个第一类优先级队列用于放置属于同一优先级标签的带标签的流表项请求消息,对于一个第一类优先级队列而言,所放置的同一优先级标签的带标签的流表项请求消息按照先进先出的发送顺序被交换机发送给控制器;而不同的第一类优先级队列按照优先级标签被交换机处理。
相应的,控制器接收到上述带标签的目标流表项请求消息后,确定该带标签的目标流表项请求信息所对应的预先构建的第二类优先级缓存队列后,对该带标签的目标流表项请求消息进行解标签处理得到上述目标流表项请求消息,将该目标流表项请求消息存放至所确定出的第二类优先级缓存队列,按照基于该第二类优先级缓存队列对应的优先级标签所确定的处理顺序,处理位于该第二类优先级队列中的该目标流表项请求消息,生成对应的目标流表项后下发至交换机,并将封装该目标数据包及处理该目标数据包的规则的消息下发至所述交换机。例如,控制器接收到优先级标签为Q1的带标签的目标流表项请求消息后,根据该优先级标签为Q1,确定出该优先级标签为Q1的带标签的目标流表项请求消息被解标签后得到的目标流表项请求消息应该存放至对应的第二类优先级缓存队列Q1中,然后将该带标签的目标流表项请求消息进行解标签处理并将处理后得到该目标流表项请求消息,并将该目标流表项请求消息存放至第二类优先级缓存队列Q1,由于Q1对应的优先级最高,所以按照基于优先级标签所确定的处理顺序,最先处理位于第二类优先级队列Q1中的该目标流表项请求消息。
需要说明的是,对带标签的目标流表项请求消息的处理,对目标数据包及处理该目标数据包的规则的封装,以及封装该目标数据包及处理该目标数据包的规则的消息的下发均可以采用现有方式实现,在此不做具体限定。
S107,将所述目标流表项添加到流表中,并按照所述处理该目标数据包的规则处理所述目标数据包。
具体的,所述处理该目标数据包的规则与目标流表项中的指令集一致,可以为转发至某一设备或丢弃等。
需要说明的是,上述方法还可以包括:当判断该目标数据包与当前所存在流表中的流表项匹配时,按照该流表项中的动作集处理所述数据包。具体的,可以利用现有技术对数据包进行处理,在此不再赘述。
需要强调的是,为了区分交换机侧的优先级队列和控制器侧的交换机队列,将交换机侧的优先级队列命名为第一类优先级队列,将控制器侧的优先级队列命名为第二类优先级队列,其中,第一类优先级队列和第二类优先级队列均包括至少两个优先级队列,且优先级队列与优先级标签唯一对应性。
本发明实施例中,交换机根据预先接收的控制器基于用户自定义的流量业务类型优先级下发的优先级消息,形成业务类型优先级表,进而,在接收到数据包时,交换机将与流表匹配失败的数据包进行业务类型优先级表查询,形成带标签的流表项请求消息,并按照标签将流表项请求消息加入对应的第一优先级缓存队列,依次发送至控制器;控制器根据标签将流表项请求消息存入第二优先级缓存队列,并优先处理高优先级队列中的流表项请求消息,处理后下发相应的流表项,交换机接收到该流表项并在流表中增加该流表项,并根据接收到的封装数据包和对应处理方式的消息对该数据包进行处理。可见,通过本方案可以按照实际需要控制数据包处理请求等待处理的时间,使需要被尽早处理的数据包处理请求能够及时得到处理。
相应于上述方法实施例,本发明实施例还提供了一种软件定义网络中的数据处理装置,如图2所示,应用于交换机,所述装置可以包括:
流表匹配字段确定模块210,用于在接收到发送者发送的目标数据包后,确定所述目标数据包所对应的目标流表匹配字段;
数据包封装模块220,用于基于所述目标流表匹配字段,判断所述目标数据包是否与当前所存在流表中的流表项匹配,如果不匹配,将所述目标数据包封装成目标流表项请求消息;
优先级表匹配字段确定模块230,用于从所述目标流表匹配字段中,确定所述目标数据包所对应的目标优先级表匹配字段;
业务优先级表项确定模块240,用于基于所述目标优先级表匹配字段,在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项,所述业务优先级表包括多个业务优先级表项;
带标签的流表项请求消息形成模块250,用于基于所确定出的目标业务优先级表项,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列;
其中,所述业务优先级表为根据预先接收的控制器基于用户自定义的数据包业务类型的优先级下发的优先级消息形成的,该优先级消息包括标识数据包业务类型的优先级表匹配字段与优先级标签的对应关系,其中,该业务优先级表项用于指示相应数据包所对应的流表项请求消息的优先级标签以及所对应的第一类优先级队列,该优先级标签与第一类优先级队列具有对应关系;
带标签的流表项请求消息发送模块260,用于按照基于优先级标签所确定的处理顺序,将位于所述第一类优先级队列中的所述带标签的目标流表项请求消息发送至所述控制器,以使:所述控制器在确定所述带标签的目标流表项请求信息所对应的预先构建的第二类优先级缓存队列后,对所述带标签的目标流表项请求消息进行解标签处理得到所述目标流表项请求消息,将所述目标流表项请求消息存放至所确定出的第二类优先级缓存队列,按照基于所述第二类优先级缓存队列对应的优先级标签所确定的处理顺序,处理位于所述第二类优先级队列中的所述目标流表项请求消息,生成对应的目标流表项后下发至交换机,并将封装所述目标数据包及处理该数据包的规则的消息下发至所述交换机,其中,所述第二类优先级队列与优先级标签具有对应关系;
第一数据包处理模块270,用于将所述目标流表项添加到流表中,并按照所述处理该数据包的规则处理所述数据包。
本发明实施例中,交换机根据预先接收的控制器基于用户自定义的流量业务类型优先级下发的优先级消息,形成业务类型优先级表,进而,在接收到数据包时,交换机将与流表匹配失败的数据包进行业务类型优先级表查询,形成带标签的流表项请求消息,并按照标签将流表项请求消息加入对应的第一优先级缓存队列,依次发送至控制器;控制器根据标签将流表项请求消息存入第二优先级缓存队列,并优先处理高优先级队列中的流表项请求消息,处理后下发相应的流表项,交换机接收到该流表项并在流表中增加该流表项,并根据接收到的封装数据包和对应处理方式的消息对该数据包进行处理。可见,通过本方案可以按照实际需要控制数据包处理请求等待处理的时间,使需要被尽早处理的数据包处理请求能够及时得到处理。
具体的,在接收到发送者发送的目标数据包后,从该目标数据包中提取相应的字段作为目标流表匹配字段,具体提取方式可以采用现有提取方式。
具体的,流表中包括多个流表项,每个流表项包括匹配域和动作集等,每个匹配域中有多个匹配项,在确定目标数据包所对应的目标流表匹配字段后,将该目标流表匹配字段与所有流表项中匹配域中的匹配项进行匹配,如果匹配不成功,则将该目标数据包封装成目标流表项请求消息,具体封装方式可以采用现有方式,在此不做具体限定。
具体的,在实际应用时,可以将该目标流表匹配字段中与该目标数据包业务类型相关的部分字段作为该目标数据包所对应的目标优先级表匹配字段,也可以将该目标流表匹配字段中的全部字段作为该目标数据包所对应的目标优先级表匹配字段,这都是合理的,只要确定出的目标优先级表匹配字段可以实现区分不同业务类型的数据包的效果即可。
具体的,如图3所示,所述业务类型优先级表项可以包括:优先级匹配域和指令集,其中,所述优先级匹配域的字段为标识数据包业务类型的优先级表匹配字段,所述指令集包括:第一动作:为流表项请求消息设置相应优先级匹配域的字段所对应的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中。
所述业务优先级表项确定模块,具体用于:
在预设业务优先级表中,查询字段与所述目标优先级表匹配字段相匹配的优先级匹配域,将所查询到的优先级匹配域所对应的业务类型优先级表项确定为所述目标优先级表匹配字段所对应的目标业务类型优先级表项。
所述带标签的流表项请求消息形成模块,具体用于:
根据所确定出的目标业务类型优先级表项中的指令集中的第一动作,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并根据所确定出的目标类型优先级表项中的指令集中的第二动作,将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列。
进一步的,该业务类型优先级表中还可以包括:默认业务类型优先级表项;
对于用户没有自定义的数据包业务类型,在该业务类型优先级表中配置默认业务类型优先级表项,该默认业务类型优先级表项中的优先级匹配域的字段为:标识非用户自定义的数据包业务类型的优先级表匹配字段,第一动作为:为流表项请求消息设置优先级最低的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中。
更进一步的,所述装置还可以包括:
第二数据包处理模块,用于判断所述目标数据包与当前所存在流表中的流表项匹配时,按照该流表项中的动作集处理所述数据包。
对于装置实施例而言,由于其基本相似与方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种软件定义网络中的数据处理方法,其特征在于,应用于交换机,包括步骤:
在接收到发送者发送的目标数据包后,确定所述目标数据包所对应的目标流表匹配字段;
基于所述目标流表匹配字段,判断所述目标数据包是否与当前所存在流表中的流表项匹配,如果不匹配,将所述目标数据包封装成目标流表项请求消息;
从所述目标流表匹配字段中,确定所述目标数据包所对应的目标优先级表匹配字段;
基于所述目标优先级表匹配字段,在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项,所述业务优先级表包括多个业务优先级表项;
基于所确定出的目标业务优先级表项,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列;其中,所述业务优先级表为根据预先接收的控制器基于用户自定义的数据包业务类型的优先级下发的优先级消息形成的,所述优先级消息包括标识数据包业务类型的优先级表匹配字段与优先级标签的对应关系,其中,所述业务优先级表项用于指示相应数据包所对应的流表项请求消息的优先级标签以及所对应的第一类优先级队列,所述优先级标签与第一类优先级队列具有对应关系;
按照基于优先级标签所确定的处理顺序,将位于所述第一类优先级队列中的所述带标签的目标流表项请求消息发送至所述控制器,以使:所述控制器在确定所述带标签的目标流表项请求信息所对应的预先构建的第二类优先级缓存队列后,对所述带标签的目标流表项请求消息进行解标签处理得到所述目标流表项请求消息,将所述目标流表项请求消息存放至所确定出的第二类优先级缓存队列,按照基于所述第二类优先级缓存队列对应的优先级标签所确定的处理顺序,处理位于所述第二类优先级队列中的所述目标流表项请求消息,生成对应的目标流表项后下发至交换机,并将封装所述目标数据包及处理该目标数据包的规则的消息下发至所述交换机,其中,所述第二类优先级队列与优先级标签具有对应关系;
将所述目标流表项添加到流表中,并按照所述处理该目标数据包的规则处理所述目标数据包。
2.如权利要求1所述的方法,其特征在于,还包括:
判断所述目标数据包与当前所存在流表中的流表项匹配时,按照该流表项中的动作集处理所述数据包。
3.如权利要求1所述的方法,其特征在于,所述业务类型优先级表项包括:优先级匹配域和指令集,其中,所述优先级匹配域的字段为标识数据包业务类型的优先级表匹配字段,所述指令集包括:第一动作:为流表项请求消息设置相应优先级匹配域的字段值所对应的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中;
所述基于所述目标优先级表匹配字段,在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项,包括:
在预设业务优先级表中,查询字段与所述目标优先级表匹配字段相匹配的优先级匹配域,将所查询到的优先级匹配域所对应的业务类型优先级表项确定为所述目标优先级表匹配字段所对应的目标业务类型优先级表项;
所述基于所确定出的目标业务优先级表项,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列,包括:
根据所确定出的目标业务类型优先级表项中的指令集中的第一动作,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并根据所确定出的目标类型优先级表项中的指令集中的第二动作,将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列。
4.如权利要求1所述的方法,其特征在于,所述业务类型优先级表还包括:
默认业务类型优先级表项,所述默认业务类型优先级表项中的优先级匹配域的字段为:标识非用户自定义的数据包业务类型的优先级表匹配字段,第一动作为:为流表项请求消息设置优先级最低的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中。
5.如权利要求1所述的方法,其特征在于,所述从所述目标流表匹配字段中,确定所述目标数据包所对应的目标优先级表匹配字段具体为:
将所述目标流表匹配字段中与所述目标数据包业务类型相关的部分字段作为所述目标数据包所对应的目标优先级表匹配字段,或者,将所述目标流表匹配字段中的全部字段作为所述目标数据包所对应的目标优先级表匹配字段。
6.一种软件定义网络中的数据处理装置,其特征在于,应用于交换机,包括:
流表匹配字段确定模块,用于在接收到发送者发送的目标数据包后,确定所述目标数据包所对应的目标流表匹配字段;
数据包封装模块,用于基于所述目标流表匹配字段,判断所述目标数据包是否与当前所存在流表中的流表项匹配,如果不匹配,将所述目标数据包封装成目标流表项请求消息;
优先级表匹配字段确定模块,用于从所述目标流表匹配字段中,确定所述目标数据包所对应的目标优先级表匹配字段;
业务优先级表项确定模块,用于基于所述目标优先级表匹配字段,在预设的业务优先级表中确定所述目标数据包所对应的目标业务优先级表项,所述业务优先级表包括多个业务优先级表项;
带标签的流表项请求消息形成模块,用于基于所确定出的目标业务优先级表项,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列;其中,所述业务优先级表为根据预先接收的控制器基于用户自定义的数据包业务类型的优先级下发的优先级消息形成的,所述优先级消息包括标识数据包业务类型的优先级表匹配字段与优先级标签的对应关系,其中,所述业务优先级表项用于指示相应数据包所对应的流表项请求消息的优先级标签以及所对应的第一类优先级队列,所述优先级标签与第一类优先级队列具有对应关系;
带标签的流表项请求消息发送模块,用于按照基于优先级标签所确定的处理顺序,将位于所述第一类优先级队列中的所述带标签的目标流表项请求消息发送至所述控制器,以使:所述控制器在确定所述带标签的目标流表项请求信息所对应的预先构建的第二类优先级缓存队列后,对所述带标签的目标流表项请求消息进行解标签处理得到所述目标流表项请求消息,将所述目标流表项请求消息存放至所确定出的第二类优先级缓存队列,按照基于所述第二类优先级缓存队列对应的优先级标签所确定的处理顺序,处理位于所述第二类优先级队列中的所述目标流表项请求消息,生成对应的目标流表项后下发至交换机,并将封装所述目标数据包及处理该数据包的规则的消息下发至所述交换机,其中,所述第二类优先级队列与优先级标签具有对应关系;
第一数据包处理模块,用于将所述目标流表项添加到流表中,并按照所述处理该数据包的规则处理所述数据包。
7.如权利要求6所述的装置,其特征在于,还包括:
第二数据包处理模块,用于判断所述目标数据包与当前所存在流表中的流表项匹配时,按照该流表项中的动作集处理所述数据包。
8.如权利要求6所述的装置,其特征在于,所述业务类型优先级表项包括:优先级匹配域和指令集,其中,所述优先级匹配域的字段为标识数据包业务类型的优先级表匹配字段,所述指令集包括:第一动作:为流表项请求消息设置相应优先级匹配域的字段所对应的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中;
所述业务优先级表项确定模块,具体用于:
在预设业务优先级表中,查询字段与所述目标优先级表匹配字段相匹配的优先级匹配域,将所查询到的优先级匹配域所对应的业务类型优先级表项确定为所述目标优先级表匹配字段所对应的目标业务类型优先级表项;
所述带标签的流表项请求消息形成模块,具体用于:
根据所确定出的目标业务类型优先级表项中的指令集中的第一动作,为所述目标流表项请求消息设置优先级标签,形成带标签的目标流表项请求消息,并根据所确定出的目标类型优先级表项中的指令集中的第二动作,将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列。
9.如权利要求6所述的装置,其特征在于,所述业务类型优先级表还包括:
默认业务类型优先级表项,所述默认业务类型优先级表项中的优先级匹配域的字段为:标识非用户自定义的数据包业务类型的优先级表匹配字段,第一动作为:为流表项请求消息设置优先级最低的优先级标签,第二动作:将带标签的流表项请求消息存放至与优先级标签所对应的第一类优先级缓存队列中。
10.如权利要求6所述的装置,其特征在于,所述优先级表匹配字段确定模块,具体用于:
将所述目标流表匹配字段中与所述目标数据包业务类型相关的部分字段作为所述目标数据包所对应的目标优先级表匹配字段,或者,将所述目标流表匹配字段中的全部字段作为所述目标数据包所对应的目标优先级表匹配字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510982876.5A CN105553880B (zh) | 2015-12-24 | 2015-12-24 | 一种软件定义网络中的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510982876.5A CN105553880B (zh) | 2015-12-24 | 2015-12-24 | 一种软件定义网络中的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105553880A CN105553880A (zh) | 2016-05-04 |
CN105553880B true CN105553880B (zh) | 2018-11-16 |
Family
ID=55832817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510982876.5A Active CN105553880B (zh) | 2015-12-24 | 2015-12-24 | 一种软件定义网络中的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553880B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547440B (zh) * | 2016-06-28 | 2020-12-08 | 上海宽带技术及应用工程研究中心 | 一种sdn控制器消息队列管理方法及系统 |
CN107689942A (zh) * | 2016-08-04 | 2018-02-13 | 中兴通讯股份有限公司 | 业务处理方法及装置 |
CN106453139B (zh) * | 2016-09-26 | 2019-11-08 | 东软集团股份有限公司 | 数据包调度的方法及装置 |
CN107124300B (zh) * | 2017-04-01 | 2020-03-17 | 西安交通大学 | 一种软件定义网络中的交换机迁移方法 |
CN107135166B (zh) * | 2017-04-07 | 2021-12-31 | 深圳市华迅光通信有限公司 | 一种流量管理系统及方法 |
CN107809385B (zh) * | 2017-10-11 | 2020-08-14 | 中国电子科技集团公司第三十研究所 | 一种Packet-In消息的触发与控制方法 |
CN107959637A (zh) * | 2017-10-23 | 2018-04-24 | 新华三技术有限公司 | 报文缓存方法及装置 |
CN108519909B (zh) * | 2018-03-02 | 2022-01-18 | 创新先进技术有限公司 | 一种流数据处理方法和装置 |
CN110365591B (zh) | 2018-04-09 | 2021-11-19 | 华为技术有限公司 | 数据包处理方法、装置及设备 |
CN109558107B (zh) * | 2018-12-04 | 2023-06-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种共享缓冲区的fc消息接收管理方法 |
CN109450812A (zh) * | 2018-12-29 | 2019-03-08 | 优刻得科技股份有限公司 | 处理数据包的方法、交换机和控制器以及介质 |
CN110035010A (zh) * | 2019-04-24 | 2019-07-19 | 广州西麦科技股份有限公司 | 匹配域的匹配方法及相关装置 |
CN110247908A (zh) * | 2019-06-11 | 2019-09-17 | 优刻得科技股份有限公司 | 基于可编程网络交换技术的数据发送的方法、装置和系统 |
CN110808918A (zh) * | 2019-09-24 | 2020-02-18 | 军事科学院系统工程研究院后勤科学与技术研究所 | 一种业务交换处理方法、系统、设备及其存储介质 |
CN113055287B (zh) * | 2019-12-27 | 2022-09-30 | 中国电信股份有限公司 | 数据包的处理方法、装置和计算机可读存储介质 |
CN113132156B (zh) * | 2021-03-31 | 2022-08-12 | 中国人民解放军战略支援部队信息工程大学 | 存储-计算-传输一体化的网络功能基础平台结构及方法 |
CN113225263B (zh) * | 2021-04-20 | 2022-10-11 | 新华三半导体技术有限公司 | 一种流量请求处理方法、装置及网络芯片 |
CN116962321B (zh) * | 2023-09-18 | 2024-01-09 | 鹏城实验室 | 数据包传输方法、传输配置方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099942A (zh) * | 2014-04-30 | 2015-11-25 | 华为技术有限公司 | 一种数据包处理方法及设备 |
-
2015
- 2015-12-24 CN CN201510982876.5A patent/CN105553880B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099942A (zh) * | 2014-04-30 | 2015-11-25 | 华为技术有限公司 | 一种数据包处理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105553880A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105553880B (zh) | 一种软件定义网络中的数据处理方法及装置 | |
EP3958521A1 (en) | Method and apparatus for providing service for service flow | |
CN105939297B (zh) | 一种tcp报文重组方法和装置 | |
US8169910B1 (en) | Network traffic analysis using a flow table | |
CN105723657B (zh) | 交换机、控制器、系统及链路质量检测方法 | |
CN104734964B (zh) | 报文处理方法、节点及系统 | |
US8229705B1 (en) | Performance monitoring in computer networks | |
US20090010262A1 (en) | Network routing apparatus | |
CN101009649A (zh) | 网络处理器中的队列管理 | |
CN105337855B (zh) | 一种处理修改后的报文方法和装置 | |
KR20090079945A (ko) | 플로우 정보 제한장치 및 방법 | |
JP2012526500A (ja) | データ通信セッションを制御する方法および装置 | |
CN110224934A (zh) | 一种利用统一sr标签栈进行报文处理的方法及装置 | |
CN111801911B (zh) | 业务功能链拥塞跟踪 | |
US20170222953A1 (en) | User packet forwarding control method and processing node | |
EP4250669A1 (en) | Packet forwarding method, electronic device, and storage medium | |
JPH1132078A (ja) | 送信キュー管理方式および本方式を用いるインタネットワーク装置 | |
CN108353022A (zh) | 一种数据报文的处理方法、装置及系统 | |
US20150043588A1 (en) | Communication System, Upper Layer Switch, Control Apparatus, Switch Control Method, and Program | |
CN103685058B (zh) | 控制流数据的服务质量的方法和OpenFlow控制器 | |
US8179795B2 (en) | Communication terminal apparatus, distribution apparatus, error notification method, and error notification program | |
CN102413051B (zh) | 一种服务质量调度方法和装置 | |
CN101803303A (zh) | 用于管理分段数据分组传输的方法和系统 | |
CN110417687A (zh) | 一种报文发送与接收方法及装置 | |
CN103327129A (zh) | 针对多wan口网关设备的域名解析方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |