CN109525495A - 一种数据处理装置、方法和fpga板卡 - Google Patents
一种数据处理装置、方法和fpga板卡 Download PDFInfo
- Publication number
- CN109525495A CN109525495A CN201811585061.3A CN201811585061A CN109525495A CN 109525495 A CN109525495 A CN 109525495A CN 201811585061 A CN201811585061 A CN 201811585061A CN 109525495 A CN109525495 A CN 109525495A
- Authority
- CN
- China
- Prior art keywords
- target
- packet header
- module
- flow table
- list item
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000006798 recombination Effects 0.000 claims abstract description 127
- 238000005215 recombination Methods 0.000 claims abstract description 127
- 238000007781 pre-processing Methods 0.000 claims abstract description 20
- 101000911390 Homo sapiens Coagulation factor VIII Proteins 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 102000057593 human F8 Human genes 0.000 claims description 7
- 229940047431 recombinate Drugs 0.000 claims description 7
- 238000003672 processing method Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 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/74—Address processing for 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
本发明实施例公开了一种基于Openflow的数据处理装置、方法和FPGA板卡,预处理模块解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头;流表控制模块分别与预处理模块、行为处理模块以及接口模块连接,用于判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项;若是,则触发行为处理模块执行目标表项相对应的操作;若否,则触发接口模块,将与目标重组包头相对应的目标数据报文发送至Openflow控制器。在该技术方案中,将Openflow交换机的功能从CPU卸载到FPGA上,释放了CPU的资源,提高了处理数据包的速度。
Description
技术领域
本发明涉及云计算技术领域,特别是涉及一种基于Openflow的数据处理装置、方法和FPGA板卡。
背景技术
随着云计算技术的发展,虚拟化技术也得到了迅速发展,而虚拟交换机对于虚拟机之间的通信有着至关重要的作用。
现有的openflow交换机,大都是基于软件实现的,需要消耗很多的CPU资源。CPU除了为openflow交换机的功能提供资源外,还需要为其它应用提供服务,CPU负载较大,导致数据包的处理速度往往较低。
可见,如何提升openflow交换机上数据处理速度,是本领域技术人员亟待解决的问题。
发明内容
本发明实施例的目的是提供一种基于Openflow的数据处理装置、方法和FPGA板卡,可以提升openflow交换机上数据处理速度。
为解决上述技术问题,本发明实施例提供一种基于Openflow的数据处理装置,应用于FPGA,所述装置包括与Openflow交换机连接的预处理模块、流表控制模块、行为处理模块和与Openflow控制器连接的接口模块;
所述预处理模块,用于解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头;
所述流表控制模块分别与所述预处理模块、所述行为处理模块以及所述接口模块连接,用于判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项;若是,则触发所述行为处理模块;若否,则触发所述接口模块;其中,所述目标重组包头为所有所述重组包头中的任意一个重组包头;
所述行为处理模块,用于执行所述目标表项相对应的操作;
所述接口模块,用于将与所述目标重组包头相对应的目标数据报文发送至Openflow控制器。
可选的,所述预处理模块还包括提取子模块、判断子模块和删除子模块;
所述提取子模块,用于提取各所述数据报文的特征信息;
所述判断子模块,用于在所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前,判断目标特征信息是否满足预设条件;其中,所述目标特征信息为与所述目标重组包头相对应的特征信息;若是,则触发所述流表控制模块;若否,则触发所述删除子模块;
所述删除子模块,用于删除所述目标特征信息所对应的数据报文。
可选的,预先建立的流表包括全局流表和通配符流表;
相应的,所述流表控制模块包括第一判断子模块、第一作为子模块、第二判断子模块和第二作为子模块;
所述第一判断子模块,用于判断预先建立的全局流表和通配符流表中是否均存在与目标重组包头相匹配的表项;若是,则触发所述第一作为子模块;若否,则触发所述第二判断子模块;
所述第一作为子模块,用于将全局流表中匹配到的表项作为所述目标重组包头的目标表项;
所述第二判断子模块,用于判断通配符流表中是否存在与目标重组包头相匹配的表项;若是,则触发所述第二作为子模块;若否,则触发所述接口模块;
所述第二作为子模块,用于当所述通配符流表中存在与目标重组包头相匹配的表项,则将通配符流表中匹配到的表项作为所述目标重组包头的目标表项。
可选的,所述行为处理模块还用于依据接收到的所述Openflow控制器反馈的操作指令,对所述目标数据报文执行相应的处理。
可选的,还包括更新模块;
所述更新模块,用于在所述行为处理模块执行所述目标表项相对应的操作之后,更新所述目标表项中的匹配次数。
可选的,还包括写入模块和读取模块;
所述写入模块,用于在所述解析各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头之后,将各所述重组包头写入FIFO队列中;
所述读取模块,用于在所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前,依次从所述FIFO队列中读取重组包头,并将读取出的重组包头作为目标重组包头。
可选的,还包括统计模块、数据量判断模块和限制模块;
所述统计模块,用于统计预设时间内各端口接收到的数据报文的数据量;
所述数据量判断模块,用于判断是否存在数据量超过预设值的目标端口;若是,则触发所述限制模块;
所述限制模块,用于限制所述目标端口的带宽。
本发明实施例还提供了一种基于Openflow的数据处理方法,应用于FPGA,所述方法包括:
解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头;
判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项;其中,所述目标重组包头为所有所述重组包头中的任意一个重组包头;
若是,则执行所述目标表项相对应的操作;
若否,则将与所述目标重组包头相对应的目标数据报文发送至Openflow控制器。
可选的,在所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前还包括:
提取各所述数据报文的特征信息;
判断目标特征信息是否满足预设条件;其中,所述目标特征信息为与所述目标重组包头相对应的特征信息;
若是,则执行所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项的步骤;
若否,则删除所述目标特征信息所对应的数据报文。
可选的,预先建立的流表包括全局流表和通配符流表;
相应的,所述判断预先建立的流表中是否存在与目标特征信息相匹配的目标表项包括:
判断预先建立的全局流表和通配符流表中是否均存在与目标重组包头相匹配的表项;
若是,则将全局流表中匹配到的表项作为所述目标重组包头的目标表项;
若否,则判断通配符流表中是否存在与目标重组包头相匹配的表项;
当所述通配符流表中存在与目标重组包头相匹配的表项,则将通配符流表中匹配到的表项作为所述目标重组包头的目标表项;
当所述通配符流表中不存在与目标重组包头相匹配的表项,则执行将与所述目标重组包头相对应的目标数据报文发送至Openflow控制器的步骤。
可选的,在所述将与所述目标重组包头相对应的目标数据报文发送至Openflow控制器之后还包括:
依据接收到的所述Openflow控制器反馈的操作指令,对所述目标数据报文执行相应的处理。
可选的,在执行所述目标表项相对应的操作之后还包括:
更新所述目标表项中的匹配次数。
可选的,所述解析各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头之后还包括:
将各所述重组包头写入FIFO队列中;
相应的,在所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前还包括:
依次从所述FIFO队列中读取重组包头,并将读取出的重组包头作为目标重组包头。
可选的,还包括:
统计预设时间内各端口接收到的数据报文的数据量;
判断是否存在数据量超过预设值的目标端口;
若是,则限制所述目标端口的带宽。
本发明实施例还提供了一种FPGA板卡,包括如上述的基于Openflow的数据处理装置。
由上述技术方案可以看出,应用于FPGA上的基于Openflow的数据处理装置包括与Openflow交换机连接的预处理模块,用于解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头;流表控制模块分别与预处理模块、行为处理模块以及接口模块连接,以所有重组包头中的任意一个重组包头即目标重组包头为例,流表控制模块用于判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项;若是,则触发行为处理模块;若否,则触发接口模块;行为处理模块,用于执行目标表项相对应的操作;接口模块与Openflow控制器连接,用于将与目标重组包头相对应的目标数据报文发送至Openflow控制器。在该技术方案中,将Openflow交换机的功能从CPU卸载到FPGA上,释放了CPU的资源,提高了处理数据包的速度。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于Openflow的数据处理装置的结构示意图;
图2为本发明实施例提供的一种设置有图像压缩装置的FPGA的结构示意图;
图3为本发明实施例提供的一种基于Openflow的数据处理方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种基于Openflow的数据处理装置。图1为本发明实施例提供的一种基于Openflow的数据处理装置的结构示意图,应用于FPGA,装置包括与Openflow交换机连接的预处理模块1、流表控制模块2、行为处理模块3和与Openflow控制器连接的接口模块4。
预处理模块1,用于解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头。
预处理模块1具有缓存功能,可以将接收到的数据报文进行缓存,以便于后续的调用。
流表控制模块2分别与预处理模块1、行为处理模块3以及接口模块4连接,用于判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项。
在实际应用中,预处理模块1通过向流表控制模块2发送流表项查找请求的方式,触发流表控制模块2对缓存的流表进行查询。流表控制模块2可以根据各请求所对应的优先级信息,对优先级较高的数据报文优先处理。
流表控制模块2根据各数据报文的重组包头在流表中查询与重组包头相对应的流表项。流表控制模块2接收到的重组包头有多个,各重组包头的查询方式类似,在本发明实施例中,以所有重组包头中的任意一个重组包头即目标重组包头为例展示介绍。
流表控制模块2负责访问交换机的流表,并且响应各个端口对其发起的请求。当流表中存在与目标重组包头相匹配的目标表项,则触发行为处理模块3;当流表中不存在与目标重组包头相匹配的目标表项时,则触发接口模块4。
行为处理模块3,用于执行目标表项相对应的操作,例如输出、丢弃数据报文或者修改队列id等,并对包头域和数据报文长度进行更新。
接口模块4,用于将与目标重组包头相对应的目标数据报文发送至Openflow控制器。
当流表控制模块2未找到目标数据报文所对应的匹配表项时,可以通过接口模块4将目标数据报文发送给OpenFlow控制器,由OpenFlow控制器决定如何处理。
相应的,行为处理模块3可以依据接收到的Openflow控制器反馈的操作指令,对目标数据报文执行相应的处理。
其中,OpenFlow控制器反馈的操作指令可以包括添加新的流表项信息:流条目、流掩码、动作,或丢弃此数据报文。
在本发明实施例中,为了保证流表控制模块2接收到的重组包头的正确性,预处理模块1可以对接收到的数据报文的正确性进行判断,当数据报文符合预设条件时,再将数据报文对应的重组包头传输至流表控制模块2。
针对于预处理模块1所需执行的判断操作,预处理模块还包括提取子模块、判断子模块和删除子模块。
提取子模块,用于提取各数据报文的特征信息。
判断子模块,用于在判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前,判断目标特征信息是否满足预设条件。
其中,目标特征信息为与目标重组包头相对应的特征信息,即目标特征信息和目标重组包头均为从同一个数据报文所提取出的信息。
当数据报文属于形式正确的报文时,其对应的特征信息可以包括IP、端口号、源地址和目的地址等。相应的,预设条件可以为特征信息中是否包含有IP。
当目标特征信息满足预设条件时,则说明数据报文满足正确性要求,此时则触发流表控制模块2执行判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项的步骤。
当目标特征信息不满足预设条件时,则说明数据报文不满足正确性要求,该数据报文存在错误,此时可以触发删除子模块,删除目标特征信息所对应的数据报文。
流表控制模块2在查找与目标重组包头相匹配的目标表项时,可以采用HASH算法。并且为了加快处理流程,可以设置两种类型的流表,全局流表和通配符流表。
全局流表可以看作是精确匹配流表,从全局流表中匹配到的目标表项是更加符合目标重组包头的表项。相比于全局流表,通配符流表的精确度较低,相应的,在通配符流表中更容易查找到与目标重组包头相匹配的目标表项。
针对于流表控制模块2的流表项匹配流程,可以将流表控制模块2划分为第一判断子模块、第一作为子模块、第二判断子模块和第二作为子模块。
第一判断子模块,用于判断预先建立的全局流表和通配符流表中是否均存在与目标重组包头相匹配的表项。
当全局流表和通配符流表中均存在与目标重组包头相匹配的表项时,则可以触发第一作为子模块。第一作为子模块,用于将全局流表中匹配到的表项作为目标重组包头的目标表项。
当无法从全局流表和通配符流表中均匹配到与目标重组包头相对应的表项时,则触发第二判断子模块。第二判断子模块,用于判断通配符流表中是否存在与目标重组包头相匹配的表项。
当通配符流表中存在与目标重组包头相匹配的表项,则触发第二作为子模块。第二作为子模块,用于当通配符流表中存在与目标重组包头相匹配的表项,则将通配符流表中匹配到的表项作为目标重组包头的目标表项。
当通配符流表中不存在与目标重组包头相匹配的表项时,则触发接口模块4执行将与所述目标重组包头相对应的目标数据报文发送至Openflow控制器的步骤。
在流表项中包含有用于表示数据包匹配的次数的项目,为了保证流表中信息的有效和及时性,可以设置更新模块,用于在行为处理模块3执行目标表项相对应的操作之后,更新目标表项中的匹配次数。
流表控制模块2所需处理的重组包头往往较多,为了实现重组包头的有序管理,在本发明实施例中,可以设置写入模块和读取模块;写入模块,用于在解析各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头之后,将各重组包头写入FIFO队列中;读取模块,用于在判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前,依次从FIFO队列中读取重组包头,并将读取出的重组包头作为目标重组包头。
通过FIFO队列存储重组包头,可以有效的保证流表控制模块2对重组包头进行有序的处理,降低了重组包头丢失或者是遗漏重组包头的情况发生。
在本发明实施例中,还可以设置统计模块、数据量判断模块和限制模块。统计模块,用于统计预设时间内各端口接收到的数据报文的数据量。
预设时间的取值可以依据实际需求设定,在此不做限定。
数据量判断模块,用于判断是否存在数据量超过预设值的目标端口。
当存在数据量超过预设值的目标端口时,则说明该目标端口会占用较多的带宽资源,此时可以触发限制模块,限制目标端口的带宽,从而达到各端口带宽的均衡。
在本发明实施例中,可以将上述的基于Openflow的数据处理装置内置于FPGA板卡中,以实现对openflow交换机上数据的处理,FPGA板卡具有较快的处理速度,从而提升了openflow交换机上数据处理速度。
如图2所示为本发明实施例提供的一种设置有图像压缩装置的FPGA的结构示意图,FPGA通过预处理模块1可以接收包括Openflow交换机在内的各类设备传输的数据报文,并对数据报文进行解析重组,从而得到与流表项格式相匹配的重组包头。以便于流表控制模块2可以通过查找流表,获取与重组包头相对应的流表项,每个流表项有其对应的行为列表,行为处理模块3可以依据该行为列表执行相应的操作。当流表控制模块2无法从流表中查找到与目标重组包头相匹配的目标表项时,则可以通过接口模块4向Openflow控制器反馈,以便于Openflow控制器对目标数据报文进行处理。
由上述技术方案可以看出,应用于FPGA上的基于Openflow的数据处理装置包括与Openflow交换机连接的预处理模块,用于解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头;流表控制模块分别与预处理模块、行为处理模块以及接口模块连接,以所有重组包头中的任意一个重组包头即目标重组包头为例,流表控制模块用于判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项;若是,则触发行为处理模块;若否,则触发接口模块;行为处理模块,用于执行目标表项相对应的操作;接口模块与Openflow控制器连接,用于将与目标重组包头相对应的目标数据报文发送至Openflow控制器。在该技术方案中,将Openflow交换机的功能从CPU卸载到FPGA上,释放了CPU的资源,提高了处理数据包的速度。
图3为本发明实施例提供的一种基于Openflow的数据处理方法的流程图,应用于FPGA,方法包括:
S301:解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头。
S302:判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项。
其中,目标重组包头为所有重组包头中的任意一个重组包头。
若是,则执行S303;若否,则执行S304。
S303:执行目标表项相对应的操作。
S304:将与目标重组包头相对应的目标数据报文发送至Openflow控制器。
可选的,在判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前还包括:
提取各数据报文的特征信息;
判断目标特征信息是否满足预设条件;其中,目标特征信息为与目标重组包头相对应的特征信息;
若是,则执行判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项的步骤;
若否,则删除目标特征信息所对应的数据报文。
可选的,预先建立的流表包括全局流表和通配符流表;
相应的,判断预先建立的流表中是否存在与目标特征信息相匹配的目标表项包括:
判断预先建立的全局流表和通配符流表中是否均存在与目标重组包头相匹配的表项;
若是,则将全局流表中匹配到的表项作为目标重组包头的目标表项;
若否,则判断通配符流表中是否存在与目标重组包头相匹配的表项;
当通配符流表中存在与目标重组包头相匹配的表项,则将通配符流表中匹配到的表项作为目标重组包头的目标表项;
当通配符流表中不存在与目标重组包头相匹配的表项,则执行将与目标重组包头相对应的目标数据报文发送至Openflow控制器的步骤。
可选的,在将与目标重组包头相对应的目标数据报文发送至Openflow控制器之后还包括:
依据接收到的Openflow控制器反馈的操作指令,对目标数据报文执行相应的处理。
可选的,在执行目标表项相对应的操作之后还包括:
更新目标表项中的匹配次数。
可选的,解析各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头之后还包括:
将各重组包头写入FIFO队列中;
相应的,在判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前还包括:
依次从FIFO队列中读取重组包头,并将读取出的重组包头作为目标重组包头。
可选的,还包括:
统计预设时间内各端口接收到的数据报文的数据量;
判断是否存在数据量超过预设值的目标端口;
若是,则限制目标端口的带宽。
图3所对应实施例中特征的说明可以参见图1和图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头;以所有重组包头中的任意一个重组包头即目标重组包头为例,判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项;若是,则执行目标表项相对应的操作;若否,则将与目标重组包头相对应的目标数据报文发送至Openflow控制器。在该技术方案中,将基于Openflow的数据处理方法所对应的程序代码固化到FPGA上,使得Openflow交换机的功能从CPU卸载到FPGA上,释放了CPU的资源,提高了处理数据包的速度。
以上对本发明实施例所提供的一种基于Openflow的数据处理装置、方法和FPGA板卡进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (10)
1.一种基于Openflow的数据处理装置,其特征在于,应用于FPGA,所述装置包括与Openflow交换机连接的预处理模块、流表控制模块、行为处理模块和与Openflow控制器连接的接口模块;
所述预处理模块,用于解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头;
所述流表控制模块分别与所述预处理模块、所述行为处理模块以及所述接口模块连接,用于判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项;若是,则触发所述行为处理模块;若否,则触发所述接口模块;其中,所述目标重组包头为所有所述重组包头中的任意一个重组包头;
所述行为处理模块,用于执行所述目标表项相对应的操作;
所述接口模块,用于将与所述目标重组包头相对应的目标数据报文发送至Openflow控制器。
2.根据权利要求1所述的装置,其特征在于,所述预处理模块还包括提取子模块、判断子模块和删除子模块;
所述提取子模块,用于提取各所述数据报文的特征信息;
所述判断子模块,用于在所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前,判断目标特征信息是否满足预设条件;其中,所述目标特征信息为与所述目标重组包头相对应的特征信息;若是,则触发所述流表控制模块;若否,则触发所述删除子模块;
所述删除子模块,用于删除所述目标特征信息所对应的数据报文。
3.根据权利要求1所述的装置,其特征在于,预先建立的流表包括全局流表和通配符流表;
相应的,所述流表控制模块包括第一判断子模块、第一作为子模块、第二判断子模块和第二作为子模块;
所述第一判断子模块,用于判断预先建立的全局流表和通配符流表中是否均存在与目标重组包头相匹配的表项;若是,则触发所述第一作为子模块;若否,则触发所述第二判断子模块;
所述第一作为子模块,用于将全局流表中匹配到的表项作为所述目标重组包头的目标表项;
所述第二判断子模块,用于判断通配符流表中是否存在与目标重组包头相匹配的表项;若是,则触发所述第二作为子模块;若否,则触发所述接口模块;
所述第二作为子模块,用于当所述通配符流表中存在与目标重组包头相匹配的表项,则将通配符流表中匹配到的表项作为所述目标重组包头的目标表项。
4.根据权利要求1所述的装置,其特征在于,所述行为处理模块还用于依据接收到的所述Openflow控制器反馈的操作指令,对所述目标数据报文执行相应的处理。
5.根据权利要求1所述的装置,其特征在于,还包括更新模块;
所述更新模块,用于在所述行为处理模块执行所述目标表项相对应的操作之后,更新所述目标表项中的匹配次数。
6.根据权利要求1-5任意一项所述的装置,其特征在于,还包括写入模块和读取模块;
所述写入模块,用于在所述解析各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头之后,将各所述重组包头写入FIFO队列中;
所述读取模块,用于在所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前,依次从所述FIFO队列中读取重组包头,并将读取出的重组包头作为目标重组包头。
7.根据权利要求1-6任意一项所述的装置,其特征在于,还包括统计模块、数据量判断模块和限制模块;
所述统计模块,用于统计预设时间内各端口接收到的数据报文的数据量;
所述数据量判断模块,用于判断是否存在数据量超过预设值的目标端口;若是,则触发所述限制模块;
所述限制模块,用于限制所述目标端口的带宽。
8.一种基于Openflow的数据处理方法,其特征在于,应用于FPGA,所述方法包括:
解析接收到的各数据报文的数据包头,并按照流表中表项的数据格式对解析出的数据信息重组,得到重组包头;
判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项;其中,所述目标重组包头为所有所述重组包头中的任意一个重组包头;
若是,则执行所述目标表项相对应的操作;
若否,则将与所述目标重组包头相对应的目标数据报文发送至Openflow控制器。
9.根据权利要求8所述的方法,其特征在于,在所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项之前还包括:
提取各所述数据报文的特征信息;
判断目标特征信息是否满足预设条件;其中,所述目标特征信息为与所述目标重组包头相对应的特征信息;
若是,则执行所述判断预先建立的流表中是否存在与目标重组包头相匹配的目标表项的步骤;
若否,则删除所述目标特征信息所对应的数据报文。
10.一种FPGA板卡,其特征在于,包括如权利要求1至7任意一项所述的基于Openflow的数据处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811585061.3A CN109525495B (zh) | 2018-12-24 | 2018-12-24 | 一种数据处理装置、方法和fpga板卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811585061.3A CN109525495B (zh) | 2018-12-24 | 2018-12-24 | 一种数据处理装置、方法和fpga板卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109525495A true CN109525495A (zh) | 2019-03-26 |
CN109525495B CN109525495B (zh) | 2022-03-11 |
Family
ID=65796579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811585061.3A Active CN109525495B (zh) | 2018-12-24 | 2018-12-24 | 一种数据处理装置、方法和fpga板卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109525495B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740909A (zh) * | 2020-06-19 | 2020-10-02 | 联想(北京)有限公司 | 一种报文处理方法、装置、网络传输设备及报文处理系统 |
WO2022100511A1 (zh) * | 2020-11-13 | 2022-05-19 | 华为技术有限公司 | 转发表项的处理方法和装置 |
CN115842792A (zh) * | 2023-02-20 | 2023-03-24 | 之江实验室 | 一种数据处理方法、装置、存储介质及电子设备 |
CN116193000A (zh) * | 2023-04-25 | 2023-05-30 | 湖北微源卓越科技有限公司 | 一种基于fpga的智能组包快速转发系统及转发方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103560958A (zh) * | 2013-10-18 | 2014-02-05 | 华为技术有限公司 | 一种数据包的规则匹配方法及装置 |
CN104104561A (zh) * | 2014-08-11 | 2014-10-15 | 武汉大学 | 一种基于OpenFlow协议的SDN防火墙状态检测方法及系统 |
CN104901958A (zh) * | 2015-05-21 | 2015-09-09 | 大连理工大学 | 一种用户驱动的sdn网络集中式访问控制方法 |
WO2016041341A1 (zh) * | 2014-09-17 | 2016-03-24 | 华为技术有限公司 | 一种获取网络状态的方法及装置 |
US20160269432A1 (en) * | 2013-11-22 | 2016-09-15 | Huawei Technologies Co.,Ltd. | Malicious attack detection method and apparatus |
CN106413020A (zh) * | 2016-09-13 | 2017-02-15 | 华侨大学 | 一种基于OpenFlow的无线传感器网络的实现及数据流处理方法 |
CN108123931A (zh) * | 2017-11-29 | 2018-06-05 | 浙江工商大学 | 一种软件定义网络中的DDoS攻击防御装置及方法 |
CN108200092A (zh) * | 2018-02-08 | 2018-06-22 | 赛特斯信息科技股份有限公司 | 基于nfv技术加速报文acl匹配处理的方法及系统 |
CN108494800A (zh) * | 2018-04-27 | 2018-09-04 | 广州西麦科技股份有限公司 | 一种数据包安全检测及处理方法、装置、p4交换机及介质 |
CN108540307A (zh) * | 2018-03-01 | 2018-09-14 | 南京理工大学 | 基于sdn的软硬件混合虚拟网络定制系统 |
US20180359181A1 (en) * | 2016-05-31 | 2018-12-13 | Obschestvo S Ogranichennoi Otvetstvennostyu «Programmiruemye Seti» | Ethernet frame transmission method in software defined networks (sdn) |
-
2018
- 2018-12-24 CN CN201811585061.3A patent/CN109525495B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103560958A (zh) * | 2013-10-18 | 2014-02-05 | 华为技术有限公司 | 一种数据包的规则匹配方法及装置 |
US20160269432A1 (en) * | 2013-11-22 | 2016-09-15 | Huawei Technologies Co.,Ltd. | Malicious attack detection method and apparatus |
CN104104561A (zh) * | 2014-08-11 | 2014-10-15 | 武汉大学 | 一种基于OpenFlow协议的SDN防火墙状态检测方法及系统 |
WO2016041341A1 (zh) * | 2014-09-17 | 2016-03-24 | 华为技术有限公司 | 一种获取网络状态的方法及装置 |
CN104901958A (zh) * | 2015-05-21 | 2015-09-09 | 大连理工大学 | 一种用户驱动的sdn网络集中式访问控制方法 |
US20180359181A1 (en) * | 2016-05-31 | 2018-12-13 | Obschestvo S Ogranichennoi Otvetstvennostyu «Programmiruemye Seti» | Ethernet frame transmission method in software defined networks (sdn) |
CN106413020A (zh) * | 2016-09-13 | 2017-02-15 | 华侨大学 | 一种基于OpenFlow的无线传感器网络的实现及数据流处理方法 |
CN108123931A (zh) * | 2017-11-29 | 2018-06-05 | 浙江工商大学 | 一种软件定义网络中的DDoS攻击防御装置及方法 |
CN108200092A (zh) * | 2018-02-08 | 2018-06-22 | 赛特斯信息科技股份有限公司 | 基于nfv技术加速报文acl匹配处理的方法及系统 |
CN108540307A (zh) * | 2018-03-01 | 2018-09-14 | 南京理工大学 | 基于sdn的软硬件混合虚拟网络定制系统 |
CN108494800A (zh) * | 2018-04-27 | 2018-09-04 | 广州西麦科技股份有限公司 | 一种数据包安全检测及处理方法、装置、p4交换机及介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740909A (zh) * | 2020-06-19 | 2020-10-02 | 联想(北京)有限公司 | 一种报文处理方法、装置、网络传输设备及报文处理系统 |
WO2022100511A1 (zh) * | 2020-11-13 | 2022-05-19 | 华为技术有限公司 | 转发表项的处理方法和装置 |
CN115842792A (zh) * | 2023-02-20 | 2023-03-24 | 之江实验室 | 一种数据处理方法、装置、存储介质及电子设备 |
CN116193000A (zh) * | 2023-04-25 | 2023-05-30 | 湖北微源卓越科技有限公司 | 一种基于fpga的智能组包快速转发系统及转发方法 |
CN116193000B (zh) * | 2023-04-25 | 2023-06-23 | 湖北微源卓越科技有限公司 | 一种基于fpga的智能组包快速转发系统及转发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109525495B (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109525495A (zh) | 一种数据处理装置、方法和fpga板卡 | |
CN106209506B (zh) | 一种虚拟化深度包检测流量分析方法及系统 | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
US20140173094A1 (en) | Methods, systems, and computer readable media for classifying application traffic received at a network traffic emulation device that emulates multiple application servers | |
CN110719215B (zh) | 虚拟网络的流信息采集方法及装置 | |
EP3831017A1 (en) | Advanced network tracing in the data plane | |
US20210029052A1 (en) | Methods and apparatuses for packet scheduling for software- defined networking in edge computing environment | |
CN108809748A (zh) | 网络审计数据采集方法及相应装置、设备和存储介质 | |
CN107241305A (zh) | 一种基于多核处理器的网络协议分析系统及其分析方法 | |
CN105939284B (zh) | 报文控制策略的匹配方法及装置 | |
CN105359472A (zh) | 一种用于OpenFlow网络的数据处理方法和装置 | |
CN108540387A (zh) | 网络访问控制方法和装置 | |
US11012542B2 (en) | Data processing method and apparatus | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN109559121A (zh) | 交易路径调用异常分析方法、装置、设备及可读存储介质 | |
US11334623B2 (en) | Key value store using change values for data properties | |
CN108156015A (zh) | 数据的更新方法和装置 | |
CN107133040A (zh) | 一种标准产品业务装置及业务模块扩展置换方法 | |
US20210034428A1 (en) | Estimating device and estimating method | |
CN110109672A (zh) | 一种表达式的解析处理方法及装置 | |
CN109933411A (zh) | 一种在线修改虚拟机内部配置系统及方法 | |
CN112769748B (zh) | 一种基于dpdk的acl包过滤方法 | |
CN109327404A (zh) | 基于朴素贝叶斯分类算法的p2p预测方法及系统、服务器及介质 | |
CN115604343A (zh) | 一种数据传输方法、系统、电子设备和存储介质 | |
CN106557530B (zh) | 业务系统、数据修复方法及装置 |
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 |