CN109525503B - 一种压缩方法及装置、计算机可读存储介质 - Google Patents
一种压缩方法及装置、计算机可读存储介质 Download PDFInfo
- Publication number
- CN109525503B CN109525503B CN201811215545.9A CN201811215545A CN109525503B CN 109525503 B CN109525503 B CN 109525503B CN 201811215545 A CN201811215545 A CN 201811215545A CN 109525503 B CN109525503 B CN 109525503B
- Authority
- CN
- China
- Prior art keywords
- searched
- bit
- key
- values
- 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.)
- Active
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/38—Flow control; Congestion control by adapting coding or compression rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种压缩方法及装置、计算机可读存储介质,所述压缩方法包括:从待转发报文中获取n位待查找键值;根据预设路由规格,将所述n位待查找键值进行拆分得到m位待查找键值和n‑m位待查找键值;对所述n‑m位待查找键值进行哈希运算,得到m位更新后的中间值;对所述m位更新后的中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值,所述m位待查找索引值用于索引对应关联数据,关联数据包括转发端口。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种压缩方法及装置、计算机可读存储介质。
背景技术
数据通信设备的转发引擎,是数据网络交换的主要部件。转发引擎内部需要有多种信息表,包括地址表、策略表等,通过查询信息表,可以得到针对数据流的转发目的地、策略等信息,对于包交换网络,当数据报文通过时,转发引擎会根据数据报文中的数据报文包头,其中包头含有转发地址等信息来产生键值,用于索引信息表。如果索引信息表中有符合这个键值的条目,则取出其关联数据,其中关联数据(Associated Date,AD)中存储了数据报文应当进行的转发或策略行为,通过对报文应用预先设置的行为,转发引擎实现了对数据报文的转发或监管。
鉴于散列表是信息表的逻辑组织方法,其存储在随机存取存储器(Random AccessMemory,RAM)中,通过将键值映射到散列表中的一个位置来访问散列表中的记录,构成了转发引擎的主要设计成本。然而,现有技术是将键值视为字段,通过删除其中部分字段来进行压缩散列表,存在散列表的RAM深度受限制的问题。
发明内容
为解决上述技术问题,本发明实施例期望提供一种压缩方法及装置、计算机可读存储介质,能够节省存储空间,同时RAM深度也不会被限制。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种压缩方法,所述方法包括:
从待转发报文中获取n位待查找键值;
根据预设路由规格,将所述n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值;
对所述n-m位待查找键值进行哈希运算,得到m位更新后的中间值;
对所述m位更新后的中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值,所述m位待查找索引值用于索引对应关联数据,关联数据包括转发端口。
第二方面,本发明实施例提供一种压缩装置,所述压缩装置包括:
第一获取模块,配置为从待转发报文中获取n位待查找键值;
第一拆分模块,配置为根据预设路由规格,将所述n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值;
第一得到模块,配置为对所述n-m位待查找键值进行哈希运算,得到m位更新后中间值;
第二得到模块,配置为对所述m位更新后中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值,所述m位待查找索引值用于索引对应的关联数据,所述关联数据包括转发端口。
第三方面,本发明实施例提供一种压缩装置,其中,所述压缩装置至少包括处理器、存储有所述处理器可执行指令的存储器,和用于连接所述处理器、所述存储器的总线,当所述指令被执行时,所述处理器执行时实现上述实施例提供的压缩方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储计算机程序,所述计算机程序被处理器执行时实现上述实施例提供的压缩方法。
本发明实施例提供了一种压缩方法及装置、计算机可读存储介质,该压缩方法包括:从待转发报文中获取n位待查找键值;根据预设路由规则,将所述n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值;对所述n-m位待查找键值进行哈希运算,得到m位更新后的中间值;对所述m位更新后的中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值,所述m位待查找索引值用于索引对应的关联数据,所述关联数据包括转发端口,如此,将原来需要n位待查找键值改进成只需要通过n-m位待查找键值便可以得到m位待查找索引值,从而压缩了表项的位宽,节省了存储空间。
附图说明
图1为本发明实施例提出的一种压缩方法的实现流程示意图一;
图2为本发明实施例提出的一种压缩方法的实现流程示意图二;
图3为本发明实施例提出的一种压缩方法的实现流程示意图三;
图4为本发明实施例提出的一种压缩方法的实现流程示意图四;
图5为本发明实施例提出的一种压缩方法的实现流程示意图五;
图6为本发明实施例提出的一种压缩方法的实现流程示意图六;
图7A为本发明实施例提供的一种示例性的键值存储示意图一;
图7B为本发明实施例提供的一种示例性的键值存储示意图二;
图8为现有的查找关联数据的示意图;
图9为本发明实施例提供的压缩后查找关联数据的示例图;
图10为本发明实施例压缩后具体查找关联数据的流程示意图;
图11为本发明实施例提出的一种压缩装置组成结构示意图一;
图12为本发明实施例提供的一种压缩装置组成结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
本发明实施例提供一种压缩方法,图1为本发明实施例提出的一种压缩方法的实现流程示意图一,如图1所示,在本发明实施例中,以压缩装置为路由器为例进行本实施例的说明,路由器实现压缩的方法可以包括以下步骤:
步骤101、从待转发报文中获取n位待查找键值。
本发明实施例中,路由器接收到待转发报文的时候,在转发层面,待转发报文从路由器入端口进来,路由器解析得到待转发报文的目的地址,经过包引擎处理得到对应的虚拟路由转发标识(Virtual Routing Forwarding Identification,VRFID),如果待转发报文期望做路由,则可以使用待查找键值{地址,VRFID}去查表引擎查找,这种查找方式就是查找散列表的方式,其散列配置过程和查找过程必须相同,基于待查找键值进行后续的压缩的方法的实现。
需要说明的是,路由器具有多个接口,用于在网络中转发待转发报文,路由表存储在路由器的内存中,用于指示路由器将待转发报文转发至正确目的地,路由器的功能层面包括控制层面和转发层面,其中控制层面形成和维护路由表,转发层面使用全局路由表进行待转发报文的转发。
在控制层面,如果是网际协议(Internet Protocol,IP)路由转发,在VRFID为7485进行路由转发时,期望如下:当待转发的报文中的地址是1.1.1.1,期望转发目的端口为端口4;当待转发的报文中的地址是2.2.2.2,期望其转发目的端口为端口2,这时在控制层面会配置对应的键值并存储RAM中。
在转发层面,根据待查找键值获取待查找的索引值,取出索引值对应存储的目标键值,基于目标键值和待转发键值,实现对待转发报文的转发。
示例性地,待转发报文中32位地址为32’h01010101和16位VRFID为16’h1D3D,则待查找键值为{地址:32’h01010101,VRFID:16’h1D3D}。
步骤102、根据预设路由规格,将n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值。
本发明实施例中,在获取待查找键值之后,路由器可以先通过对路由规格进行计算得到m,再根据计算得到的m,将n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值。
示例性地,待查找键值为{地址:32’h01010101,VRFID:16’h1D3D},取路由规格为2048,即2048=211得到m=11,将待查找键值进行拆分,对待查找键值中的VRFID:16’h1D3D拆分得到VRFID的0位到10位为16’h53D,即11位VRFID为11’h53D;VRFID的11位到15位为5’h3,即5位VRFID为5’h3。
步骤103、对n-m位待查找键值进行哈希运算,得到m位更新后的中间值。
本发明实施例中,在生成更新后的键值之后,路由器通过哈希运算可以将更新后的键值进行变换得到固定长度的m位更新后中间值。
需要说明的是,哈希运算是把任意长度的输入,通过哈希算法变换成固定长度的输出。
示例性地,待查找键值为{地址:32’h01010101,VRFID:16’h1D3D},取m=11,对待转发键值进行拆分,将VRFID:16’h1D3D进行拆分得到11位VRFID为11’h53D;5位VRFID为5’h3,则更新后的键值为{地址:32’h01010101,VRFID:5’h3}进行哈希运算可以得11位更新后中间值为11’h4dd。
步骤104、对m位更新后的中间值和m位待查找键值进行可逆运算,得到m位待查找索引值。
本发明实施例中,在得到m位更新后中间值和m位待查找键值之后,路由器可以对两者进行异或处理,得到m位待查找索引值,m位待查找索引值用于索引对应位置的键值和对应位置存储的关联数据,关联数据包括转发端口,待转发报文通过该转发端口进行转发。
需要说明的是,可逆运算可以是同或逆运算也可以是异或逆运算,本发明实施例这里不做限定。
示例性地,11位更新后中间值为11’h4dd,11位VRFID为11’h53D,对11’h4dd和11’h53D进行异或处理,可得11位待查找索引值为11’h220。
进一步,图2为本发明实施例提出的一种压缩方法的实现流程示意图二,如图2所示,在本发明实施例中,路由器根据预设路由规则,将待查找键值中的n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值,即步骤102路由器实现压缩的方法可以包括以下步骤:
步骤102a、根据待转发报文的路由规格,获取预设散列表的索引值为m位。
步骤102b、按照预设散列表的索引值为m位,将n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值。
本发明实施例中,路由器将待查找键值存储在RAM中,RAM存储条目数可以为待转发报文的路由规格,例如,待转发报文的路由规格为2048,通过log2(2048)进行计算得到预设散列表的索引值为11位,然后取m=11,将待查找键值中的n位待查找键值进行拆分得到11位待查找键值和n-11位待查找键值。
进一步,图3为本发明实施例提出的一种压缩方法的实现流程示意图三,如图3所示,在本发明实施例中,路由器在对m位更新后中间值和m位待查找键值进行可逆运算,得到m位待查找索引值之后,即步骤104之后路由器实现压缩的方法还可以包括以下步骤:
步骤105、对m位待查找索引值在预设散列表中进行索引。
本发明实施例中,在得到m位待查找索引值之后,路由器可以通过m位待查找索引值索引对应位置预先存储的目标键值。
步骤106a、当确定m位待查找索引值对应索引位置为空时,停止转发待转发的报文。
步骤106b、当确定m位待查找索引值对应索引位置为非空时,获取m位待查找索引值对应索引位置存储的n-m位目标键值。
本发明实施例中,在得到m位待查找索引值之后,路由器还需要取出存储在m位待查找索引值对应位置的目标键值,将目标键值拼接恢复得到n位查找后键值,并与待查找键值进行对比,确认是否对待转发报文进行转发,因此,在得到m位待查找索引值之后,且在查找后键值与待查找键值进行对比之前,路由器需要判断m位待查找索引值对应索引位置是否为空,如果确定为空,则说明通过m位待查找索引值并不能索引到对应的关联数据,即需要停止转发待转发的报文,如果确定为非空,则获取m位待查找索引值对应索引位置存储的目标键值,用于后续得到查找后键值,进一步确定能否对待转发的报文进行转发。
示例性地,待转发报文中待转发地址为3.3.3.3,VRFID为3479,待查找键值为{地址:32’h03030303,VRFID:16’h3479},取m=11,对待转发键值进行拆分,得到11位VRFID为11’h597和5位VRFID为5’h1,则更新后键值为{地址:32’h03030303,VRFID:5’h1},对更新后的键值进行哈希计算得到11位更新后的中间值11’h17F,将11位更新后的中间值11’h17F与11位VRFID为11’h597进行异或得到11位待查找索引值11’h4E8,取出11位待查找索引值11’h4E8对应的存储记录,如果发现为空,说明没有匹配到,那么待转发报文就不会被转发,如果发现为非空,则获取11位待查找索引值11’h4E8对应索引位置的存储的n-m位目标键值。
进一步,图4为本发明实施例提出的一种压缩方法的实现流程示意图四,如图4所示,在本发明实施例中,路由器在根据m位待查找索引值在预设散列表找中进行索引之前,即步骤105之前路由器实现压缩的方法还可以包括以下步骤:
步骤109、对n位预配置键值进行压缩得到预设散列表,预设散列表中存储的为经过压缩处理后的n-m位预配置键值。
需要说明的是,在通过m位待查找索引值在预设散列表找中进行索引之前,路由器需要先配置散列表,以便能够按照配置时存储数据的方式,在预设散列表中能够查找到对应存储的关联数据,从而通过查找得到的关联数据对待转发的报文进行转发。
本发明实施例中,如果路由器按照原始信息的宽度即n位预配置键值进行索引,不进行合理的压缩,这样路由器实现报文转发开销还是比较大的,因此,为了减少键值存储空间,本发明实施例对预配置键值即n位预配置键值进行拆分,得到压缩处理后的n-m位预配置键值,再对n-m位预配置键值进行哈希运算得到m位预配置中间值,通过对m位预配置中间值和n位预配置键值中剩下的m位预配置键值进行可逆运算,可以得到m位预配置索引值,最后将拆分得到的n-m位预配置键值存储在m位预配置索引值对应的位置上,如此,实现了在信息无损的情况下将n位键值压缩成了n-m位键值,减少了表项的宽度,从而减少了存储空间。
需要说明的是,路由器用于存储报文转发所需要的键值和对应的关联数据。
进一步,图5为本发明实施例提出的一种压缩方法的实现流程示意图五,如图5所示,本发明实施例中,路由器当确定m位待查找索引值对应索引位置为非空时,获取m位待查找索引值对应索引位置存储的目标键值之后,即步骤106b之后路由器实现压缩的方法还可以包括以下步骤:
步骤107b、根据n-m位目标键值和m位待查找索引值,得到n位查找后键值。
本发明实施例中,在获取m位待查找索引值对应位置的n-m位目标键值之后,路由器需要对n-m位目标键值和m位待查找索引值,进行拼接恢复得到n位查找后键值。
步骤108b、基于查找后键值与待查找键值,对待转发报文进行转发。
本发明实施例中,在得到查找后键值之后,路由器需要对查找后键值与待查找键值进行对比,确认是否对待转发报文进行转发,当确定n位查找后键值与n位待查找键值不同时,停止转发待转发的报文;当确定n位查找后键值与n位待查找键值相同时,根据m位待查找索引值进行索引得到对应位置存储的转发端口,通过转发端口对待转发报文进行转发。
进一步,图6为本发明实施例提出的一种压缩方法的实现流程示意图六,如图6所示,本发明实施例中,路由器根据n-m位目标键值和m位待查找索引值,得到n位查找后键值,即步骤107b路由器实现压缩的方法可以包括以下步骤:
步骤107b1、对n-m位目标键值进行哈希运算,得到m位目标中间值。
步骤107b2、对m位目标中间值和m位待查找索引值进行可逆运算,得到m位目标键值。
步骤107b3、根据m位目标键值和n-m位目标键值,生成n位查找后键值。
本发明实施例中,路由器对m位目标键值和n-m位目标键值进行拼接恢复得到查找后键值。
示例性地,目标键值包括32位目标地址和5位VRFID,即目标键值为{目标地址:32’h02020202,目标VRFID:5’h3},11位目标键值为11’h404,通过对37位目标键值和11位目标VRFID进行拼合可以得到48位查找后键值为{目标地址:32’h02020202,目标VRFID:16’h1c04}。
对应地,基于查找后键值与待查找键值,对待转发报文进行转发,即步骤108b实现压缩的方法可以包括以下步骤:
步骤108b1、当确定n位查找后键值与n位待查找键值不同时,停止转发待转发的报文。
步骤108b2、当确定n位查找后键值与n位待查找键值相同时,根据m位待查找索引值进行索引得到对应位置存储的转发端口;通过转发端口对待转发报文进行转发。
本发明实施例中,在得到查找后键值之后,路由器需要对查找后键值与待查找键值进行对比,确认是否对待转发报文进行转发。
示例性的,如果待转发报文中32位地址为192.168.3.3,16位VRFID为16’5124,对应地,48位待查找键值为{地址:32’hC0A80303,VRFID:16’d5124},取m=11,更新后键值为{地址:32’hC0A80303,VRFID:5’h1},对更新后键值进行哈希运算得到11位更新后中间值11’h624,将11位更新后中间值11’h624和待转发报文中剩下的11位VRFID为11’h404进行异或得到11位待查找索引值为11’h220,取出11位待查找索引值11’h220对应存储的37位目标键值包括32位目标地址为32’h02020202和5位目标VRFID为5’h3,将37位目标键值{目标地址:32’h02020202,目标VRFID:5’h3}和11位目标VRFID为11’h404进行拼合,得到48位查找后键值{目标地址:32’h02020202,目标VRFID:16’d7172},经过将48位查找后键值{目标地址:32’h02020202,目标VRFID:16’d7172}与48位待查找键值{地址:32’hC0A80303,VRFID:16’d5124}进行比较可得待查找键值与查找后键值不同,则认为没有匹配到,那么待转发报文将不会被转发。
如果待转发报文中32位待转发地址为1.1.1.1,16位VRFID为7485,对应地,48位待查找键值为{地址:32’h01010101,VRFID:16’d7485},更新后键值包括32位地址32’h01010101和5位VRFID为5’h3即更新后键值为{地址:32’h01010101,VRFID:5’h3},对更新后键值进行哈希运算得到11位更新后中间值11’h1E0,将11位更新后中间值11’h1E0和待转发报文中剩下的11位VRFID为11’h53d进行异或得到11位待查找索引值为11’h4dd,取出11位待查找索引值11’h4dd对应存储的37位目标键值包括32位目标地址为32’h01010101和5位目标VRFID为5’h3,将37位目标键值{目标地址:32’h01010101,目标VRFID:5’h3}和11位目标键值11’h53d进行拼合,得到48位查找后键值{目标地址:32’h01010101,目标VRFID:16’d7485},经过将48位查找后键值{目标地址:32’h01010101,目标VRFID:16’d7485}与48位待查找键值{地址:32’h01010101,VRFID:16’d7485}进行比较可得待查找键值与查找后键值完全一致,则认为匹配成功,那么通过11位待查找索引值11’h4dd索引到对应的关联数据,得到关联数据中的转发端口,通过转发端口对待转发报文进行转发。
通过上述举例可得,本发明实施例只需要通过37位键值便可以实现对待转发报文的转发,图7A为本发明实施例提供的一种示例性的键值存储示意图一,如图7A所示,压缩之前路由器中存储的键值为48位,图7B为本发明实施例提供的一种示例性的键值存储示意图二,如图7B所示,压缩之后路由器中存储的键值为37位,与压缩之前的48位键值相比,本发明实施例能够节省(48-37)*2048=225228字节的存储空间。
本发明实施例提供了一种压缩方法,该压缩方法包括:从待转发报文中获取n位待查找键值;根据预设路由规则,将n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值;对n-m位待查找键值进行哈希运算,得到m位更新后中间值;对所述m位更新后中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值,所述m位待查找索引值用于索引对应的关联数据,所述关联数据包括转发端口,如此,将原来需要n位待查找键值改进成只需要通过n-m位更新后的键值便可以得到m位待查找索引值,从而压缩了表项的位宽,节省了存储空间。
实施例二
相关现有技术中,路由器直接从待转发报文中获取待查找键值,如可以将待转发报文中的待转发地址和VRFID按照原始信息的位宽组成键值Key,配置散列表时,通过哈希运算得到一个m位的索引值Index,即Index=Hash(Key),然后将键值Key写入m位的索引值Index对应的位置上,再按照配置的方式进行查找得到关联数据,图8为现有的查找关联数据的示意图,如图8所示,路由器获取待转发报文中的键值Key’,对该键值Key’通过配置一样的哈希运算得到m位的索引值Index’,读取m位的索引值Index’对应位置上存储的键值Key,并与键值Key’进行比较,如果相同则说明匹配到,能够通过m位的索引值Index’索引到对应的关联数据,对待转发报文进行转发,如果不同,则说明没有匹配到,不能对待转发报文进行转发,这样键值Key的宽度是原始信息的宽度,没有进行压缩,并不能达到节省存储空间的效果。
基于节省键值存储空间的目的,本发明实施例对上述现有技术进行了改进,路由器将n位键值进行压缩,即配置时,将n位预配置键值进行拆分得到n-m位预配置键值和m位预配置键值,再对n-m位预配置键值进行哈希运算得到m位预配置中间值,通过对m位预配置中间值和n位预配置键值中剩下的m位预配置键值进行可逆运算,可以得到m位预配置索引值,最后将n-m位预配置键值存储在m位预配置索引值对应的位置上,再按照配置的方式得到索引值,通过判断索引存储的目标键值与待查找的键值进行比较来确定是否对待转发的报文进行转发,如此压缩后只需要通过n-m位键值便可以查找到m位索引值,即改进后的宽度与改进前相比减少了m位,占用的存储容量减少了m*2m字节。
图9为本发明实施例提供的压缩后查找关联数据的示意图,如图9所示,散列表是经过配置后预先存储的,本发明实施例中,路由器按照配置的方法得到索引值进而取出预先存储的键值,再对预先存储的键值进行恢复得到查找后的键值,将查找后键值与待查找键值进行比较,从而实现对待转发报文的转发,图10为本发明实施例提供的压缩后具体查找关联数据的流程示意图,如图10所示,本发明实施例路由器实现压缩方法可以包括以下步骤:
步骤201、根据n位待查找键值Keyn,获取n-m位更新后键值Keyn-m。
本发明实施例中,路由器先根据路由规格,得到预设散列表索引值为m位,再根据预设散列表索引值为m位,将待查找键值Keyn中的n位键值进行拆分为n-m位待查找键值和m位待查找键值,得到n-m位更新后键值Keyn-m。
步骤202、对n-m位待更新后键值Keyn-m进行哈希运算得到m位更新后中间值Tempm。
本发明实施例中,哈希运算是将n-m位待更新后键值转化为固定长度即m位的更新后中间值Tempm=Hash(Keyn-m)。
步骤203、m位待查找中间值Tempm与n位待查找键值中剩下的m位待查找键值Keym进行异或,得到m位待查找索引值Indexm。
本发明实施例中,Indexm=OP(Tempm,Keym),路由器用于存储报文转发所需要的键值和对应的关联数据,这里得到m位待查找索引值Indexm用于索引对应位置存储的键值和对应的关联数据。
步骤204、通过m位待找索引值Indexm索引对应位置存储的n-m位目标键值Keyn-m’。
本发明实施例中,由于在配置过程中将n-m位键值Key存储在m位索引值对应的位置上,因此,路由器通过m位待查找索引值Indexm能够索引到对应位置存储的n-m位目标键值Keyn-m’。
步骤205、对n-m位目标键值Keyn-m’进行哈希运算得到m位目标中间值Tempm’。
本发明实施例中,哈希运算是将n-m位目标键值Keyn-m’转化为固定长度即m位的目标中间值,Tempm’=Hash(Keyn-m’)。
步骤206、对m位目标中间值Tempm’和m位待找索引值Indexm进行可逆运算得到m位目标键值Keym’。
本发明实施例中,路由器对m位目标中间Tempm’和m位待找索引值Indexm进行可逆运算得到m位目标键值Keym’=OPINV(Tempm’,Indexm)。
步骤207、根据n-m位目标键值Keyn-m’和m位目标键值Keym’,得到n位查找后的键值Keyn’。
本发明实施例,在得到m位目标键值之后,路由器将n-m位目标键值Keyn-m’和m位目标键值Keym’进行拼合得到n位查找后的键值Keyn’。
步骤208、基于n位查找后的键值Keyn’和n位待查找键值Keyn,获取m位待找索引值对应的关联数据AD。
本发明实施例中,路由器将n位查找后的键值Keyn’和n位待查找键值Keyn进行比较,当确定n位查找后键值与n位待查找键值不同时,停止转发待转发的报文;当确定n位查找后键值与n位待查找键值相同时,根据m位待查找索引值进行索引得到对应位置存储的转发端口,通过转发端口对待转发报文进行转发。
本发明实施例能够将原来需要n位待查找键值改进成只需要通过n-m位更新后的键值便可以得到m位待查找索引值,从而压缩了表项的位宽,节省了存储空间。
实施例三
基于实施例一至实施例二的同一发明构思,本发明实施例提供一种压缩装置,图11为本发明实施例提出的一种压缩装置组成结构示意图一,如图11所示,在本发明实施例中,压缩装置1100包括第一获取模块1101、第一拆分模块1102、第一得到模块1103和第二得到模块1104,其中,
第一获取模块1101,配置为从待转发报文中获取n位待查找键值;
第一拆分模块1102,配置为根据预设路由规格,将所述n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值;
第一得到模块1103,配置为对所述n-m位待查键值进行哈希运算,得到m位更新后中间值;
第二得到模块1104,配置为对所述m位更新后中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值,所述m位待查找索引值用于索引对应的关联数据,所述关联数据包括转发端口。
在其他实施例中,所述第一拆分模块1102可以包括:
根据待转发报文的路由规格,获取预设散列表的索引值为m位;按照所述预设散列表的索引值为m位,将所述n位待查找键值划分为m位待查找键值和n-m位待查找键值。
在其他实施例中,所述压缩装置1100还可以包括:
索引模块1105,配置为对所述m位待查找索引值在预设散列表找中进行索引;
确定模块1106,配置为当确定所述m位待查找索引值对应索引位置为空时,停止转发所述待转发的报文;当确定所述m位待查找索引值对应索引位置为非空时,获取所述m位待查找索引值对应索引位置存储的n-m位目标键值。
在其他实施例中,所述压缩装置1100还可以包括:
第三得到模块1107,配置为对所述n位预配置键值进行压缩得到预设散列表,所述预设散列表中存储的为经过压缩处理后的n-m位预配置键值。
在其他实施例中,所述压缩装置1100还可以包括:
第四得到模块1108,配置为根据所述n-m位目标键值和所述m位待查找索引值,得到n位查找后键值;
转发模块1109,配置为基于所述n位查找后键值与所述n位待查找键值,对所述待转发报文进行转发。
在其他实施例中,所述第四得到模块1108可以包括:
对所述n-m位目标键值进行哈希运算,得到m位目标中间值;对所述m位目标中间值和所述m位待查找索引值进行可逆运算,得到m位目标键值;根据所述m位目标键值和所述n-m位目标键值,生成n位查找后的键值。
在其他实施例中,所述转发模块1109可以包括:
当确定所述n位待查找键值与所述n位待查找键值不同时,停止转发所述待转发的报文;当确定所述n位待查找键值与所述n位待查找键值相同时,根据所述m位待查找索引值进行索引得到对应位置存储的转发端口;通过所述转发端口对所述待转发报文进行转发。
本发明实施例提供了一种压缩装置,能够将原来需要n位待查找键值改进成只需要通过n-m位更新后的键值便可以得到m位待查找索引值,从而压缩了表项的位宽,节省了存储空间。
实施例四
基于实施例一至实施例三的同一发明构思,本发明实施例提供的一种压缩装置,图12为本发明实施例提供的一种压缩装置组成结构示意图二,如图12所示,上述压缩装置至少包括处理器01、存储器02、通信接口03及通信总线04,其中,通信总线04用于实现处理器和存储器之间的连接通信;通信接口03用于信息的接收和发送;处理器01用于执行存储器02中存储的压缩程序,以实现上述实施例一至实施例三提供的压缩方法中的步骤。
本发明实施例提供的压缩装置能够将原来需要n位待查找键值改进成只需要通过n-m位更新后的键值便可以得到m位待查找索引值,从而压缩了表项的位宽,节省了存储空间。
在实际应用中,处理器可以为专用集成电路(Application Specific IntegratedCircuit,ASIC),用于对高速网络数据进行转发处理,存储器可以为嵌入的静态随机存取存储器(embedded Static Random-Access Memory,eSRAM和嵌入的动态随机存取存储器(embedded Dynamic Random Access Memory,eDRAM)。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于前述实施例,本发明实施例提供了一种计算机可读存储介质,其上存储有压缩程序,上述压缩程序被处理器执行时实现上述一个或多个实施例中的压缩方法。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种压缩方法,其特征在于,所述方法包括:
从待转发报文中获取n位待查找键值;
根据预设路由规格,将所述n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值;
对所述n-m位待查找键值进行哈希运算,得到固定长度的m位更新后的中间值;
对所述m位更新后的中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值,所述m位待查找索引值用于索引对应关联数据,关联数据包括转发端口。
2.根据权利要求1所述方法,其特征在于,所述根据预设路由规格,将所述n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值,包括:
根据待转发报文的路由规格,获取预设散列表的索引值为m位;
按照所述预设散列表的索引值为m位,将所述n位待查找键值划分为m位待查找键值和n-m位待查找键值。
3.根据权利要求1所述的方法,其特征在于,在所述对所述m位更新后的中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值之后,所述方法还包括:
对所述m位待查找索引值在预设散列表找中进行索引;
当确定所述m位待查找索引值对应索引位置为空时,停止转发所述待转发的报文;
当确定所述m位待查找索引值对应索引位置为非空时,获取所述m位待查找索引值对应索引位置存储的n-m位目标键值。
4.根据权利要求3所述的方法,其特征在于,在所述对所述m位待查找索引值在预设散列表找中进行索引之前,所述方法还包括:
对n位预配置键值进行压缩得到预设散列表,所述预设散列表中存储的为经过压缩处理后的n-m位预配置键值。
5.根据权利要求3所述的方法,其特征在于,在所述当确定所述m位待查找索引值对应位置为非空时,获取所述m位待查找索引值对应位置存储的目标键值之后,所述方法还包括:
根据所述n-m位目标键值和所述m位待查找索引值,得到n位查找后键值;
基于所述n位查找后键值与所述n位待查找键值,对所述待转发报文进行转发。
6.根据权利要求5所述方法,其特征在于,所述根据所述n-m位目标键值和所述m位待查找索引值,得到查找后键值,包括:
对所述n-m位目标键值进行哈希运算,得到m位目标中间值;
对所述m位目标中间值和所述m位待查找索引值进行可逆运算,得到m位目标键值;
根据所述m位目标键值和所述n-m位目标键值,生成n位查找后键值。
7.根据权利要求5所述方法,其特征在于,所述基于所述n位查找后键值与所述n位待查找键值,对所述待转发报文进行转发,所述方法还包括:
当确定所述n位查找后键值与所述n位待查找键值不同时,停止转发所述待转发的报文;
当确定所述n位查找后键值与所述n位待查找键值相同时,根据所述m位待查找索引值进行索引得到对应位置存储的转发端口;通过所述转发端口对所述待转发报文进行转发。
8.一种压缩装置,其特征在于,
第一获取模块,配置为从待转发报文中获取n位待查找键值;
第一拆分模块,配置为根据预设路由规格,将所述n位待查找键值进行拆分得到m位待查找键值和n-m位待查找键值;
第一得到模块,配置为对所述n-m位待查找键值进行哈希运算,得到固定长度的m位更新后的中间值;
第二得到模块,配置为对所述m位更新后的中间值和所述m位待查找键值进行可逆运算,得到m位待查找索引值,所述m位待查找索引值用于索引对应的关联数据,所述关联数据包括转发端口。
9.一种压缩装置,其特征在于,所述压缩装置至少包括处理器、存储有所述处理器可执行指令的存储器,和用于连接所述处理器、所述存储器的总线,当所述指令被执行时,所述处理器执行时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215545.9A CN109525503B (zh) | 2018-10-18 | 2018-10-18 | 一种压缩方法及装置、计算机可读存储介质 |
PCT/CN2019/089961 WO2020078012A1 (zh) | 2018-10-18 | 2019-06-04 | 一种压缩方法及装置、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215545.9A CN109525503B (zh) | 2018-10-18 | 2018-10-18 | 一种压缩方法及装置、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109525503A CN109525503A (zh) | 2019-03-26 |
CN109525503B true CN109525503B (zh) | 2021-12-14 |
Family
ID=65772679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811215545.9A Active CN109525503B (zh) | 2018-10-18 | 2018-10-18 | 一种压缩方法及装置、计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109525503B (zh) |
WO (1) | WO2020078012A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109525503B (zh) * | 2018-10-18 | 2021-12-14 | 苏州盛科通信股份有限公司 | 一种压缩方法及装置、计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102194002A (zh) * | 2011-05-25 | 2011-09-21 | 中兴通讯股份有限公司 | 哈希表的表项添加、删除、查找方法及哈希表存储装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089240B2 (en) * | 2000-04-06 | 2006-08-08 | International Business Machines Corporation | Longest prefix match lookup using hash function |
US8838558B2 (en) * | 2007-08-08 | 2014-09-16 | Hewlett-Packard Development Company, L.P. | Hash lookup table method and apparatus |
CN101635680B (zh) * | 2009-08-07 | 2011-08-31 | 中国电信股份有限公司 | 一种业务路由方法和系统 |
CN109525503B (zh) * | 2018-10-18 | 2021-12-14 | 苏州盛科通信股份有限公司 | 一种压缩方法及装置、计算机可读存储介质 |
-
2018
- 2018-10-18 CN CN201811215545.9A patent/CN109525503B/zh active Active
-
2019
- 2019-06-04 WO PCT/CN2019/089961 patent/WO2020078012A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102194002A (zh) * | 2011-05-25 | 2011-09-21 | 中兴通讯股份有限公司 | 哈希表的表项添加、删除、查找方法及哈希表存储装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020078012A1 (zh) | 2020-04-23 |
CN109525503A (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018099107A1 (zh) | 一种哈希表管理的方法和装置、计算机存储介质 | |
US6389419B1 (en) | Storing and retrieving connection information using bidirectional hashing of connection identifiers | |
JP4716909B2 (ja) | ネットワーク接続テーブルを提供するための方法および装置 | |
US20030050762A1 (en) | Method and apparatus for measuring protocol performance in a data communication network | |
US9294390B2 (en) | Hash table storage and search methods and devices | |
US10659361B2 (en) | Packet processing | |
US9979648B1 (en) | Increasing entropy across routing table segments | |
EP3196776A1 (en) | Method and device for data processing | |
CN107547407B (zh) | 报文传输方法、装置和实现装置 | |
RU2642833C2 (ru) | Способ и устройство для обеспечения медиаресурса | |
JP2019531563A (ja) | データ処理方法、記憶システムおよび切り換え装置 | |
US20230041395A1 (en) | Method and Device for Processing Routing Table Entries | |
WO2020024446A1 (zh) | 数据的存储方法及装置、存储介质、计算机设备 | |
CN111553669B (zh) | 一种交易路由方法、装置及计算机可读存储介质 | |
US7751346B2 (en) | Apparatus for searching TCP and UDP sockets | |
CN109525503B (zh) | 一种压缩方法及装置、计算机可读存储介质 | |
CN111352938B (zh) | 数据处理方法、计算机设备及存储介质 | |
US20170012874A1 (en) | Software router and methods for looking up routing table and for updating routing entry of the software router | |
US8539547B2 (en) | Policy selector representation for fast retrieval | |
CN116599892A (zh) | 一种服务器系统、路由方法、装置及电子设备和存储介质 | |
CN114006955B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN113328947B (zh) | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 | |
CN103368852A (zh) | 用于处理哈希冲突的方法和系统 | |
CN113610529A (zh) | 联盟链的区块存储、获取方法、装置、节点和存储介质 | |
CN115129779A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Unit 13 / 16, 4th floor, building B, Xinghan 5, Suzhou Industrial Park, Suzhou, Jiangsu 215021 Applicant after: Suzhou Shengke Communication Co.,Ltd. Address before: Unit 13 / 16, 4th floor, building B, Xinghan 5, Suzhou Industrial Park, Jiangsu Province, 215021 Applicant before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |