CN107995116B - 报文发送方法及通信设备 - Google Patents
报文发送方法及通信设备 Download PDFInfo
- Publication number
- CN107995116B CN107995116B CN201711244385.6A CN201711244385A CN107995116B CN 107995116 B CN107995116 B CN 107995116B CN 201711244385 A CN201711244385 A CN 201711244385A CN 107995116 B CN107995116 B CN 107995116B
- Authority
- CN
- China
- Prior art keywords
- register
- value
- content addressable
- storage unit
- table entry
- 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/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
本申请提供一种报文发送方法及通信设备,应用于通信设备,通信设备包括内容可寻址存储单元及处理单元;内容可寻址存储单元支持对多个表项进行并行查找匹配;方法包括:处理单元获取待发报文的报文标识并输入内容可寻址存储单元;内容可寻址存储单元在多个表项中查找与报文标识对应的目标表项,将目标表项的索引值反馈给处理单元;处理单元根据索引值选择对应的等价路由端口发送待发报文。如此,通过并行查找和简单的逻辑处理极大地提高了等价路由端口查找选择的速度,同时在保证了具有相同报文标识的报文均从同一等价路由端口发送,即满足了基于报文标识的等价路由负载均衡,又有效提升了通信效率。
Description
技术领域
本申请涉及数字通信技术领域,具体而言,涉及一种报文发送方法及通信设备。
背景技术
随着数字通信技术的不断发展,对通信质量的要求也越来越高。采用等价路由技术可提高数据传输的容错能力和稳定性。等价路由是指在报文转发过程中,一个目的地址可以存在多个不同转发出口。在使用等价路由时,常会采用一些逻辑算法在多个等价路由转发出口中为待发报文选择一个出口,来保证各个转发出口的负载均衡。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种报文发送方法,应用于通信设备,所述通信设备包括内容可寻址存储单元及处理单元;所述内容可寻址存储单元用于存储表项,所述表项用于记录报文标识及与所述报文标识对应的索引值,所述索引值与等价路由端口对应;所述方法包括:
所述处理单元获取待发报文的报文标识并输入所述内容可寻址存储单元;
所述内容可寻址存储单元在多个所述表项中并行地查找与所述报文标识对应的目标表项,将所述目标表项的索引值反馈给所述处理单元;
所述处理单元根据所述索引值选择对应的等价路由端口发送所述待发报文。
本申请的另一目的在于提供一种通信设备,所述通信设备包括内容可寻址存储单元及处理单元;
所述内容可寻址存储单元用于存储表项,所述表项用于记录报文标识及与所述报文标识对应的索引值,所述索引值与等价路由端口对应;所述内容可寻址存储单元支持对多个所述表项进行并行查找匹配;
所述处理单元获取待发报文的报文标识并输入所述内容可寻址存储单元;
所述内容可寻址存储单元在多个所述表项中查找与所述报文标识对应的目标表项,将所述目标表项的索引值反馈给所述处理单元;
所述处理单元根据所述索引值选择对应的等价路由端口发送所述待发报文。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的报文发送方法及通信设备,采用支持并行查找匹配内容可寻址存储单元存储报文标识及与所述报文标识对应的索引值。进行报文发送时,根据待发报文的报文标识在所述内容可寻址存储单元查找相应的索引值,根据所述索引值选取等价路由端口发送所述待发报文。如此,通过并行查找和简单的逻辑处理极大地提高了等价路由端口查找选择的速度,同时保证了具有相同报文标识的报文均从同一等价路由端口发送,既满足了基于报文标识的等价路由负载均衡,又有效提升了通信效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的通信设备的示意图之一;
图2为本申请实施例提供的内容可寻址存储单元的表项示意图;
图3为本申请实施例提供的报文发送方法的步骤流程图之一;
图4为本申请实施例提供的报文发送方法的步骤流程图之二;
图5为本申请实施例提供的通信设备的示意图之二。
图标:100-通信设备;110-内容可寻址存储单元;120-处理单元;130-通信单元;140-第一逻辑电路;150-第一寄存器;160-第二逻辑电路;170-第二寄存器;180-第三寄存器。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
在常用的算法中,可在多个转发出口中对待转发进行报文逐包分配,导致同一条特征流的报文(目的地址相同且源地址相同的报文)可能从不同的端口发出。但,经不同的路径后,报文到达顺序可能被打乱。其次,也可根据报文的特征字段(如源地址和目的地址)进行哈希(HASH)计算,根据计算结果查找流表项得到转发出口。此种方式计算方法较为复杂,HASH冲突时需要额外的处理时间。
在进行等价路由端口选择时,需要根据报文特征查找等价路由端口,以保证较高的转发效率。同时,又需要让同一特征流的报文从同一端口发送,以保证针对同一特征流的多个报文,接收端接收到的报文顺序与发送端的发送顺序相同,保证流的粘性。而现有技术采用的对等价路由端口逐包分配报文,或HASH查找流表项确定等价路由端口的方法均无法满足上述要求。
经申请人大量研究发现,为了保证报文转发的效率,现常采用支持并行查找的内容可寻址存储单元来存储访问控制列表(Access Control List,ACL)或路由表,如TCAM(ternary content addressable memory,三态内容寻址存储器)。在进行内容查找时,将报文的源IP地址(sourceIP,SIP)和目的IP地址(destination IP,DIP)作为key,在TCAM中查找匹配相应的索引值(index)作为访问控制规则或转发出口。
支持并行查找的内容可寻址存储单元可以针对一个待匹配的key对其存储的所有key进行并行比对查找,所以可以高效地进行访问控制规则匹配或者转发端口的选择。
故在本实施例中,申请人设计将支持并行查找的内容可寻址存储单元运用于等价路由端口查找匹配上,将待发报文的特征字段作为key在所述内容可寻址存储单元中查找相应的等价路由端口进行发送,以实现根据报文特征高效地查找等价路由端口,下面对本实施例采用的方案进行详细阐述。
本实施例提供一种通信设备,所述通信设备可以是用于对所述待发报文进行转发的设备,如交换机或路由器等;所述通信设备也可以是用于生成并发送所述待发报文的设备,如服务器或个人电脑等。
请参照图1,图1是所述通信设备100的示意图。所述通信设备100包括内容可寻址存储单元110、处理单元120及通信单元130。
所述内容可寻址存储单元110、处理单元120以及通信单元130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。其中,所述处理单元120可能是一种具有信号的处理能力集成电路芯片,也可能是多种芯片组成的具有信号的处理能力的组合模块。所述通信单元130在所述处理单元120的控制下进行报文接收或发送。
请参照图2,所述内容可寻址存储单元110用于存储表项,所述内容可寻址存储单元110中的表项具有相应的表项编号。例如,从表项1至表项N。
所述表项用于记录报文标识及与所述报文标识对应的索引值,所述索引值与等价路由端口对应。所述内容可寻址存储单元110支持对多个所述表项进行并行查找匹配。在本实施例中,所述内容可寻址存储单元110可以包括TCAM。
请参照图3,图3为应用于图1所示的通信设备100的一种报文发送方法的流程图,以下将对所述方法包括各个步骤进行详细阐述。
步骤S110,所述处理单元120获取待发报文的报文标识并输入所述内容可寻址存储单元110。
所述报文标识可以由所述处理单元120根据待发报文的特征字段生成,在本实施例中,将一个所述报文标识与所述等价路由端口中的一个对应,以实现同一特征流的报文均从同一所述等价路由端口发送。可选的,在本实施例中,所述特征字段可以包括所述待发报文的SIP和DIP。
所述处理单元120得到所述报文标识后,将所述报文标识输入所述内容可寻址存储单元110,并进入步骤S120。
步骤S120,所述内容可寻址存储单元110在多个所述表项中查找与所述报文标识对应的目标表项,将所述目标表项的索引值反馈给所述处理单元120。
请参照图4,在本实施例中,步骤S120可以包括子步骤S121-子步骤S123。
子步骤S121,所述内容可寻址存储单元110在多个所述表项中查找是否存在与所述报文标识匹配的表项。
由于所述内容可寻址存储单元110支持并行查找,在本实施例中,所述内容可寻址存储单元110可以在一个时钟周期内将所述待发报文的报文标识与所述表项中所有的报文标识进行比对。
若查找到与所述报文标识对应的表项,则进入子步骤S122。
若未查找到与所述报文标识对应的表项,则进入子步骤S123。
子步骤S122,将查找到的表项作为目标表项,并将所述目标表项的索引值反馈给所述处理单元120。然后进入步骤S130。
在本实施例中,若所述内容可寻址存储单元110查找到与所述报文标识对应的目标表项,说明所述通信设备100已经为具有该报文标识的待发报文分配过等价路由端口,则所述内容可寻址存储单元110读取所述目标表项中的索引值并输入所述处理单元120。然后进入步骤S130,由所述处理单元120根据所述索引值选择对应的等价路由端口发送所述待发报文。
子步骤S123,将一空闲表项作为目标表项并写入所述报文标识,为该目标表项分配索引值,并将所述索引值反馈给所述处理单元120。然后进入步骤S130。其中,所述空闲表项可以是未记录有报文标识或特征值的表项。
在本实施例中,若所述内容可寻址存储单元110查找到与所述报文标识对应的表项,说明所述通信设备100尚未为具有该报文标识的待发报文分配过等价路由端口,则需要为该报文标识分配一个索引值,以使具有该报文标识的待发报文从所述索引值对应的等价路由端口发送。
在本实施例中,所述内容可寻址存储单元110选取一个空闲表项作为目标表项,将所述报文标识写入该目标表项,并为该报文标识分配一个索引值写入该目标表项。
在其中一种实现方式中,请参照图5,所述通信设备100还可以包括第一逻辑电路140及第一寄存器150,所述第一寄存器150中的值为一个空闲表项的表项编号。所述内容可寻址存储单元110与所述第一寄存器150分别与所述第一逻辑电路140连接。
所述内容可寻址存储单元110在未查找到与所述报文标识对应的表项时产生一个触发信号。
所述第一逻辑电路140在接收到所述触发信号时,将所述第一寄存器150中的值作为目标编号输入所述内容可寻址存储单元110,并将所述第一寄存器150中的值修改为另一空闲表项的表项编号。
在一种实施方式中,在所述内容可寻址存储单元110中所有表项均为空闲表项时,所述第一寄存器150初始化时赋值为所述内容可寻址存储单元110可存储表项数量的最大值,多个所述表项的所述表项编号从1至所述最大值依次递增。例如,若所述内容可寻址存储单元110最大可以存储N个表项,多个所述表项的标号从1到N依次递增,则所述第一寄存器150初始化时的赋值为N。
所述第一逻辑电路140在接收到所述触发信号时,将所述第一寄存器150中的值作为目标编号输入所述内容可寻址存储单元110,然后将所述第一寄存器150中的值减1。
所述内容可寻址存储单元110将所述目标编号对应的表项作为目标表项,并将所述报文标识写入所述目标表项。
例如,所述第一逻辑电路140在接收到所述触发信号时,所述第一寄存器150中的值为a,所述第一逻辑电路140将a作为所述目标编号输入所述内容可寻址存储单元110。然后将所述第一寄存器150中的值修改为a-1,使所述第一寄存器150中的值改变为下一个空闲表项的表项编号。
所述内容可寻址存储单元110将a对应的表项作为目标表项,并将所述报文标识写入该目标表项。
基于上述设计,所述内容可寻址存储单元110在向所述表项中写入所述报文标识时,从表项N开始依次选取空闲表项。并在写入所述报文标识后将所述第一寄存器150中的值减1,使得下次向所述表项中写入报文标识时选取的表项为空闲表项。
在另一种可能的实施方式中,在所述内容可寻址存储单元110中所有表项均为空闲表项时,所述第一寄存器150初始化时赋值为1,多个所述表项的所述表项编号从起依次递增。例如,若所述内容可寻址存储单元110最大可以存储N个表项,多个所述表项的标号从1到N依次递增,则所述第一寄存器150初始化时的赋值为1。
所述第一逻辑电路140在接收到所述触发信号时,将所述第一寄存器150中的值作为所述目标编号输入所述内容可寻址存储单元110,然后将所述第一寄存器150中的值加1。
所述内容可寻址存储单元110将所述目标编号对应的表项作为目标表项,并将所述报文标识写入所述目标表项。
例如,所述第一逻辑电路140在接收到所述触发信号时,所述第一寄存器150中的值为a,所述第一逻辑电路140将a作为所述目标编号输入所述内容可寻址存储单元110。然后将所述第一寄存器150中的值修改为a+1,使所述第一寄存器150中的值改变为下一个空闲表项的表项编号。
所述内容可寻址存储单元110将a对应的表项作为目标表项,并将所述报文标识写入该目标表项。
基于上述设计,所述内容可寻址存储单元110在向所述表项中写入所述报文标识时,从表项1开始依次选取空闲表项。并在写入所述报文标识后将所述第一寄存器150中的值加1,使得下次向所述表项中写入报文标识时选取的表项为空闲表项。
在将所述报文标识写入到所述目标表项的同时,为该报文标识分配一个索引值写入所述目标表项,并将所述索引值反馈给所述处理单元120。然后再执行所述步骤S130。
可选地,请参照图5,在一种可能的实施方式中,所述通信设备100还可以包括第二逻辑电路160、第二寄存器170及第三寄存器180,所述第二寄存器170、第三寄存器180及内容可寻址存储单元110分别与所述第二逻辑电路160连接。所述第三寄存器180中存储有所述等价路由端口的数量,所述第二寄存器中的初始值小于等于第三寄存器中的值。
所述第二逻辑电路160在接收到所述触发信号时,比较所述第二寄存器170中的值是否等于所述第三寄存器180中的值。
在所述第二寄存器170中的值不等于所述第三寄存器180中的值时,将所述第二寄存器170中的值作为索引值输入所述内容可寻址存储单元110,并将所述第二寄存器170中的值加1。
在所述第二寄存器170中的值等于所述述第三寄存器180中的值时,将0作为索引值输入所述内容可寻址存储单元110,并将所述第二寄存器170清零。
所述内容可寻址存储单元110将获得的索引值写入所述目标表项。
然后进入步骤S130,所述处理单元120根据所述索引值选择对应的等价路由端口发送所述待发报文。
例如,当所述等价路由端口的数量为4时,所述第三寄存器180中的值为4。在所述内容可寻址存储单元110第1次向空闲表项中写入报文标识时,所述第二寄存器170中的值为0,所述第二逻辑电路160检测出所述第二寄存器170的值与所述第三寄存器180的值不等,则将0输入所述内容可寻址存储单元110,作为该报文标识的索引值写入对应表项。然后将所述第二逻辑电路160将所述第二寄存器170中的值加1。
在所述内容可寻址存储单元110第2次向空闲表项中写入报文标识时,所述第二寄存器170中的值为1,所述第二逻辑电路160检测出所述第二寄存器170的值与所述第三寄存器180的值不等,则将1输入所述内容可寻址存储单元110,作为该报文标识的索引值写入对应表项。然后将所述第二逻辑电路160将所述第二寄存器170中的值加1。
如此,至所述内容可寻址存储单元110第5次向空闲表项中写入报文标识时,所述第二寄存器170中的值为4,所述第二逻辑电路160检测出所述第二寄存器170的值与所述第三寄存器180的值相等,则将0输入所述内容可寻址存储单元110,作为该报文标识的索引值写入对应表项。然后将并将所述第二寄存器170清零。
依次类推,在为不同的报文标识分配索引值时,根据所述第二寄存器170中的值依次循环分配0-3中的一个值作为所述索引值。
在本实施方式中,每个索引值对应一个等价路由端口,在步骤S130中,所述处理单元120根据所述索引值选取相应的等价路由端口,如此,实现了基于报文标识的等价路由端口的负载均衡。
在另一种可能的实施方式中,所述通信设备100还可以省略所述第三寄存器180,由所述处理单元120通过对所述索引值取模得到端口编号来选取相应的等价路由转发端口。
具体地,所述第二逻辑电路160在接收到所述触发信号时,将所述第二寄存器170中的值作为索引值输入所述内容可寻址存储单元110,并将所述第二寄存器170中的值加1。
所述内容可寻址存储单元110将获得的索引值写入所述目标表项。
然后进入步骤S130,所述处理单元120根据所述索引值选择对应的等价路由端口发送所述待发报文。
如此,在为不同的所述报文标识分配索引值时,根据所述第二寄存器170中的值从0起依次分配一个正整数所述索引值。
在本实施方式中,所述处理单元120步骤S130中将所述索引值对所述等价路由端口数量取模得到端口编号,根据所述端口编号选取对应的等价路由端口发送所述待发报文。
例如,假设所述等价路由端口数量为4,则将所述索引值对4取模。若所述报文标识对应的索引值为5,对4取模后得到1,则选取1对应的所述等价路由端口进行报文发送。若所述报文标识对应的索引值为6,对4取模后得到2,则选取2对应的所述等价路由端口进行报文发送。
值得说明的是,在本实施例中,所述第一逻辑电路140及第二逻辑电路160可以分别为相对独立的集成电路单元,也可以是同一个集成电路单元中的不同组成部分。所述第一逻辑电路140及第二逻辑电路160可以为集成于所述内容可寻址存储单元110中的电路,也可以为相对所述内容可寻址存储单元110独立存在,并与所述内容可寻址存储单元110电性连接的电路。
综上所述,本申请提供的报文发送方法及通信设备100,采用支持并行查找匹配内容可寻址存储单元110存储报文标识及与所述报文标识对应的索引值。进行报文发送时,根据待发报文的报文标识在所述内容可寻址存储单元110查找相应的索引值,根据所述索引值选取等价路由端口发送所述待发报文。如此,通过并行查找和简单的逻辑处理极大地提高了等价路由端口查找选择的速度,同时在保证了具有相同报文标识的报文均从同一等价路由端口发送,即满足了基于报文标识的等价路由负载均衡,又有效提升了通信效率。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种报文发送方法,应用于通信设备,其特征在于,所述通信设备包括内容可寻址存储单元及处理单元;所述内容可寻址存储单元用于存储表项,所述表项用于记录报文标识及与所述报文标识对应的索引值,所述索引值与等价路由端口对应;所述方法包括:
所述处理单元获取待发报文的报文标识并输入所述内容可寻址存储单元;
所述内容可寻址存储单元在多个所述表项中并行地查找与所述报文标识对应的目标表项,将所述目标表项的索引值反馈给所述处理单元;
所述处理单元根据所述索引值选择对应的等价路由端口发送所述待发报文;
其中,所述内容可寻址存储单元在多个所述表项中查找与所述报文标识对应的目标表项,将所述目标表项的索引值反馈给所述处理单元的步骤,包括:
所述内容可寻址存储单元在多个所述表项中查找是否存在与所述报文标识匹配的表项;
若查找到与所述报文标识对应的表项,将查找到的表项作为目标表项,并将所述目标表项的索引值反馈给所述处理单元;
若未查找到与所述报文标识对应的表项,将一空闲表项作为目标表项并写入所述报文标识,为所述目标表项分配索引值,并将所述索引值反馈给所述处理单元;
其中,所述内容可寻址存储单元中的表项具有相应的表项编号;所述通信设备还包括第一逻辑电路及第一寄存器,所述第一寄存器中的值为一空闲表项的表项编号;所述若未查找到与所述报文标识对应的表项,将一空闲表项作为目标表项并写入所述报文标识的步骤,包括:
所述内容可寻址存储单元在未查找到与所述报文标识对应的表项时产生一个触发信号;
所述第一逻辑电路在接收到所述触发信号时,将所述第一寄存器中的值作为目标编号输入所述内容可寻址存储单元,并将所述第一寄存器中的值修改为另一空闲表项的表项编号;
所述内容可寻址存储单元将所述目标编号对应的表项作为目标表项,并将所述报文标识写入所述目标表项;
其中,所述通信设备还包括第二逻辑电路及第二寄存器;所述为所述目标表项分配索引值的步骤,包括:
所述第二逻辑电路在接收到所述触发信号时,将所述第二寄存器中的值作为索引值输入所述内容可寻址存储单元,并将所述第二寄存器中的值加1;
所述内容可寻址存储单元将获得的索引值写入所述目标表项。
2.根据权利要求1所述的方法,其特征在于,所述通信设备还包括第二逻辑电路、第二寄存器及第三寄存器,所述第三寄存器中存储有所述等价路由端口的数量,所述第二寄存器中的初始值小于等于第三寄存器中的值;所述为所述目标表项分配索引值的步骤,包括:
所述第二逻辑电路在接收到所述触发信号时,比较所述第二寄存器中的值是否等于所述第三寄存器中的值;
在所述第二寄存器中的值不等于所述第三寄存器中的值时,将所述第二寄存器中的值作为索引值输入所述内容可寻址存储单元,并将所述第二寄存器中的值加1;
在所述第二寄存器中的值等于所述第三寄存器中的值时,将0作为索引值输入所述内容可寻址存储单元,并将所述第二寄存器清零;
所述内容可寻址存储单元将获得的索引值写入所述目标表项,从而实现为所述报文标识分配索引值。
3.根据权利要求1所述的方法,其特征在于,所述处理单元根据所述索引值选择对应的等价路由端口发送所述待发报文的步骤,包括:
所述处理单元将所述索引值对所述等价路由端口数量取模得到端口编号,根据所述端口编号选取对应的等价路由端口发送所述待发报文。
4.根据权利要求1所述的方法,其特征在于,在所述内容可寻址存储单元中所有表项均为空闲表项时,所述第一寄存器初始化时赋值为所述内容可寻址存储单元可存储表项数量的最大值,多个所述表项的所述表项编号从1至所述最大值依次递增;所述将所述第一寄存器中的值指向另一空闲表项的步骤,包括:
将所述第一寄存器中的值减1。
5.根据权利要求1所述的方法,其特征在于,在所述内容可寻址存储单元中所有表项均为空闲表项时,所述第一寄存器初始化时赋值为1,多个所述表项的所述表项编号从1开始依次递增;所述将所述第一寄存器中的值指向另一空闲表项的步骤,包括:
将所述第一寄存器中的值加1。
6.一种通信设备,其特征在于,所述通信设备包括内容可寻址存储单元及处理单元;
所述内容可寻址存储单元用于存储表项,所述表项用于记录报文标识及与所述报文标识对应的索引值,所述索引值与等价路由端口对应;所述内容可寻址存储单元支持对多个所述表项进行并行查找匹配;
所述处理单元用于获取待发报文的报文标识并输入所述内容可寻址存储单元;
所述内容可寻址存储单元还用于在多个所述表项中查找与所述报文标识对应的目标表项,将所述目标表项的索引值反馈给所述处理单元;
所述处理单元还用于根据所述索引值选择对应的等价路由端口发送所述待发报文;
其中,所述内容可寻址存储单元具体通过以下方式查找匹配索引值反馈给所述处理单元:
在多个所述表项中查找是否存在与所述报文标识匹配的表项;
若查找到与所述报文标识对应的表项,将查找到的表项作为目标表项,并将所述目标表项的索引值反馈给所述处理单元;
若未查找到与所述报文标识对应的表项,将一空闲表项作为目标表项并写入所述报文标识,为所述目标表项分配索引值,并将所述索引值反馈给所述处理单元;
其中,所述内容可寻址存储单元中的表项具有相应的表项编号;所述通信设备还包括第一逻辑电路及第一寄存器,所述第一寄存器中的值为一个空闲表项的表项编号;
所述内容可寻址存储单元在未查找到与所述报文标识对应的表项时产生触发信号;
所述第一逻辑电路用于在接收到所述触发信号时,将所述第一寄存器中的值作为目标编号输入所述内容可寻址存储单元,并将所述第一寄存器中的值修改为另一空闲表项的表项编号;
所述内容可寻址存储单元将所述目标编号对应的表项作为目标表项,并将所述报文标识写入所述目标表项;
所述通信设备还包括第二逻辑电路及第二寄存器,其中:
所述第二逻辑电路用于在接收到所述触发信号时,将所述第二寄存器中的值作为索引值输入所述内容可寻址存储单元,并将所述第二寄存器中的值加1;
所述内容可寻址存储单元将获得的索引值写入所述目标表项,从而实现为所述报文标识分配索引值。
7.根据权利要求6所述的通信设备,其特征在于,所述通信设备还包括第二逻辑电路、第二寄存器及第三寄存器,所述第三寄存器中存储有所述等价路由端口的数量,所述第二寄存器中的初始值小于等于第三寄存器中的值,其中:
所述第二逻辑电路用于在接收到所述触发信号时,比较所述第二寄存器中的值是否等于所述第三寄存器中的值;
在所述第二寄存器中的值不等于所述第二寄存中存储的数时,将所述第二寄存器中的值作为索引值输入所述内容可寻址存储单元,并将所述第二寄存器中的值加1;
在所述第二寄存器中的值等于所述第二寄存中的值时,将0作为索引值输入所述内容可寻址存储单元,并将所述第二寄存器清零;
所述内容可寻址存储单元将获得的索引值写入所述目标表项,从而实现为所述报文标识分配索引值。
8.根据权利要求6所述的通信设备,其特征在于,所述处理单元具体通过以下方式发送所述待发报文:
所述处理单元将所述索引值对所述等价路由端口数量取模得到端口编号,根据所述端口编号选取对应的等价路由端口发送所述待发报文。
9.根据权利要求6所述的通信设备,其特征在于,在所述内容可寻址存储单元中所有表项均为空闲表项时,所述第一寄存器初始化时赋值为所述内容可寻址存储单元可存储表项数量的最大值,多个所述表项的所述表项编号从1至所述最大值依次递增;所述第一逻辑电路将所述第一寄存器中的值作为目标编号输入所述内容可寻址存储单元后,将所述第一寄存器中的值减1,使所述第一寄存器中的值指向另一空闲表项。
10.根据权利要求6所述的通信设备,其特征在于,在所述内容可寻址存储单元中所有表项均为空闲表项时,所述第一寄存器初始化时赋值为1,多个所述表项的所述表项编号从1开始依次递增;所述第一逻辑电路将所述第一寄存器中的值作为目标编号输入所述内容可寻址存储单元后,将所述第一寄存器中的值加1,使所述第一寄存器中的值指向另一空闲表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244385.6A CN107995116B (zh) | 2017-11-30 | 2017-11-30 | 报文发送方法及通信设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711244385.6A CN107995116B (zh) | 2017-11-30 | 2017-11-30 | 报文发送方法及通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107995116A CN107995116A (zh) | 2018-05-04 |
CN107995116B true CN107995116B (zh) | 2021-01-01 |
Family
ID=62034880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711244385.6A Active CN107995116B (zh) | 2017-11-30 | 2017-11-30 | 报文发送方法及通信设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107995116B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825521B (zh) * | 2019-10-21 | 2022-11-25 | 新华三信息安全技术有限公司 | 一种内存使用管理方法、装置及存储介质 |
CN112052191B (zh) * | 2020-09-10 | 2024-07-19 | 苏州盛科通信股份有限公司 | 报文的寻址方法及装置、存储介质、电子装置 |
CN115134298A (zh) * | 2021-03-23 | 2022-09-30 | 华为技术有限公司 | 报文处理方法以及网络设备 |
CN115225586B (zh) * | 2022-07-14 | 2024-04-26 | 中科驭数(北京)科技有限公司 | 数据包发送方法、装置、设备及计算机可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119313A (zh) * | 2007-09-14 | 2008-02-06 | 杭州华三通信技术有限公司 | 一种负载分担方法和设备 |
CN101567846A (zh) * | 2009-05-27 | 2009-10-28 | 杭州华三通信技术有限公司 | 路由选择方法及其***、业务处理单元和可编程接口板 |
CN101599910A (zh) * | 2009-07-15 | 2009-12-09 | 杭州华三通信技术有限公司 | 报文发送的方法及设备 |
CN101656675A (zh) * | 2009-09-22 | 2010-02-24 | 中兴通讯股份有限公司 | 负荷分担方法和装置 |
CN102724131A (zh) * | 2012-06-29 | 2012-10-10 | 杭州华三通信技术有限公司 | 一种ip报文等价路由均衡实现的方法及装置 |
CN102739518A (zh) * | 2012-05-30 | 2012-10-17 | 杭州华三通信技术有限公司 | 一种流量负载分担方法和设备 |
CN102882810A (zh) * | 2012-10-26 | 2013-01-16 | 杭州迪普科技有限公司 | 一种报文快速转发方法及装置 |
CN103905311A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 流表匹配方法和装置以及交换机 |
US9237100B1 (en) * | 2008-08-06 | 2016-01-12 | Marvell Israel (M.I.S.L.) Ltd. | Hash computation for network switches |
CN106453091A (zh) * | 2016-10-28 | 2017-02-22 | 武汉烽火网络有限责任公司 | 路由器转发平面的等价路由管理方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080123663A1 (en) * | 2006-11-29 | 2008-05-29 | Utstarcom, Incorporated | Method and apparatus for managing ternary content addressable memory entries for use in a data packet routing device |
-
2017
- 2017-11-30 CN CN201711244385.6A patent/CN107995116B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119313A (zh) * | 2007-09-14 | 2008-02-06 | 杭州华三通信技术有限公司 | 一种负载分担方法和设备 |
US9237100B1 (en) * | 2008-08-06 | 2016-01-12 | Marvell Israel (M.I.S.L.) Ltd. | Hash computation for network switches |
CN101567846A (zh) * | 2009-05-27 | 2009-10-28 | 杭州华三通信技术有限公司 | 路由选择方法及其***、业务处理单元和可编程接口板 |
CN101599910A (zh) * | 2009-07-15 | 2009-12-09 | 杭州华三通信技术有限公司 | 报文发送的方法及设备 |
CN101656675A (zh) * | 2009-09-22 | 2010-02-24 | 中兴通讯股份有限公司 | 负荷分担方法和装置 |
CN102739518A (zh) * | 2012-05-30 | 2012-10-17 | 杭州华三通信技术有限公司 | 一种流量负载分担方法和设备 |
CN102724131A (zh) * | 2012-06-29 | 2012-10-10 | 杭州华三通信技术有限公司 | 一种ip报文等价路由均衡实现的方法及装置 |
CN102882810A (zh) * | 2012-10-26 | 2013-01-16 | 杭州迪普科技有限公司 | 一种报文快速转发方法及装置 |
CN103905311A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 流表匹配方法和装置以及交换机 |
CN106453091A (zh) * | 2016-10-28 | 2017-02-22 | 武汉烽火网络有限责任公司 | 路由器转发平面的等价路由管理方法和装置 |
Non-Patent Citations (1)
Title |
---|
"一种基于链路繁忙趋势值的等价多路径选择算法";田铭,等;《信息工程大学学报》;20100430;190-195 * |
Also Published As
Publication number | Publication date |
---|---|
CN107995116A (zh) | 2018-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107995116B (zh) | 报文发送方法及通信设备 | |
US10257092B2 (en) | CCN routing using hardware-assisted hash tables | |
JP4742167B2 (ja) | Camのキーサイズを超えるテーブルインデックスを用いてテーブルルックアップ動作を実行する方法 | |
US9569561B2 (en) | Label masked addressable memory | |
US10798000B2 (en) | Method and apparatus of compressing network forwarding entry information | |
US10084687B1 (en) | Weighted-cost multi-pathing using range lookups | |
US10805216B2 (en) | Shared service access for multi-tenancy in a data center fabric | |
US9716592B1 (en) | Traffic distribution over multiple paths in a network while maintaining flow affinity | |
US20160277297A1 (en) | Sdn packet forwarding | |
US10855480B2 (en) | Systems and methods for processing packets in a computer network | |
CN107547391B (zh) | 一种报文传输方法和装置 | |
CN104917681B (zh) | 用于内容中心网络中的包转发的***和方法 | |
US9159420B1 (en) | Method and apparatus for content addressable memory parallel lookup | |
EP2995048A1 (en) | Configuring forwarding information | |
US20210399908A1 (en) | Multicast routing | |
US9553808B1 (en) | Protocol-independent packet routing | |
US11431626B2 (en) | Forwarding rules among lookup tables in a multi-stage packet processor | |
CN110661713B (zh) | 一种报文转发方法及装置 | |
US10242740B2 (en) | T-CAM bier bit-string lookups | |
US8948171B1 (en) | System and method for IP multicast | |
EP3269101B1 (en) | Generating a hash table in accordance with a prefix length | |
WO2015165104A1 (zh) | 查找装置及方法 | |
CN114911728A (zh) | 一种数据查找方法、装置及集成电路 | |
US10389626B2 (en) | Transfer device | |
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 |