CN108173763A - 报文处理方法、设备及系统 - Google Patents
报文处理方法、设备及系统 Download PDFInfo
- Publication number
- CN108173763A CN108173763A CN201810156571.2A CN201810156571A CN108173763A CN 108173763 A CN108173763 A CN 108173763A CN 201810156571 A CN201810156571 A CN 201810156571A CN 108173763 A CN108173763 A CN 108173763A
- Authority
- CN
- China
- Prior art keywords
- prefix
- matching
- flow table
- item
- entry
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 123
- 238000012545 processing Methods 0.000 claims description 51
- 238000004891 communication Methods 0.000 claims description 35
- 238000000605 extraction Methods 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 162
- 230000008569 process Effects 0.000 description 61
- 230000009471 action Effects 0.000 description 25
- 239000000284 extract Substances 0.000 description 21
- 238000012986 modification Methods 0.000 description 19
- 230000004048 modification Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 6
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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/38—Flow based routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种报文处理方法、设备和系统。该方法包括交换设备接收报文,其中该交换设备上有以前缀项为索引建立的前缀项和通用流表项的对应关系,其中该前缀项对应的通用流表项的匹配域包括该前缀项;该交换设备根据该前缀项获取该报文中用于匹配的比特域;该交换设备将该比特域的值与该前缀项对应的通用流表项的匹配域的数据参数进行匹配。本发明实施例可以降低报文提取通用字段的次数,提高处理效率。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种报文处理方法、设备及系统。
背景技术
开放流(OpenFlow)网络中包括OpenFlow交换机(OpenFlow Switch)和控制服务器(Controller)。OpenFlow交换机会在本地维护流表(Flow Table),如果要转发的报文在流表中有对应项,则直接根据该对应项进行快速转发;如流表中没有对应项,报文会被发送到控制服务器进行传输路径的确认,控制服务器在确认传输路径后会向OpenFlow交换机下发流表,OpenFlow交换机根据控制服务器下发的流表进行转发。
流表可以包括一个或多个流表项,每个流表项用于匹配报文,包含匹配域(matchfield)字段和指令集(instructions)等。当接收的报文的字段与匹配域中的内容匹配时,则OpenFlow交换机按照指令集中的动作(action)进行处理,例如将报文转发到指定的输出端口,丢包、修改报文头或者转发到群组表等。
通用流处理实现了转发面与具体协议格式无关的原子处理,OpenFlow交换机能够对收到的报文中的任意比特域与预设的值进行比较,如果相等则匹配成功。为了指定分组报文中的任意比特域,采用偏移量(offset)、长度(size)、比特掩码(mask)和数据(data)这4个参数描述一个用于匹配的比特域的特征。offset表示偏移量,以交换机入接口收到的分组帧起始位置算起;size指定offset后面连续比特的长度,offset和size共同指定分组数据报文中一个确定长度的连续的比特字段;mask表示offset和size指定比特字段内的比特掩码,指定该比特字段内哪些比特位参与匹配操作。mask长度为size字节长,mask为可选项,如果不包括mask,则表明指定的整个比特字段作为匹配用的比特域;data表示匹配用的比特域的所需满足的取值。示例性的,实现通用匹配的过程为:OpenFlow交换机的流表中增加通用匹配流表项,包含offset、size、mask和data。当OpenFlow交换机接收到分组数据报文后,如果该报文按照offset、size、mask指定的比特域的值等于data值,则匹配成功,然后OpenFlow交换机可按照流表项中指定的动作(action)执行后续操作。
上述的offset和size可以称为前缀项,offset、size和mask也可以称为前缀项,即前缀项包括offset和size,或者包括offset、size和mask。
在实践中,通用匹配的处理效率较低。
发明内容
有鉴于此,本发明实施例提供了一种报文处理方法、设备及系统,用于解决通用匹配处理效率较低的问题。
第一方面,提供了一种报文处理方法,包括:
交换设备接收报文,其中所述交换设备上有以前缀项为索引建立的所述前缀项和通用流表项的对应关系,所述前缀项对应的通用流表项的匹配域包括所述前缀项;
所述交换设备根据所述前缀项获取所述报文中用于匹配的比特域;
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第一方面,在第一方面的第一种可能的实现方式中,所述交换设备上还有和所述通用流表项对应的精确流表项,该方法还包括:
所述交换设备将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项获取所述报文中用于匹配的比特域;或者,
所述交换设备在将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,还包括:
所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系。
结合第一方面或第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在所述交换设备以所述前缀项为索引,建立所述前缀符与所述交换设备上的通用流表项的对应关系之前,所述方法还包括:
所述交换设备接收控制设备发送的前缀项配置消息,所述前缀项配置消息包括所述前缀项。
结合第一方面或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:
所述交换设备接收所述控制设备发送的特征请求消息;
所述交换设备发送特征回复消息至所述控制设备,其中,所述特征回复消息指示所述交换设备支持通用匹配,以便所述控制设备根据所述特征回复消息发送所述前缀项配置消息。
第二方面,提供一种报文处理方法,包括:
交换设备接收前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中所述前缀项对应的通用流表项的匹配域包括所述前缀项,以使所述交换设备接收到报文后,根据所述前缀项提取用于匹配的比特域,并将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第二方面,在第二方面的第一种实现方式中,还包括:所述交换设备接收到报文后,根据所述前缀项提取用于匹配的比特域;所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第二方面或者第二方面的第一种实现方式,在第二方面的第二种实现方式中,还包括:所述交换设备接收控制设备发送的特征请求消息,并向所述控制设备发送特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型,以便所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配时,发送所述前缀项配置消息。
结合第二方面的第一种或者第二种实现方式,在第二方面的第三种实现方式中,所述交换设备上还存有精确流表项,所述精确流表项与所述前缀项对应的通用流表项对应,所述方法还包括:所述交换设备将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取用于匹配的比特域;或者,所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
第三方面,提供了一种报文处理方法,包括:
控制设备生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述控制设备向交换设备发送所述前缀项配置消息,以便所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项。
结合第三方面,在第三方面的第一种可能的实现方式中,还包括:
所述控制设备在下发通用流表项至所述交换设备的情况下,对所述下发的通用流表项对应的前缀项进行统计;
所述控制设备根据统计结果确定所述前缀项配置消息中包含的前缀项。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述控制设备向交换设备发送所述前缀项配置消息,包括:
所述控制设备发送多条所述前缀项配置消息至虚拟层设备,以使所述虚拟层设备整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备。
结合第三方面或第三方面的第一种或第二种可能的实现方式,在第三方面的第三种可能的实现方式中,还包括:
所述控制设备向所述交换设备发送特征请求消息,并接收所述交换设备发送的特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型;
所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配。
第四方面,提供了一种交换设备,包括:
存储单元,用于存储以前缀项为索引建立的所述前缀项和通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项;
接收单元,用于接收报文;
获取单元,用于根据所述前缀项获取所述报文中用于匹配的比特域;
第一匹配单元,用于将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第四方面,在第四方面的第一种可能的实现方式中,所述存储单元还用于存储和所述通用流表项对应的精确流表项;所述交换设备还包括第二匹配单元;所述第二匹配单元,用于在将所述报文与所述精确流表项进行匹配;其中,所述第一匹配单元,具体用于当所述第二匹配单元匹配成功的情况下,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述存储单元还用于存储和所述通用流表项对应的精确流表项;所述交换设备还包括第三匹配单元;所述第三匹配单元,用于在所述第一匹配单元匹配成功的情况下,将所述报文与所述精确流表项进行匹配。
结合第四方面或第四方面的第一种或第二种可能的实现方式,在第四方面的第三种可能的实现方式中,还包括建立单元,所述建立单元,用于以所述前缀项为索引,建立所述前缀项与所述通用流表项的对应关系。
结合第四方面,或者第四方面的第一种、第二种或者第三种实现方式,在第四方面的第四种实现方式中,所述接收单元还用于接收控制设备发送的前缀项配置消息,所述前缀项配置消息包括所述前缀项。
结合第四方面,或者第四方面的第一种、第二种、第三种或者第四种实现方式,在第四方面的第五种实现方式中,所述接收单元,还用于接收所述控制设备发送的特征请求消息;所述交换设备还包括发送单元,用于发送特征回复消息至所述控制设备,其中,所述特征回复消息指示所述交换设备支持通用匹配,以便所述控制设备根据所述特征回复消息发送所述前缀项配置消息。
第五方面,提供了一种交换设备,包括:存储器、处理器和通信单元;
所述存储器,用于存储以前缀项为索引建立的所述前缀项和通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项;
所述通信单元,用于接收报文;
所述处理器,用于根据所述前缀项获取所述报文中用于匹配的比特域,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第五方面,在第五方面的第一种实现方式中,所述存储器还用于存储和所述通用流表项对应的精确流表项;所述处理器用于将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配,包括:所述处理器用于将所述报文与所述精确报文进行匹配,匹配成功后,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第五方面,在第五方面的第二种实现方式中,所述存储器还用于存储和所述通用流表项对应的精确流表项;所述处理器还用于在所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功的情况下,将所述报文与所述精确流表项进行匹配。
结合第五方面,或者第五方面的第一种或者第二种实现方式,在第五方面的第三种实现方式中,所述处理器还用于以所述前缀项为索引,建立所述前缀项与所述通用流表项的对应关系。
结合第五方面,或者第五方面的第一种、第二种或者第三种实现方式,在第五方面的第四种实现方式中,所述通信单元还用于接收控制设备发送的前缀项配置消息,所述前缀项配置消息包括所述前缀项。
结合第五方面的第四种实现方式,在第五方面的第五种实现方式中,所述通信单元还用于接收所述控制设备发送的特征请求消息,并发送特征回复消息至所述控制设备,其中,所述特征回复消息指示所述交换设备支持通用匹配,以便所述控制设备根据所述特征回复消息发送所述前缀项配置消息。
第六方面,提供了一种交换设备,包括:
接收单元,用于接收前缀项配置消息,所述前缀项配置消息中包括前缀项;
建立单元,用于以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中所述前缀项对应的通用流表项的匹配域包括所述前缀项,以使所述交换设备接收到报文后,根据所述前缀项提取用于匹配的比特域,并将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第六方面,在第六方面的第一种实现方式中,所述接收单元还用于接收报文;
所述交换设备还包括:
提取单元,用于根据所述前缀项从所述报文提取用于匹配的比特域;
匹配单元,用于将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第六方面,或者第六方面的第一种实现方式,在第六方面的第二种实现方式中,所述接收单元还用于接收控制设备发送的特征请求消息,所述交换设备还包括发送单元,用于向所述控制设备发送特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型,以便所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配时,发送所述前缀项配置消息。
结合第六方面的第一种或者第二种实现方式,在第六方面的第三种实现方式中,所述交换设备上还存有精确流表项,所述精确流表项与所述前缀项对应的通用流表项对应,所述匹配单元还用于将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取用于匹配的比特域;或者所述匹配单元还用于将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
第七方面,提供了一种交换设备,包括:通信单元,存储器和处理器;
所述通信单元,用于接收前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述处理器,用于以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中所述前缀项对应的通用流表项的匹配域包括所述前缀项,以使所述交换设备接收到报文后,根据所述前缀项提取用于匹配的比特域,并将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配;
所述存储器,用于存储所述前缀项,所述通用流表项和所述前缀项与所述通用流表项的对应关系。
结合第七方面,在第七方面的第一个实现方式中,所述通信单元还用于接收报文;所述处理器还用于根据所述前缀项从所述报文提取用于匹配的比特域,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
结合第七方面,或者第七方面的第一种实现方式,在第七方面的第二种实现方式中,所述通信单元还用于接收控制设备发送的特征请求信息,向所述控制设备发送特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型,以便所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配时,发送所述前缀项配置消息。
结合第七方面的第一种或者第二种实现方式,在第七方面的第三种实现方式中,所述存储器还用于存储精确流表,所述精确流表项与所述前缀项对应的通用流表项对应,所述处理器还用于将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取用于匹配的比特域,或者所述处理器还用于,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
第八方面,提供了一种控制设备,包括:
生成单元,用于生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
发送单元,用于向交换设备发送所述前缀项配置消息,以便所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项。
结合第八方面,在第八方面的第一种可能的实现方式中,还包括:
统计单元,用于在下发通用流表项至所述交换设备的情况下,对所述下发的通用流表项对应的前缀项进行统计;
确定单元,用于根据统计结果确定所述前缀项配置消息中包含的前缀项。
结合第八方面或者第八方面的第一种可能的实现方式,在第八方面第二种可能的实现方式中,所述发送单元具体用于发送多条所述前缀项配置消息至虚拟层设备,以使所述虚拟层设备整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备。
结合第八方面,或者第八方面的第一种或者第二种可能的实现方式,在第八方面第三种可能的实现方式中,所述发送单元还用于向所述交换设备发送特征请求消息;所述控制设备还包括接收单元和能力确定单元;所述接收单元,用于接收所述交换设备发送的特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型;所述能力确定单元,用于根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配。
第九方面,提供了一种控制设备,包括:通信单元和处理器;
所述处理器用于生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述通信单元用于向交换设备发送所述前缀项配置消息,以便所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项。
结合第九方面,在第九方面的第一种可能的实现方式中,所述处理器还用于在下发通用流表项至所述交换设备的情况下,对所述下发的通用流表项对应的前缀项进行统计,根据统计结果确定所述前缀项配置消息中包含的前缀项。
结合第九方面或者第九方面的第一种可能的实现方式,在第九方面的第二种可能的实现方式中,所述通信单元具体用于发送多条所述前缀项配置消息至虚拟层设备,以使所述虚拟层设备整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备。
结合第九方面,或者第九方面的第一种或者第二种可能的实现方式,在第九方面第三种可能的实现方式中,所述通信单元还用于向所述交换设备发送特征请求消息,接收所述交换设备发送的特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型;所述处理器还用于根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配。
第十方面,提供了一种报文处理系统系统,包括上述任一一种交换设备和任一一种控制设备。
通过上述技术方案,本发明实施例在交换设备上会获取前缀项,交换设备接收到报文后首先会根据该前缀项提取用于匹配的比特域,之后才将用于匹配的比特域与通用流表中的通用流表项进行匹配,这样就实现了对报文的预处理,不需要根据通用流表中每个通用流表项对报文的用于匹配的比特域进行提取及匹配,可以降低报文提取用于匹配的比特域的次数,提高通用匹配的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种报文处理方法的流程示意图;
图2为本发明实施例中一种OpenFlow网络的结构示意图;
图3为本发明实施例提供的另一种报文处理方法的流程示意图;
图4为本发明实施例中通用流表的获取流程示意图;
图5为未优化的根据通用流表对报文进行处理的流程示意图;
图6为本发明实施例中根据通用流表对报文进行处理的流程示意图;
图7为本发明实施例提供的另一种报文处理方法的流程示意图;
图8为图7对应的系统结构示意图;
图9为本发明实施例提供的另一种报文处理方法的流程示意图;
图10为本发明实施例中一种根据混合流表对报文进行处理的流程示意图;
图11为本发明实施例中另一种根据混合流表对报文进行处理的流程示意图;
图12为本发明实施例提供的另一种报文处理方法的流程示意图;
图13为本发明实施例中通用流表项和精确流表项之间的映射关系的示意图;
图14为本发明实施例中另一种根据混合流表对报文进行处理的流程示意图;
图15为本发明实施例中另一种根据混合流表对报文进行处理的流程示意图;
图16为本发明实施例提供的另一种报文处理方法的流程示意图;
图17为本发明实施例提供的另一种报文处理方法的流程示意图;
图18为本发明实施例提供的一种交换设备的结构示意图;
图19为本发明实施例提供的一种控制设备的结构示意图;
图20为本发明实施例提供的一种报文处理系统的结构示意图;
图21为本发明实施例提供的另一种报文处理系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种报文处理方法的流程示意图,包括:
11:交换设备接收前缀项配置消息,所述前缀项配置消息中包括前缀项;
示例性的,前缀项配置消息中包含的前缀项的个数可以为一个或多个,具体个数可以进行预先设定。
示例性的,在前缀项配置消息中,假设前缀项的内容为offset=5,size=8,mask=11111111,或者前缀项的内容为offset=5,size=8,前述2个前缀项指示了报文从起始位置起的第6个比特位到第13个比特位的比特字段中所有的比特位参与匹配操作。再例如,有报文的字段A[0-15],表示该报文的字段共有16个比特位,比特位从0开始编号,一直递增至15,其中A[0]表示其中的第一个比特位,A[1]表示其中的第二个比特位,以此类推;当前缀项为offset=5,size=8,mask=11111111或者当前缀项为offset=5,size=8时,表示A[0-15]中的比特字段A[5-12]中所有的比特位进行匹配;又例如当mask=10100000时,表示A[5-12]中第1个和第3个比特位,即A[5]和A[7],进行匹配。
示例性的,前缀项配置消息可以用于增加、修改或者删除前缀配置表,其中当控制设备下发了多个前缀项至交换设备时,交换设备可以以列表的形式来存储所述多个前缀项,该列表可称为前缀配置表。
12:所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项,以使所述交换设备收到报文后,根据所述前缀项提取用于匹配的比特域,并将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
其中,前缀项配置消息中包括的前缀项和通用流表项的匹配域包括的前缀项的数据结构可以不同,但承载相同的内容。
示例性的,也可将建立的前缀项与通用流表项的对应关系存储在前缀配置表中,或者单独存在其他列表中,本发明实施例对此不作限制。
示例性的,假设在交换设备上存有通用流表项T1、T2、T3和T4,若T1、T2和T3都包括前缀项Prefix X,当交换设备接收到的前缀项配置消息中包括该前缀项Prefix X时,交换设备可以建立Prefix X到T1、T2和T3的对应关系,即Prefix X分别和T1、T2和T3存在对应关系。利用建立的对应关系,当交换设备收到报文,例如A[0-15]时,可以先通过Prefix X获取报文的待匹配字段,即用于匹配的比特域,例如A[2-9],再根据建立的Prefix X到T1、T2和T3的对应关系,将用于匹配的比特域A[2-9]的值,分别与T1、T2和T3中匹配域的数据参数进行匹配,这样在进行与T1、T2和T3匹配的过程中,只需要获取1次用于匹配的比特域A[2-9]。而在实践中,由于没有建立前缀项与交换设备上的通用流表项的对应关系,进而无法获知用于匹配的比特域A[2-9]可以用于T1、T2和T3的匹配,当交换设备收到报文A后,分别与T1、T2和T3进行匹配的过程中,都需要各获取一次用于匹配的比特域A[2-9],即共获取3次用于匹配的比特域A[2-9],造成了重复的获取操作。因此,通过在交换设备上建立前缀项和通用流表项的对应关系,可以在匹配过程中利用已经获取的用于匹配的比特域和多个通用流表项进行匹配,而不必针对每个通用流表项都进行一次获取用于匹配的比特域的操作,从而提高了通用流表项的处理效率。
为了更清楚的对本发明实施例的方案进行说明,在本发明实施例中,采用本发明实施例提出的通过建立前缀项和通用流表项的对应关系来进行流表项的匹配的过程称之为优化的通用匹配的处理过程;对应的,未采用本发明实施例提出的通过建立前缀项和通用流表项的对应关系,而直接将报文与通用流表项进行匹配的过程称之为普通的通用匹配的处理过程
当交换设备上建立了前缀项和通用流表项的对应关系后,在交换设备收到报文后,可以进行优化的通用匹配的处理过程。
示例性的,优化的通用匹配的处理过程,可以包括:
所述交换设备接收到报文后,根据所述前缀项提取用于匹配的比特域;
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
作为一种可选的实施方式,如图1所示的方法,在步骤11和12后,还可以包括优化的通用匹配的处理过程。
本领域技术人员应知,当交换设备上已经存有前缀项和通用流表项的对应关系的情况下(例如,如图1所示的方式,由交换设备建立前缀项和通用流表项的对应关系,也可以由交换设备从其他已建立前缀项和通用流表项的对应关系的交换设备上获取),交换设备后续收到报文后,可以直接执行优化的通用匹配的处理过程,而不必执行步骤11和12。
作为一种可选的实施方式,图1所示的方法还可以包括:
所述交换设备接收所述控制设备发送的特征请求消息,并向所述控制设备发送特性回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型,以便所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配时,发送所述前缀项配置消息。
示例性的,控制设备在向交换设备发送前缀项配置消息之前,可以先获知交换设备是否具有处理通用匹配的能力,可以理解为具有处理通用流表项的能力,也可以理解为处理前缀项的能力。通常可以通过请求消息来请求交换设备上报是否具备通用匹配的能力,本发明实施例对于此类请求消息的具体实现方式并不作限定。
作为一种可选的实施方式,交换设备上还可以存有精确流表项,即交互设备上同时存储精确流表项和通用流表项,其中,精确流表项和通用流表项之间也可以存在对应关系。例如存在精确流表项T1和通用流表项T2,T1和T2存在对应关系,此时T1和T2的对应关系可以表示为:先进行T1的匹配,匹配通过后才进行T2的匹配;也可以表示为:先进行T2的匹配,匹配通过后再进行T1的匹配。鉴于此,图1所示的方法还可以包括:述交换设备将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取用于匹配的比特域;或者该方法还可以包括:所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
本领域技术人员应知,图1有关的实施例中的关于前缀项、前缀项配置消息、前缀配置表、前缀项和通用流表项的对应关系、通用匹配的能力等概念和内容的解释以及举例也适用于本发明的其他实施例中。
示例性的,本发明实施例中的控制设备可以为OpenFlow网络中的控制服务器(Controller),交换设备可以为OpenFlow网络中的OpenFlow交换机(OpenFlow Switch)。
示例性的,该前缀项配置消息可以是控制设备发送给交换设备的,也可以是其他设备发送给交换设备的。
如图2所示,给出了一种OpenFlow网络,该网络中包括控制设备、交换设备和主机,图1所示的方法可以在图2所示的网络中应用。在图2中,由控制设备向交换设备下发前缀项配置消息。以下将以图2所示的网络为例,对本发明实施例提供的一种报文处理的方法进行举例说明。
在图3所示的场景中,控制设备预先获知交换设备是否能够支持通用匹配,当控制设备确定交换设备能够支持通用匹配的情况下,控制设备根据向交换设备配置通用流表项的过程中的所涉及的通用流表项,将所涉及的通用流表项对应的前缀项组成前缀池,并将前缀池中对应通用流表项较多的前缀项通过前缀项配置消息发送至交换设备,从而交换设备可以根据下发的前缀项建立前缀配置表,并将建立的前缀项和通用流表项的对应关系存储在前缀配置表中,在交换设备收到报文后,可以根据前缀项和通用流表项的对应关系来执行优化的通用匹配的处理过程。以下将对图3所示的场景进行详细的说明。
参见图3,31-32为控制设备获知交换设备是否能够支持通用匹配的过程,该过程不是必须执行的过程,该过程的执行与否可以参考具体的网络情况,例如图2中和控制设备连接的所有交换设备都支持通用匹配,则没有必要执行此过程,若图2中的控制设备上的配置信息已经表明部分与其连接的交换设备支持通用匹配,则控制设备可以与其他未表明是否支持通用匹配的交换设备执行此过程。该过程可以包括:
31:控制设备向交换设备发送特征请求(feature request)消息。
其中,控制设备向交换设备发送特征请求消息的目的是为了获知交换设备是否支持通用匹配,本领域技术人员应知,其他的形式的消息也可来获知交换设备是否支持通用匹配,例如通用匹配能力查询消息等,在此不作限制。
32:交换设备向控制设备发送特征回复(feature reply)消息,表明是否支持通用匹配。
其中,交换设备可以直接返回是否支持通用匹配至控制设备,也可以返回支持的匹配类型至控制设备,从而使控制设备获知交换设备是否支持通用匹配。
示例性的,交换设备支持的匹配类型可以包括:精确匹配和/或通用匹配。精确匹配是指交换设备可以根据精确流表项对报文进行处理,通用匹配是指交换设备可以根据通用流表进行处理。
例如,交换设备通过feature reply消息,回复自身支持通用匹配和/或精确匹配。
本实施例以控制设备支持通用匹配为例。
通常,一个流表包括一个或多个流表项,每个流表项包括匹配域(match field)和指令集(instructions),当报文的字段与匹配域匹配时,交换设备根据指令集中的动作(action)对报文进行处理。
一种可选的观点认为:精确流表项与通用流表项的区别在于:精确流表的匹配域中会包含具体的字段名称,例如源IP地址、目的IP地址、端口号等;通用流表的匹配域中不包含具体的字段名称,而是采用offset和size表示要匹配的字段在报文中的位置,用mask和data表示要匹配的取值,例如,表明要匹配的字段为从分组帧起始位置算起的第M个字节到第N个字节的字段。由于目前的精确流表中的具体字段名称只是第二层~第四层(L2~L4)的字段,存在一定的限制。而通用流表采用offset、size和mask这种方式,并不限定在L2~L4,可以一直指示到第七层(L7),即通用流表可以指示的字段包括L2~L7的字段。
33:在交换设备建立前缀配置表之前,控制设备和交换设备之间可以进行配置通用流表项的过程。
作为一种可选的实施方式,在交换设备上配置有通用流表项之后,交换设备可以进行普通的通用匹配的处理过程,如步骤33’所示。
示例性的,配置通用流表项的过程也可以理解为交换设备从控制设备获取通用流表项的过程。
示例性的,配置通用流表项的过程可以参见图4,包括:
41:交换设备接收到报文后,如果在交换设备上没有存储有与该报文匹配的通用流表项时,交换设备向控制设备发送流表项请求报文(packet_in),该流表项请求报文中封装有接收到的报文。
42:控制设备接收到交换设备发送的流表项请求报文后,确定该流表项请求报文封装有交换设备接收到的报文对应的通用流表项,并向交换设备发送流表项配置(flow_mod)消息,其中,该流表项配置消息中包含该通用流表项。
作为一种可选的实施方式,交换设备可以将收到的通用流表项存入列表中,该列表可以称之为通用流表。
至此,交换设备获取了该报文对应的通用流表项,并可以根据获取的通用流表项对报文进行相应的处理,即可对报文进行普通的通用匹配的处理过程。
示例性的,普通的通用匹配的处理过程可以参见图5,包括:
当交换设备接收到报文的情况下:
51:交换设备遍历通用流表中的通用流表项;
52:交换设备根据遍历的通用流表项的匹配域中的offset,size和mask(其中mask为可选)获取报文的待匹配的比特域,并将提取出的待匹配的比特域与该通用流表项的匹配域中的数据参数(data)进行比较,得到匹配结果。
其中,每个通用流表项可以包含匹配域(match field)和指令集(instructions),匹配域中可以记录前缀项(即offset、size和mask,其中mask为可选)以及前缀项对应的值(也可以理解为数据参数,即data),指令集中可以记录动作(action),当根据前缀项获取的报文中的待匹配的比特域的值与通用流表项的匹配域的值(data)匹配时,可以对该报文执行相应的指令集中的动作。
例如,当前遍历的通用流表项的前缀项为第一前缀项,第一前缀项具体包括offset1、size1和mask1,该第一前缀项对应的值为data1,那么交换设备根据该offset1、size1从接收的报文中提取出对应的第一通用字段,通用字段也可以称为用于匹配的比特域,采用mask1对提取出的第一通用字段进行加掩,并将加掩后的第一通用字段与data1进行比较,如果两者相同,则匹配成功,否则失败。例如通过offset1和size1提取出一段8个字节的字段如00101101,掩码为了提取中间4位,可以采用或的操作或者与的操作,或的操作设定为mask1=11000011,与的操作设定为mask1=00111100加掩后,得到11101111,而data1为11101111,则匹配。当然,可以理解的是,在采用offset、size、mask和data进行匹配时并不限于上述的匹配方式,例如还可以进行哈希查找等,上述匹配方式只是一种示例,还可以采用其它定义的匹配方式。
53:交换设备判断匹配是否成功,若是,执行54,否则执行55。
54:交换设备根据该通用流表项的指令集中动作进行处理。之后结束。
作为一种可选的实施方式,交换设备在匹配成功后,可以先记录匹配的通用流表项中的指令集中的动作,再遍历其他的通用流表项,若有其他流表项也与该接收到的报文匹配,一并将其他流表项的指令集的动作记录下来,等到流表中所有流表项都遍历完成后,再执行记录下来的动作。
55:交换设备判断遍历是否完成,若没有匹配的通用流表项,可以执行56,否则重复执行52及其后续步骤。
56:交换设备将该报文封装到流表请求报文(packet_in)中发送给控制设备,用以请求控制设备下发与该接收到的报文相匹配的流表项。之后结束。其中,步骤56并不是普通的通用匹配的处理过程的必选步骤。
通过图5所示的流程可以看出,在普通的通用匹配的处理过程中,需要遍历通用流表中的流表项,因此针对每个遍历到的通用流表项,都需要提取报文的待匹配的比特域。但是,这些通用流表项中可能存在相同的前缀项,例如,在上述遍历过程中遍历了100项通用流表项,可能其中20个通用流表项的前缀项(offset,size和mask,其中mask为可选)相同,那么在匹配这20个通用流表项时,其实只需要在报文中提取1次待匹配的比特域,再分别与这20个通用流表项的匹配域的数据参数进行匹配,而在普通的通用匹配的处理过程中,在每一次与通用流表项匹配的过程中,都需要提取一次待匹配的比特域,因此需要在报文中提取20次重复的待匹配的比特域,这样将会造成效率低下。为了提高效率,本实施例可以在交换设备中建立前缀配置表,将具有相同前缀项的通用流表项归为一类,在匹配时,针对每一类通用流表项只需要提取一次待匹配的比特域,再与该类下的每一个通用流表项的匹配域的数据参数进行匹配,这样可以降低提取次数。例如在上述场景下,本实施例通过建立前缀配置表,将这20个具有相同前缀项的通用流表项归为一类,在提取报文的带匹配字段时可以仅提取1次,而不避提取20次。示例性的,在交换设备上建立前缀配置表可以采用如下流程:
34:控制设备建立前缀池(prefix pool)。
控制设备在每次下发流表配置消息时,可以统计其中携带的每个通用流表项中的前缀项的情况,根据优先级或者次数等对前缀项进行排列,建立前缀池。例如,经过统计在第一时间内包含第一前缀项的通用流表项发送了5次,包含第二前缀项的通用流表项发送了3次,包含第三前缀项的通用流表项发送了1次,那么建立的前缀池中包括第一前缀项、第二前缀项和第三前缀项,且从前到后的顺序为:第一前缀项、第二前缀项和第三前缀项。
其中,步骤34是可选的,下发给交换设备的前缀项也可以通过配置,或者与其他设备协商等方式实现,在此不作限制。通过统计每个前缀项的使用情况,并根据使用情况下发前缀项至交换设备,可以使交换设备建立更加合理、科学的前缀项配置表,以期进一步提高交换设备的处理效率。
35:控制设备向交换设备发送前缀符修改(generic prefix modification)消息,其中携带从前缀池中选取的前缀项。
示例性的,携带的前缀项的个数可以预先设定,例如,设定个数为2个,那么在上述场景下,该前缀项配置消息中携带的前缀项为第一前缀项和第二前缀项。
该前缀项配置消息可以具体用于增加、修改或删除前缀配置表。
该前缀项配置消息的结构可以如表1所示:
表1
struct ofp header | header |
uint8t | prefix table id |
uint8t | command |
struct prefix | prefix[] |
也就是说,前缀项配置消息中可以包括如下字段:header、prefix table id、command和prefix[],其中,header为OpenFlow消息头;prefix table id为前缀配置表序号;command为命令类型,例如增加、修改或删除;prefix[]为前缀项,例如,上述的第一前缀项和第二前缀项,该前缀项的个数是可变的。
36:交换设备根据前缀项配置消息建立前缀配置表。
其中,前缀配置表也可以称为集合或其它名称。
例如,前缀项配置消息中包含的prefix table id为id1,prefix[]包括第一前缀项和第二前缀项,command为增加,那么交换设备可以建立标识为id1的前缀配置表,该前缀配置表中包括的前缀项为第一前缀项和第二前缀项。当然,可以理解的是,如果交换设备中已经建立标识为id1的前缀配置表,那么交换设备可以在已有的前缀配置表中增加第一前缀项和第二前缀项。
37:在交换设备建立前缀配置表之后,控制设备和交换设备之间可以采用优化的通用匹配的处理过程对报文进行处理。
示例性的,参见图6,该优化的通用匹配的处理过程可以包括:
交换设备接收到报文后;
61:交换设备从前缀配置表中获取前缀项,并根据前缀项从报文中提取出待匹配的比特域;
62:交换设备将提取出的待匹配的比特域与上述前缀项对应的通用流表项的匹配域中的数据参数进行比较,得到匹配结果。
一般来说,通用流表项中可能存在相同的前缀项,而建立的前缀配置表中包含不同的前缀项。
例如,通用流表项中包含100个前缀项,但可能只有20个不同的前缀项,那么建立的前缀配置表中可以包含该20个不同的前缀项。因此,在提取待匹配的比特域时,普通的通用匹配的处理过程中需要提取待匹配的比特域100次,而本实施例仅需要提取20次。可以提高查找效率。
63:交换设备判断匹配是否成功,若是,执行64,否则可以执行65。
在匹配时可以以前缀项为索引,获取对应的通用流表项,例如,根据前缀配置表中的第一前缀项从接收的报文中提取出第一待匹配的比特域,且第一通用流表项的匹配域中包括第一前缀项,那么可以将报文中第一通用字段的值与第一通用流表项的匹配域中的数据参数(data)进行比较,如果两者相同,则匹配成功,否则失败。
64:交换设备根据匹配成功的通用流表项的指令集中动作进行处理。至此,优化的通用匹配的处理过程结束。
若没有通用流表项与该报文匹配,则可以执行步骤65。
65:交换设备将该报文封装到入分组(packet_in)报文中发送给控制设备。其中,步骤65并不是优化的通用匹配的处理过程的必选步骤。
另外,交换设备获取通用流表项的流程可以参见图4,在此不再赘述。
本实施例通过在交换设备中建立前缀配置表,交换设备接收到报文后首先根据该前缀配置表提取待匹配的比特域,可以实现对报文的预处理,避免遍历每个通用流表项时,每次都提取待匹配的比特域,可以提高通用流表项的处理效率。
图7为本发明实施例提供的另一种报文处理方法的流程示意图,图8为图7对应的系统结构示意图,本实施中,OpenFlow网络中还包括虚拟层设备,虚拟层设备可以对转发面资源进行分片,使得各个相互隔离的具有不同转发逻辑的网络可以共享同一组物理转发面设备。虚拟层设备例如为hypervisor。
参见图7,本实施例包括:
71:第一控制设备和第二控制设备分别向虚拟层设备发送前缀项配置消息;
每个控制设备生成及发送前缀项配置消息的具体流程可以参见上述的34~35,在此不再赘述。
另外,可以理解是,本实施例的控制设备并不限于两个,也可以为至少三个,当存在至少三个控制设备时也可以采用本实施例类似的原理执行。
72:虚拟层设备对第一前缀项配置消息和第二前缀项配置消息中的前缀表进行整合。
其中,每个控制设备发送的前缀修改消息中可以包含交换设备的信息及对应的前缀表,例如,第一前缀修改消息中包含第一交换设备的信息和第二交换设备的信息以及第一交换设备的前缀表和第二交换设备的前缀表,或者仅包含第一交换设备的信息以及第一交换设备的前缀表,或者,仅包含第二交换设备的信息以及第二交换设备的前缀表,第二前缀修改消息类似。
虚拟层设备可以根据前缀修改消息中包含的交换设备的信息,对同一个交换设备对应的前缀表中相同的前缀项进行合并,例如,第一前缀修改消息中包含的第一交换设备的前缀表包含第一前缀项(具体为offset1和size1),第二前缀修改消息中包含的第一交换设备的前缀表也包含第一前缀项(具体为offset1和size1),那么虚拟层设备可以将该第一前缀项合并,使得发送给第一交换设备的该第一前缀项仅为一项,而不再是两项。
另外,上述的整合也可以是删除需要丢弃的前缀项,可以在虚拟层设备中预先定义需要丢弃的前缀项,虚拟层设备在接收到前缀修改消息后可以丢弃其中需要丢弃的前缀项。例如,虚拟层设备预先定义需要修改的前缀项为第二前缀项,如果接收的第一前缀修改消息和/或第二前缀修改消息中包含第二前缀项,则丢弃该第二前缀项,也就是整合后的前缀表中不再包含第二前缀项。
再者,上述的整合也可以是分片处理。在由多个交换机构成一个大的转发网络中,可以分成多个逻辑区域,不同的逻辑区域可能有重叠,不同逻辑区域的控制设备也可能不一样。该大的转发网络中的交换机都与虚拟层设备相连,不同逻辑区域的控制设备也都与该虚拟层设备相连。针对重叠区域的交换机,重叠区域的控制设备在逻辑上看成是一个交换机,只发送一条前缀表修改消息,当该前缀表修改消息到达虚拟层设备时,虚拟层设备将其拆分成多条前缀表修改消息,分别发送给重叠区域的不同的交换机。
可以理解的是,上述的整合不限于上述的合并删除或分片处理,还可以进行其它处理。
73:虚拟层设备分别向第一交换设备和第二交换设备发送前缀项配置消息,其中分别携带整合后的前缀表。
74:第一交换设备和第二交换设备接收到前缀修改消息后,根据其中携带的整合后的前缀表建立各自的前缀配置表。
75:第一交换设备和第二交换设备分别根据各自的前缀配置表进行优化的通用匹配的处理过程。73~75的具体内容可以参见上述的36~37以及图6的内容。
本实施例通过在交换设备中建立前缀配置表,交换设备接收到报文后首先根据该前缀配置表中的前缀项预先提取报文中待匹配的比特域,再与前缀项对应的多个通用流表项的匹配域中的数据参数进行匹配,可以实现对报文的待匹配的比特域的预提取,避免在遍历每个通用流表项时,都需要提取一次待匹配的比特域,因此可以提高通用流表项的处理效率;另外,本实施例在虚拟层设备中进行整合,可以降低来自不同控制设备的重复的前缀项的个数或者丢弃需要删除的前缀项,可以进一步提高交换设备建立的前缀配置表中前缀项的有效性,进一步提高查找效率。
上述描述了优化的通用匹配的处理流程,在一些场景下,控制设备可以配置给交换设备通用流表项以及精确流表项,也就是说,交换设备既需要进行精确流表项的匹配也需要进行通用流表项的匹配,此时,可以将精确流表项和通用流表项统称为混合流表项,对于混合流表项的匹配,是指精确匹配与通用匹配混合在一起的匹配,可以称为混合匹配。混合流表项的匹配可以采用合一或分离的方式,在合一方式下,一种流表项的匹配作为另一种流表项的匹配的补充,在分离方式下,两种匹配方式独立匹配。和上面的实施例类似,精确流表项的匹配可以称为精确匹配,通用流表项的匹配可以称为通用匹配,在通用匹配中,采用本发明的思想进行的优化的通用流表项的处理过程可以称为优化的通用匹配,反之未采用本发明的思想进行的普通的通用流表项的处理过程可以称为普通的通用匹配。
可选的,所述交换设备上还包括与所述前缀项对应的通用流表项对应的精确流表项,所述方法还包括:
在所述交换设备根据所述前缀项提取用于匹配的比特域之前,所述交换设备将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取于匹配的比特域;或者,
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
在上述精确匹配和通用匹配时,可以是遍历每个精确流表项以及每个通用流表项,以分别完成精确匹配和通用匹配;或者,也可以预先建立每个精确流表项与每个通用流表项的对应关系,在一种匹配(精确匹配或通用匹配)成功后,确定匹配成功的一种流表项(精确流表项或通用流表项)对应的另一种流表项(通用流表项或精确流表项),根据对应的流表项(通用流表项或精确流表项)进行另一种匹配(通用匹配或精确匹配),而不需要再遍历另一种匹配的每个流表项。
具体的,上述的在所述交换设备根据所述前缀项提取用于匹配的比特域之前,所述交换设备将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取于匹配的比特域可以具体包括:
在所述交换设备根据所述前缀项提取用于匹配的比特域之前,所述交换设备将所述报文与每个精确流表项依次进行匹配,以便在匹配成功后再依次根据每个前缀项提取用于匹配的比特域;或者,
在所述交换设备根据所述前缀项提取用于匹配的比特域之前,所述交换设备将所述报文与每个精确流表项依次进行匹配,以便在匹配成功后根据与匹配成功的精确流表项对应的通用流表项中包括的前缀项提取用于匹配的比特域。
上述的所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配可以具体包括:
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文依次与每个精确流表项进行匹配;或者,
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与匹配成功的通用流表项对应的精确流表项进行匹配。
具体可以参见后续实施例。
图9为本发明实施例提供的另一种报文处理方法的流程示意图,本实施例以合一方式下的混合匹配为例进行说明。本实施例包括:
91:交换设备向控制设备发送流表项请求报文。
其中,流表项请求报文可以是packet_in消息。
交换设备在接收到报文后,如果本身不存在对应的流表项,则可以将该报文封装到中发送给控制设备以请求新的流表项。
92:控制设备向交换设备发送流表项配置消息,包含精确流表项和通用流表项。
其中,流表项配置消息可以用于增加、修改或删除交换设备上的流表项。
示例性的,交换设备上可以预先配置好前缀配置表,若没有配置也可以通过前缀符配置消息来配置。
可选的,该方法还可以包括:
93:控制设备向交换设备发送前缀符修改消息,以便交换设备根据前缀修改消息建立前缀配置表。
控制设备生成以及发送前缀修改消息的具体内容,以及交换设备建立前缀配置表的具体内容可以参见图3中的相应步骤。
至此,交换设备可以进行混合匹配的处理。
94:交换设备对报文进行混合匹配。
交换设备以合一的方式对报文进行混合匹配的处理的流程可以参见图10,包括:
101:交换设备通过网络端口接收报文;
102:交换设备根据精确流表项从报文中提取匹配字段,并将匹配字段与精确流表项进行匹配。其中,在报文中事先定义好的字段可以称为匹配字段,例如目的IP,源IP等等。
例如,根据协议规定的设定个数的匹配字段,在报文中提取出相应设定个数的匹配字段,该匹配字段包括源IP、目的IP地址等多个字段。之后再将提取的匹配字段的数值与精确流表项中相应字段的数值进行比较,如果两者相同则匹配成功,否则失败。当然,上述匹配方式也是一种示例,在具体精确匹配时还可以采用mask进行掩码等。
103:交换设备判断精确匹配是否成功,若是,执行104,否则,执行108。
104:交换设备从前缀配置表中获取前缀项,并根据前缀项从报文中提取出待匹配的比特域;示例性的,这里获取的前缀项可以有一个或多个
105:交换设备将提取出的待匹配的比特域与前缀项对应的通用流表项的匹配域中的数据参数进行比较,得到通用匹配结果。
106:交换设备判断通用匹配是否成功,若是,执行107,否则执行108。
107:交换设备根据匹配成功的通用流表项的指令集中动作进行处理。
至此,合一方式的混合匹配的处理可以视为完成。
若,交换设备上不存在与接收到的报文相匹配的流表项时,交换设备还可以向控制设备请求与该报文相匹配的流表项,如步骤108所示。
108:交换设备将该报文封装到流表请求报文(例如:packet_in)中发送给控制设备,以请求控制设备下发与该报文相匹配的流表项。
本实施例中,当以合一方式进行混合匹配时,可以先判断精确匹配是否成功,在精确匹配成功时还需要判断通用匹配是否成功,只有在精确匹配和通用匹配都成功时才执行相应的动作。
可以理解的是,图10是先进行精确匹配再进行通用匹配,也可以是,先进行通用匹配,在通用匹配成功时再进行精确匹配及处理。
另外,图10所示的实施例中,在通用匹配时先通过前缀项提取待匹配的比特域,也可以是在精确匹配成功后采用普通的通用匹配流程,此时就不需要建立前缀配置表。
参见图11,在混合流表的场景下本发明还提供一种实施例包括:
111:交换设备根据第一流表项对接收的报文进行第一匹配;
112:所述交换设备在第一匹配成功后,根据第二流表项对所述报文进行第二匹配;
示例性的,所述第一流表项为精确流表项,所述第一匹配为精确匹配,所述第二流表项为通用流表项,所述第二匹配为通用匹配;或者,所述第一流表项为通用流表,所述第一匹配为通用匹配,所述第二流表项为精确流表,所述第二匹配为精确匹配。
可选的,当第一流表项为通用流表项时,在通用匹配时也可以首先根据前缀配置表中前缀项从报文中提取出待匹配的比特域,在采用该待匹配的比特域与通用流表项进行匹配。而具体的建立前缀配置表、提取通用字段以及匹配的具体内容可以参见上述实施例。
本实施例通过在一种匹配成功后再进行另一种匹配,可以在混合流表场景下完成报文匹配处理,提高处理效率。
图12为本发明实施例提供的另一种流表处理方法的流程示意图,本实施例以混合流表为分离方式为例。本实施例包括:
121:交换设备向控制设备发送流表项请求报文(例如:packet_in)。
交换设备在接收到第一报文后,如果在交换设备上不存在对应的流表,则可以将该第一报文封装到流表项请求报文中发送给控制设备以请求与该第一报文对应的流表项。
122:控制设备向交换设备发送流表项配置消息,包含精确流表项和通用流表项以及匹配方式。
示例性的,流表项配置消息可以用于增加、修改或删除交换设备上的流表项。
匹配方式(match type)包括:仅精确匹配、仅通用匹配、合一方式的混合匹配,分离方式的混合匹配。可以用不同的数值表示匹配方式,以便交换设备根据该数值获知匹配方式,例如,用00表示仅精确匹配(only exact match),用01表示仅通用匹配(onlygeneric match),用10表示合一方式的混合匹配(multiple match),用11标识分离方式的混合匹配。
至此,交换设备可以获取了精确流表项和通用流表项,交换设备还可以获知需要进行哪种匹配。
可选的,该方法还可以包括:
123:控制设备向交换设备发送前缀符配置消息,以便交换设备根据前缀符配置消息中的前缀项建立前缀配置表。
控制设备生成以及发送前缀符配置消息的具体内容以及交换设备建立前缀配置表的具体内容可以参见图3中的相应步骤。
124:交换设备根据流表项配置消息,建立混合流表项,该混合流表项包括通用流表项和精确流表项以及映射表,该映射表用于表明精确流表项与通用流表项的对应关系。
参见图13,交换设备在建立每个通用流表项时,插入对应的精确流表项的索引,例如,建立的通用流表项#1对应的精确流表项的索引为索引#1;在建立每个精确流表项时,插入对应的通用流表项的索引,例如,建立的精确流表项#1对应的通用流表项索引为索引#1。
125:交换设备根据混合流表项对报文进行处理。即对报文进行混合匹配的处理。
交换设备根据混合流表项对报文进行处理的流程可以参见图14,包括:
1401:交换设备通过网络端口接收报文;
1402:交换设备根据精确流表项从报文中提取匹配字段,并将匹配字段与精确流表项进行匹配。其中匹配字段的说明可以参见图10所示的实施例,此处不做赘述。
例如,精确流表项表明要匹配的字段为源IP地址,那么可以在报文中直接提取出源IP地址,并将该报文的源IP地址的数值与精确流表项中的源IP地址的数值进行比较,如果两者相同则匹配成功否则失败。
1403:交换设备判断是否需要进行通用匹配,若是,执行1405,否则执行1404。
交换设备可以根据匹配方式进行判断。匹配方式的说明可以参照图12所示的实施例,此处不做赘述。
1404:交换设备处理匹配的精确流表项的指令集中的动作。
示例性的,与报文相匹配的精确流表项可以是一个,也可以多个,在多个的情况下,交换设备可以依次执行匹配的精确流表项的指令集中的动作,也可以按照动作的优先级执行匹配的精确流表项的指令集中的动作,也可以只执行匹配的精确流表项的指令集中的优先级最高的动作。本发明其他实施例中关于交换设备处理匹配的精确流表项的指令集中的动作的说明与本实施例类似。
示例性的,如果精确匹配失败,可以向控制设备发送流表项请求(packet_in)消息。
1405:交换设备根据匹配的精确流表项确定对应的通用流表项。
例如,在根据精确流表项对报文进行提取及匹配的精确流表项为精确流表项#1,再根据精确流表项与通用流表项的映射关系,如精确流表项#中插入的通用流表项的索引为索引#1,那么确定出的通用流表项为索引#1的通用流表项。这里确定出的通用流表项可以是一个,也可以是多个。
1406:交换设备根据该对应的通用流表项,从报文中提取待匹配的比特域。
例如,索引#1的通用流表项的匹配域中会包含前缀项(offset、size和mask),根据该offset、size和mask从报文中提取出对应的待匹配的比特域。
示例性的,若索引#1的通用流表项为多个,采用普通的通用匹配需要为每一个对应的通用流表项提取待匹配的比特域。若索引#1的多个通用流表项中有部分通用流表项的匹配域中的前缀项相同,也可以采用优化的通用匹配,只为前缀项相同的多个通用流表项提取一次待匹配的比特域。
1407:交换设备将提取出的待匹配的比特域与该通用流表项中匹配域的数据参数进行比较,得到通用匹配结果。
例如,根据索引#1的通用流表项提取的待匹配的比特域为第一比特域,之后将该第一比特域与索引#1的通用流表项的匹配域中的数据参数(data)进行比较,如果两者数值相同则通用匹配成功,否则通用匹配失败。
1408:交换设备判断通用匹配是否成功,若是,执行1409,否则执行1410。
示例性的,在有多个通用流表项的情况下,只要其中有一个通用流表项可以匹配即可认为通用匹配成功。
1409:交换设备根据该通用流表项的指令集中动作进行处理。
示例性的,如前所述与报文相匹配的通用流表项可以是一个,也可以多个,在多个的情况下,交换设备可以依次执行匹配的通用流表项的指令集中的动作,也可以按照动作的优先级执行匹配的通用流表项的指令集中的动作,也可以只执行匹配的通用流表项的指令集中的优先级最高的动作。本发明其他实施例中关于交换设备处理匹配的通用流表项的指令集中的动作的说明与本实施例类似。
若没有通用流表项与交换设备接收到的报文相匹配,交换设备可以结束流程,也可以向控制设备请求与该报文匹配的流表项。例如:可以参考步骤1410。
1410:交换设备将该报文封装到流表请求(packet_in)消息中发送给控制设备。
可以理解的是,图14是先进行精确匹配再确定是否进行通用匹配,在需要通用匹配时根据匹配到的精确匹配项对应的通用匹配项进行处理,也可以是,先进行通用匹配再确定是否进行精确匹配,在需要精确匹配时根据匹配到的通用匹配项对应的精确匹配项进行处理。
另外,在先进行通用匹配时可以是先根据前缀配置表对报文进行通用字段提取再与通用流表的各通用流表项进行匹配。此处不做赘述,请参考前述相关的实施例。
参见图15,在混合流表的场景下本发明还提供一种实施例包括:
151:交换设备根据第一流表项对接收的报文进行第一匹配;
152:所述交换设备根据接收的匹配方式确定需要进行第二匹配后,根据预先建立的对应关系确定第一匹配时采用的第一流表项对应的第二流表项,并采用所述对应的第二流表项对所述报文进行第二匹配;
其中,所述第一流表项为精确流表项,所述第一匹配为精确匹配,所述第二流表项为通用流表项,所述第二匹配为通用匹配;或者,所述第一流表项为通用流表项,所述第一匹配项为通用匹配项,所述第二流表项为精确流表项,所述第二匹配为精确匹配。
上述的预先建立的对应关系就是如图13所示的通用流表项与精确流表项的映射关系,具体建立的流程可以参见上述实施例。
可选的,当第一流表项为通用流表项时,在通用匹配时也可以首先根据前缀配置表中前缀项从报文中提取出待匹配的比特域,在采用该通用字段与通用流表项进行匹配。而具体的建立前缀配置表、提取待匹配的比特域以及匹配的具体内容可以参见上述相关实施例。
本实施例通过在混合流表时建立精确流表项与通用流表项的映射关系,可以保证通用流表和精确流表之间的唯一性,提高了通用流处理的应用价值。
图16为本发明实施例提供的另一种报文处理方法的流程示意图,包括:
161:交换设备接收报文,其中所述交换设备上有以前缀项为索引建立的所述前缀项和通用流表项的对应关系,所述前缀项对应的通用流表项的匹配域包括所述前缀项;
162:所述交换设备根据前缀项提取所述报文中用于匹配的比特域;
163:所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
可选的,所述交换设备上还有和所述通用流表项对应的精确流表项,所述方法还包括:
在所述交换设备根据前缀项提取所述报文中用于匹配的比特域之前,所述交换设备将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取所述报文中用于匹配的比特域;或者,
所述交换设备在将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
图17为本发明实施例提供的另一种报文处理方法的流程示意图,包括:
171:控制设备生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
172:所述控制设备向交换设备发送所述前缀项配置消息,以便所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项。
其中,前缀项配置消息中包括的前缀项和通用流表项的匹配域包括的前缀项的数据结构可以不同,但承载的内容相同。
可选的,该方法还包括:
所述控制设备向所述交换设备发送特征请求消息,并接收所述交换设备发送的特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型;
所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配。
可选的,所述控制设备向交换设备发送所述前缀项配置消息,包括:
所述控制设备发送多条所述前缀项配置消息至虚拟层设备,以使所述虚拟层设备整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备。
可选的,该方法还包括:
所述控制设备在下发通用流表项至所述交换设备的情况下,对所述下发的通用流表项对应的前缀项进行统计;
所述控制设备根据统计结果确定所述前缀项配置消息中包含的前缀项。
本实施例通过控制设备向交换设备发送前缀项,可以使得交换设备接收到报文后首先根据该前缀项从报文中提取通用字段,可以实现对报文的预处理,避免遍历每个通用流表项,可以提高查找效率。
图18为本发明实施例提供的一种交换设备的结构示意图,该设备180包括通信单元181、处理器182和存储器183。
所述存储器183,用于存储以前缀项为索引建立的所述前缀项和通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项;
所述通信单元181,用于接收报文;
所述处理器182,用于根据所述前缀项获取所述报文中用于匹配的比特域,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
可选的,所述存储器183还用于存储和所述通用流表项对应的精确流表项;所述处理器182用于将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配,包括:所述处理器182用于将所述报文与所述精确报文进行匹配,匹配成功后,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
可选的,所述存储器183还用于存储和所述通用流表项对应的精确流表项;所述处理器还用于在所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功的情况下,将所述报文与所述精确流表项进行匹配。
可选的,所述处理器182还用于以所述前缀项为索引,建立所述前缀项与所述通用流表项的对应关系.
可选的,所述通信单元181还用于接收控制设备发送的前缀项配置消息,所述前缀项配置消息包括所述前缀项。
所述通信单元181还用于接收所述控制设备发送的特征请求消息,并发送特征回复消息至所述控制设备,其中,所述特征回复消息指示所述交换设备支持通用匹配,以便所述控制设备根据所述特征回复消息发送所述前缀项配置消息。
作为另一种可选的实施方式,交换设备可以包括:
存储单元,用于存储以前缀项为索引建立的所述前缀项和通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项;
接收单元,用于接收报文;
获取单元,用于根据所述前缀项获取所述报文中用于匹配的比特域;
第一匹配单元,用于将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
可选的,所述存储单元还用于存储和所述通用流表项对应的精确流表项;所述交换设备还包括第二匹配单元;所述第二匹配单元,用于在将所述报文与所述精确流表项进行匹配;其中,所述第一匹配单元,具体用于当所述第二匹配单元匹配成功的情况下,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
可选的,所述存储单元还用于存储和所述通用流表项对应的精确流表项;所述交换设备还包括第三匹配单元;所述第三匹配单元,用于在所述第一匹配单元匹配成功的情况下,将所述报文与所述精确流表项进行匹配。
可选的,交换设备还包括建立单元,所述建立单元,用于以所述前缀项为索引,建立所述前缀项与所述通用流表项的对应关系。
可选的,所述接收单元还用于接收控制设备发送的前缀项配置消息,所述前缀项配置消息包括所述前缀项。
可选的,所述接收单元,还用于接收所述控制设备发送的特征请求消息;所述交换设备还包括发送单元,用于发送特征回复消息至所述控制设备,其中,所述特征回复消息指示所述交换设备支持通用匹配,以便所述控制设备根据所述特征回复消息发送所述前缀项配置消息。
本实施例通过交换设备接收控制设备发送的前缀项,可以在交换设备上建立前缀项和通用流表项的对应关系,在交换设备接收到报文后首先根据该前缀项从报文中提取待匹配的比特域,再依次与该前缀项对应的通用流表项的匹配域中的数据参数进行匹配,从而避免了对每个通用流表项都需要提取一次待匹配的比特域,可以提高通用流表项的处理效率。
图19为本发明实施例提供的一种控制设备的结构示意图,该设备190包括处理器191,通信单元192。
所述处理器191用于生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述通信单元192用于向交换设备发送所述前缀项配置消息,以便所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项。
可选的,所述处理器191还用于在下发通用流表项至所述交换设备的情况下,对所述下发的通用流表项对应的前缀项进行统计,根据统计结果确定所述前缀项配置消息中包含的前缀项。
可选的,所述通信单元192具体用于发送多条所述前缀项配置消息至虚拟层设备,以使所述虚拟层设备整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备。
可选的,所述通信单元192还用于向所述交换设备发送特征请求消息,接收所述交换设备发送的特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型;所述处理器191还用于根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配。
作为一种可选的实施方式,控制设备可以包括:
生成单元,用于生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
发送单元,用于向交换设备发送所述前缀项配置消息,以便所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项。
可选的,控制设备还包括统计单元,用于在下发通用流表项至所述交换设备的情况下,对所述下发的通用流表项对应的前缀项进行统计;确定单元,用于根据统计结果确定所述前缀项配置消息中包含的前缀项。
可选的,所述发送单元具体用于发送多条所述前缀项配置消息至虚拟层设备,以使所述虚拟层设备整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备。
可选的,所述发送单元还用于向所述交换设备发送特征请求消息;所述控制设备还包括接收单元和能力确定单元;所述接收单元,用于接收所述交换设备发送的特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型;所述能力确定单元,用于根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配。
本实施例通过控制设备向交换设备发送前缀项,可以使得交换设备建立前缀项和通用流表项的对应关系,在交换设备接收到报文后首先根据该前缀项从报文中提取待匹配的比特域,再依次与该前缀项对应的通用流表项的匹配域中的数据参数进行匹配,从而避免了对每个通用流表项都需要提取一次待匹配的比特域,可以提高通用流表项的处理效率。
图20为本发明实施例提供的一种报文处理系统的结构示意图,该系统200包括交换设备201和控制设备202;交换设备201可以具体如图18中直接与控制设备进行通信时的描述,控制设备202可以具体如图19中直接与交换设备通信时的描述。或者,参见图21,该系统还可以包括虚拟层设备203,此时,交换设备201可以具体如图18中通过虚拟层设备与控制设备进行通信的描述,控制设备202可以具体如图19中通过虚拟层设备与交换设备通信时的描述,虚拟层设备203用于接收所述控制设备202发送的多条所述前缀项配置消息,以及整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备201。
本实施例通过控制设备向交换设备发送前缀项,可以使得交换设备建立前缀项和通用流表项的对应关系,在交换设备接收到报文后首先根据该前缀项从报文中提取待匹配的比特域,再依次与该前缀项对应的通用流表项的匹配域中的数据参数进行匹配,从而避免了对每个通用流表项都需要提取一次待匹配的比特域,可以提高通用流表项的处理效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (29)
1.一种报文处理方法,其特征在于,包括:
交换设备接收前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中所述前缀项对应的通用流表项的匹配域包括所述前缀项,以使所述交换设备接收到报文后,根据所述前缀项提取用于匹配的比特域,并将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述交换设备接收到报文后,根据所述前缀项提取用于匹配的比特域;
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
所述交换设备接收控制设备发送的特征请求消息,并向所述控制设备发送特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型,以便所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配时,发送所述前缀项配置消息。
4.根据权利要求1-3任一所述的方法,其特征在于,所述交换设备上还存有精确流表项,所述精确流表项与所述前缀项对应的通用流表项对应,所述方法还包括:所述交换设备将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取用于匹配的比特域;或者,所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
5.一种报文处理方法,其特征在于,包括:
交换设备接收报文,其中所述交换设备上有以前缀项为索引建立的所述前缀项和通用流表项的对应关系,所述前缀项对应的通用流表项的匹配域包括所述前缀项;
所述交换设备根据所述前缀项获取所述报文中用于匹配的比特域;
所述交换设备将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
6.根据权利要求5所述的方法,其特征在于,所述交换设备上还有和所述通用流表项对应的精确流表项,所述方法还包括:
所述交换设备将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项获取所述报文中用于匹配的比特域;或者,
所述交换设备在将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
7.根据权利要求5或6所述的方法,其特征在于,还包括:
所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系。
8.根据权利要求7所述的方法,其特征在于,在所述交换设备以所述前缀项为索引,建立所述前缀符与所述交换设备上的通用流表项的对应关系之前,还包括:
所述交换设备接收控制设备发送的前缀项配置消息,所述前缀项配置消息包括所述前缀项。
9.根据权利要求8所述的方法,其特征在于,还包括:
所述交换设备接收所述控制设备发送的特征请求消息;
所述交换设备发送特征回复消息至所述控制设备,其中,所述特征回复消息指示所述交换设备支持通用匹配,以便所述控制设备根据所述特征回复消息发送所述前缀项配置消息。
10.一种报文处理方法,其特征在于,包括:
控制设备生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述控制设备向交换设备发送所述前缀项配置消息,以便所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项。
11.根据权利要求10所述的方法,其特征在于,还包括:
所述控制设备在下发通用流表项至所述交换设备的情况下,对所述下发的通用流表项对应的前缀项进行统计;
所述控制设备根据统计结果确定所述前缀项配置消息中包含的前缀项。
12.根据权利要求10或11所述的方法,其特征在于,所述控制设备向交换设备发送所述前缀项配置消息,包括:
所述控制设备发送多条所述前缀项配置消息至虚拟层设备,以使所述虚拟层设备整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备。
13.根据权利要求10-12任一所述的方法,其特征在于,还包括:
所述控制设备向所述交换设备发送特征请求消息,并接收所述交换设备发送的特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型;
所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配。
14.一种交换设备,其特征在于,包括:通信单元,存储器和处理器;
所述通信单元,用于接收前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述处理器,用于以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中所述前缀项对应的通用流表项的匹配域包括所述前缀项,以使所述交换设备接收到报文后,根据所述前缀项提取用于匹配的比特域,并将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配;
所述存储器,用于存储所述前缀项,所述通用流表项和所述前缀项与所述通用流表项的对应关系。
15.根据权利要求14所述的交换设备,其特征在于,
所述通信单元还用于接收报文;
所述处理器还用于根据所述前缀项从所述报文提取用于匹配的比特域,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
16.根据权利要求14或15所述的交换设备,其特征在于,
所述通信单元还用于接收控制设备发送的特征请求信息,向所述控制设备发送特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型,以便所述控制设备根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配时,发送所述前缀项配置消息。
17.根据权利要求14-16任一所述的交换设备,其特征在于,
所述存储器还用于存储精确流表,所述精确流表项与所述前缀项对应的通用流表项对应;
所述处理器还用于将所述报文与所述精确流表项进行匹配,以便在匹配成功后根据所述前缀项提取用于匹配的比特域,或者所述处理器还用于,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功后,将所述报文与所述精确流表项进行匹配。
18.一种交换设备,其特征在于,包括:存储器、处理器和通信单元;
所述存储器,用于存储以前缀项为索引建立的所述前缀项和通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项;
所述通信单元,用于接收报文;
所述处理器,用于根据所述前缀项获取所述报文中用于匹配的比特域,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
19.根据权利要求18所述的交换设备,其特征在于,
所述存储器还用于存储和所述通用流表项对应的精确流表项;
所述处理器用于根据所述前缀项获取所述报文中用于匹配的比特域,将所述报文与所述精确报文进行匹配,匹配成功后,将所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配。
20.根据权利要求18所述的交换设备,其特征在于,
所述存储器还用于存储和所述通用流表项对应的精确流表项;
所述处理器还用于在所述比特域的值与所述前缀项对应的通用流表项的匹配域的数据参数进行匹配成功的情况下,将所述报文与所述精确流表项进行匹配。
21.根据权利要求18-20任一所述的交换设备,其特征在于,
所述处理器还用于以所述前缀项为索引,建立所述前缀项与所述通用流表项的对应关系。
22.根据权利要求18-21任一所述的交换设备,其特征在于,
所述通信单元还用于接收控制设备发送的前缀项配置消息,所述前缀项配置消息包括所述前缀项。
23.根据权利要求18-22任一所述的交换设备,其特征在于,
所述通信单元还用于接收所述控制设备发送的特征请求消息,并发送特征回复消息至所述控制设备,其中,所述特征回复消息指示所述交换设备支持通用匹配,以便所述控制设备根据所述特征回复消息发送所述前缀项配置消息。
24.一种控制设备,其特征在于,包括:通信单元和处理器;
所述处理器用于生成前缀项配置消息,所述前缀项配置消息中包括前缀项;
所述通信单元用于向交换设备发送所述前缀项配置消息,以便所述交换设备以所述前缀项为索引,建立所述前缀项与所述交换设备上的通用流表项的对应关系,其中,所述前缀项对应的通用流表项的匹配域包括所述前缀项。
25.根据权利要求24所述的控制设备,其特征在于,
所述处理器还用于在下发通用流表项至所述交换设备的情况下,对所述下发的通用流表项对应的前缀项进行统计,根据统计结果确定所述前缀项配置消息中包含的前缀项。
26.根据权利要求24或25所述的控制设备,其特征在于,
所述通信单元具体用于发送多条所述前缀项配置消息至虚拟层设备,以使所述虚拟层设备整合所述多条前缀项配置消息,并将整合后的前缀项配置消息发送至所述交换设备。
27.根据权利要求24-26任一所述的控制设备,其特征在于,
所述通信单元还用于向所述交换设备发送特征请求消息,接收所述交换设备发送的特征回复消息,所述特征回复消息中携带所述交换设备支持的匹配类型;所述处理器还用于根据所述交换设备支持的匹配类型确定所述交换设备支持通用匹配。
28.一种报文处理系统,包括如权利要求14-23任一所述的交换设备和如权利要求24-27任一所述的控制设备。
29.一种计算机可读存储介质,包括指令,当其在计算机上运行时,是的计算机执行如权利要求1-13任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810156571.2A CN108173763B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/082430 WO2015027401A1 (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
CN201810156571.2A CN108173763B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
CN201380001132.XA CN104584492B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380001132.XA Division CN104584492B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108173763A true CN108173763A (zh) | 2018-06-15 |
CN108173763B CN108173763B (zh) | 2021-06-01 |
Family
ID=52585383
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810156571.2A Active CN108173763B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
CN201380001132.XA Active CN104584492B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380001132.XA Active CN104584492B (zh) | 2013-08-28 | 2013-08-28 | 报文处理方法、设备及系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10057392B2 (zh) |
EP (1) | EP3029894B1 (zh) |
CN (2) | CN108173763B (zh) |
WO (1) | WO2015027401A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923303A (zh) * | 2020-07-10 | 2022-01-11 | 中国电信股份有限公司 | 平台号码传递方法、主叫侧处理装置和被叫侧处理装置 |
CN117354237A (zh) * | 2023-11-03 | 2024-01-05 | 中科驭数(北京)科技有限公司 | 网络流表操作处理方法、装置、电子设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015027401A1 (zh) * | 2013-08-28 | 2015-03-05 | 华为技术有限公司 | 报文处理方法、设备及系统 |
US20180048593A1 (en) * | 2015-02-17 | 2018-02-15 | Hewlett Packard Enterprise Development Lp | Flow entry generating and packet processing based on flow entry |
WO2017105452A1 (en) * | 2015-12-17 | 2017-06-22 | Hewlett Packard Enterprise Development Lp | Reduced orthogonal network policy set selection |
CN109815263B (zh) * | 2019-01-04 | 2021-10-26 | 烽火通信科技股份有限公司 | 一种模糊查找的数据流识别方法及系统 |
CN110442570B (zh) * | 2019-06-06 | 2021-08-17 | 北京左江科技股份有限公司 | 一种BitMap高速模糊查找方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060262583A1 (en) * | 2004-07-22 | 2006-11-23 | Srinivasan Venkatachary | Range representation in a content addressable memory (cam) using an improved encoding scheme |
US20070008888A1 (en) * | 2005-06-28 | 2007-01-11 | Shuchi Chawla | Direct lookup tables and extensions thereto for packet classification |
CN101072034A (zh) * | 2007-06-12 | 2007-11-14 | 华为技术有限公司 | 一种变长解码方法及其装置 |
CN101272386A (zh) * | 2007-03-23 | 2008-09-24 | 凹凸电子(武汉)有限公司 | 一种前缀匹配算法 |
US20130128746A1 (en) * | 2011-11-22 | 2013-05-23 | Kiran Yedavalli | Mechanism for packet forwarding using switch pools in flow- based, split-architecture networks |
CN104584492A (zh) * | 2013-08-28 | 2015-04-29 | 华为技术有限公司 | 报文处理方法、设备及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7466703B1 (en) * | 1998-05-01 | 2008-12-16 | Alcatel-Lucent Usa Inc. | Scalable high speed router apparatus |
WO2000003522A1 (en) * | 1998-07-08 | 2000-01-20 | Broadcom Corporation | A method of sending packets between trunk ports of network switches |
WO2002019624A2 (en) * | 2000-08-31 | 2002-03-07 | The Regents Of The University Of California | Cluster-based aggregated switching technique (cast) for routing data packets and information objects in computer networks |
MXPA03003656A (es) * | 2000-10-26 | 2005-01-25 | Wave7 Optics Inc | Metodo y sistema para procesar paquetes corriente abajo de una red optica. |
US7219184B2 (en) * | 2002-12-10 | 2007-05-15 | Isic Corporation | Method and apparatus for longest prefix matching in processing a forwarding information database |
KR100481806B1 (ko) * | 2004-07-03 | 2005-04-11 | 오토윈주식회사 | 창을 이용한 실내 공기질 개선방법 및 장치 |
US7957332B1 (en) * | 2006-11-15 | 2011-06-07 | Marvell International Ltd. | Memory efficient filtering |
CN101505279B (zh) * | 2009-03-20 | 2012-07-25 | 中国人民解放军信息工程大学 | 一种路由查找方法和装置 |
CN102377664B (zh) * | 2010-08-27 | 2015-06-10 | 武汉烽火网络有限责任公司 | 一种基于tcam的区域匹配装置和方法 |
US8521905B2 (en) * | 2011-12-22 | 2013-08-27 | Telefonaktiebolaget L M Ericsson (Publ) | System for flexible and extensible flow processing in software-defined networks |
US8886827B2 (en) * | 2012-02-13 | 2014-11-11 | Juniper Networks, Inc. | Flow cache mechanism for performing packet flow lookups in a network device |
US8799507B2 (en) * | 2012-03-13 | 2014-08-05 | Juniper Networks, Inc. | Longest prefix match searches with variable numbers of prefixes |
-
2013
- 2013-08-28 WO PCT/CN2013/082430 patent/WO2015027401A1/zh active Application Filing
- 2013-08-28 CN CN201810156571.2A patent/CN108173763B/zh active Active
- 2013-08-28 CN CN201380001132.XA patent/CN104584492B/zh active Active
- 2013-08-28 EP EP13892621.7A patent/EP3029894B1/en active Active
-
2016
- 2016-02-26 US US15/054,265 patent/US10057392B2/en active Active
-
2018
- 2018-07-31 US US16/050,434 patent/US10749997B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060262583A1 (en) * | 2004-07-22 | 2006-11-23 | Srinivasan Venkatachary | Range representation in a content addressable memory (cam) using an improved encoding scheme |
US20070008888A1 (en) * | 2005-06-28 | 2007-01-11 | Shuchi Chawla | Direct lookup tables and extensions thereto for packet classification |
CN101272386A (zh) * | 2007-03-23 | 2008-09-24 | 凹凸电子(武汉)有限公司 | 一种前缀匹配算法 |
CN101072034A (zh) * | 2007-06-12 | 2007-11-14 | 华为技术有限公司 | 一种变长解码方法及其装置 |
US20130128746A1 (en) * | 2011-11-22 | 2013-05-23 | Kiran Yedavalli | Mechanism for packet forwarding using switch pools in flow- based, split-architecture networks |
EP2597831A1 (en) * | 2011-11-22 | 2013-05-29 | Telefonaktiebolaget LM Ericsson (PUBL) | Mechanism for packet forwarding using switch pools in flow- based, split-architecture networks |
CN104584492A (zh) * | 2013-08-28 | 2015-04-29 | 华为技术有限公司 | 报文处理方法、设备及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923303A (zh) * | 2020-07-10 | 2022-01-11 | 中国电信股份有限公司 | 平台号码传递方法、主叫侧处理装置和被叫侧处理装置 |
CN117354237A (zh) * | 2023-11-03 | 2024-01-05 | 中科驭数(北京)科技有限公司 | 网络流表操作处理方法、装置、电子设备及存储介质 |
CN117354237B (zh) * | 2023-11-03 | 2024-09-27 | 中科驭数(北京)科技有限公司 | 网络流表操作处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104584492B (zh) | 2018-03-13 |
WO2015027401A1 (zh) | 2015-03-05 |
US10057392B2 (en) | 2018-08-21 |
CN108173763B (zh) | 2021-06-01 |
US20160173657A1 (en) | 2016-06-16 |
US10749997B2 (en) | 2020-08-18 |
EP3029894A4 (en) | 2016-08-10 |
EP3029894A1 (en) | 2016-06-08 |
CN104584492A (zh) | 2015-04-29 |
EP3029894B1 (en) | 2020-08-19 |
US20180367649A1 (en) | 2018-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104584492B (zh) | 报文处理方法、设备及系统 | |
US11929945B2 (en) | Managing network traffic in virtual switches based on logical port identifiers | |
KR101886291B1 (ko) | 흐름 엔트리 구성 방법, 장치, 및 시스템 | |
EP2712128A1 (en) | Message processing method and related device thereof | |
CN105791214B (zh) | 一种RapidIO报文和以太网报文之间的转换方法和设备 | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
CN106685826B (zh) | 交换机堆叠系统、从设备、交换芯片及处理协议报文方法 | |
CN106878199B (zh) | 一种接入信息的配置方法和装置 | |
EP2773073A1 (en) | Entry generation method, message receiving method, and corresponding device and system | |
CN108028801B (zh) | 一种基于sdn的arp实现方法及装置 | |
CN104811382A (zh) | 数据包的处理方法与装置 | |
CN106878181A (zh) | 一种报文传输方法和装置 | |
CN112887229B (zh) | 一种会话信息同步方法及装置 | |
CN112449751A (zh) | 一种数据传输方法、交换机及站点 | |
CN105471603A (zh) | 一种远程配置光网络单元ptp业务的方法、装置和系统 | |
CN105812221B (zh) | 虚拟可扩展本地区域网络中数据传输的设备和方法 | |
CN115225734A (zh) | 一种报文处理方法和网络设备 | |
CN107733765B (zh) | 映射方法、系统和相关设备 | |
WO2020206849A1 (zh) | 一种处理带vlan tag的dhcp数据的方法及系统 | |
EP2996303A1 (en) | Input parameter generation method and device | |
CN110235417A (zh) | 一种sdn及其报文转发的方法和装置 | |
CN107231309B (zh) | 获取sdn全网视图的方法、控制器及目的交换节点 | |
KR102024545B1 (ko) | 오버레이 네트워크 기반에서의 오리지널 패킷 플로우 매핑 장치 및 그 방법 | |
CN116418865A (zh) | 网络数据的控制方法、装置和存储介质及电子设备 | |
EP3288224B1 (en) | Data packet forwarding method and network device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |