CN112787938A - 一种路由表项配置方法及装置 - Google Patents
一种路由表项配置方法及装置 Download PDFInfo
- Publication number
- CN112787938A CN112787938A CN202110046729.2A CN202110046729A CN112787938A CN 112787938 A CN112787938 A CN 112787938A CN 202110046729 A CN202110046729 A CN 202110046729A CN 112787938 A CN112787938 A CN 112787938A
- Authority
- CN
- China
- Prior art keywords
- binary data
- routing table
- aggregation
- stored
- mask
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000002776 aggregation Effects 0.000 claims abstract description 104
- 238000004220 aggregation Methods 0.000 claims abstract description 104
- 238000003860 storage Methods 0.000 claims abstract description 33
- 238000004891 communication Methods 0.000 claims description 19
- 230000004931 aggregating effect Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- 238000004134 energy conservation Methods 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
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/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种路由表项配置方法及装置,所述方法应用于三态内容寻址存储器TCAM的路由表项配置,所述方法包括:将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;判断所述第一聚合二进制数据中掩码是否连续;当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;基于所述待存储二进制数据进行路由表项存储。本发明实施例能够大幅减少路由表项的存储条目,尤其在需要大量硬件路由表项时,避免了因硬件资源不足导致数据处理出错的问题。
Description
技术领域
本发明涉及通信技术领域,尤指一种路由表项配置方法及装置。
背景技术
交换机和路由器是网络通信中重要的数据处理转发的网络设备,该类网络设备能够提供丰富的接口来彼此连接或者连接其他网络设备,并保证各个接口间高速准确地处理交换转发各个网络设备的数据报文。而网络设备能够高速处理数据的核心是依靠各种硬件表项规则,其中包括但不限于媒体存取控制位址表(Media Access Control AddressTable,MAC地址表)、访问控制列表ACL(Access Control List)、路由表(Routing Table)等。但是可提供给这些硬件表项的空间是有限的,一般在几十K(1K=1024字节)或者几百K,但是MAC地址的数量有248个,IP地址的数量也有232个,这些数量远超可提供的硬件表项的数量。
MAC地址用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节,48bit,一般表示为0010.9400.0001或者00:10:94:00:00:01。
IP地址是指互联网协议地址(Internet Protocol Address),IP地址是IP协议提供的一种统一的地址格式,是一个长度为32bit的地址,一般用点分四组或者点分十进制表示为178.130.201.104。
掩码(Mask)是一串长度为32bit的数值,通过一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位,经常用于屏蔽IP地址中的一部分网络标识,与IP地址一样一般用点分十进制表示为:255.255.255.0(24位掩码),实际应用中掩码要求是连续的。
二进制是计算计数中广泛采用的一种数制,是用0和1两个数码来表示的数。在计算机内部,信息一般都是采用二进制的形式进行存储、运算、处理和传输的。在交换机、路由器等网络通信设备中也不例外。
如上所述,交换机和路由器等网络设备能够高速处理各种数据的核心是依靠各种硬件表项规则,而这些硬件表项规则一般也是使用二进制方式存储处理的。其中存储各硬件表项常用的存储器包括内容寻址存储器(Content Addressable Memory,CAM)和三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)两种。TCAM是从CAM的基础上发展而来的。一般的CAM存储器中每个bit位的状态只有两个:“0”或“1”,而TCAM中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’t care”状态,通常可表示为“x”,所以称为“三态”,它是通过掩码来实现的,正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找。
但是一般来说,一个网络设备的硬件资源是有限的,如果需要处理的数据量太大会造成硬件表项空间不足而导致数据处理转发出错,针对该问题,现有主要是依靠增加硬件表项空间或者表项动态移动的方式来解决空间不足的问题,这两种方案确实能够一定程度解决硬件空间不足的问题,但是还会使实现成本增加,而表项动态移动导致处理时延的增加。
发明内容
本发明实施例提供一种路由表项配置,用以解决现有技术中在需要大量硬件路由表项时,因硬件资源不足导致数据处理出错的问题。
根据本发明实施例,提供一种路由表项配置方法,所述方法应用于TCAM的路由表项配置,所述方法包括:
将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;
判断所述第一聚合二进制数据中掩码是否连续;
当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;
基于所述待存储二进制数据进行路由表项存储。
可选地,所述基于所述待存储二进制数据进行路由表项存储,包括:
将每段待存储二进制数据对应在第一聚合二进制数据中由高位到低位的顺序进行路由表项存储;
其中,非最后一段待存储二进制数据对应的路由表项的下一跳地址为相邻低位对应的待存储二进制数据组的存储地址,最后一段待存储二进制数据对应的路由表项的下一跳地址为第一聚合二进制数据组对应的下一跳地址。
可选地,所述将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据,包括:
判断下一跳地址相同的路由表项的掩码长度是否相同;
当所述掩码长度相同,将所述待配置的路由表项进行二进制转化,得到待配置的二进制路由表项;
将待配置的二进制路由表项进行两两异或,得到预选掩码;
将所述预选掩码进行与操作,得到聚合掩码;
将所述待配置的二进制路由表项中所述聚合掩码中0对应的比特位设置为x,其余比特位的值保持不变,得到第一聚合二进制数据。
可选地,所述判断所述第一聚合二进制数据中掩码是否连续,包括:
判断所述第一聚合二进制数据中的x是否连续。
根据本发明实施例,还提供一种路由表项配置装置,所述装置应用于三态内容寻址存储器TCAM,所述装置包括:聚合模块、判断模块、分段模块以及存储模块;其中,
所述聚合模块,用于将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;
所述判断模块,用于判断所述第一聚合二进制数据中掩码是否连续;
所述分段模块,用于当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;
所述存储模块,用于基于所述待存储二进制数据进行路由表项存储。
可选地,所述存储模块,基于所述待存储二进制数据进行路由表项存储,具体用于:
将每段待存储二进制数据对应在第一聚合二进制数据中由高位到低位的顺序进行路由表项存储;
其中,非最后一段待存储二进制数据对应的路由表项的下一跳地址为相邻低位对应的待存储二进制数据组的存储地址,最后一段待存储二进制数据对应的路由表项的下一跳地址为第一聚合二进制数据组对应的下一跳地址。
可选地,所述聚合模块,将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据,具体用于判断下一跳地址相同的路由表项的掩码长度是否相同;当所述掩码长度相同,将所述待配置的路由表项进行二进制转化,得到待配置的二进制路由表项;将待配置的二进制路由表项进行两两异或,得到预选掩码;将所述预选掩码进行与操作,得到聚合掩码;将所述待配置的二进制路由表项中所述聚合掩码中0对应的比特位设置为x,其余比特位的值保持不变,得到第一聚合二进制数据。
可选地,所述判断模块,判断所述第一聚合二进制数据中掩码是否连续,具体用于判断所述第一聚合二进制数据中的x是否连续。
根据本发明实施例,还提供一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现上述的方法步骤。
根据本发明实施例,还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。
本发明有益效果如下:
本发明实施例提供的路由表项配置方法及装置,应用于TCAM的路由表项配置,通过将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;判断所述第一聚合二进制数据中掩码是否连续;当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;基于所述待存储二进制数据进行路由表项存储。本发明实施例,通过对具有相同下一跳地址的路由表项进行聚合,得到第一聚合二进制数据,且当该第一聚合二进制数据中的掩码不是连续时,将该第一聚合二进制数据进行分段处理,以使每段带存储二进制数据均能包括一个连续掩码,扩大了路由表项的可聚合范围,可以有效减少数据处理所需硬件表项数量,能够避免不同数据量下处理情景对于需要大量硬件路由表项时,因硬件资源不足的数据处理出错的情况,提高了硬件资源利用率,并且硬件查找执行次数的降低,能够提高设备对数据的处理速度,实现了处理数据的高性能及实时性,还因为硬件资源利用率的提高,查找效率的提升,单位面积内设备功耗大幅降低,提高了设备效率能耗比,有助于节能减排。
附图说明
图1为本发明实施例中路由表项配置方法的流程图;
图2为本发明实施例中路由表项配置装置的结构示意图;
图3为本申请示出的一种电子设备的结构示意图。
具体实施方式
针对现有技术中存在的在需要大量硬件路由表项时,因硬件资源不足导致数据处理出错的问题,本发明实施例提供的路由表项配置方法,通过对具有相同下一跳地址的路由表项进行聚合,得到第一聚合二进制数据,且当该第一聚合二进制数据中的掩码不是连续时,将该第一聚合二进制数据进行分段处理,以使每段带存储二进制数据均能包括一个连续掩码,扩大了路由表项的可聚合范围,可以有效减少数据处理所需硬件表项数量,能够避免不同数据量下处理情景对于需要大量硬件路由表项时,因硬件资源不足的数据处理出错的情况。本发明方法应用于TCAM的路由表项配置,实现的流程如图1所示,执行步骤如下:
步骤101,将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;
步骤102,判断所述第一聚合二进制数据中掩码是否连续;
步骤103,当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;
具体地,以该第一聚合二进制数据中位于掩码中间的固定值比特位为界限,将该第一聚合二进制数据分为两段;例如,当所述第一聚合二进制数据为“011001000000000000000xx1xxxxxxxx”时,则可将该第一聚合二进制数据以掩码中间的固定值比特位为界限分为两段,一段待存储二进制数据为“011001000000000000000xx”,另一段待存储二进制数据为“1xxxxxxxx”。
步骤104,基于所述待存储二进制数据进行路由表项存储。
其中,步骤104中,所述基于所述待存储二进制数据进行路由表项存储,包括:
将每段待存储二进制数据对应在第一聚合二进制数据中由高位到低位的顺序进行路由表项存储;
其中,非最后一段待存储二进制数据对应的路由表项的下一跳地址为相邻低位对应的待存储二进制数据组的存储地址,最后一段待存储二进制数据对应的路由表项的下一跳地址为第一聚合二进制数据组对应的下一跳地址。
其中,步骤101中,所述将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据,包括:
判断下一跳地址相同的路由表项的掩码长度是否相同;
当所述掩码长度相同,将所述待配置的路由表项进行二进制转化,得到待配置的二进制路由表项;
将待配置的二进制路由表项进行两两异或,得到预选掩码;
将所述预选掩码进行与操作,得到聚合掩码;
将所述待配置的二进制路由表项中所述聚合掩码中0对应的比特位设置为x,其余比特位的值保持不变,得到第一聚合二进制数据。
其中,步骤102中,所述判断所述第一聚合二进制数据中掩码是否连续,包括:
判断所述第一聚合二进制数据中的x是否连续。
本发明实施例提供的路由表项配置方法,应用于TCAM的路由表项配置,通过将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;判断所述第一聚合二进制数据中掩码是否连续;当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;基于所述待存储二进制数据进行路由表项存储。本发明实施例,通过对具有相同下一跳地址的路由表项进行聚合,得到第一聚合二进制数据,且当该第一聚合二进制数据中的掩码不是连续时,将该第一聚合二进制数据进行分段处理,以使每段带存储二进制数据均能包括一个连续掩码,扩大了路由表项的可聚合范围,可以有效减少数据处理所需硬件表项数量,能够避免不同数据量下处理情景对于需要大量硬件路由表项时,因硬件资源不足的数据处理出错的情况,提高了硬件资源利用率,并且硬件查找执行次数的降低,能够提高设备对数据的处理速度,实现了处理数据的高性能及实时性,还因为硬件资源利用率的提高,查找效率的提升,单位面积内设备功耗大幅降低,提高了设备效率能耗比,有助于节能减排。
下面,以如下表一所示的路由表项为例对上述路由表项配置方式进行具体说明。
序号 | 目的网段 | 下一跳地址 |
1 | 100.0.1.0/24 | 10.0.0.2 |
2 | 100.0.3.0/24 | 10.0.0.2 |
3 | 100.0.5.0/24 | 10.0.0.2 |
4 | 100.0.7.0/24 | 10.0.0.2 |
表一
如表一所示,是一般设备中普通路由表项,包括4条路由表项,将其中目的网段转换为二进制数据格式如表二所示。
序号 | 目的网段二进制转换 | 下一跳地址 |
1 | 011001000000000000000001xxxxxxxx | 10.0.0.2 |
2 | 011001000000000000000011xxxxxxxx | 10.0.0.2 |
3 | 011001000000000000000101xxxxxxxx | 10.0.0.2 |
4 | 011001000000000000000111xxxxxxxx | 10.0.0.2 |
表二
表二中1至4四条路由规则中,下一跳地址是一致的,均为10.0.0.2,则说明目的网段为这4条路由中任意一条的数据均是向10.0.0.2地址转发,因此1至4四条路由规则具备聚合处理的条件。然后进一步比较这四条路由规则,则能够发现这四条路由规则的掩码位数也是相同的,均为24位。即数据中最后一组8位数据均是“x”(不关心)。进而比较四条路由规则数据中的第三组8位数据,则能够发现这四条路由规则数据中第三组8位数据中的前5位是相同的,均为“0”,且第8位也是相同的,均为“1”,只有第6、7位这两个比特位是不同的,但两个比特位的数据最大可表示4个数据,等于要处理的路由规则数,如此,这四条路由聚合后得到如表三所示的数据。此时数据中的第一组及第二组的两个8位数据是固定的“0”或“1”,第三组8位数据里前5位是固定的“0”(非x),第6、7位则是“x”(不关心),第8位是固定的“1”(非x),第四组8位数据中均是“x”,可知该组数据中有两组连续的“x”,或者说有两组连续的固定的“0”或者“1”。
序号 | 目的网段二进制转换 | 下一跳地址 |
1 | 011001000000000000000xx1xxxxxxxx | 10.0.0.2 |
表三
此处可知,聚合后的第一聚合二进制数据中的数据掩码是不连续的,此种数据并不易处理。本发明实施例将该不连续掩码分段处理即可获得两段掩码连续的数据。具体方法如下:以数据中第三组8位数据的第8位固定数据“1”为节点,将该组数据分成两段各含有一组连续“x”的数据,可分别记做r’和r”;其中r’为前段数据,r”为后段数据。r’数据中的下一步动作为前往r”继续处理,r”的数据中的下一跳地址为1至4四条路由规则中的下一跳地址10.0.0.2。具体如表四所示。
序号 | 前段数据二进制转换 | 下一跳地址 |
r’ | 011001000000000000000xx | r”存储地址 |
序号 | 后段数据二进制转换 | 下一跳地址 |
r” | 1xxxxxxxx | 10.0.0.2 |
表四
这样分段处理后的数据占用的硬件表项空间减少还能保证掩码连续,对于后续处理更方便。如此处理之后即代替了之前需要4条表项多次处理的目的,既节省了设备的硬件表项空间,还能提高处理时间,总体提高数据处理的效率。
基于同一发明构思,本发明实施例提供一种路由表项配置装置,该装置可以应用于TCAM中,结构如图2所示,包括:聚合模块21、判断模块22、分段模块23以及存储模块24;其中,
所述聚合模块21,用于将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;
所述判断模块22,用于判断所述第一聚合二进制数据中掩码是否连续;
所述分段模块23,用于当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;
所述存储模块24,用于基于所述待存储二进制数据进行路由表项存储。
可选地,所述存储模块24,基于所述待存储二进制数据进行路由表项存储,具体用于:
将每段待存储二进制数据对应在第一聚合二进制数据中由高位到低位的顺序进行路由表项存储;
其中,非最后一段待存储二进制数据对应的路由表项的下一跳地址为相邻低位对应的待存储二进制数据组的存储地址,最后一段待存储二进制数据对应的路由表项的下一跳地址为第一聚合二进制数据组对应的下一跳地址。
可选地,所述聚合模块21,将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据,具体用于判断下一跳地址相同的路由表项的掩码长度是否相同;当所述掩码长度相同,将所述待配置的路由表项进行二进制转化,得到待配置的二进制路由表项;将待配置的二进制路由表项进行两两异或,得到预选掩码;将所述预选掩码进行与操作,得到聚合掩码;将所述待配置的二进制路由表项中所述聚合掩码中0对应的比特位设置为x,其余比特位的值保持不变,得到第一聚合二进制数据。
可选地,所述判断模块22,判断所述第一聚合二进制数据中掩码是否连续,具体用于判断所述第一聚合二进制数据中的x是否连续。
应当理解,本发明实施例提供的路由表项配置装置实现原理及过程与上述图1及所示的实施例类似,在此不再赘述。
本发明实施例提供的路由表项配置方法及装置,应用于TCAM的路由表项配置,通过将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;判断所述第一聚合二进制数据中掩码是否连续;当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;基于所述待存储二进制数据进行路由表项存储。本发明实施例,通过对具有相同下一跳地址的路由表项进行聚合,得到第一聚合二进制数据,且当该第一聚合二进制数据中的掩码不是连续时,将该第一聚合二进制数据进行分段处理,以使每段带存储二进制数据均能包括一个连续掩码,扩大了路由表项的可聚合范围,可以有效减少数据处理所需硬件表项数量,能够避免不同数据量下处理情景对于需要大量硬件路由表项时,因硬件资源不足的数据处理出错的情况,提高了硬件资源利用率,并且硬件查找执行次数的降低,能够提高设备对数据的处理速度,实现了处理数据的高性能及实时性,还因为硬件资源利用率的提高,查找效率的提升,单位面积内设备功耗大幅降低,提高了设备效率能耗比,有助于节能减排。
应当理解,本发明实施例提供的路由表项配置方法除了可以用于上述IP路由表项的配置情形外,还可以扩展至IPv6(互联网协议第6版)路由、IP ACL(访问控制列表)、IPv6ACL、MAC(媒体访问控制地址)ACL、IP组播转发、二层转发等表项的配置情形等等,实现原理及过程与上述图1、图2及所示的实施例类似,在此不再赘述。
本申请实施例还提供了一种电子设备,请参见图3所示,包括处理器310、通信接口320、存储器330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。
存储器330,用于存放计算机程序;
处理器310,用于执行存储器330上所存放的程序时,实现上述实施例中任一所述的路由表项配置方法。
通信接口320用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例,通过对具有相同下一跳地址的路由表项进行聚合,得到第一聚合二进制数据,且当该第一聚合二进制数据中的掩码不是连续时,将该第一聚合二进制数据进行分段处理,以使每段带存储二进制数据均能包括一个连续掩码,扩大了路由表项的可聚合范围,可以有效减少数据处理所需硬件表项数量,能够避免不同数据量下处理情景对于需要大量硬件路由表项时,因硬件资源不足的数据处理出错的情况,提高了硬件资源利用率,并且硬件查找执行次数的降低,能够提高设备对数据的处理速度,实现了处理数据的高性能及实时性,还因为硬件资源利用率的提高,查找效率的提升,单位面积内设备功耗大幅降低,提高了设备效率能耗比,有助于节能减排。
相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的路由表项配置方法。
本发明实施例,通过对具有相同下一跳地址的路由表项进行聚合,得到第一聚合二进制数据,且当该第一聚合二进制数据中的掩码不是连续时,将该第一聚合二进制数据进行分段处理,以使每段带存储二进制数据均能包括一个连续掩码,扩大了路由表项的可聚合范围,可以有效减少数据处理所需硬件表项数量,能够避免不同数据量下处理情景对于需要大量硬件路由表项时,因硬件资源不足的数据处理出错的情况,提高了硬件资源利用率,并且硬件查找执行次数的降低,能够提高设备对数据的处理速度,实现了处理数据的高性能及实时性,还因为硬件资源利用率的提高,查找效率的提升,单位面积内设备功耗大幅降低,提高了设备效率能耗比,有助于节能减排。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种路由表项配置方法,所述方法应用于三态内容寻址存储器TCAM的路由表项配置,其特征在于,所述方法包括:
将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;
判断所述第一聚合二进制数据中掩码是否连续;
当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;
基于所述待存储二进制数据进行路由表项存储。
2.根据权利要求1所述的方法,其特征在于,所述基于所述待存储二进制数据进行路由表项存储,包括:
将每段待存储二进制数据对应在第一聚合二进制数据中由高位到低位的顺序进行路由表项存储;
其中,非最后一段待存储二进制数据对应的路由表项的下一跳地址为相邻低位对应的待存储二进制数据组的存储地址,最后一段待存储二进制数据对应的路由表项的下一跳地址为第一聚合二进制数据组对应的下一跳地址。
3.根据权利要求1所述的方法,其特征在于,所述将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据,包括:
判断下一跳地址相同的路由表项的掩码长度是否相同;
当所述掩码长度相同,将所述待配置的路由表项进行二进制转化,得到待配置的二进制路由表项;
将待配置的二进制路由表项进行两两异或,得到预选掩码;
将所述预选掩码进行与操作,得到聚合掩码;
将所述待配置的二进制路由表项中所述聚合掩码中0对应的比特位设置为x,其余比特位的值保持不变,得到第一聚合二进制数据。
4.根据权利要求3所述的方法,其特征在于,所述判断所述第一聚合二进制数据中掩码是否连续,包括:
判断所述第一聚合二进制数据中的x是否连续。
5.一种路由表项配置装置,所述装置应用于三态内容寻址存储器TCAM,其特征在于,所述装置包括:聚合模块、判断模块、分段模块以及存储模块;其中,
所述聚合模块,用于将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据;
所述判断模块,用于判断所述第一聚合二进制数据中掩码是否连续;
所述分段模块,用于当所述第一聚合二进制数据中掩码不连续时,将所述第一聚合二进制数据按照所述掩码的连续性进行分段,得到至少两段包括连续掩码的待存储二进制数据;
所述存储模块,用于基于所述待存储二进制数据进行路由表项存储。
6.根据权利要求5所述的装置,其特征在于,所述存储模块,基于所述待存储二进制数据进行路由表项存储,具体用于:
将每段待存储二进制数据对应在第一聚合二进制数据中由高位到低位的顺序进行路由表项存储;
其中,非最后一段待存储二进制数据对应的路由表项的下一跳地址为相邻低位对应的待存储二进制数据组的存储地址,最后一段待存储二进制数据对应的路由表项的下一跳地址为第一聚合二进制数据组对应的下一跳地址。
7.根据权利要求5所述的装置,其特征在于,所述聚合模块,将待配置的路由表项中下一跳地址相同的路由表项进行聚合处理,得到第一聚合二进制数据,具体用于判断下一跳地址相同的路由表项的掩码长度是否相同;当所述掩码长度相同,将所述待配置的路由表项进行二进制转化,得到待配置的二进制路由表项;将待配置的二进制路由表项进行两两异或,得到预选掩码;将所述预选掩码进行与操作,得到聚合掩码;将所述待配置的二进制路由表项中所述聚合掩码中0对应的比特位设置为x,其余比特位的值保持不变,得到第一聚合二进制数据。
8.根据权利要求7所述的装置,其特征在于,所述判断模块,判断所述第一聚合二进制数据中掩码是否连续,具体用于判断所述第一聚合二进制数据中的x是否连续。
9.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110046729.2A CN112787938B (zh) | 2021-01-14 | 2021-01-14 | 一种路由表项配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110046729.2A CN112787938B (zh) | 2021-01-14 | 2021-01-14 | 一种路由表项配置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112787938A true CN112787938A (zh) | 2021-05-11 |
CN112787938B CN112787938B (zh) | 2022-09-20 |
Family
ID=75755927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110046729.2A Active CN112787938B (zh) | 2021-01-14 | 2021-01-14 | 一种路由表项配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112787938B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992579A (zh) * | 2021-09-23 | 2022-01-28 | 新华三信息安全技术有限公司 | 一种路由表项存储方法、查找方法及装置 |
CN114363167A (zh) * | 2021-12-20 | 2022-04-15 | 北京百度网讯科技有限公司 | 网段信息处理方法、装置、电子设备以及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1402488A (zh) * | 2002-10-14 | 2003-03-12 | 北京港湾网络有限公司 | 一种路由表压缩方法 |
CN1447223A (zh) * | 2003-04-04 | 2003-10-08 | 清华大学 | 支持路由压缩的tcam高速更新方法 |
CN101909005A (zh) * | 2010-07-20 | 2010-12-08 | 中兴通讯股份有限公司 | 转发表的处理方法和装置 |
US7936764B1 (en) * | 2008-04-09 | 2011-05-03 | Extreme Networks, Inc. | Method for optimizing IP route table size through IP route aggregation |
CN102375820A (zh) * | 2010-08-12 | 2012-03-14 | 盛科网络(苏州)有限公司 | Tcam表项的压缩方法 |
CN103227843A (zh) * | 2012-08-31 | 2013-07-31 | 杭州华三通信技术有限公司 | 一种物理链路地址管理方法及装置 |
US9985885B1 (en) * | 2015-12-11 | 2018-05-29 | Amazon Technologies, Inc. | Aggregating common portions of forwarding routes |
CN111984835A (zh) * | 2020-08-20 | 2020-11-24 | 国家计算机网络与信息安全管理中心 | 一种IPv4掩码五元组规则存储压缩方法及装置 |
-
2021
- 2021-01-14 CN CN202110046729.2A patent/CN112787938B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1402488A (zh) * | 2002-10-14 | 2003-03-12 | 北京港湾网络有限公司 | 一种路由表压缩方法 |
CN1447223A (zh) * | 2003-04-04 | 2003-10-08 | 清华大学 | 支持路由压缩的tcam高速更新方法 |
US7936764B1 (en) * | 2008-04-09 | 2011-05-03 | Extreme Networks, Inc. | Method for optimizing IP route table size through IP route aggregation |
CN101909005A (zh) * | 2010-07-20 | 2010-12-08 | 中兴通讯股份有限公司 | 转发表的处理方法和装置 |
CN102375820A (zh) * | 2010-08-12 | 2012-03-14 | 盛科网络(苏州)有限公司 | Tcam表项的压缩方法 |
CN103227843A (zh) * | 2012-08-31 | 2013-07-31 | 杭州华三通信技术有限公司 | 一种物理链路地址管理方法及装置 |
US9985885B1 (en) * | 2015-12-11 | 2018-05-29 | Amazon Technologies, Inc. | Aggregating common portions of forwarding routes |
CN111984835A (zh) * | 2020-08-20 | 2020-11-24 | 国家计算机网络与信息安全管理中心 | 一种IPv4掩码五元组规则存储压缩方法及装置 |
Non-Patent Citations (2)
Title |
---|
JHIH-YU HUANG,PI-CHUNG WANG: "TCAM-Based IP Address Lookup Using Longest Suffix Split", 《IEEE/ACM TRANSACTIONS ON NETWORKING》 * |
刘刚,张德运,李胜磊,高磊: "基于三态内容寻址存储器的路由表压缩和存储技术研究", 《西安交通大学学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992579A (zh) * | 2021-09-23 | 2022-01-28 | 新华三信息安全技术有限公司 | 一种路由表项存储方法、查找方法及装置 |
CN113992579B (zh) * | 2021-09-23 | 2023-03-31 | 新华三信息安全技术有限公司 | 一种路由表项存储方法、查找方法及装置 |
CN114363167A (zh) * | 2021-12-20 | 2022-04-15 | 北京百度网讯科技有限公司 | 网段信息处理方法、装置、电子设备以及存储介质 |
CN114363167B (zh) * | 2021-12-20 | 2024-03-19 | 北京百度网讯科技有限公司 | 网段信息处理方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112787938B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764181B2 (en) | Pipelined evaluations for algorithmic forwarding route lookup | |
CN104811387B (zh) | 具有位索引显式复制的等价多路径 | |
CN112787938B (zh) | 一种路由表项配置方法及装置 | |
CN111937360B (zh) | 最长前缀匹配 | |
CN109639579B (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
US20210119921A1 (en) | Packet sending method, device, and system | |
CN102316040B (zh) | 一种访问控制列表查找的方法及数据流分类装置 | |
JP3881663B2 (ja) | フィールドレベルツリーを用いたパケット分類装置及び方法 | |
EP3276501A1 (en) | Traffic classification method and device, and storage medium | |
WO2016106506A1 (zh) | 一种路由方法和设备 | |
US7403526B1 (en) | Partitioning and filtering a search space of particular use for determining a longest prefix match thereon | |
US11652744B1 (en) | Multi-stage prefix matching enhancements | |
CN107547407A (zh) | 报文传输方法、装置和实现装置 | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
CN111147372A (zh) | 下行报文发送、转发方法和装置 | |
US10778814B2 (en) | Multi-field classifier | |
CN113986560B (zh) | 一种在智能网卡/DPU内实现P4与OvS逻辑复用的方法 | |
CN107786447A (zh) | 一种基于fpga的报文转发方法及设备 | |
CN112187636B (zh) | Ecmp路由的存储方法及装置 | |
CN108337176B (zh) | 一种报文处理方法和装置 | |
CN105939266B (zh) | 一种报文的传输方法和装置 | |
CN114079634B (zh) | 一种报文转发方法、装置及计算机可读存储介质 | |
US11770463B2 (en) | Packet filtering using binary search trees | |
CN111131053B (zh) | 路径选择方法和装置及路由器 | |
CN112511449A (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 |