CN105763454A - 基于二维路由策略的数据报文转发方法及装置 - Google Patents
基于二维路由策略的数据报文转发方法及装置 Download PDFInfo
- Publication number
- CN105763454A CN105763454A CN201610103787.3A CN201610103787A CN105763454A CN 105763454 A CN105763454 A CN 105763454A CN 201610103787 A CN201610103787 A CN 201610103787A CN 105763454 A CN105763454 A CN 105763454A
- Authority
- CN
- China
- Prior art keywords
- prefix
- index
- source
- data message
- down hop
- 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
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/748—Address table lookup; Address filtering using longest matching prefix
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于二维路由策略的数据报文转发方法及装置,其中,方法包括:在三态内容寻址存储器(TCAM)中仅存储FIB表,并在静态随机存取存储器(SRAM)中存储一级索引表、TD表和下一跳映射表;利用数据报文的目的地址查询所述FIB表获得目的前缀;利用数据报文的源地址查询所述FIB表获得源前缀;根据所述目的前缀从所述一级索引表中获得目的前缀索引;根据所述源前缀从所述一级索引表中获得源前缀索引;根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引;利用所述下一跳索引从所述下一跳映射表中获得下一跳信息。本发明可以有效地避免由于增加源前缀转发表而使TCAM存储空间增大的问题。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据报文的转发方法,具体来说就是一种基于二维路由策略的数据报文转发方法及装置。
背景技术
随着互联网技术的飞速发展,用户规模的不断增长,传统网络存在的问题也日趋明显。传统网络是基于IP模型的网络体系结构,强调信息的可达性,对所有数据流量都提供同样的“尽力而为”的服务。路由器的数据层是基于目的地址进行转发的,当报文到达路由器的时候,只查看目的地址,得到该报文去往的下一跳信息。所以,传统网络在流量工程、服务质量(QoS)、灵活高效等方面已经不能满足日益增长的多样化网络需求。为了解决上述问题,在网络发展过程中出现了很多解决方案,如源路由、多协议标签交换(MPLS)、策略路由等方案,但是这些方案都存在各自的问题,举例来说,由于安全问题,源路由已被大部分路由器禁用;MPLS的封闭性也给网络测量、管理和安全方面的工作带来了相当的不便;策略路由需要在数据包经过的路径上进行配置,配置过程非常复杂。
为了满足日益增长的多样化网络需求,最近一两年,出现了二维路由的概念,二维路由是将源地址加入路由体系,使转发表表项结构变为{Pd,Ps,action},转发时先匹配目的前缀保证可达性。为满足线速转发,转发表采用二维PatriciaTrie结构,即在构造好的“目的Patricia树”各节点下再构造相应“源Patricia树”,从而更灵活地控制数据分组转发。由于二维路由数据报文转发相比传统数据报文转发具有负载均衡、多宿主技术、网络诊断、多路径路由、网络安全等突出优点,因此,二维路由数据报文转发迅猛发展起来。
当前二维路由数据报文转发采用基于三态内容寻址存储器(TCAM)的访问控制列表(ACL)结构,即在TCAM中构建一个目的表,用于存储目的前缀;同时在TCAM中构建一个源表,用于存储源前缀;然后在TCAM中构建一个二维表,用于存储经过索引的下一跳信息;最后在TCAM中构建一个映射表,用于存储索引号和下一跳信息之前的映射信息。对于每一条规则(目的前缀,源前缀,下一跳信息),目的前缀存储在目的表中,源前缀存储在源表中。通过目的前缀,目的表会输出一个行号,通过源前缀,源表会输出一个列号。通过行号和列号,可以访问二维表中的一个单元格(用目的前缀、源前缀来表示一个单元格),并且二维表会输出一个索引号,通过索引号查找映射表,可以得到下一跳信息。
但是,由于TCAM资源的稀缺(目前最大的TCAM能存储一百万条表项),且随着存储条数的增多,TCAM的散热量及功率消耗也随之上升,同时,由于TCAM价格极其昂贵,仅靠扩展TCAM容量根据无法满足互联网经济的发展要求。
因此,本领域技术人员亟需研发一种二维路由转发方法,在不增加TCAM容量的基础上,实现网络大数据的转发,满足互联网经济的发展,降低数据传送成本。
发明内容
有鉴于此,本发明要解决的技术问题在于提供基于二维路由策略的数据报文转发方法及装置,解决了现有技术中二维路由转发需要消耗大量TCAM的问题。
为了解决上述问题,本发明具体实施方式提供一种基于二维路由策略的数据报文转发方法,包括:在三态内容寻址存储器(TCAM)中仅存储FIB表,并在静态随机存取存储器(SRAM)中存储一级索引表、TD表和下一跳映射表;利用数据报文的目的地址查询所述FIB表获得目的前缀;利用数据报文的源地址查询所述FIB表获得源前缀;根据所述目的前缀从所述一级索引表中获得目的前缀索引;根据所述源前缀从所述一级索引表中获得源前缀索引;根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引;利用所述下一跳索引从所述下一跳映射表中获得下一跳信息。
本发明具体实施方式还提供一种基于二维路由策略的数据报文转发装置,包括:TCAM、SRAM、第一查询单元、第二查询单元、映射控制单元和获取单元,其中,TCAM用于存储FIB表;SRAM用于存储一级索引表、TD表和下一跳映射表;第一查询单元用于利用数据报文的目的地址查询所述FIB表获得目的前缀;第二查询单元用于利用数据报文的源地址查询所述FIB表获得源前缀;映射控制单元用于根据所述目的前缀从所述一级索引表中获得目的前缀索引;映射控制单元还用于根据所述源前缀从所述一级索引表中获得源前缀索引;映射控制单元还用于根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引;获取单元用于利用所述下一跳索引从所述下一跳映射表中获得下一跳信息。
根据本发明上述具体实施方式,可知基于二维路由策略的数据报文转发方法及装置至少具有以下有益效果或特点:由于传统路由转发表中包括源前缀,即源前缀转发表项在原有目的前缀转发表中已经存在,本发明仅在TCAM存储原有目的转发表,通过改进转发表结构和查询机制实现二维路由转发,即本发明在TCAM中仅存储目的表(目的前缀转发表),从而有效地避免由于增加源前缀转发表(源表)而使TCAM存储空间增大的问题;此外,本发明还采用TCAM+SRAM(静态随机存取存储器)的方式实现二维路由数据报文转发,将对应的下一跳信息存储在SRAM中,即将二维表和映射表存储在SRAM中,从而进一步减少了对TCAM存储空间的占用,另外,控制二维路由数据报文转发的逻辑控制模块则由现场可编程门阵列(FPGA)或专用集成电路(ASIC)来实现,进一步降低了数据报文传输成本。此外,本发明在二维路由数据报文转发时,如果前缀类型为0,可以直接根据下一跳索引去下一跳映射表获取转发信息,提高了数据报文转发的转发速度。
应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本发明所欲主张的范围。
附图说明
下面的所附附图是本发明的说明书的一部分,其绘示了本发明的示例实施例,所附附图与说明书的描述一起用来说明本发明的原理。
图1为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的实施例一的流程图;
图2为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的实施例二的流程图;
图3为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的实施例三的流程图;
图4为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发装置的实施例一的框图;
图5为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发装置的实施例二的框图;
图6为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发装置的转发结构示意图;
图7为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的转发结构示意图;
图8为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发装置的一级索引表的结构图;
图9为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的整体流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本发明所揭示内容的精神,任何所属技术领域技术人员在了解本发明内容的实施例后,当可由本发明内容所教示的技术,加以改变及修饰,其并不脱离本发明内容的精神与范围。
本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。
关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的微变化或误差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。
某些用以描述本申请的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本申请的描述上额外的引导。
传统路由表是以目的地址为查询依据构建的,通过运行路由协议(如OSPF(开放式最短路径优先)),每个路由器节点都构建出自身的基于目的地址的转发表。ACL-like的做法是将目的前缀和源前缀合成一条转发表表项;FIST的做法是生成一张新的基于源前缀的转发表,根据网络中数据包交互的特点,请求数据包的源地址即为相应的响应数据包的目的地址。所以对于路由器来说,传统路由的转发表中就包括源前缀,即源前缀转发表项在原有的目的前缀转发表中已经存在,本发明提出利用原有目的转发表,通过改进转发表结构和查询机制实现基于二维地址的转发,可以有效地避免由于增加源前缀转发表而使TCAM存储空间增大的问题。
图1为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的实施例一的流程图,如图1所示,利用原有目的转发表,通过改进转发表结构和查询机制实现基于二维地址的转发,可以有效地避免由于增加源前缀转发表而使TCAM存储空间增大的问题。
该附图所示的具体实施方式包括:
步骤101:在三态内容寻址存储器(TCAM)中仅存储FIB表,并在静态随机存取存储器(SRAM)中存储一级索引表、TD表和下一跳映射表。FIB表是路由表中的最优路由条目导入到FIB中生成的,也可以是由地址解析协议(ARP)生成的,是真正指导数据转发的表。一级索引表存储单元与TCAM的存储单元一一对应。比如,地址在TCAM查找中匹配了第k条表项,则相应的在一级索引表的第k个单元得到索引信息。一级索引表存储单元主要有3部分构成:前缀类型(PrefixType,简称PT)表示匹配前缀的类型,字段长度为2位(bits),00为o-prefix,01为t-prefix,10为s-prefix;前缀索引(PrefixIndex,简称PI),表示目的/源前缀索引,字段长度为16~32bits(可根据路由器规格配置进行调整),通过目的地址查找得到的目的前缀索引,这个索引逻辑上即为TD表的行号,通过源地址查找得到的源前缀索引,这个索引逻辑上即为TD表的列号;下一跳索引(NexthopIndex,简称NI),下一跳索引的字段长度为8位(bit)。
步骤102:利用数据报文的目的地址查询所述FIB表获得目的前缀。
步骤103:利用数据报文的源地址查询所述FIB表获得源前缀。
步骤104:根据所述目的前缀从所述一级索引表中获得目的前缀索引。
步骤105:根据所述源前缀从所述一级索引表中获得源前缀索引。
步骤106:根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引。
步骤107:利用所述下一跳索引从所述下一跳映射表中获得下一跳信息。
参见图1,本发明可以保证二维路由转发与传统路由转发的兼容,有效减少FIB所用空间;将进一步减少TCAM和SRAM的存储二维路由转发表的空间,且兼容传统路由。
图2为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的实施例二的流程图,如图2所示,根据所述源前缀查询所述FIB表获得前缀类型,根据前缀类型获取下一跳信息。
该附图所示的具体实施方式,在步骤105之后,该方法包括:
步骤105-1:根据所述源前缀查询所述FIB表获得前缀类型。
步骤105-2:判断所述前缀类型是否为0。
其中,当所述前缀类型不为0时,根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引。
参见图2,只有当前缀类型不为0时,才会根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引,再利用所述下一跳索引从所述下一跳映射表中获得下一跳信息。
图3为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的实施例三的流程图,如图3所示,前缀类型为0时,可以根据所述目的前缀索引中的下一跳索引直接从所述下一跳映射表中获得下一跳信息。
当所述前缀类型为0时,该附图所示的具体实施方式,在步骤105-2之后,还包括:
步骤105-3:根据所述目的前缀索引中的下一跳索引从所述下一跳映射表中获得下一跳信息。
参见图3,当前缀类型为0时,可以根据所述目的前缀索引中的下一跳索引直接从所述下一跳映射表中获得下一跳信息,极大节省路由查询时间,提高了数据报文转发的速度。
图4为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发装置的实施例一的框图,如图4所示,仅在TCAM存储原有目的转发表,通过改进转发表结构和查询机制实现二维路由转发,即本发明在TCAM中仅存储目的表(目的前缀转发表),从而有效地避免由于增加源前缀转发表(源表)而使TCAM存储空间增大的问题。
该附图所示的具体实施方式包括:TCAM10、SRAM20、第一查询单元30、第二查询单元40、映射控制单元50和获取单元60,其中,TCAM10用于存储FIB表;SRAM20用于存储一级索引表、TD表和下一跳映射表;第一查询单元30用于利用数据报文的目的地址查询所述FIB表获得目的前缀;第二查询单元40用于利用数据报文的源地址查询所述FIB表获得源前缀;映射控制单元50用于根据所述目的前缀从所述一级索引表中获得目的前缀索引;映射控制单元50还用于根据所述源前缀从所述一级索引表中获得源前缀索引;映射控制单元50还用于根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引,本发明的具体实施例中,映射控制单元50可以为现场可编程门阵列(FPGA)或者为专用集成电路(ASIC);获取单元60用于利用所述下一跳索引从所述下一跳映射表中获得下一跳信息。
参见图4,本发明可以保证二维路由转发与传统路由转发的兼容,有效减少FIB所用空间;将进一步减少TCAM和SRAM的存储二维路由转发表的空间,且兼容传统路由。
图5为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发装置的实施例二的框图,如图5所示,第三查询单元根据所述源前缀查询所述FIB表获得前缀类型,判断单元根据前缀类型是否为0,决定如何获取下一跳信息。
该附图所示的具体实施方式包括:
第三查询单元70用于根据所述源前缀查询所述FIB表获得前缀类型;判断单元80用于判断所述前缀类型是否为0,并且判断出所述前缀类型不为0时,所述映射控制单元根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引;所述判断单元还用于判断出所述前缀类型为0时,所述映射控制单元根据所述目的前缀索引中的下一跳索引从所述下一跳映射表中获得下一跳信息。
参见图5,本发明根据前缀类型是否为0,再决定采用何种方式获取下一跳信息,对于前缀类型为0的情形,映射控制单元50根据所述目的前缀索引中的下一跳索引直接从所述下一跳映射表中获得下一跳信息,极大节省路由查询时间,提高了数据报文转发的速度。
图6为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发装置的转发结构示意图,如图6,二维路由由于引入了源地址,所以转发表中的前缀可以分为目的前缀和源前缀。
首先作如下定义:
定义1:设Pd为二维路由目的前缀的集合,Ps为源前缀的集合,如果前缀p满足则称为s-prefix;如果满足则称为d-prefix;如果满足(p∈Pd)∩(p∈Ps),则称为b-prefix。
定义2:把与二维路由无关(即不需要查找源转发表进行转发的路由前缀)的目的前缀的称为o-prefix,反之,称为t-prefix。由定义2可知,o-prefix和t-prefix可能是d-prefix也可能是b-prefix。
二维转发结构如图6所示,采用TCAM+SRAM的结构实现,TCAM中存放着一张表FIB,既作为目的前缀表又作为源前缀表,如图中虚线所示。SRAM中放着三张表,即一级索引表、TD表、下一跳映射表。
以图6为例,假如路由器收到一个目的地址为2000::1源地址为3000::1的数据包,分别用2000::1和3000::1查询TCAM中的FIB,在一级索引表(FITable)中得到目的前缀索引1和源前缀索引2,根据这两个索引在TD表中确定下一跳索引为3,最后在NMTable中得到下一跳9000::1。
图7为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的转发结构示意图,图8为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发装置的一级索引表的结构图,如图7、图8所示,为了解决与基于目的地址的转发机制兼容问题,本发明设计具体实现方案如图7所示,主要包括5部分:TCAM、一级索引表、TD表、下一跳映射表以及映射控制单元。
TCAM存储着一张路由前缀信息表,完成路由前缀的最长匹配查找。
一级索引表存储单元与TCAM的存储单元一一对应。比如,地址在在TCAM查找中匹配了第k条表项,则相应的在一级索引表的第k个单元得到索引信息。一级索引表存储单元的结构如图8所示,主要有3部分构成:前缀类型(PrefixType,简称PT)表示匹配前缀的类型,宽度为2bits,00为o-prefix,01为t-prefix,10为s-prefix;前缀索引(PrefixIndex,简称PI)表示目的/源前缀索引,宽度为16~32bits(可根据路由器规格配置进行调整),通过目的地址查找得到的目的前缀索引,这个索引逻辑上即为TD表的行号,通过源地址查找得到的源前缀索引,这个索引逻辑上即为TD表的列号;为了避免查找目的前缀时匹配上s-prefix,将一级索引表中的PI分成两部分,如图8所示,一部分表示目的前缀索引,一部分表示源前缀索引,目的查找结果用目的前缀索引,源查找结果用源前缀索引,而对于s-prefix的目的前缀索引,可以填充其前缀的目的前缀索引;下一跳索引(NexthopIndex,简称NI)的作用是,当匹配的前缀为o-prefix时,直接用NI到下一跳映射表查找下一跳,宽度一般为8bits。
TD表存储着对应二维转发规则的下一跳索引,逻辑上TD表是一个M×N矩阵,具体实现是将存储TD表的SRAM空间分成M个块(block),目的前缀索引对应着每个block的开始地址,源前缀索引对应着block内的地址偏移,从而根据能够目的前缀索引和源前缀索引确定TD存储单元。
下一跳映射表存储着下一跳索引和下一跳之间的映射关系。根据下一跳索引可以在这个表中得到转发信息(下一跳信息),如下一跳地址、出接口等。
映射控制模块(MappingControlModule,即映射控制单元)根据从一级索引表得到的目的前缀索引和源前缀索引实现到TD单元的映射,该模块可以由FPGA或ASIC实现。
根据图7所示,给出两个查找示例。假设路由器收到一个目的地址为1000::1的报文,提取目的地址和源地址,用目的地址1000::1查询TCAM的FIB表,找到与之匹配的前缀1000::/64,根据前缀1000::/64所在单元的位置,访问对应的一级索引表单元,可知PT为00,即前缀类型为o-prefix,这时,直接根据NI的值去下一跳映射表获取转发信息,NI为0,所以得到下一跳为2000::1,不用考虑源地址的查找结果。
假设当路由器收到一个目的地址为2000::1源地址为3000::1的报文时,顺序用目的地址和源地址查询TCAM的FIB表,目的地址匹配前缀2000::/64,可知PT为01,即前缀类型为t-prefix,目的PI为1,源地址匹配前缀3000::/64,源PI为2,将两次查询所得到目的PI和源PI交给映射控制模块,映射控制模块根据索引在TD表找到下一跳索引3,所以得到下一跳为9000::1。
图9为本发明具体实施方式提供的一种基于二维路由策略的数据报文转发方法的整体流程图,如图9所示为二维路由转发的流程图,即报文到达路由器,提取目的地址和源地址,查询FIB表,得到目的前缀和源前缀。目的前缀查询FITable得到目的前缀索引,源前缀查询FITable得到源前缀索引,判断PT是否为0,若PT=0,即前缀类型为o-prefix,这时,直接根据NI的值去下一跳映射表获取转发信息;若PT≠0,把查询一级索引表得到的目的PI和源PI交给映射控制模块,映射控制模块根据索引在TD表找到下一跳索引,用下一跳索引查询下一跳映射表,得到下一跳。
本发明披露的二维路由转发表结构,为了实现二维路由转发主要包括5部分,TCAM、一级索引表、TD表、下一跳映射表以及映射控制模块。
如图9所示,实现二维路由查找应执行以下步骤:
步骤1.路由器收到报文后,提取报文的目的地址和源地址。
步骤2.用目的地址查询TCAM的FIB表,FIB表存储路由前缀信息,通过路由前缀的最长匹配查找,找到与之匹配的目的前缀。
步骤3.用源地址查询TCAM的FIB表,通过路由前缀的最长匹配查找,找到与之匹配的源前缀。
步骤4.一级索引表(FITable)存储着与TCAM中前缀表项对应的目的、源前缀指向的索引。根据TCAM的FIB表中的目的前缀查询FITable,得到目的前缀索引。一级索引表主要由前缀类型PT、前缀索引PI、下一跳索引NI三部分构成。
步骤5.访问源地址对应的一级索引表,得到源前缀索引。
步骤6.前缀类型PT表示匹配前缀的类型,由步骤3得到了前缀类型PT,判断PT的值。
步骤7.若PT的值为0,则前缀类型为与二维路由无关的目的前缀,这时,直接根据下一跳索引NI的值去下一跳映射表获取转发信息,从而得到下一跳。
步骤8.若PT的值不为0,在步骤3和步骤4中已经得到目的前缀索引和源前缀索引,将两次查询所得到目的前缀索引和源前缀索引交给映射控制模块。
步骤9.映射控制模块可以实现从一级索引表得到的目的前缀索引和源前缀索引到TD表的映射,由此可以得到TD表存储着的对应二维转发规则的下一跳索引。
步骤10.用下一跳索引查询下一跳索引表,从而得到下一跳。
本发明提供一种基于二维路由策略的数据报文转发方法及装置,由于传统路由转发表中包括源前缀,即源前缀转发表项在原有目的前缀转发表中已经存在,本发明仅在TCAM存储原有目的转发表,通过改进转发表结构和查询机制实现二维路由转发,即本发明在TCAM中仅存储目的表(目的前缀转发表),从而有效地避免由于增加源前缀转发表(源表)而使TCAM存储空间增大的问题;此外,本发明还采用TCAM+SRAM(静态随机存取存储器)的方式实现二维路由数据报文转发,将对应的下一跳信息存储在SRAM中,即将二维表和映射表存储在SRAM中,从而进一步减少了对TCAM存储空间的占用,另外,控制二维路由数据报文转发的逻辑控制模块则由现场可编程门阵列(FPGA)或专用集成电路(ASIC)来实现,进一步降低了数据报文传输成本。此外,本发明在二维路由数据报文转发时,如果前缀类型为0,可以直接根据下一跳索引去下一跳映射表获取转发信息,提高了数据报文转发的转发速度。
上述的本发明实施例可在各种硬件、软件编码或两者组合中进行实施。例如,本发明的实施例也可为在数据信号处理器(DigitalSignalProcessor,DSP)中执行的执行上述程序的程序代码。本发明也可涉及计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(FieldProgrammableGateArray,FPGA)执行的多种功能。可根据本发明配置上述处理器执行特定任务,其通过执行定义了本发明揭示的特定方法的机器可读软件代码或固件代码来完成。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形式。也可为不同的目标平台编译软件代码。然而,根据本发明执行任务的软件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本发明的精神与范围。
以上所述仅为本发明示意性的具体实施方式,在不脱离本发明的构思和原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于本发明保护的范围。
Claims (10)
1.一种基于二维路由策略的数据报文转发方法,其特征在于,该方法包括:
在TCAM中仅存储FIB表,并在SRAM中存储一级索引表、TD表和下一跳映射表;
利用数据报文的目的地址查询所述FIB表获得目的前缀;
利用数据报文的源地址查询所述FIB表获得源前缀;
根据所述目的前缀从所述一级索引表中获得目的前缀索引;
根据所述源前缀从所述一级索引表中获得源前缀索引;
根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引;以及
利用所述下一跳索引从所述下一跳映射表中获得下一跳信息。
2.如权利要求1所述的基于二维路由策略的数据报文转发方法,其特征在于,根据所述源前缀从所述一级索引表中获得源前缀索引的步骤之后,该方法包括:
根据所述源前缀查询所述FIB表获得前缀类型;
判断所述前缀类型是否为0;
当所述前缀类型不为0时,根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引。
3.如权利要求2所述的基于二维路由策略的数据报文转发方法,其特征在于,该方法包括:
当所述前缀类型为0时,根据所述目的前缀索引中的下一跳索引从所述下一跳映射表中获得下一跳信息。
4.如权利要求1所述的基于二维路由策略的数据报文转发方法,其特征在于,所述一级索引表包括:前缀类型、前缀索引和下一跳索引。
5.如权利要求4所述的基于二维路由策略的数据报文转发方法,其特征在于,所述前缀类型的字段长度为2位;所述前缀索引的字段长度为16~32位;所述下一跳索引的字段长度为8位。
6.如权利要求5所述的基于二维路由策略的数据报文转发方法,其特征在于,根据路由器的规格调整所述前缀索引的字段长度。
7.一种基于二维路由策略的数据报文转发装置,其特征在于,该装置包括:TCAM、SRAM、第一查询单元、第二查询单元、映射控制单元和获取单元,其中,
TCAM用于存储FIB表;
SRAM用于存储一级索引表、TD表和下一跳映射表;
第一查询单元用于利用数据报文的目的地址查询所述FIB表获得目的前缀;
第二查询单元用于利用数据报文的源地址查询所述FIB表获得源前缀;
映射控制单元用于根据所述目的前缀从所述一级索引表中获得目的前缀索引;
映射控制单元还用于根据所述源前缀从所述一级索引表中获得源前缀索引;
映射控制单元还用于根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引;以及
获取单元用于利用所述下一跳索引从所述下一跳映射表中获得下一跳信息。
8.如权利要求7所述的基于二维路由策略的数据报文转发装置,其特征在于,该装置还包括:
第三查询单元,用于根据所述源前缀查询所述FIB表获得前缀类型;以及
判断单元,用于判断所述前缀类型是否为0,并且判断出所述前缀类型不为0时,所述映射控制单元根据所述目的前缀索引和所述源前缀索引从所述TD表中获得下一跳索引。
9.如权利要求8所述的基于二维路由策略的数据报文转发装置,其特征在于,所述判断单元还用于判断出所述前缀类型为0时,所述映射控制单元根据所述目的前缀索引中的下一跳索引从所述下一跳映射表中获得下一跳信息。
10.如权利要求7所述的基于二维路由策略的数据报文转发装置,其特征在于,所述映射控制单元为FPGA或者为ASIC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610103787.3A CN105763454B (zh) | 2016-02-25 | 2016-02-25 | 基于二维路由策略的数据报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610103787.3A CN105763454B (zh) | 2016-02-25 | 2016-02-25 | 基于二维路由策略的数据报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105763454A true CN105763454A (zh) | 2016-07-13 |
CN105763454B CN105763454B (zh) | 2018-11-27 |
Family
ID=56331309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610103787.3A Active CN105763454B (zh) | 2016-02-25 | 2016-02-25 | 基于二维路由策略的数据报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105763454B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831384A (zh) * | 2017-11-23 | 2019-05-31 | 华为技术有限公司 | 名字查找方法及路由器 |
CN109861915A (zh) * | 2017-11-30 | 2019-06-07 | 中兴通讯股份有限公司 | 转发表操作的方法、装置、计算机设备及可读存储介质 |
CN110011920A (zh) * | 2019-04-11 | 2019-07-12 | 盛科网络(苏州)有限公司 | 一种报文处理方法及装置 |
CN112667640A (zh) * | 2020-12-31 | 2021-04-16 | 盛科网络(苏州)有限公司 | 一种路由地址存储方法及装置 |
CN114039910A (zh) * | 2021-11-17 | 2022-02-11 | 杭州云合智网技术有限公司 | 基于分组标签策略的数据转发的方法 |
CN114050993A (zh) * | 2021-09-26 | 2022-02-15 | 比威网络技术有限公司 | 基于接入侧的安全可信路径主动选择方法方法和装置 |
CN114389989A (zh) * | 2021-12-24 | 2022-04-22 | 锐捷网络股份有限公司 | 多级下一跳路由处理方法及装置 |
CN115604186A (zh) * | 2021-07-09 | 2023-01-13 | 华为技术有限公司(Cn) | 路由方法及相关设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086720B (zh) * | 2019-04-22 | 2020-06-12 | 清华大学 | 基于二维路由协议实现l3vpn的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193619A1 (en) * | 2003-03-28 | 2004-09-30 | Srinivasan Venkatachary | System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size |
US20110038375A1 (en) * | 2009-08-17 | 2011-02-17 | Board Of Trustees Of Michigan State University | Efficient tcam-based packet classification using multiple lookups and classifier semantics |
CN102307149A (zh) * | 2011-09-23 | 2012-01-04 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN103546378A (zh) * | 2013-05-20 | 2014-01-29 | 李险峰 | 基于tcam的范围多匹配2级分层查找方法 |
CN103780493A (zh) * | 2014-01-20 | 2014-05-07 | 清华大学 | 数据转发方法及系统 |
CN104601485A (zh) * | 2015-02-12 | 2015-05-06 | 清华大学 | 网络流量的分配方法及实现网络流量分配的路由方法 |
-
2016
- 2016-02-25 CN CN201610103787.3A patent/CN105763454B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193619A1 (en) * | 2003-03-28 | 2004-09-30 | Srinivasan Venkatachary | System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size |
US20110038375A1 (en) * | 2009-08-17 | 2011-02-17 | Board Of Trustees Of Michigan State University | Efficient tcam-based packet classification using multiple lookups and classifier semantics |
CN102307149A (zh) * | 2011-09-23 | 2012-01-04 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN103546378A (zh) * | 2013-05-20 | 2014-01-29 | 李险峰 | 基于tcam的范围多匹配2级分层查找方法 |
CN103780493A (zh) * | 2014-01-20 | 2014-05-07 | 清华大学 | 数据转发方法及系统 |
CN104601485A (zh) * | 2015-02-12 | 2015-05-06 | 清华大学 | 网络流量的分配方法及实现网络流量分配的路由方法 |
Non-Patent Citations (4)
Title |
---|
HANQING ZHU等: "MDTC_ An Efficient Approach to TCAM-based Multidimensional Table Compression", 《2015 IFIP NETWORKING CONFERENCE》 * |
SHU YANG: "Two Dimensional Router: Design and Implementation", 《TECHNICAL REPORT, TSINGHUA UNIVERSITY》 * |
SHU YANG等: "Scalable Forwarding Tables for Supporting Flexible Policies in Enterprise Networks", 《IEEE INFOCOM 2014 - IEEE CONFERENCE ON COMPUTER COMMUNICATIONS》 * |
YUANYUAN ZHANG等: "Compressing IP Forwarding Tables with Fast and Bounded Update", 《2015 IEEE 23RD INTERNATIONAL SYMPOSIUM ON QUALITY OF SERVICE(IWQOS)》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831384A (zh) * | 2017-11-23 | 2019-05-31 | 华为技术有限公司 | 名字查找方法及路由器 |
CN109831384B (zh) * | 2017-11-23 | 2021-08-03 | 华为技术有限公司 | 名字查找方法及路由器 |
CN109861915A (zh) * | 2017-11-30 | 2019-06-07 | 中兴通讯股份有限公司 | 转发表操作的方法、装置、计算机设备及可读存储介质 |
CN110011920A (zh) * | 2019-04-11 | 2019-07-12 | 盛科网络(苏州)有限公司 | 一种报文处理方法及装置 |
CN112667640A (zh) * | 2020-12-31 | 2021-04-16 | 盛科网络(苏州)有限公司 | 一种路由地址存储方法及装置 |
CN112667640B (zh) * | 2020-12-31 | 2023-09-12 | 苏州盛科通信股份有限公司 | 一种路由地址存储方法及装置 |
CN115604186A (zh) * | 2021-07-09 | 2023-01-13 | 华为技术有限公司(Cn) | 路由方法及相关设备 |
CN114050993A (zh) * | 2021-09-26 | 2022-02-15 | 比威网络技术有限公司 | 基于接入侧的安全可信路径主动选择方法方法和装置 |
CN114039910A (zh) * | 2021-11-17 | 2022-02-11 | 杭州云合智网技术有限公司 | 基于分组标签策略的数据转发的方法 |
CN114389989A (zh) * | 2021-12-24 | 2022-04-22 | 锐捷网络股份有限公司 | 多级下一跳路由处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105763454B (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105763454A (zh) | 基于二维路由策略的数据报文转发方法及装置 | |
US9871728B2 (en) | Exact match hash lookup databases in network switch devices | |
US9627063B2 (en) | Ternary content addressable memory utilizing common masks and hash lookups | |
US10673757B2 (en) | System and method of a data processing pipeline with policy based routing | |
US10574574B2 (en) | System and method for BGP sFlow export | |
CN103117931B (zh) | 基于哈希表和tcam表的mac地址硬件学习方法及系统 | |
US20070171911A1 (en) | Routing system and method for managing rule entry thereof | |
CN108989209B (zh) | Bier mpls网络设备、及其报文转发方法和介质 | |
US10333845B2 (en) | Forwarding data packets | |
CN111937360B (zh) | 最长前缀匹配 | |
CN102123106B (zh) | 一种虚拟专用局域网服务网络中mac地址学习方法和装置 | |
CN102571599B (zh) | 一种路由表项的快速存储方法 | |
CN105229977B (zh) | 用于循环复制分组的方法、装置和计算机可读存储介质 | |
CN107547407B (zh) | 报文传输方法、装置和实现装置 | |
US11558280B2 (en) | System and method of processing in-place adjacency updates | |
US20210092046A1 (en) | Packet forwarding method and node device based on bier-te, and storage medium | |
CN109639579A (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
CN105471747A (zh) | 一种智能路由器选路方法和装置 | |
CN106453091B (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN101883055A (zh) | 路由转发表容量扩展实现方法、装置及交换设备 | |
CN106209554A (zh) | 跨虚拟可扩展局域网的报文转发方法和设备 | |
CN105207904A (zh) | 报文的处理方法、装置和路由器 | |
TW200414033A (en) | Address search | |
CN108777654A (zh) | 报文转发方法及路由设备 | |
US20130230053A1 (en) | System and Method for Facilitating Communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |