CN113518033A - 路由方法、哈希运算方法、路由器、装置和设备 - Google Patents

路由方法、哈希运算方法、路由器、装置和设备 Download PDF

Info

Publication number
CN113518033A
CN113518033A CN202010274100.9A CN202010274100A CN113518033A CN 113518033 A CN113518033 A CN 113518033A CN 202010274100 A CN202010274100 A CN 202010274100A CN 113518033 A CN113518033 A CN 113518033A
Authority
CN
China
Prior art keywords
hash
crc
parameter matrix
parameter
new
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
Application number
CN202010274100.9A
Other languages
English (en)
Other versions
CN113518033B (zh
Inventor
吴卫海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010274100.9A priority Critical patent/CN113518033B/zh
Publication of CN113518033A publication Critical patent/CN113518033A/zh
Application granted granted Critical
Publication of CN113518033B publication Critical patent/CN113518033B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures

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)

Abstract

本发明公开一种路由方法、哈希运算方法、路由器、装置和设备。其中的哈希运算方法包括:基于至少两个已有的CRC本原多项式分别得到哈希参数矩阵;将得到的至少两个哈希参数矩阵进行融合生成新的哈希参数矩阵;基于新的哈希参数矩阵对输入数据进行哈希运算。本发明通过将已有的至少两种CRC哈希算法的哈希参数矩阵进行融合生成新的哈希参数矩阵以减少哈希冲突的概率,高了原有硬件资源的利用率,减少了资源浪费,并且简单、方便、易于实现。

Description

路由方法、哈希运算方法、路由器、装置和设备
技术领域
本发明涉及计算机网络技术领域,特别涉及一种路由方法、哈希运算方法、路由器、装置和设备。
背景技术
哈希(Hash)表是根据关键值(key)而直接进行访问的数据结构,它通过把关键码值映射到表项中一个位置(index)来存储,以加快数据查找的速度。其中,此映射函数叫做哈希函数(f),使用哈希函数将任意长度的输入数据转换为固定长度数据过程称为哈希运算,而存放记录的数组便是哈希表,哈希表的数学表达式为:index=f(key)。
哈希算法可以由多种方式实现,其中,CRC哈希算法就是基于循环冗余校验码(CRC)技术实现的哈希算法。CRC是数据通信领域中最常用的一种冗余检错码,其特征是信息字段和校验字段的长度可以任意选定。CRC哈希算法根据特定的CRC本原多项式构建相应的硬件电路,通过将输入编成固定长度的CRC码从而实现哈希运算。
在网络通信领域以路由查找为例,哈希函数输入值(key)的有效范围是整个地址空间,哈希函数输出值(Index)有效范围是系统支持该表项的最大规格。显然,无论是哪种哈希算法,由于输出值的有效范围远远小于输入值的有效范围,在这个前提下,无论怎么去构造哈希函数(f),都不可避免会出现key1≠key2,而f(key1)=f(key2)的情况,此情况便为哈希冲突。
现有技术中,可以根据存储数据的不同来选择不同的Hash函数,以降低冲突概率。然而,在上述CRC哈希算法的情形中,每一种CRC哈希算法都需要通过搭建具体的硬件电路来实现,例如基于FPGA(现场可编程逻辑门阵列)进行设计或制造的芯片形成的集成电路来计算CRC,进而进行哈希运算。由此,当需要实现多种CRC哈希算法时,就需要搭建多种硬件电路,相应地也要占用大量的硬件资源,而被弃用的CRC哈希算法的硬件电路无法被重复使用,造成资源浪费。
而且,每次需要新的CRC哈希算法时就要重新设计硬件电路,例如,对原有硬件电路进行重新编译、更改反馈路径或者更新版本等,实现起来比较复杂,不够灵活。
发明内容
鉴于现有技术中存在的技术缺陷和技术弊端,本发明实施例提供克服上述问题或者至少部分地解决上述问题的一种路由方法、哈希运算方法、路由器、装置和设备。
作为本发明实施例的一个方面,涉及一种哈希运算方法,可以包括:
基于至少两个已有的CRC本原多项式分别得到哈希参数矩阵;
将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵;
基于所述新的哈希参数矩阵对输入数据进行哈希运算。
作为本发明实施例的第二方面,涉及一种路由方法,可以包括:
基于至少两种CRC哈希算法对路由信息进行哈希运算,并根据该哈希运算的运算结果查找相应的数据流;
当多个不同的路由信息的运算结果对应于同一个数据流时,确定为所述CRC哈希算法发生了冲突;
基于所述至少两种CRC哈希算法各自的CRC本原多项式分别获取哈希参数矩阵;
将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵;
基于所述新的哈希参数矩阵对所述路由信息进行哈希运算,并根据该哈希运算的运算结果查找相应的数据流进行路由转发。
作为本发明实施例的第三方面,涉及一种哈希运算装置,可以包括:
参数矩阵获取模块,用于基于至少两个已有的CRC本原多项式分别得到哈希参数矩阵;
参数矩阵融合模块,用于将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵;
哈希运算模块,用于基于所述新的哈希参数矩阵对输入数据进行哈希运算。
作为本发明实施例的第四方面,涉及一种路由器,可以包括:
运算模块,用于基于至少两种CRC哈希算法对路由信息进行哈希运算;
查找模块,用于根据哈希运算的运算结果查找相应的数据流;
确定模板,用于当多个不同的路由信息的运算结果对应于同一个数据流时,确定为所述CRC哈希算法发生了冲突;
获取模块,用于基于所述至少两种CRC哈希算法各自的CRC本原多项式分别得到哈希参数矩阵;
融合模块,用于将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵;
运算模块,还用于基于所述新的哈希参数矩阵对所述路由信息进行哈希运算;
转发模块,用于根据新的哈希参数矩阵对所述路由信息进行哈希运算的运算结果查找相应的数据流进行转发。
作为本发明实施例的第五方面,涉及一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述哈希运算方法、路由方法。
作为本发明实施例的第六方面,涉及一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述哈希运算方法、路由方法。
本发明实施例至少实现了如下技术效果:
本发明通过将已有的至少两种CRC哈希算法的哈希参数矩阵进行融合生成新的哈希参数矩阵,基于该新的哈希参数矩阵实现新的CRC哈希算法以减少哈希冲突的概率。整个过程只需要将已有的硬件电路相结合即可快速生成新的CRC哈希算法,无需根据新的CRC本原多项式搭建新的硬件电路,因此提高了原有硬件资源的利用率,减少了资源浪费,并且简单、方便、易于实现。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所记载的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例1提供的哈希运算方法的流程图;
图2为本发明实施例1所述的基于本原多项式的硬件电路结构的举例模型示意图;
图3为图1中的步骤S11的具体实现流程图;
图4为本发明实施例1提供的哈希运算装置的结构示意图;
图5为本发明实施例2提供的路由方法的流程图;
图6为本发明实施例2提供的路由器的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
实施例1
本发明实施例提供了一种哈希运算方法,参照图1所示,该方法可以包括以下步骤:
步骤S11、基于至少两个已有的CRC本原多项式分别得到哈希参数矩阵。
其中,CRC(Cyclic Redundancy Check,循环冗余校验)本原多项式是用于生成循环冗余校验码的表达式,每种CRC哈希算法对应一个CRC本原多项式,可以由硬件电路实现。
例如:一个本原多项式为:G(x)=X8+X2+X1+1,其所对应的硬件电路结构如图2所示,其中的M(x)表示输入数据,C(x)表示输出的CRC码,即CRC哈希运算的运算结果。该硬件电路中的寄存器可以为线性反馈移位寄存器(LSFR)。
其中,所述哈希参数矩阵是指输出的CRC码与输入数据之间的参数形成的矩阵。每一种CRC哈希算法通过其各自的CRC本原多项式可以分别推导出相应的哈希参数矩阵。具体过程将在后续内容进行详细介绍。
步骤S12、将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵。
具体地,可以将至少两个所述哈希参数矩阵进行如下至少一项逻辑运算生成新的哈希参数矩阵:相加、相减、相乘或相除。融合后生成新的哈希参数矩阵也表示输出的CRC码与输入数据之间的参数关系,因此可以理解为是一种新的哈希算法。
步骤S13、基于所述新的哈希参数矩阵对输入数据进行哈希运算。
如前所述,融合后生成新的哈希参数矩阵也可以理解为是一种新的哈希算法,因此,通过该新的哈希算法对输入数据重新进行哈希运算后会得到新的运算结果。
本实施例所述方法也可以基于FPGA(Field Programmable Gate Array,现场可编程门阵列)或ASIC(特殊应用集成电路或专用集成电路)实现,通过将已有的硬件电路相结合便可以快速生成新的CRC哈希算法,而且可编程逻辑单元可用于各种网络设备和芯片,当一些应用场景中发生哈希冲突时,可以便可以通过该方法生成新的CRC哈希算法重新进行哈希运算,从而降低冲突概率。当然,除了用于网络设备领域,只要用到由硬件、或软硬件结合实现HASH算法复用的场合,都可以使用本公开实现,本发明实施例对此不作限定。
以下,参照图3,针对上述步骤S11的具体可选实现方式进行如下说明:
步骤S111、根据所述CRC本原多项式确定当前输出的CRC数据串与输入数据和前次输出的CRC数据串之间的参数关系。
参照图2所示,其中数据流输入M(x)={D0,D1,……,D6,D7},当数据从D0到D7逐步输入到移位寄存器序列中去,C(x)便可以得到整个数据M(x)的CRC值,即得到哈希的运算结果C(x)。基于图2中可以得到:
Figure BDA0002444170700000061
其中,C0'~C7'表示当前的CRC数据串,C0~C7表示前次输出的CRC数据串。
将数据M(x)={D0,D1,......,D6,D7}的数据逐一带入(公式1),得到CRC的并行计算表达式:
Figure BDA0002444170700000071
因此,上述CRC可以表示成C(x)=XN*M(x)%G(x)。其中,XN表示需要哈希运算的数据,根据上述G(x)的例子,N=8,数据左移8次(计算机语言中空打8bit),数学运算中用乘N次方表示,%表示求余。
将C(x)=XN*M(x)%G(x)数据迭代展开之后便得到并行的CRC算法公式,即:
Figure BDA0002444170700000072
其中,D(i)表示当前的输入数据,PD(x,i)表示针对D(i)的参数,C(j)为前次输出的CRC数据串,PC(x,j)表示针对C(j)的参数,i,j=(0到N-1)。
上述公式3即为当前输出的CRC数据串与输入数据和前次输出的CRC数据串之间的参数关系。
步骤S112、令所述前次输出的CRC数据串为0,得到所述当前输出的CRC数据串与所述输入数据之间的参数关系。
从上述公式3可见,当前输出的CRC数据串既与当前的输入数据有关,也与前次输出的CRC数据串有关。本实施例中,为了消除前次输出的CRC数据串的影响,令前次输出的CRC数据串为0。
即,令C(j)==0,其中,j=(0到N-1),由此将公式3简化为:
H(x)=∑(D(i)&PD(x,i)) ---(公式4)
其中,j=(0到N-1)
上述公式4即为当前输出的CRC数据串与所述输入数据之间的参数关系。
步骤S113、根据所述当前输出的CRC数据串与所述输入数据之间的参数关系得到所述哈希参数矩阵。
根据上述公式4,将上述公式2相应地简化为:
Figure BDA0002444170700000081
其中的运算符“^”,表示verilog语言中的异或运算。
将公式5按照位数对齐的方式可以改写为如下形式:
Figure BDA0002444170700000082
将公式5-1中的数据D前面的系数写成矩阵形式如下:
Figure BDA0002444170700000083
Figure BDA0002444170700000091
上述公式5-2即为对应于上述本原多项式G(x)=X8+X2+X1+1的哈希参数矩阵。
类似地,对应于另一个本原多项式G(x)=X8+X5+X4+1所得到的哈希参数矩阵如下:
Figure BDA0002444170700000092
此后,在步骤S12中,将上述公式5-2所示的哈希参数矩阵与5-3所示的哈希参数矩阵进行融合即生成新的哈希参数矩阵。具体的方式可以为矩阵的相加、相减、相乘或相除等。在实际应用时,可以根据输入数据的维度和逻辑运算的类型,通过填充零等方式调整所述哈希参数矩阵的行宽和/或列宽。
例如,要实现G(0x104c11db7)32G(0x10007)16的组合输出对于整个PD矩阵,G(0x104c11db7)32可以对齐数据{D0~D31},而G(0x10007)16可以对齐数据{D32~D47},也可以根据需求对其任意数据D。比如D选取{D0,D3,D4,D6,D7,D30,D47,D31,D20}等等。
作为PD(x,i)的两个关键参数,x表示HASH输出的位宽,i表示输入数据位宽。只要x,i参数设计能覆盖基本需求,就可以在此范围内实现任意的HASH函数。我们记作PD(M,N),则公式5-2的整个PD适配任意PD(x,i)的配置和函数如下:
Figure BDA0002444170700000101
基于同一发明构思,本发明实施例还提供了一种哈希运算装置,参照图4所示,该哈希运算装置10可以包括:参数矩阵获取模块11、参数矩阵融合模块12和哈希运算模块13,其工作原理如下:
参数矩阵获取模块11基于至少两个已有的CRC本原多项式分别得到哈希参数矩阵。具体地,参数矩阵获取模块11先根据所述CRC本原多项式确定当前输出的CRC数据串与输入数据和前次输出的CRC数据串之间的参数关系;然后令所述前次输出的CRC数据串为0,得到所述当前输出的CRC数据串与所述输入数据之间的参数关系;最后根据所述当前输出的CRC数据串与所述输入数据之间的参数关系得到所述哈希参数矩阵。
此后,参数矩阵融合模块12将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵。具体地,参数矩阵融合模块12可以将至少两个所述哈希参数矩阵进行如下至少一项逻辑运算生成新的哈希参数矩阵:相加、相减、相乘或相除。可选地,参数矩阵融合模块12在将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵之前,还根据所述输入数据的维度和所述逻辑运算的类型,调整所述哈希参数矩阵的行宽和/或列宽。
最后,哈希运算模块13基于所述新的哈希参数矩阵对输入数据进行哈希运算。
以上各模块的具体说明可参见上述方法流程中的相关内容,此处不再赘述。
本发明实施例通过将已有的至少两种CRC哈希算法的哈希参数矩阵进行融合生成新的哈希参数矩阵,基于该新的哈希参数矩阵实现新的CRC哈希算法以减少哈希冲突。整个过程只需要将已有的硬件电路相结合即可快速生成新的CRC哈希算法,无需根据新的CRC本原多项式搭建新的硬件电路,因此提高了原有硬件资源的利用率,减少了资源浪费,并且简单、方便、易于实现。
实施例2
本发明实施例提供了一种路由方法,是上述哈希运算方法在路由转发场景中的具体应用,参照图5所示,该方法可以包括以下步骤:
步骤S21、基于至少两种CRC哈希算法对路由信息进行哈希运算,并根据该哈希运算的运算结果查找相应的数据流。
其中,CRC哈希算法是基于CRC技术实现的哈希算法。上述路由信息具体可以是五元组数据,五元组数据是指源IP地址,源端口,目的IP地址,目的端口,和传输层协议这五个量组成的一个集合。通过每一种CRC哈希算法对五元组数据进行哈希运算均能得到相应的固定长度数值,基于该固定长度数值与数据流ID相匹配,从而查找到相应的数据流,对查找到的该数据流进行路由转发,即将该数据流发送给具有相应目的IP地址的服务器的相应目的端口。
步骤S22、当多个不同的路由信息的运算结果对应于同一个数据流时,确定为所述CRC哈希算法发生了冲突。
如前所述,任何哈希算法都有自身局限性,例如当对不同的输入数据进行相同的哈希运算均得到相同的固定长度数值时则发生了冲突。具体地,在本步骤中,当使用一种CRC哈希算法针对不同的五元组数的哈希运算结果均对应同一个数据流时,则认为该CRC哈希算法发生了冲突。本实施例就为了解决该冲突问题,进一步提供了后续步骤。
具体地,在实际应用中,可以当确定所述CRC哈希算法发生冲突的次数超过预定值时再执行后续步骤。例如,当一种CRC哈希算法发生冲突时对应的数据流当全部数据流的比例超过5%时,再执行后续步骤。
步骤S23、基于所述至少两种CRC哈希算法各自的CRC本原多项式分别得到哈希参数矩阵。
关于本步骤的具体说明可参照实施例1中的步骤S11,此处不再赘述。
步骤S24、将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵。
关于本步骤的具体说明可参照实施例1中的步骤S12,此处不再赘述。
步骤S25、基于所述新的哈希参数矩阵对所述路由信息进行哈希运算,并根据哈希运算的运算结果查找相应的数据流进行路由转发。
如前所述,融合后生成新的哈希参数矩阵也可以理解为是一种新的哈希算法,因此,通过该新的哈希算法对输入的五元组数据重新进行哈希运算后会得到新的运算结果,即得到新的固定长度数值,基于该新的固定长度数值查找相应的数据流进行路由转发。
基于同一发明构思,本发明实施例还提供了一种路由器,参照图6所示,该路由器20可以包括:运算模块21、查找模块22、确定模板23、获取模块24、融合模块25和转发模块26,其工作原理如下:
运算模块21基于至少两种CRC哈希算法对路由信息据进行哈希运算;查找模块22根据哈希运算的运算结果查找相应的数据流。
在上述的数据流查找过程中,当多个不同的路由信息的运算结果对应于同一个数据流时,确定模板23确定为相应的CRC哈希算法发生了冲突。
当每次检测到CRC哈希算法冲突,或者当确定出所述CRC哈希算法发生冲突的次数超过预定值后,由获取模块24基于所述至少两种CRC哈希算法各自的CRC本原多项式分别得到哈希参数矩阵,并由融合模块25将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵。运算模块21再基于所述新的哈希参数矩阵对所述路由信息进行哈希运算;从而转发模块26根据新的哈希参数矩阵对所述路由信息进行哈希运算的运算结果查找相应的数据流进行转发。具体的过程可参见上述实施例1的相关内容,此处不再赘述。
由运算模块21重新基于新的哈希参数矩阵对所述路由信息进行哈希运算,由于更换了新的哈希算法,因此针对同样的路由信息再次进行哈希运算时出现冲突的概率会大大降低。当不再出现冲突时,则能够由转发模块26根据新的哈希运算的运算结果查找到相应的数据流并进行路由转发。
以上各模块的具体说明可参见上述方法流程中的相关内容,此处不再赘述。
本发明实施例在进行路由转发的场景中当多个不同的路由信息的哈希运算结果对应于同一个数据流时,确定为相应的CRC哈希算法发生了冲突,通过运用了上述哈希运算方法生成新的CRC哈希算法对同样的路由信息重新进行哈希运算,从而降低了冲突概率。与上述实施例1类似,本实施例同样地也提高了原有硬件资源的利用率,减少了资源浪费,并且简单、方便、易于实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种哈希运算方法,包括:
基于至少两个已有的CRC本原多项式分别得到哈希参数矩阵;
将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵;
基于所述新的哈希参数矩阵对输入数据进行哈希运算。
2.根据权利要求1所述的方法,所述基于至少两个已有的CRC本原多项式分别得到哈希参数矩阵,包括:
根据所述CRC本原多项式确定当前输出的CRC数据串与输入数据和前次输出的CRC数据串之间的参数关系;
令所述前次输出的CRC数据串为0,得到所述当前输出的CRC数据串与所述输入数据之间的参数关系;
根据所述当前输出的CRC数据串与所述输入数据之间的参数关系得到所述哈希参数矩阵。
3.根据权利要求1所述的方法,所述将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵,包括:
将至少两个所述哈希参数矩阵进行如下至少一项逻辑运算生成新的哈希参数矩阵:相加、相减、相乘或相除。
4.根据权利要求3所述的方法,所述将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵之前,还包括:
根据所述输入数据的维度和所述逻辑运算的类型,调整所述哈希参数矩阵的行宽和/或列宽。
5.一种路由方法,包括:
基于至少两种CRC哈希算法对路由信息进行哈希运算,并根据该哈希运算的运算结果查找相应的数据流;
当多个不同的路由信息的运算结果对应于同一个数据流时,确定为所述CRC哈希算法发生了冲突;
基于所述至少两种CRC哈希算法各自的CRC本原多项式分别获取哈希参数矩阵;
将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵;
基于所述新的哈希参数矩阵对所述路由信息进行哈希运算,并根据该哈希运算的运算结果查找相应的数据流进行路由转发。
6.根据权利要求5所述的方法,所述基于所述至少两种CRC哈希算法各自的CRC本原多项式分别得到哈希参数矩阵之前还包括:确定所述CRC哈希算法发生冲突的次数超过预定值。
7.根据权利要求5所述的方法,所述基于所述至少两种CRC哈希算法各自的CRC本原多项式分别得到哈希参数矩阵,包括:
根据所述CRC本原多项式确定当前输出的CRC数据串与输入的路由信息和前次输出的CRC数据串之间的参数关系;
令所述前次输出的CRC数据串为0,得到所述当前输出的CRC数据串与所述输入的路由信息之间的参数关系;
根据所述当前输出的CRC数据串与所述输入的路由信息之间的参数关系得到所述哈希参数矩阵。
8.根据权利要求5所述的方法,所述将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵,包括:
将至少两个所述哈希参数矩阵进行如下至少一项逻辑运算生成新的哈希参数矩阵:相加、相减、相乘或相除。
9.根据权利要求8所述的方法,所述将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵之前,还包括:
根据所述输入的路由信息的维度和所述逻辑运算的类型,调整所述哈希参数矩阵的行宽和/或列宽。
10.一种路由器,包括:
运算模块,用于基于至少两种CRC哈希算法对路由信息进行哈希运算;
查找模块,用于根据哈希运算的运算结果查找相应的数据流;
确定模板,用于当多个不同的路由信息的运算结果对应于同一个数据流时,确定为所述CRC哈希算法发生了冲突;
获取模块,用于基于所述至少两种CRC哈希算法各自的CRC本原多项式分别得到哈希参数矩阵;
融合模块,用于将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵;
运算模块,还用于基于所述新的哈希参数矩阵对所述路由信息进行哈希运算;
转发模块,用于根据新的哈希参数矩阵对所述路由信息进行哈希运算的运算结果查找相应的数据流进行转发。
11.一种哈希运算装置,包括:
参数矩阵获取模块,用于基于至少两个已有的CRC本原多项式分别得到哈希参数矩阵;
参数矩阵融合模块,用于将得到的至少两个所述哈希参数矩阵进行融合生成新的哈希参数矩阵;
哈希运算模块,用于基于所述新的哈希参数矩阵对输入数据进行哈希运算。
12.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1~9中任一项所述的方法。
13.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1~9中任一项所述的方法。
CN202010274100.9A 2020-04-09 2020-04-09 路由方法、路由器和设备 Active CN113518033B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010274100.9A CN113518033B (zh) 2020-04-09 2020-04-09 路由方法、路由器和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010274100.9A CN113518033B (zh) 2020-04-09 2020-04-09 路由方法、路由器和设备

Publications (2)

Publication Number Publication Date
CN113518033A true CN113518033A (zh) 2021-10-19
CN113518033B CN113518033B (zh) 2023-01-03

Family

ID=78060358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010274100.9A Active CN113518033B (zh) 2020-04-09 2020-04-09 路由方法、路由器和设备

Country Status (1)

Country Link
CN (1) CN113518033B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666011A (zh) * 2022-03-23 2022-06-24 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865577B1 (en) * 2000-11-06 2005-03-08 At&T Corp. Method and system for efficiently retrieving information from a database
CN101655821A (zh) * 2009-08-04 2010-02-24 中兴通讯股份有限公司 一种解决地址空间映射哈希地址冲突的方法及装置
DE102013208213A1 (de) * 2012-05-20 2013-11-21 International Business Machines Corporation System zur Verringerung von Hash-Kollisionen
US20150358435A1 (en) * 2014-06-10 2015-12-10 Cisco Technology, Inc. Flow matching optimization in scaled environments
CN105160295A (zh) * 2015-07-14 2015-12-16 东北大学 一种面向大规模人脸数据库的快速高效人脸识别方法
CN107133120A (zh) * 2016-02-29 2017-09-05 阿里巴巴集团控股有限公司 一种文件数据的校验方法、装置
CN107330047A (zh) * 2017-06-28 2017-11-07 华信塞姆(成都)科技有限公司 一种基于完美哈希算法的fpga训练及查询电路实现方法
WO2018036457A1 (zh) * 2016-08-23 2018-03-01 中兴通讯股份有限公司 一种哈希冲突的处理方法、装置及交换设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865577B1 (en) * 2000-11-06 2005-03-08 At&T Corp. Method and system for efficiently retrieving information from a database
CN101655821A (zh) * 2009-08-04 2010-02-24 中兴通讯股份有限公司 一种解决地址空间映射哈希地址冲突的方法及装置
DE102013208213A1 (de) * 2012-05-20 2013-11-21 International Business Machines Corporation System zur Verringerung von Hash-Kollisionen
US20150358435A1 (en) * 2014-06-10 2015-12-10 Cisco Technology, Inc. Flow matching optimization in scaled environments
CN105160295A (zh) * 2015-07-14 2015-12-16 东北大学 一种面向大规模人脸数据库的快速高效人脸识别方法
CN107133120A (zh) * 2016-02-29 2017-09-05 阿里巴巴集团控股有限公司 一种文件数据的校验方法、装置
WO2018036457A1 (zh) * 2016-08-23 2018-03-01 中兴通讯股份有限公司 一种哈希冲突的处理方法、装置及交换设备和存储介质
CN107330047A (zh) * 2017-06-28 2017-11-07 华信塞姆(成都)科技有限公司 一种基于完美哈希算法的fpga训练及查询电路实现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666011A (zh) * 2022-03-23 2022-06-24 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备
CN114666011B (zh) * 2022-03-23 2024-04-16 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN113518033B (zh) 2023-01-03

Similar Documents

Publication Publication Date Title
US20200285634A1 (en) System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system
US6654701B2 (en) Method and apparatus for measuring protocol performance in a data communication network
US20150262074A1 (en) Solving digital logic constraint problems via adiabatic quantum computation
WO2018090860A1 (en) Cyclic redundancy check calculation for multiple blocks of a message
EP0611054B1 (en) Polynomial-set deriving apparatus and method
US7907726B2 (en) Pseudorandom number generation with expander graphs
CN107276916A (zh) 基于协议无感知转发技术的交换机流表管理方法
Vaucher et al. ZipLine: in-network compression at line speed
US8578240B1 (en) CRC computation for packet length not multiple of data path width
CN113518033B (zh) 路由方法、路由器和设备
US10601711B1 (en) Lens table
CN115580390A (zh) 一种安全多方计算下的多场景模式计算方法及系统
Huang et al. Automatic tool for searching for differential characteristics in ARX ciphers and applications
US8683291B2 (en) High throughput frame check sequence module architecture
Pedersen et al. Network coding over the 2 32− 5 prime field
US10511531B1 (en) Enhanced lens distribution
WO2023124677A1 (zh) 数据处理的方法和计算平台
US20110252039A1 (en) System, apparatus and method for processing content on a computing device
US10795873B1 (en) Hash output manipulation
US10355994B1 (en) Lens distribution
CN112084006B (zh) 一种镜像包处理方法、装置及电子设备
KR100268221B1 (ko) 순회 여분 검사를 이용한 랜 스위치의 맥 주소 해슁 방법 및장치
US11489544B2 (en) Fast CRC computation circuit using an on-the-fly reconfigurable generator polynomial
CN115250254B (zh) Netflow报文分发处理方法及装置
CN111147390B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40063918

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230522

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right