CN114745327A - 业务数据转发方法、装置、设备及存储介质 - Google Patents
业务数据转发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114745327A CN114745327A CN202210650359.8A CN202210650359A CN114745327A CN 114745327 A CN114745327 A CN 114745327A CN 202210650359 A CN202210650359 A CN 202210650359A CN 114745327 A CN114745327 A CN 114745327A
- Authority
- CN
- China
- Prior art keywords
- preset
- rule
- row
- information
- value
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于计算机技术领域,公开了一种业务数据转发方法、装置、设备及存储介质。本发明通过获取待转发数据包对应的五元组数据及目标IP信息;根据目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;根据五元组数据及流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;根据下一跳端口对所述待转发数据进行数据转发。由于将不同应用服务的多个流量分割规则重叠存储在预设重叠规则表中,并根据各规则的存储位置信息构建了预设前缀匹配表,在需要查找端口时可以通过数据包对应的目标IP信息及五元组信息确定下一跳端口,在保证可正常进行数据包转发的同时,极大的缩减了TCAM表项数,提高了流量分割吞吐量及规则更新速率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种业务数据转发方法、装置、设备及存储介质。
背景技术
业务流量分割是许多网络应用和云服务的关键功能,即将业务流量均衡分割到多个服务器(或多条路径)进行并行处理,实现业务流量处理的负载均衡。例如,数据中心通常采用网络负载均衡器(Network Load Balancer)将多个应用服务的业务流量均衡分割到多个服务器进行并行处理,从而提升应用服务的性能、可扩展性和可靠性。
由于基于专用硬件的网络负载均衡器存在价格昂贵和可扩展性差等问题,当前的许多网络应用和云服务主要采用通用交换机(Commodity Switch)来实现业务流量分割功能。通用交换机采用TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)表存储和查找每个应用服务的流量分割规则表,即一个TCAM表项存储一条流量分割规则。而通用交换机的TCAM芯片价格昂贵且存储空间有限(例如,TCAM表项总数约为10000),难以存储和查找1000至10000个应用服务的100000至1000000条流量分割规则。因此,缩减流量分割规则的TCAM表项数是提升业务流量分割性能和可扩展性的关键。
现有基于TCAM的业务流量分割方法难以缩减大规模应用服务的多个流量分割表,无法缩减TCAM表项数,同时也难以保证流量分割规则查找和更新性能。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种业务数据转发方法、装置、设备及存储介质,旨在解决现有技术无法缩减TCAM表项数,也无法保证流量分割规则查找和更新性能的技术问题。
为实现上述目的,本发明提供了一种业务数据转发方法,所述方法包括以下步骤:
获取待转发数据包对应的五元组数据及目标IP信息;
根据所述目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;
根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;
根据所述下一跳端口对所述待转发数据进行数据转发。
可选的,所述根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口的步骤,包括:
对所述五元组数据进行哈希运算,获得五元哈希值;
从所述流量分割规则中提取行偏移值、列偏移值及行总数;
根据所述五元哈希值、所述行偏移值及所述行总数确定行索引值;
根据所述五元哈希值、所述行偏移值、所述列偏移值及所述行总数确定列索引值;
根据所述行索引值及所述列索引值在预设重叠规则表中查找对应的下一跳端口。
可选的,所述根据所述五元哈希值、所述行偏移值及所述行总数确定行索引值的步骤,包括:
通过预设行索引计算公式根据所述五元哈希值、所述行偏移值及所述行总数计算行索引值;
所述预设行索引计算公式为:
式中,Hash_Index为所述五元哈希值,Rank_Offset为所述行偏移值,Num_Ranks为所述行总数,Rank_Index为行索引值。
可选的,所述根据所述五元哈希值、所述行偏移值、所述列偏移值及所述行总数确定列索引值的步骤,包括:
通过预设列索引计算公式根据所述五元哈希值、所述行偏移值、所述列偏移值及所述行总数计算列索引值;
所述预设列索引计算公式为:
式中,Hash_Index为五元哈希值,Column_Offset为列偏移值,Rank_Offset为行偏移值,Num_Ranks为行总数,Column_Index为列索引值。
可选的,所述获取待转发数据包对应的五元组数据及目标IP信息的步骤之前,还包括:
获取各应用服务对应的流量分割规则表;
对所述流量分割规则表进行权重缩减,获得多个缩减规则表;
按列式规则对各缩减规则表中的规则进行存储,生成预设重叠规则表;
根据所述预设重叠规则表生成预设前缀匹配表;
将所述预设重叠规则表及所述预设前缀匹配表加载至目标芯片中。
可选的,所述对所述流量分割规则表进行权重缩减,获得多个缩减规则表的步骤,包括:
获取预设流量分割精度;
根据预设权重缩减规则及所述预设流量分割精度对所述流量分割规则表进行权重缩减,获得多个缩减规则表。
可选的,所述根据所述预设重叠规则表生成预设前缀匹配表的步骤,包括:
获取各缩减规则表在所述预设重叠规则表中的存储位置信息,所述存储位置信息包括缩减规则表在所述预设重叠规则表中的行偏移值、列偏移值、规则数及总行数;
根据所述存储位置信息生成预设前缀匹配表。
此外,为实现上述目的,本发明还提出一种业务数据转发装置,所述业务数据转发装置包括以下模块:
信息获取模块,用于获取待转发数据包对应的五元组数据及目标IP信息;
规则查找模块,用于根据所述目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;
端口确定模块,用于根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;
数据转发模块,用于根据所述下一跳端口对所述待转发数据进行数据转发。
此外,为实现上述目的,本发明还提出一种业务数据转发设备,所述业务数据转发设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的业务数据转发程序,所述业务数据转发程序被处理器执行时实现如上所述的业务数据转发方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有业务数据转发程序,所述业务数据转发程序执行时实现如上所述的业务数据转发方法的步骤。
本发明通过获取待转发数据包对应的五元组数据及目标IP信息;根据目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;根据五元组数据及流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;根据下一跳端口对所述待转发数据进行数据转发。由于将不同应用服务的多个流量分割规则重叠存储在预设重叠规则表中,并根据各规则的存储位置信息构建了预设前缀匹配表,在需要查找端口时可以通过数据包对应的目标IP信息及五元组信息确定下一跳端口,在保证可正常进行数据包转发的同时,极大的缩减了TCAM表项数,提高了流量分割吞吐量及规则更新速率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的电子设备的结构示意图;
图2为本发明业务数据转发方法第一实施例的流程示意图;
图3为本发明业务数据转发方法第二实施例的流程示意图;
图4为本发明业务数据转发装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的业务数据转发设备结构示意图。
如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及业务数据转发程序。
在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在业务数据转发设备中,所述电子设备通过处理器1001调用存储器1005中存储的业务数据转发程序,并执行本发明实施例提供的业务数据转发方法。
本发明实施例提供了一种业务数据转发方法,参照图2,图2为本发明一种业务数据转发方法第一实施例的流程示意图。
本实施例中,所述业务数据转发方法包括以下步骤:
步骤S10:获取待转发数据包对应的五元组数据及目标IP信息。
需要说明的是,本实施例的执行主体可以是所述业务数据转发设备,所述业务数据转发设备可以是网络负载均衡器,例如:通用交换机等,当然,也可以是其他功能相同或相似的设备,本实施例对此不加以限制,在本实施例及下述各实施例中,以业务数据转发设备为例对本发明业务数据转发方法进行说明。
需要说明的是,待转发数据包可以是其他设备发送给所述业务数据转发设备,并需要进行数据转发的数据包。五元组数据可以包括:源IP地址、源端口、目的IP地址、目的端口、协议类型等数据。目标IP信息可以是待转发数据包最终转发需要到达的设备的IP地址等信息。
步骤S20:根据所述目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息。
需要说明的是,预设前缀匹配表(简称LPM表)可以是TCAM表,在预设前缀匹配表中每一个TCAM表项对应一个流量分割规则信息,每条流量分割规则信息包括:前缀IP地址(IP_Prefix)、行偏移值(Rank_Offset)、列偏移值(Column_Offset)、规则数(Num_Rules)和总行数(Num_Ranks)等数据。其中,流量分割规则信息可以是流量分割规则表在预设重叠规则表中的存储位置信息,预设前缀匹配表可以由业务数据转发设备的管理人员预先进行设置。
在实际使用中,根据目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息可以是将目标IP信息与预设前缀匹配表中各个TCAM表项中包含的前缀IP地址进行匹配,在成功匹配时,从成功匹配的TCAM表项中读取流量分割规则信息。
步骤S30:根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口。
需要说明的是,预设重叠规则表(简称OR表)可以是与上述预设前缀匹配表对应的位于后端的TCAM表,预设重叠规则表中每个TCAM表项中包含行索引及多个规则的下一跳端口(Next_Hop)。
在具体实现中,一个TCAM表项由一个TCAM字块和一个SRAM字块组成。预设前缀匹配表中的前缀IP地址存储在TCAM字块中,行偏移值、列偏移值、规则数和总行数存储在SRAM字块中。前缀IP地址与一个应用服务对应,当一个数据包的目的IP地址与一个前缀IP地址匹配时,该数据包属于该前缀IP地址对应的应用服务。行偏移值是表示一个流量分割规则在OR表中的起始行偏移值。列偏移值是表示一个流量分割规则在OR表中的起始列偏移值。规则数是表示一个流量分割规则表在OR中的规则数。总行数是表示所有应用服务在OR表的总行数。
在实际使用中,根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口可以是根据五元组数据及流量分割规则信息在预设重叠规则表中查找到对应的TCAM表项,然后从TCAM表项中读取下一跳端口。
进一步地,由于OR表中一个TCAM表项中会包含多个不同规则的下一跳端口,仅仅查找到表项无法确定具体的数据转发端口,为了准确的确定下一跳端口,本实施所述步骤S30,可以包括:
对所述五元组数据进行哈希运算,获得五元哈希值;
从所述流量分割规则信息中提取行偏移值、列偏移值及行总数;
根据所述五元哈希值、所述行偏移值及所述行总数确定行索引值;
根据所述五元哈希值、所述行偏移值、所述列偏移值及所述行总数确定列索引值;
根据所述行索引值及所述列索引值在预设重叠规则表中查找对应的下一跳端口。
需要说明的是,对五元组数据进行哈希运算,获得五元哈希值可以是通过预设哈希算法对五元组数据进行哈希运算,并将哈希运算结果的作为五元哈希值,预设哈希算法可以是哈希索引算法,也可以是其他类似的算法,本实施例对此不加以限制。从所述流量分割规则信息中提取行偏移值、列偏移值及行总数可以是对流量分割规则信息进行解析,从解析结果中读取行偏移值、列偏移值及行总数。
在具体实现中,根据五元哈希值、行偏移值及行总数确定行索引值可以使通过预设行索引计算公式根据五元哈希值、行偏移值及行总数计算行索引值;
预设行索引计算公式为:
式中,Hash_Index为五元哈希值,Rank_Offset为行偏移值,Num_Ranks为行总数,Rank_Index为行索引值。
在具体实现中,根据五元哈希值、行偏移值、列偏移值及行总数确定列索引值可以是通过预设列索引计算公式根据五元哈希值、行偏移值、列偏移值及行总数计算列索引值;
预设列索引计算公式为:
式中,Hash_Index为五元哈希值,Column_Offset为列偏移值,Rank_Offset为行偏移值,Num_Ranks为行总数,Column_Index为列索引值。
在具体实现中,根据行索引值及列索引值在预设重叠规则表中查找对应的下一跳端口可以是根据行索引值在预设重叠规则表中查找到对应的TCAM表项,然后根据行索引从TCAM表项中包含的多个下一跳端口中选取对应的下一跳端口。
例如:假设预设前缀匹配表及预设重叠规则表分别如表1及表2所示:
IP_Prefix | Rank_Offset | Column_Offset | Num_Rules | Num_Ranks |
1.1.1.0/24 | 0 | 0 | 2 | 4 |
1.1.2.0/24 | 2 | 0 | 4 | 4 |
1.1.3.0/24 | 2 | 1 | 4 | 4 |
表1 预设前缀匹配表
表2 预设重叠规则表
而目标IP信息为1.1.3.3为关键值,查上表1,获得的流量分割规则信息为前缀IP地址为1.1.3.0/24、行偏移值为2、列偏移值为1、规则数为4个、总行数为4个。此时根据该数据包的五元组计算得到的五元哈希值为1,此时结合上述公式计算得到的行索引为3,列索引为1,因此,此时可以行索引查找到预设重叠规则表中查找到行索引为3,多个下一跳端口为P3、P4的这一行数据,然后根据列索引从中读取到对应的下一跳端口为P4。
步骤S40:根据所述下一跳端口对所述待转发数据进行数据转发。
需要说明的是,根据下一跳端口对待转发数据进行数据转发可以是从该下一跳端口对待转发数据进行发送。
需要说明的是,本实施例业务数据转发方法的实现依赖于两个特性实现:
第一个特性是不同应用服务的多个流量分割规则表存在TCAM字块的部分共享。一条流量分割规则存储在一个TCAM表项中,一个TCAM表项是由一个TCAM字块和一个SRAM字块组成。一个TCAM字块包含一个服务索引(Service Index)和一个哈希索引(Hash Index)。不同应用服务的流量分割规则表具有不同的服务索引,但是具有部分相同的哈希索引,这为不同应用服务的多个流量分割规则表聚合压缩提供了机会。
第二个特性是TCAM芯片的SRAM宽字技术,用于降低TCAM查找能耗和提升TCAM查找可扩展性。一个TCAM表项的SRAM字块通常存储一条流量分割规则的下一跳端口。一个TCAM表项的SRAM字块长度通常为32比特或64比特。TCAM芯片的SRAM宽字技术可调整SRAM字块长度为128比特或256比特或512比特,这为多个流量分割规则压缩存储在一个TCAM表项提供了机会
本实施例通过获取待转发数据包对应的五元组数据及目标IP信息;根据目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;根据五元组数据及流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;根据下一跳端口对所述待转发数据进行数据转发。由于将不同应用服务的多个流量分割规则重叠存储在预设重叠规则表中,并根据各规则的存储位置信息构建了预设前缀匹配表,在需要查找端口时可以通过数据包对应的目标IP信息及五元组信息确定下一跳端口,在保证可正常进行数据包转发的同时,极大的缩减了TCAM表项数,提高了流量分割吞吐量及规则更新速率。
参考图3,图3为本发明一种业务数据转发方法第二实施例的流程示意图。
基于上述第一实施例,本实施例业务数据转发方法在所述步骤S10之前,还包括:
步骤S01:获取各应用服务对应的流量分割规则表。
需要说明的是,每一个应用服务可以对应一个流量分割规则表,而每个流量分割规则ibao中可以包含多个规则,例如:n个应用服务对应的n个流量分割规则表T1, T2, …,Tn,表Ti包含Mi个规则R1, R2, …, RMi。
在实际使用中,获取到流量分割规则表之后,可以根据每条规则的权重,从流量分割规则表中复制多条规则,即复制各个规则对应的下一跳端口。
步骤S02:对所述流量分割规则表进行权重缩减,获得多个缩减规则表。
需要说明的是,对流量分割规则表进行权重缩减,获得多个缩减规则表可以是通过牺牲部分流量分割精度,将各个规则表缩减成一个更小的规则表,并将缩减后的规则表作为缩减规则表。
在具体实现中,为了对规则标的缩减有规律且可控,并且保证缩减后的规则表依旧有效,本实施例所述步骤S02,可以包括:
获取预设流量分割精度;
根据预设权重缩减规则及所述预设流量分割精度对所述流量分割规则表进行权重缩减,获得多个缩减规则表。
需要说明的是,预设流量分割精度可以由业务数据转发设备的管理人员预先进行设置。预设权重缩减规则可以是基于WCMP(Weighted Cost Multi-Path,权重多路径)方法进行设置的。
步骤S03:按列式规则对各缩减规则表中的规则进行存储,生成预设重叠规则表。
需要说明的是,按列式规则对各缩减规则表中的规则进行存储,生成预设重叠规则表可以是预先给定TCAM表项总数和SRAM宽度,生成一个TCAM表,然后将各缩减规则表中的规则按照列式存储的方式一次存储在TCAM表的SRAM字块中,即一个SRAM字块存储多个下一跳端口,然后在存储完毕时,将该TCAM表作为预设重叠规则表。
步骤S04:根据所述预设重叠规则表生成预设前缀匹配表。
需要说明的是,根据预设重叠规则表生成预设前缀匹配表可以是根据各缩减规则表在预设重叠规则表对应的存储位置信息生成一TCAM表,并将生成的TCAM表作为预设前缀匹配表。
在实际使用中,为了保证预设前缀匹配表与预设重叠规则表的对应关系,本实施例所述步骤S04,可以包括:
获取各缩减规则表在所述预设重叠规则表中的存储位置信息,所述存储位置信息包括缩减规则表在所述预设重叠规则表中的行偏移值、列偏移值、规则数及总行数;
根据所述存储位置信息生成预设前缀匹配表。
需要说明的是,根据存储位置信息生成预设前缀匹配表可以是获取各缩减规则表对应的前缀IP地址,然后通过将前缀IP地址填充至TCAM块,将存储位置信息填充至SRAM块中,生成多个TCAM表项,然后根据生成的多个TCAM表项构建TCAM表,并将构建的TCAM表作为预设前缀匹配表。
步骤S05:将所述预设重叠规则表及所述预设前缀匹配表加载至目标芯片中。
需要说明的是,目标芯片可以是TCAM芯片,当然,也可以是功能类似的其他芯片。其中,目标芯片可以位于所述业务数据转发设备中。
本实施例通过获取各应用服务对应的流量分割规则表;对所述流量分割规则表进行权重缩减,获得多个缩减规则表;按列式规则对各缩减规则表中的规则进行存储,生成预设重叠规则表;根据所述预设重叠规则表生成预设前缀匹配表;将所述预设重叠规则表及所述预设前缀匹配表加载至目标芯片中。由于会预先获取各应用服务对应的流量分割规则表,对其进行权重缩减调整之后,按列式规则将各规则重叠存储至预设重叠规则表,保证了可提高流量分割吞吐量和规则更新速率,并根据预设重叠规则表生成对应的预设前缀匹配表,然后将其加载至目标芯片中运行,保证后续可依据预设前缀匹配表中存储的信息快速根据数据包的五元组数据及目标IP地址信息快速确定下一跳端口,为本发明业务数据转发方法提供了实现基础。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有业务数据转发程序,所述业务数据转发程序被处理器执行时实现如上文所述的业务数据转发方法的步骤。
参照图4,图4为本发明业务数据转发装置第一实施例的结构框图。
如图4所示,本发明实施例提出的业务数据转发装置包括:
信息获取模块10,用于获取待转发数据包对应的五元组数据及目标IP信息;
规则查找模块20,用于根据所述目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;
端口确定模块30,用于根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;
数据转发模块40,用于根据所述下一跳端口对所述待转发数据进行数据转发。
本实施例通过获取待转发数据包对应的五元组数据及目标IP信息;根据目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;根据五元组数据及流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;根据下一跳端口对所述待转发数据进行数据转发。由于将不同应用服务的多个流量分割规则重叠存储在预设重叠规则表中,并根据各规则的存储位置信息构建了预设前缀匹配表,在需要查找端口时可以通过数据包对应的目标IP信息及五元组信息确定下一跳端口,在保证可正常进行数据包转发的同时,极大的缩减了TCAM表项数,提高了流量分割吞吐量及规则更新速率。
进一步的,所述端口确定模块30,还用于对所述五元组数据进行哈希运算,获得五元哈希值;从所述流量分割规则信息中提取行偏移值、列偏移值及行总数;根据所述五元哈希值、所述行偏移值及所述行总数确定行索引值;根据所述五元哈希值、所述行偏移值、所述列偏移值及所述行总数确定列索引值;根据所述行索引值及所述列索引值在预设重叠规则表中查找对应的下一跳端口。
进一步的,所述端口确定模块30,还用于通过预设行索引计算公式根据所述五元哈希值、所述行偏移值及所述行总数计算行索引值;
所述预设行索引计算公式为:
式中,Hash_Index为所述五元哈希值,Rank_Offset为所述行偏移值,Num_Ranks为所述行总数,Rank_Index为行索引值。
进一步的,所述端口确定模块30,还用于通过预设列索引计算公式根据所述五元哈希值、所述行偏移值、所述列偏移值及所述行总数计算列索引值;
所述预设列索引计算公式为:
式中,Hash_Index为五元哈希值,Column_Offset为列偏移值,Rank_Offset为行偏移值,Num_Ranks为行总数,Column_Index为列索引值。
进一步的,所述信息获取模块10,还用于获取各应用服务对应的流量分割规则表;对所述流量分割规则表进行权重缩减,获得多个缩减规则表;按列式规则对各缩减规则表中的规则进行存储,生成预设重叠规则表;根据所述预设重叠规则表生成预设前缀匹配表;将所述预设重叠规则表及所述预设前缀匹配表加载至目标芯片中。
进一步的,所述信息获取模块10,还用于获取预设流量分割精度;根据预设权重缩减规则及所述预设流量分割精度对所述流量分割规则表进行权重缩减,获得多个缩减规则表。
进一步的,所述信息获取模块10,还用于获取各缩减规则表在所述预设重叠规则表中的存储位置信息,所述存储位置信息包括缩减规则表在所述预设重叠规则表中的行偏移值、列偏移值、规则数及总行数;根据所述存储位置信息生成预设前缀匹配表。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的业务数据转发方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种业务数据转发方法,其特征在于,所述业务数据转发方法包括以下步骤:
获取待转发数据包对应的五元组数据及目标IP信息;
根据所述目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;
根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;
根据所述下一跳端口对所述待转发数据进行数据转发。
2.如权利要求1所述的业务数据转发方法,其特征在于,所述根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口的步骤,包括:
对所述五元组数据进行哈希运算,获得五元哈希值;
从所述流量分割规则信息中提取行偏移值、列偏移值及行总数;
根据所述五元哈希值、所述行偏移值及所述行总数确定行索引值;
根据所述五元哈希值、所述行偏移值、所述列偏移值及所述行总数确定列索引值;
根据所述行索引值及所述列索引值在预设重叠规则表中查找对应的下一跳端口。
5.如权利要求1-4中任一项所述的业务数据转发方法,其特征在于,所述获取待转发数据包对应的五元组数据及目标IP信息的步骤之前,还包括:
获取各应用服务对应的流量分割规则表;
对所述流量分割规则表进行权重缩减,获得多个缩减规则表;
按列式规则对各缩减规则表中的规则进行存储,生成预设重叠规则表;
根据所述预设重叠规则表生成预设前缀匹配表;
将所述预设重叠规则表及所述预设前缀匹配表加载至目标芯片中。
6.如权利要求5所述的业务数据转发方法,其特征在于,所述对所述流量分割规则表进行权重缩减,获得多个缩减规则表的步骤,包括:
获取预设流量分割精度;
根据预设权重缩减规则及所述预设流量分割精度对所述流量分割规则表进行权重缩减,获得多个缩减规则表。
7.如权利要求5所述的业务数据转发方法,其特征在于,所述根据所述预设重叠规则表生成预设前缀匹配表的步骤,包括:
获取各缩减规则表在所述预设重叠规则表中的存储位置信息,所述存储位置信息包括缩减规则表在所述预设重叠规则表中的行偏移值、列偏移值、规则数及总行数;
根据所述存储位置信息生成预设前缀匹配表。
8.一种业务数据转发装置,其特征在于,所述业务数据转发装置包括以下模块:
信息获取模块,用于获取待转发数据包对应的五元组数据及目标IP信息;
规则查找模块,用于根据所述目标IP信息在预设前缀匹配表中查找对应的流量分割规则信息;
端口确定模块,用于根据所述五元组数据及所述流量分割规则信息在预设重叠规则表中查找对应的下一跳端口;
数据转发模块,用于根据所述下一跳端口对所述待转发数据进行数据转发。
9.一种业务数据转发设备,其特征在于,所述业务数据转发设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的业务数据转发程序,所述业务数据转发程序被处理器执行时实现如权利要求1-7中任一项所述的业务数据转发方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有业务数据转发程序,所述业务数据转发程序执行时实现如权利要求1-7中任一项所述的业务数据转发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210650359.8A CN114745327B (zh) | 2022-06-10 | 2022-06-10 | 业务数据转发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210650359.8A CN114745327B (zh) | 2022-06-10 | 2022-06-10 | 业务数据转发方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114745327A true CN114745327A (zh) | 2022-07-12 |
CN114745327B CN114745327B (zh) | 2022-08-26 |
Family
ID=82287591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210650359.8A Active CN114745327B (zh) | 2022-06-10 | 2022-06-10 | 业务数据转发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114745327B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115866092A (zh) * | 2022-11-24 | 2023-03-28 | 中国联合网络通信集团有限公司 | 数据转发方法、装置、设备及存储介质 |
CN116962321A (zh) * | 2023-09-18 | 2023-10-27 | 鹏城实验室 | 数据包传输方法、传输配置方法、装置、设备及介质 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674557A (zh) * | 2005-04-01 | 2005-09-28 | 清华大学 | 基于tcam的解决范围匹配的并行ip包分类器及方法 |
CN101770291A (zh) * | 2009-04-30 | 2010-07-07 | 广东国笔科技股份有限公司 | 输入系统语意分析数据散列存储和分析方法 |
US20100296514A1 (en) * | 2006-10-20 | 2010-11-25 | SUNDSTROEM Mikael | Method, device, computer program product and system for representing a partition of n w-bit intervals associated to d-bit data in a data communications network |
CN102307149A (zh) * | 2011-09-23 | 2012-01-04 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN102915353A (zh) * | 2012-09-28 | 2013-02-06 | 浙江图讯科技有限公司 | 一种垃圾数据的清理方法 |
CN103870602A (zh) * | 2014-04-03 | 2014-06-18 | 中国科学院地理科学与资源研究所 | 数据库空间分片复制方法及系统 |
US9438505B1 (en) * | 2012-03-29 | 2016-09-06 | Google Inc. | System and method for increasing capacity in router forwarding tables |
US20180097730A1 (en) * | 2014-05-22 | 2018-04-05 | International Business Machines Corporation | Supporting access control list rules that apply to tcp segments belonging to 'established' connection |
CN108462559A (zh) * | 2018-03-16 | 2018-08-28 | 西安电子科技大学 | Gfdm系统中基于ia-pft降低带外辐射的方法 |
CN108875064A (zh) * | 2018-07-03 | 2018-11-23 | 湖南新实网络科技有限公司 | 基于FPGA的OpenFlow多维数据匹配查找方法 |
CN109831384A (zh) * | 2017-11-23 | 2019-05-31 | 华为技术有限公司 | 名字查找方法及路由器 |
CN110442570A (zh) * | 2019-06-06 | 2019-11-12 | 北京左江科技股份有限公司 | 一种BitMap高速模糊查找方法 |
CN110473216A (zh) * | 2019-08-22 | 2019-11-19 | 联想(北京)有限公司 | 一种图像中目标物的检测方法及装置 |
CN110855629A (zh) * | 2019-10-21 | 2020-02-28 | 新华三信息安全技术有限公司 | Ip地址的匹配方法、匹配表的生成方法及相关装置 |
CN111107181A (zh) * | 2019-12-30 | 2020-05-05 | 北京天融信网络安全技术有限公司 | Nat规则匹配方法、装置、电子设备及存储介质 |
CN111797182A (zh) * | 2020-05-29 | 2020-10-20 | 深圳市跨越新科技有限公司 | 一种地址编码解析方法及系统 |
CN111932215A (zh) * | 2020-09-18 | 2020-11-13 | 杭州趣链科技有限公司 | 一种智能合约版本的管理方法、设备及可读存储介质 |
-
2022
- 2022-06-10 CN CN202210650359.8A patent/CN114745327B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674557A (zh) * | 2005-04-01 | 2005-09-28 | 清华大学 | 基于tcam的解决范围匹配的并行ip包分类器及方法 |
US20100296514A1 (en) * | 2006-10-20 | 2010-11-25 | SUNDSTROEM Mikael | Method, device, computer program product and system for representing a partition of n w-bit intervals associated to d-bit data in a data communications network |
CN101770291A (zh) * | 2009-04-30 | 2010-07-07 | 广东国笔科技股份有限公司 | 输入系统语意分析数据散列存储和分析方法 |
CN102307149A (zh) * | 2011-09-23 | 2012-01-04 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
US9438505B1 (en) * | 2012-03-29 | 2016-09-06 | Google Inc. | System and method for increasing capacity in router forwarding tables |
CN102915353A (zh) * | 2012-09-28 | 2013-02-06 | 浙江图讯科技有限公司 | 一种垃圾数据的清理方法 |
CN103870602A (zh) * | 2014-04-03 | 2014-06-18 | 中国科学院地理科学与资源研究所 | 数据库空间分片复制方法及系统 |
US20180097730A1 (en) * | 2014-05-22 | 2018-04-05 | International Business Machines Corporation | Supporting access control list rules that apply to tcp segments belonging to 'established' connection |
CN109831384A (zh) * | 2017-11-23 | 2019-05-31 | 华为技术有限公司 | 名字查找方法及路由器 |
CN108462559A (zh) * | 2018-03-16 | 2018-08-28 | 西安电子科技大学 | Gfdm系统中基于ia-pft降低带外辐射的方法 |
CN108875064A (zh) * | 2018-07-03 | 2018-11-23 | 湖南新实网络科技有限公司 | 基于FPGA的OpenFlow多维数据匹配查找方法 |
CN110442570A (zh) * | 2019-06-06 | 2019-11-12 | 北京左江科技股份有限公司 | 一种BitMap高速模糊查找方法 |
CN110473216A (zh) * | 2019-08-22 | 2019-11-19 | 联想(北京)有限公司 | 一种图像中目标物的检测方法及装置 |
CN110855629A (zh) * | 2019-10-21 | 2020-02-28 | 新华三信息安全技术有限公司 | Ip地址的匹配方法、匹配表的生成方法及相关装置 |
CN111107181A (zh) * | 2019-12-30 | 2020-05-05 | 北京天融信网络安全技术有限公司 | Nat规则匹配方法、装置、电子设备及存储介质 |
CN111797182A (zh) * | 2020-05-29 | 2020-10-20 | 深圳市跨越新科技有限公司 | 一种地址编码解析方法及系统 |
CN111932215A (zh) * | 2020-09-18 | 2020-11-13 | 杭州趣链科技有限公司 | 一种智能合约版本的管理方法、设备及可读存储介质 |
Non-Patent Citations (3)
Title |
---|
DING-YUAN LEE,: ""Bundle-Updatable SRAM-Based TCAM Design for OpenFlow-Compliant Packet Processor"", 《 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》 * |
杨仝,: ""骨干网路由表压缩、查找及增量更新技术研究"", 《中国博士学位论文全文数据库 (信息科技辑)》 * |
马万里,: ""基于TCAM的高效路由方案研究与实现"", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115866092A (zh) * | 2022-11-24 | 2023-03-28 | 中国联合网络通信集团有限公司 | 数据转发方法、装置、设备及存储介质 |
CN116962321A (zh) * | 2023-09-18 | 2023-10-27 | 鹏城实验室 | 数据包传输方法、传输配置方法、装置、设备及介质 |
CN116962321B (zh) * | 2023-09-18 | 2024-01-09 | 鹏城实验室 | 数据包传输方法、传输配置方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114745327B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3035613B1 (en) | Ccn routing using hardware-assisted hash tables | |
CN114745327B (zh) | 业务数据转发方法、装置、设备及存储介质 | |
US9178806B2 (en) | High-speed content routing | |
US7197597B1 (en) | Performing lookup operations in a content addressable memory based on hashed values of particular use in maintaining statistics for packet flows | |
US7782859B2 (en) | Enhanced packet classification | |
US7941606B1 (en) | Identifying a flow identification value mask based on a flow identification value of a packet | |
US20130282854A1 (en) | Node and method for generating shortened name robust against change in hierarchical name in content-centric network (ccn) | |
US20150242429A1 (en) | Data matching based on hash table representations of hash tables | |
CN108476179A (zh) | 简化的正交网络策略集选择 | |
US11100073B2 (en) | Method and system for data assignment in a distributed system | |
US10630588B2 (en) | System and method for range matching | |
US10783153B2 (en) | Efficient internet protocol prefix match support on No-SQL and/or non-relational databases | |
CN110427574B (zh) | 路线相似度确定方法、装置、设备和介质 | |
CN111953609B (zh) | 基于ovs的数据包处理方法及相关设备 | |
US8539547B2 (en) | Policy selector representation for fast retrieval | |
US20190005533A1 (en) | Signal Matching for Entity Resolution | |
US20180054386A1 (en) | Table lookup method for determing set membership and table lookup apparatus using the same | |
US11256859B2 (en) | Extending a classification database by user interactions | |
CN103368852A (zh) | 用于处理哈希冲突的方法和系统 | |
JP3558151B2 (ja) | データ検索回路 | |
JPWO2004054186A1 (ja) | データ中継装置、連想メモリデバイス、および連想メモリデバイス利用情報検索方法 | |
US9544226B1 (en) | Efficient address-based rule resolution in a network employing a bit-mapped index | |
CN116366292B (zh) | 报文处理方法、系统、存储介质及电子设备 | |
CN116600031B (zh) | 报文处理方法、装置、设备及存储介质 | |
EP2947839B1 (en) | Method and apparatus to forward a request for content |
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 |