CN111355662A - 一种数据加速方法、装置、网关设备及可读存储介质 - Google Patents
一种数据加速方法、装置、网关设备及可读存储介质 Download PDFInfo
- Publication number
- CN111355662A CN111355662A CN201811580942.6A CN201811580942A CN111355662A CN 111355662 A CN111355662 A CN 111355662A CN 201811580942 A CN201811580942 A CN 201811580942A CN 111355662 A CN111355662 A CN 111355662A
- Authority
- CN
- China
- Prior art keywords
- data
- hash value
- stream data
- hash
- linked list
- 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
Images
Classifications
-
- 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
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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/16—Multipoint routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据加速方法、装置、网关设备及可读存储介质,该方法包括:针对接收到的流数据,对所述流数据进行hash运算,确定所述流数据的hash值;判断预先保存的hash表中是否存在所述流数据的hash值;如果是,对所述流数据进行硬件加速。本发明中将接收到的流数据中预设数据进行hash运算,得到流数据的hash值,通常仅需对hash值进行一次判断,即可确定是否需要对流数据进行硬件加速,因此提高了硬件加速效率。
Description
技术领域
本发明涉及承载控制与QoS技术领域,尤其涉及一种数据加速方法、装置、网关设备及可读存储介质。
背景技术
硬件加速作为家庭网关QoS(Quality of Service,服务质量)服务中的一个实现环节,可以将上下行数据流直接通过硬件转发,从而不经过CPU处理,大大提高网络的吞吐量和性能。如图1所示,正常的流数据(图1中的虚线所示)通过硬件的Lan Port进入软件控制器CPU,再经由CPU转发给WAN Port口发送出去,而经过硬件加速的流数据(图1中的实线所示)通过硬件的Lan Port进入加速规则转发控制器,该加速规则转发控制器根据加速规则表确定流数据需要进行加速后,直接转发给WAN Port口发送出去,不经过CPU进行处理,加速规则表可以由软件侧和硬件侧的加速规则更新控制器共同制定。
智能网关在进行QoS时,通常是通过判断数据流中的一些数据如EType、DSCP、IP、MAC、VLAN和UNI_PORT等数据,是否符合硬件加速规则,来确定硬件加速规则是否生效,由于不同数据可能属于不同的协议层,如MAC属于2层数据,IP数据属于3层数据,如果需要判断多个数据,在获取不同数据时需要多次重新进行解析再逐次进行对比,影响硬件加速效率,导致硬件加速效率低下。
发明内容
本发明提供了一种数据加速方法、装置、网关设备及可读存储介质,用以解决现有技术中硬件加速效率低下的问题。
本发明提供了一种数据加速方法,应用于网关设备,该方法包括:
针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;
判断预先保存的hash表中是否存在所述流数据的hash值;
如果是,对所述流数据进行硬件加速。
进一步地,hash表中的hash值以链表的形式保存,不同的链表中保存有不同的hash值,且链表中还保存有hash值对应的目的MAC地址和/或目的IP地址。
进一步地,如果所述流数据属于单播2层流数据,则链表中至少保存有hash值对应的目的MAC地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;
如果是,进行后续步骤。
进一步地,如果所述数据属于单播3层流数据,则链表中至少保存有hash值对应的目的IP地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;
如果是,进行后续步骤。
进一步地,如果所述数据属于组播流数据,则链表中至少保存有hash值对应的目的MAC地址和目的IP地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
如果所述流数据采用了proxy模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,进行后续步骤;
如果所述流数据采用了snooping模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,进行后续步骤。
本发明提供了一种数据加速装置,应用于网关设备,该装置包括:
确定模块,用于针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;
判断模块,用于判断预先保存的hash表中是否存在所述流数据的hash值;
加速模块,用于在所述判断模块的判断结果为是时,对所述流数据进行硬件加速。
本发明提供了一种网关设备,包括存储器和处理器;
所述处理器,用于读取所述存储器中的程序,执行下列过程:针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;判断预先保存的hash表中是否存在所述流数据的hash值;如果是,对所述流数据进行硬件加速。
进一步地,hash表中的hash值以链表的形式保存,不同的链表中保存有不同的hash值,且链表中还保存有hash值对应的目的MAC地址和/或目的IP地址;
如果所述流数据属于单播2层流数据,则链表中至少保存有hash值对应的目的MAC地址,所述处理器,还用于判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,对所述流数据进行硬件加速;
如果所述数据属于单播3层流数据,则链表中至少保存有hash值对应的目的IP地址,所述处理器,还用于判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,对所述流数据进行硬件加速;
如果所述数据属于组播流数据,则链表中至少保存有hash值对应的目的MAC地址和目的IP地址,所述处理器,还用于如果所述流数据采用了proxy模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,对所述流数据进行硬件加速;如果所述流数据采用了snooping模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,对所述流数据进行硬件加速。
本发明提供了一种网关设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述任一项所述方法的步骤。
本发明提供了一种计算机可读存储介质,其存储有可由网关设备执行的计算机程序,当所述程序在所述网关设备上运行时,使得所述网关设备执行上述任一项所述方法的步骤。
本发明提供了一种数据加速方法、装置、网关设备及可读存储介质,该方法包括:针对接收到的流数据,对所述流数据进行hash运算,确定所述流数据的hash值;判断预先保存的hash表中是否存在所述流数据的hash值;如果是,对所述流数据进行硬件加速。本发明中将接收到的流数据中预设数据进行hash运算,得到流数据的hash值,通常仅需对hash值进行一次判断,即可确定是否需要对流数据进行硬件加速,因此提高了硬件加速效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为数据加速控制的流程示意图;
图2为本发明实例1提供的一种数据加速过程的示意图;
图3为本发明实施例2提供的一种以链表的形式保存hash值的示意图;
图4为本发明实施例5提供的一种组播流数据匹配流程示意图;
图5为本发明实施例6提供的一种网关设备的结构示意图;
图6为本发明实施例7提供的一种网关设备的结构示意图;
图7为本发明实施例提供的一种数据加速装置示意图。
具体实施方式
为了提高硬件加速效率,本发明实施例提供了一种数据加速方法、装置、网关设备及可读存储介质。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图2为本发明实施例提供的一种数据加速过程的示意图,该过程包括以下步骤:
S201:针对接收到的流数据,对所述流数据的预设数据进行hash运算,确定所述流数据的hash值。
本发明实施例提供的数据加速方法应用于网关设备,该网关设备能够接收到流数据,具体地,该流数据可以如图1所示通过Lan Port到达网关设备。
网关设备可以在接收到的流数据中确定预设数据,确定哪些预设数据和确定预设数据的过程可以与运营商的运营人员配置的相关规则有关,也可以采用现有技术实现,在本发明实施例中不做赘述。
网关设备对流数据的预设数据进行hash运算,确定流数据的hash值的过程,可以是对流数据的预设数据进行hash运算,得到该预设数据对应的hash值,将得到的该预设数据对应的hash值确定为流数据的hash值,可以是对流数据的预设数据进行hash运算,得到该预设数据对应的hash值,根据得到的该预设数据对应的hash值与流数据的标识信息确定流数据的hash值等。
所述对数据进行hash运算得到对应的hash值的过程属于现有技术,在本发明实施例中不做赘述。
S202:判断预先保存的hash表中是否存在所述流数据的hash值;如果是,进行S203;如果否,进行S204。
因为在对每条流进行判断是否需要进入硬件加速时,无可避免的需要使用存储和查找算法,这里我们选择的是hash算法,并且哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间,代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。
网关设备中可以预先保存有hash表,该hash表中保存有流数据的hash值。Hash表中保存的hash值对应的流数据可以认为是需要进行硬件加速的流数据,hash表中保存流数据的hash值可以是网关设备第一次接收到需要硬件加速的流数据时,将流数据中的预设数据进行hash运算后保存的该流数据的hash值。
网关设备确定接收到的流数据的hash值后,可以在预先保存的hash表中查找是否存在该流数据的hash值,从而判断预先保存的hash表中是否存在该流数据的hash值,根据不同的判断结果执行不同的过程。
S203:对所述流数据进行硬件加速。
如果网关设备确定预先保存的hash表中存在接收到的该流数据的hash值,则可以认为该流数据存在硬件加速需求,从而网关设备对流数据进行硬件加速。
网关设备对流数据进行硬件加速的过程属于现有技术,在本发明实施例中不做赘述。
S204:不对所述流数据进行硬件加速。
如果网关设备确定预先保存的hash表中不存在接收到的该流数据的hash值,则可以认为该流数据不存在硬件加速需求或者无需硬件加速,网关设备不对该流数据进行硬件加速。
网关设备如果不对流数据进行硬件加速,进一步地,网关设备还可以对该流数据进行其他处理,如将该流数据发送给CPU。
如果流数据的预设数据为需要比较的多个或全部数据时,通常hash值进行判断可以一次性确定是否需要进行硬件加速,还可以避免通过少量数据进行分析时导致的误差,提高了硬件加速规则生效的判断准确率。
本发明实施例中将接收到的流数据中预设数据进行hash运算,得到流数据的hash值,通常仅需对hash值进行一次判断,即可确定是否需要对流数据进行硬件加速,因此提高了硬件加速效率。
实施例2:
网关设备的hash表中可以按照常规的数据表进行hash值的保存,但是由于实际使用过程中可能会遇到hash碰撞冲突的问题,导致QoS服务的准确性大大降低,因此为了进一步地提高硬件加速的判定准确性,在上述实施例的基础上,本发明实施例中,hash表中的hash值以链表的形式保存,不同的链表中保存有不同的hash值,且链表中还保存有hash值对应的目的MAC地址和/或目的IP地址。
实际使用过程中多条不同流数据的预设数据在进行hash运算时可能计算得到的hash值一样,就会出现实际与预期不符,为了提高判断准确性和QoS服务的准确性,可以使用“拉链法”这一高效算法来解决hash碰撞冲突,在保存时不同hash值存放在不同的桶,即存在在同一数组中不同位,同一桶中以先后顺序用链表存储hash值对应的目的MAC地址和/或目的IP地址,目的MAC地址和/或目的IP地址可以看作是流数据对应的key。
如图3所示为以链表的形式保存hash值的示意图,hash表中保存的hash值包括hash1、hash2、hash3、hash4、hash5和hash6,还保存有hash1对应的目的MAC地址按照先后顺序存储。
网关设备的hash表可以是保存在网关设备的网关硬件加速模块中,针对不同协议层的网关设备可以保存有不同信息,如2层协议层保存的hash表中保存有hash值对应的目的MAC地址,3层协议层保存的hash表中保存有hash值对应的目的IP地址等,相信本领域技术人员能够根据不同的实际需求和流数据的结构进行确定,在此不一一赘述。
由于本发明实施例中将流数据的hash值以链表的形式保存,并且在hash值对应的链表中保存hash值对应的目的MAC地址和/或目的IP地址,以解决hash碰撞冲突,进一步实现硬件加速的判定准确性的提高。
实施例3:
在上述实施例的基础上,本发明实施例中,如果所述流数据属于单播2层流数据,则链表中至少保存有hash值对应的目的MAC地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;
如果是,进行后续步骤。
为了进一步提高硬件加速的判定准确性,本发明实施例中针对单播2层(TCP/IP)流数据在hash表中以流数据的目的MAC地址作为key,当hash值出现冲突时,可以在该hash值对应的桶即链表中通过该条流数据的目的MAC地址进行区分。
如果流数据存在硬件加速需求,且流数据属于单播2层流数据,链表中保存有该流数据对应的hash值,还至少保存有hash值对应的目的MAC地址。
单播2层流数据匹配表即链表如下表所示:
上述链表中的字段包括DMAC即目的MAC占64个比特位,SMAC即源MAC占64个比特位,EType即以太网类型码占16个比特位,DSCP即IP报文的优先级占8个比特位,STAG_VLAN即数据流外层VLAN值占16个比特位,CTAG_VLAN即数据流内层VLAN值占16个比特位,UNI_PORT即对应下挂LAN口的用户端口占4个比特位,这些字段都可以进行hash运算,来确定该条流数据的hash值。
因此网关设备在确定hash表中保存有接收到的流数据的hash值后,网关设备判断保存该hash值的链表中是否保存有该流数据的目的MAC地址。
如果保存该hash值的链表中还保存该流数据的目的MAC地址,则确认需要对该流数据进行硬件加速。
如果保存该hash值的链表中未保存该流数据的目的MAC地址,则确认补需要对该流数据进行硬件加速。
由于本发明实施例中针对单播2层流数据当出现hash碰撞冲突时,通过流数据的目的MAC地址进行区分,因此能够更准确地进行硬件加速的判定。
实施例4:
在上述实施例的基础上,本发明实施例中,如果所述数据属于单播3层流数据,则链表中至少保存有hash值对应的目的IP地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;
如果是,进行后续步骤。
为了进一步提高硬件加速的判定准确性,本发明实施例中针对单播3层(TCP/IP)流数据在hash表中以流数据的目的IP地址作为key,当hash值出现冲突时,可以在该hash值对应的桶即链表中通过该条流数据的目的IP地址进行区分。
如果流数据存在硬件加速需求,且流数据属于单播3层流数据,链表中保存有该流数据对应的hash值,还至少保存有hash值对应的目的IP地址。
单播3层流数据匹配表即链表如下表所示:
上述链表中的字段包括DIP即目的IP占64个比特位,SIP即源IP占64个比特位,DMAC即目的MAC占64个比特位,SMAC即源MAC占64个比特位,EType即以太网类型码占16个比特位,DSCP即IP报文的优先级占8个比特位,STAG_VLAN即数据流外层VLAN值占16个比特位,CTAG_VLAN即数据流内层VLAN值占16个比特位,UNI_PORT即对应下挂LAN口的用户端口占4个比特位,这些字段都可以进行hash运算,来确定该条流数据的hash值。该表中还包括了DMAC,并且该表相比于单播2层流数据的匹配表,增加了IP的控制。
因此网关设备在确定hash表中保存有接收到的流数据的hash值后,网关设备判断保存该hash值的链表中是否保存有该流数据的目的IP地址。
如果保存该hash值的链表中还保存该流数据的目的IP地址,则确认需要对该流数据进行硬件加速。
如果保存该hash值的链表中未保存该流数据的目的IP地址,则确认不需要对流数据进行硬件加速。
由于本发明实施例中针对单播3层流数据当出现hash碰撞冲突时,通过流数据的目的IP地址进行区分,因此能够更准确地进行硬件加速的判定。
实施例5:
在上述实施例的基础上,本发明实施例中,如果所述数据属于组播流数据,则链表中至少保存有hash值对应的目的MAC地址和目的IP地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
如果所述流数据采用了proxy模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,进行后续步骤;
如果所述流数据采用了snooping模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,进行后续步骤。
为了进一步提高硬件加速的判定准确性,本发明实施例中针对组播流数据,为了保证采用不同模式的组播流数据都能准确判定硬件加速,流数据在hash表中以流数据的目的IP地址和目的MAC地址作为key,具体地当采用proxy模式时以流数据的目的IP地址作为key,当采用snooping模式时以流数据的目的MAC地址作为key。当hash值出现冲突时,可以在该hash值对应的桶即链表中通过该条流数据的key进行区分。
如果流数据存在硬件加速需求,且流数据属于组播流数据,链表中保存有该流数据对应的hash值,还至少保存有hash对应的目的MAC地址和目的IP地址。
因此网关设备在确定hash表中保存有接收到的流数据的hash值后,网关设备还可以根据流数据采用的模式,判断保存该hash值的链表中是否保存有对应的目的MAC地址或目的IP地址。
网关设备确定流数据采用的模式为proxy模式还是snooping模式的过程属于现有技术,在本发明实施例中不做赘述。
如果流数据采用了proxy模式,判断保存该hash值的链表中是否保存有对应的目的IP地址;如果有保存,则确认需要对流数据进行硬件加速;如果未保存,则确认不需要对流数据进行硬件加速。
如果流数据采用了snooping模式,判断保存该hash值的链表中是否保存有对应的目的MAC地址;如果有保存,则确认需要对流数据进行硬件加速,如果未保存,则确认不需要对流数据进行硬件加速。
下面以图4为例对本发明实施例中进行说明,当网关设备接收到的组播数据流即属于组播流数据的流数据后,确定该流数据采用的模式,如果采用的是lgmp Proxy模式,则在IP_Table表中以DIP作为key采用ACL匹配进行硬件加速的确认及相应的硬件加速,如果采用的是lgmp snooping模式,则在MAC_Table表中以DMAC作为key采用ACL匹配进行硬件加速的确认及相应的硬件加速。其中IP_Table表可以是如单播3层数据流匹配表所示至少包括DIP,MAC_Table表可以是如单播2层数据流匹配表所示至少包括DMAC,采用ACL匹配进行硬件加速的确认及相应的硬件加速的过程属于现有技术,在本发明实施例中不做赘述。
由于本发明实施例中针对组播流数据当出现hash碰撞冲突时,通过流数据的目的MAC地址和目的IP地址进行区分,因此能够更准确地进行硬件加速的判定。
实施例6:
在上述各实施例的基础上,本发明实施例还提供了一种网关设备,如图5所示,包括:处理器501和存储器502;
所述处理器501,用于执行读取存储器502中的程序,执行下列过程:
针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;判断预先保存的hash表中是否存在所述流数据的hash值;如果是,对所述流数据进行硬件加速。
基于同一发明构思,本发明实施例中还提供了一种网关设备,由于上述网关设备解决问题的原理与数据加速方法相似,因此上述网关设备的实施可以参见方法的实施,重复之处不再赘述。
在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器501代表的一个或多个处理器和存储器502代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。收发机503可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器501负责管理总线架构和通常的处理,存储器502可以存储处理器501在执行操作时所使用的数据。
可选的,处理器501可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
hash表中的hash值以链表的形式保存,不同的链表中保存有不同的hash值,且链表中还保存有hash值对应的目的MAC地址和/或目的IP地址;
如果所述流数据属于单播2层流数据,则链表中至少保存有hash值对应的目的MAC地址,所述处理器501,还用于判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,对所述流数据进行硬件加速;
如果所述数据属于单播3层流数据,则链表中至少保存有hash值对应的目的IP地址,所述处理器501,还用于判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,对所述流数据进行硬件加速;
如果所述数据属于组播流数据,则链表中至少保存有hash值对应的目的MAC地址和目的IP地址,所述处理器501,还用于如果所述流数据采用了proxy模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,对所述流数据进行硬件加速;如果所述流数据采用了snooping模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,对所述流数据进行硬件加速。
在本发明实施例中将接收到的流数据中预设数据进行hash运算,得到流数据的hash值,通常仅需对hash值进行一次判断,即可确定是否需要对流数据进行硬件加速,因此提高了硬件加速效率。
实施例7:
在上述各实施例的基础上,本发明实施例还提供了一种网关设备,如图6所示,包括:处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信;
所述存储器603中存储有计算机程序,当所述程序被所述处理器601执行时,使得所述处理器601执行如下步骤:
针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;
判断预先保存的hash表中是否存在所述流数据的hash值;
如果是,对所述流数据进行硬件加速。
本发明实施例提供的网关设备具体可以为桌面计算机、服务器、网络侧设备等。
上述网关设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口602用于上述网关设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在本发明实施例中,处理器执行存储器上所存放的程序时,实现将接收到的流数据中预设数据进行hash运算,得到流数据的hash值,通常仅需对hash值进行一次判断,即可确定是否需要对流数据进行硬件加速,因此提高了硬件加速效率。
实施例8:
在上述各实施例的基础上,本发明实施例还提供了一种计算机存储可读存储介质,所述计算机可读存储介质内存储有可由网关设备执行的计算机程序,当所述程序在所述网关设备上运行时,使得所述网关设备执行时实现如下步骤:
针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;
判断预先保存的hash表中是否存在所述流数据的hash值;
如果是,对所述流数据进行硬件加速。
上述计算机可读存储介质可以是网关设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD)等。
在本发明实施例中提供的计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现将接收到的流数据中预设数据进行hash运算,得到流数据的hash值,通常仅需对hash值进行一次判断,即可确定是否需要对流数据进行硬件加速,因此提高了硬件加速效率。
图7为本发明实施例提供的一种数据加速装置示意图,应用于网关设备,该装置包括:
确定模块701,用于针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;
判断模块702,用于判断预先保存的hash表中是否存在所述流数据的hash值;如果是,触发加速模块703;
加速模块703,用于对所述流数据进行硬件加速。
hash表中的hash值以链表的形式保存,不同的链表中保存有不同的hash值,且链表中还保存有hash值对应的目的MAC地址和/或目的IP地址。
如果所述流数据属于单播2层流数据,则链表中至少保存有hash值对应的目的MAC地址,所述判断模块,还用于判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址。
如果所述数据属于单播3层流数据,则链表中至少保存有hash值对应的目的IP地址,所述判断模块,还用于判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址。
如果所述数据属于组播流数据,则链表中至少保存有hash值对应的目的MAC地址和目的IP地址,所述判断模块,还用于如果所述流数据采用了proxy模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果所述流数据采用了snooping模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址。
本发明实施例中将接收到的流数据中预设数据进行hash运算,得到流数据的hash值,通常仅需对hash值进行一次判断,即可确定是否需要对流数据进行硬件加速,因此提高了硬件加速效率。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据加速方法,其特征在于,应用于网关设备,该方法包括:
针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;
判断预先保存的hash表中是否存在所述流数据的hash值;
如果是,对所述流数据进行硬件加速。
2.如权利要求1所述的方法,其特征在于,hash表中的hash值以链表的形式保存,不同的链表中保存有不同的hash值,且链表中还保存有hash值对应的目的MAC地址和/或目的IP地址。
3.如权利要求2所述的方法,其特征在于,如果所述流数据属于单播2层流数据,则链表中至少保存有hash值对应的目的MAC地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;
如果是,进行后续步骤。
4.如权利要求2所述的方法,其特征在于,如果所述数据属于单播3层流数据,则链表中至少保存有hash值对应的目的IP地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;
如果是,进行后续步骤。
5.如权利要求2所述的方法,其特征在于,如果所述数据属于组播流数据,则链表中至少保存有hash值对应的目的MAC地址和目的IP地址,所述对所述流数据进行硬件加速之前,所述方法还包括:
如果所述流数据采用了proxy模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,进行后续步骤;
如果所述流数据采用了snooping模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,进行后续步骤。
6.一种数据加速装置,其特征在于,应用于网关设备,该装置包括:
确定模块,用于针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;
判断模块,用于判断预先保存的hash表中是否存在所述流数据的hash值;
加速模块,用于在所述判断模块的判断结果为是时,对所述流数据进行硬件加速。
7.一种网关设备,其特征在于,包括存储器和处理器;
所述处理器,用于读取所述存储器中的程序,执行下列过程:针对接收到的流数据,对所述流数据的预设数据进行哈希hash运算,确定所述流数据的hash值;判断预先保存的hash表中是否存在所述流数据的hash值;如果是,对所述流数据进行硬件加速。
8.如权利要求7所述的网关设备,其特征在于,hash表中的hash值以链表的形式保存,不同的链表中保存有不同的hash值,且链表中还保存有hash值对应的目的MAC地址和/或目的IP地址;
如果所述流数据属于单播2层流数据,则链表中至少保存有hash值对应的目的MAC地址,所述处理器,还用于判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,对所述流数据进行硬件加速;
如果所述数据属于单播3层流数据,则链表中至少保存有hash值对应的目的IP地址,所述处理器,还用于判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,对所述流数据进行硬件加速;
如果所述数据属于组播流数据,则链表中至少保存有hash值对应的目的MAC地址和目的IP地址,所述处理器,还用于如果所述流数据采用了proxy模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的IP地址;如果是,对所述流数据进行硬件加速;如果所述流数据采用了snooping模式,判断保存所述流数据的hash值的链表中是否保存有所述流数据的目的MAC地址;如果是,对所述流数据进行硬件加速。
9.一种网关设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~5任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有可由网关设备执行的计算机程序,当所述程序在所述网关设备上运行时,使得所述网关设备执行权利要求1~5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811580942.6A CN111355662B (zh) | 2018-12-24 | 2018-12-24 | 一种数据加速方法、装置、网关设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811580942.6A CN111355662B (zh) | 2018-12-24 | 2018-12-24 | 一种数据加速方法、装置、网关设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111355662A true CN111355662A (zh) | 2020-06-30 |
CN111355662B CN111355662B (zh) | 2022-09-13 |
Family
ID=71195503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811580942.6A Active CN111355662B (zh) | 2018-12-24 | 2018-12-24 | 一种数据加速方法、装置、网关设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111355662B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645843A (zh) * | 2008-07-31 | 2010-02-10 | 美国博通公司 | 一种用于网络堆栈的数据通道加速的装置及方法 |
CN102123082A (zh) * | 2011-01-14 | 2011-07-13 | 中兴通讯股份有限公司 | 数据包转发方法和设备 |
US20110225391A1 (en) * | 2010-03-12 | 2011-09-15 | Lsi Corporation | Hash processing in a network communications processor architecture |
CN103036807A (zh) * | 2012-11-29 | 2013-04-10 | 深圳市共进电子股份有限公司 | 一种交互式网络电视业务的保障及优化的方法 |
US20130318067A1 (en) * | 2012-05-23 | 2013-11-28 | International Business Machines Corporation | Hardware-accelerated relational joins |
CN105515873A (zh) * | 2015-12-24 | 2016-04-20 | 北京金山安全管理系统技术有限公司 | 网页加速的方法 |
CN105681194A (zh) * | 2016-03-14 | 2016-06-15 | 上海市共进通信技术有限公司 | 实现网关设备二层数据包快速转发的方法 |
CN107682267A (zh) * | 2017-09-21 | 2018-02-09 | 烽火通信科技股份有限公司 | Linux设备的网络数据转发方法及系统 |
-
2018
- 2018-12-24 CN CN201811580942.6A patent/CN111355662B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645843A (zh) * | 2008-07-31 | 2010-02-10 | 美国博通公司 | 一种用于网络堆栈的数据通道加速的装置及方法 |
US20110225391A1 (en) * | 2010-03-12 | 2011-09-15 | Lsi Corporation | Hash processing in a network communications processor architecture |
CN102123082A (zh) * | 2011-01-14 | 2011-07-13 | 中兴通讯股份有限公司 | 数据包转发方法和设备 |
US20130318067A1 (en) * | 2012-05-23 | 2013-11-28 | International Business Machines Corporation | Hardware-accelerated relational joins |
CN103036807A (zh) * | 2012-11-29 | 2013-04-10 | 深圳市共进电子股份有限公司 | 一种交互式网络电视业务的保障及优化的方法 |
CN105515873A (zh) * | 2015-12-24 | 2016-04-20 | 北京金山安全管理系统技术有限公司 | 网页加速的方法 |
CN105681194A (zh) * | 2016-03-14 | 2016-06-15 | 上海市共进通信技术有限公司 | 实现网关设备二层数据包快速转发的方法 |
CN107682267A (zh) * | 2017-09-21 | 2018-02-09 | 烽火通信科技股份有限公司 | Linux设备的网络数据转发方法及系统 |
Non-Patent Citations (1)
Title |
---|
李英毅等: "用Hash表技术实现快速流分类", 《成都理工大学学报(自然科学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111355662B (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11005729B2 (en) | Satisfying service level agreement metrics for unknown applications | |
CN111682952B (zh) | 针对体验质量度量的按需探测 | |
US10191758B2 (en) | Directing data traffic between intra-server virtual machines | |
CN111131074B (zh) | 一种数据处理方法、装置、系统、服务器及可读存储介质 | |
US10148560B2 (en) | Enhanced error signaling and error handling in a network environment with segment routing | |
CN110754066A (zh) | 网络路径选择 | |
CN109314664B (zh) | 僵尸主控机发现设备和方法 | |
US20170034058A1 (en) | Pipeline table identification | |
US11095518B2 (en) | Determining violation of a network invariant | |
EP3832960B1 (en) | Establishment of fast forwarding table | |
US20160344611A1 (en) | Method and control node for handling data packets | |
CN107294856B (zh) | 确定拓扑变化的方法、设备及系统 | |
CN106534048A (zh) | 一种防范sdn拒绝服务攻击的方法、交换机和系统 | |
CN112702221B (zh) | Bgp异常路由监测方法和装置 | |
CN111800338B (zh) | 跨as的evpn路由交互方法及装置 | |
CN112187636B (zh) | Ecmp路由的存储方法及装置 | |
WO2019119269A1 (zh) | 一种网络故障探测方法及控制中心设备 | |
CN111355662B (zh) | 一种数据加速方法、装置、网关设备及可读存储介质 | |
CN111865803B (zh) | 基于evpn的路由处理方法及装置 | |
US10554563B2 (en) | Generating a packet processing pipeline definition | |
CN111654440B (zh) | 一种智能选路的方法、电子设备以及存储介质 | |
CN108882268B (zh) | 一种更新设备配置的方法及设备 | |
CN115086220B (zh) | 一种网络报文转发方法、装置、设备及介质 | |
CN108881381A (zh) | 一种报文路由确定方法、装置及四层负载均衡器 | |
GSSS | An Analytical Modeling for Leveraging Scalable Communication in IoT for Inter-Domain Routing |
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 |