CN100486227C - 路由表查找方法 - Google Patents

路由表查找方法 Download PDF

Info

Publication number
CN100486227C
CN100486227C CNB2006100221480A CN200610022148A CN100486227C CN 100486227 C CN100486227 C CN 100486227C CN B2006100221480 A CNB2006100221480 A CN B2006100221480A CN 200610022148 A CN200610022148 A CN 200610022148A CN 100486227 C CN100486227 C CN 100486227C
Authority
CN
China
Prior art keywords
prefix
found
prefix length
route table
routing address
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
Application number
CNB2006100221480A
Other languages
English (en)
Other versions
CN1949746A (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.)
Maipu Communication Technology Co Ltd
Original Assignee
MAIPU(SICHUAN) COMMUNICATION TECHNOLOGY CO 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 MAIPU(SICHUAN) COMMUNICATION TECHNOLOGY CO LTD filed Critical MAIPU(SICHUAN) COMMUNICATION TECHNOLOGY CO LTD
Priority to CNB2006100221480A priority Critical patent/CN100486227C/zh
Publication of CN1949746A publication Critical patent/CN1949746A/zh
Application granted granted Critical
Publication of CN100486227C publication Critical patent/CN100486227C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及网络通信,特别涉及路由表的查找方法。本发明提供了一种可用于快速转发表更新的路由表查找方法,以解决现有Radix树查找原则不适用的问题。本发明解决所述技术问题,采用的技术方案是,路由表查找方法,包括以下步骤:a.确定待查找路由地址的前缀地址和前缀长度;b.在查找路由表时,设定匹配条件为:一、路由表项的前缀地址与待查找路由地址的前缀地址相匹配;二、路由表项的前缀长度与待查找路由地址的前缀长度相匹配;符合上述两条即为匹配的路由表项。本发明的有益效果是,根据用户指定的前缀地址和前缀长度,查找匹配的路由表项,能够解决某些实际应用中,Radix树查找原则不适用的问题,扩大了BSD Radix树的应用范围。

Description

路由表查找方法
技术领域
本发明涉及网络通信,特别涉及路由表的查找方法。
背景技术
Internet的迅速发展给我们的生活带来了巨大的变化,随之而来的是网络流量的迅速增长。路由器是在网络中对数据分组进行转发的典型设备,路由表是其转发数据分组的基础。转发数据分组时,路由器需要根据目的IP地址,查找可以匹配的路由表项,从而确定正确的下一跳出口。在IP路由表中,每个表项都包括路由地址,路由地址又称为前缀,一般表示为P/L,P表示前缀地址,即主机或网络地址;L表示前缀长度,即该主机或网络地址的掩码长度。路由表项的查找过程也称为最长匹配查找过程,即先将待查找的目的地址,与路由表项中前缀长度的比特位进行逻辑与操作,再将其结果和该路由表项中前缀地址进行匹配,选择所有匹配项中前缀长度最长那一个。
在现有技术中,BSD的Radix树因其查找高效而成为目前比较常用的路由表组织结构。目前对Radix树路由表项的查找一般是根据待查找的目的IP地址,利用最长前缀匹配原则,选择最精确匹配路由。但是,在某些应用中,例如依赖最精确匹配路由表项而建立的快速转发表在该某一路由表项删除时,为了避免采用新增快速转发表项的方式引起CPU资源的消耗,这个时候,需要在路由表中查找可替代当前快速转发表所依赖的待删除P/L表项的其它相匹配的路由。而现有技术中对Radix树路由表项不能支持此种应用的查找。关于BSD radix树查找详细资料见《TCP/IP Illustrated Volume 2:TheImplementation》,18章——Radix树路由表。
发明内容
本发明所要解决的技术问题,就是提供一种可用于快速转发表更新的路由表查找方法,以解决现有Radix树查找原则不适用的问题,从而避免不必要的系统资源浪费。
本发明解决所述技术问题,采用的技术方案是,路由表查找方法,包括以下步骤:
a.确定待查找路由地址的前缀地址和前缀长度;
b.在查找路由表时,设定匹配条件为:一、路由表项的前缀地址与待查找路由地址的前缀地址相匹配;二、路由表项的前缀长度与待查找路由地址的前缀长度相匹配;符合上述两条即为匹配的路由表项。
进一步的是,步骤b中,所述路由表项的前缀长度与待查找路由地址的前缀长度相匹配是指,在满足上述匹配条件一的路由表项中,其前缀长度最长,并且等于或者小于待查找路由地址的前缀长度的路由表项。
具体的是,所述步骤b包括:
b1.根据待查找路由地址的前缀地址,按照Radix树查找流程,从根节点开始查找到第一个叶子节点,判断待查找路由地址的前缀地址与该叶子节点前缀地址是否匹配,如果匹配,则进入步骤b2,否则进入步骤b4;
b2.比较所述叶子节点前缀长度是否小于或等于待查找路由地址的前缀长度,如果是,则确定该叶子节点为匹配的路由表项,进入步骤b5;否则进入步骤b3;
b3.判断是否存在其它与待查找路由地址的前缀地址相匹配的叶子节点;如果有,则逐一将这些叶子节点的前缀长度,与待查找路由地址的前缀长度进行比较,确定前缀长度最接近待查找路由地址的前缀长度的叶子节点为相匹配的路由表项,进入步骤b5;如果没有,进入步骤b4;
b4.根据最长前缀匹配算法向上回溯查找,确定与待查找路由地址的前缀地址相匹配、前缀长度小于待查找路由地址的前缀长度的第一个叶子节点为匹配路由表项;
b5.输出匹配的路由表项,查找结束。
进一步的是,步骤b3中,所述前缀长度最接近待查找路由地址的前缀长度的叶子节点是指,该叶子节点的前缀长度,在所有与待查找的路由地址的前缀地址相匹配的叶子节点中最长,并且等于或者小于待查找路由地址的前缀长度。
本发明的有益效果是,根据用户指定的前缀地址和前缀长度,查找与其前缀地址和前缀长度都匹配的路由表项,能够解决某些实际应用中,Radix树查找原则不适用的问题,扩大了BSD Radix树的应用范围。
附图说明
图1是本发明的程序流程图。
具体实施方式
本发明的技术方案,根据待查找路由地址的前缀地址和前缀长度,查找满足匹配条件的路由表项,查找流程为:
1、开始查找后首先使用待查找路由地址的前缀地址,依照Radix树组织结构,从Radix根节点开始查找。在查找过程中使用测试位决定匹配分支,测试位包含在Radix树上内节点中,待查找路由地址的前缀地址与测试位测试为0走左子树,待查找路由地址的前缀地址与测试位测试为1走右子树。根据这样的规则最终可以找到唯一的叶子节点(路由表项);
找到路由表项之后,确定待查找路由地址的前缀地址和该路由表项前缀地址是否匹配:将待查找路由地址的前缀地址,与该路由表项前缀长度进行逻辑与操作,如果得到的结果与该路由表项前缀地址相同,代表与该路由表项匹配,反之则表示不匹配。如果前缀地址匹配成功,还需要确定前缀长度是否满足条件:
I.如果该路由表项前缀长度小于或等于待查找路由地址的前缀长度,则找到匹配路由,输出查找结果,查找结束。
II.否则,还需要判断是否存在其它和待查找路由地址的前缀地址匹配的叶子节点,这些叶子节点被称为重复键,它们的区别是前缀长度不同。如果存在这样的叶子节点则逐一将他们的前缀长度和待查找路由地址的前缀长度相比较,找到其中前缀长度最长,并且其前缀长度小于或等于待查找路由地址的前缀长度的叶子节点,作为相匹配的路由表项输出,查找结束。
如果路由表项前缀地址不匹配或者前缀长度不匹配那么就需要根据最长前缀匹配算法向上回溯查找。
回溯过程中,发现内节点存在掩码列表,那么说明这个内节点的子树,有可能存在和待查找路由地址的前缀地址匹配的路由表项。根据这样的假设,将待查找路由地址的前缀地址和掩码列表中的掩码地址进行逻辑与操作,得到的结果再按照Radix树遍历方法依次比较测试位,最终可以得到一个叶子节点。确定叶子节点的前缀地址,与待查找路由地址的前缀地址是否匹配,并且叶子节点前缀长度小于或等于待查找路由地址的前缀长度,如果两个条件都满足则返回匹配路由,查找结束;否则继续使用掩码列表中的下一个掩码进行匹配。如果所有掩码列表的掩码地址都不满足条件,继续向上进行回溯直到根节点为止,结束查找。
实施例
目前,为了保证转发效率,一般在路由器等转发设备中都设置快速转发模块,以提高报文转发速率。因为如果新的快速转发表建立需要一段时间,期间需要转发的数据包只有提交上层CPU处理,系统资源的消耗较大。因此通过主动更新快速转发表,节省了时间,避免了不必要的系统资源的浪费。当快速转发模块的转发缓存中所依赖的某条路由被删除之后,可以通过直接更新转发缓存所依赖的路由到另外一条,所以就需要在路由表中查找可以替代该路由的路由表项,
假设存在3条路由,他们依次包含:
1.0.0.0/8
1.2.0.0/16
1.2.3.0/24
如果路由表中删除1.2.3.0/24路由,快速转发模块则需要查找路由表,确定该路由表项被删除之后,路由表中还有哪条路由表项可用,并将原来依赖路由1.2.3.0/24的数据包,按照新查找到的路由表项进行转发。这个时候新查找到的路由表项应该是可以替代原来的路由1.2.3.0/24,也就是查找可以和该前缀地址1.2.3.0相匹配,长度小于该前缀长度24的路由表项。
根据本发明提供的查找方法,这里我们设置查找前缀地址为1.2.3.0,前缀长度为23,因为原前缀地址的前缀长度是24,那么在匹配过程中,路由1.2.3.0/24将不能匹配,所以待查找的路由可以称作是次精确的路由表项,通过指定前缀长度23,只有掩码长度小于等于23的路由表项才能匹配。我们在路由表中查找前缀地址和1.2.3.0匹配,前缀长度等于或小于23的路由表项。使用上面的例子,我们在查找时输入关键字1.2.3.0/23,这里的掩码长度是23,那么在匹配过程中,路由1.2.3.0/24将不能匹配,因为查找的不是最精确的路由表项,所以只有掩码长度等于或小于23的路由表项才能匹配。所以利用查找前缀长度等于或小于23的前缀地址的路由表项的匹配规则,将会匹配到路由1.2.0.0/16,这样快速转发模块可以根据查找结果进行相应的快速转发工作。本发明的程序流程见图1。
本发明的用途不限于快速转发表的更新,还有其它一些应用,如当添加一条新路由表项比老的表项更精确时,需要更新老的转发缓存。那么需要找到转发缓存依赖的次精确路由表项,然后将它们更新到更精确的路由表项上去。如果通过遍历快速转发表,更新依赖老的路由表项的转发缓存,则这样的操作效率比较低,通过直接更新快速转发表所依赖的路由表项,则效率更高。那么就需要在路由表中找到转发缓存依赖的次精确路由,根据该路由我们可以快速索引原来引用老路由表项的转发缓存,然后将它们更新到更精确的路由表项上去。这样可以大大提高更新效率。

Claims (4)

1.路由表查找方法,包括以下步骤:
a.确定待查找路由地址的前缀地址和前缀长度;
b.在查找路由表时,设定匹配条件为:一、路由表项的前缀地址与待查找路由地址的前缀地址相匹配;二、路由表项的前缀长度与待查找路由地址的前缀长度相匹配;符合上述两条即为匹配的路由表项。
2.根据权利要求1所述路由表查找方法,其特征在于:步骤b中,所述路由表项的前缀长度与待查找路由地址的前缀长度相匹配是指,在满足上述匹配条件一的路由表项中,其前缀长度最长,并且等于或者小于待查找路由地址的前缀长度的路由表项。
3.根据权利要求1所述路由表查找方法,其特征在于:所述步骤b包括:
b1.根据待查找路由地址的前缀地址,按照Radix树查找流程,从根节点开始查找到第一个叶子节点,判断待查找路由地址的前缀地址与该叶子节点前缀地址是否匹配,如果匹配,则进入步骤b2,否则进入步骤b4;
b2.比较所述叶子节点前缀长度是否小于或等于待查找路由地址的前缀长度,如果是,则确定该叶子节点为匹配的路由表项,进入步骤b5;否则进入步骤b3;
b3.判断是否存在其它与待查找路由地址的前缀地址相匹配的叶子节点;如果有,则逐一将这些叶子节点的前缀长度,与待查找路由地址的前缀长度进行比较,确定前缀长度最接近待查找路由地址的前缀长度的叶子节点为相匹配的路由表项,进入步骤b5;如果没有,进入步骤b4;
b4.根据最长前缀匹配算法向上回溯查找,确定与待查找路由地址的前缀地址相匹配、前缀长度小于待查找路由地址的前缀长度的第一个叶子节点为匹配路由表项;
b5.输出匹配的路由表项,查找结束。
4.根据权利要求3所述路由表查找方法,其特征在于:步骤b3中,所述前缀长度最接近待查找路由地址的前缀长度的叶子节点是指,该叶子节点的前缀长度,在所有与待查找的路由地址的前缀地址相匹配的叶子节点中最长;并且等于或者小于待查找路由地址的前缀长度。
CNB2006100221480A 2006-10-31 2006-10-31 路由表查找方法 Active CN100486227C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100221480A CN100486227C (zh) 2006-10-31 2006-10-31 路由表查找方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100221480A CN100486227C (zh) 2006-10-31 2006-10-31 路由表查找方法

Publications (2)

Publication Number Publication Date
CN1949746A CN1949746A (zh) 2007-04-18
CN100486227C true CN100486227C (zh) 2009-05-06

Family

ID=38019133

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100221480A Active CN100486227C (zh) 2006-10-31 2006-10-31 路由表查找方法

Country Status (1)

Country Link
CN (1) CN100486227C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603414A (zh) * 2016-11-17 2017-04-26 上海红阵信息科技有限公司 路由表快速比对方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848133B (zh) * 2009-03-25 2013-08-07 华为技术有限公司 一种前缀匹配的方法、装置和系统
CN101692653B (zh) * 2009-09-25 2012-04-04 中兴通讯股份有限公司 路由表的管理方法和装置
CN105591915A (zh) * 2014-10-22 2016-05-18 中兴通讯股份有限公司 一种路由表的维护方法和装置
CN105721303B (zh) 2016-03-31 2018-05-18 华为技术有限公司 一种路由控制方法、网络设备及控制器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1494276A (zh) * 2002-10-28 2004-05-05 �ǰ�Ƽ��ɷ����޹�˾ 路由方法和路由系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1494276A (zh) * 2002-10-28 2004-05-05 �ǰ�Ƽ��ɷ����޹�˾ 路由方法和路由系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603414A (zh) * 2016-11-17 2017-04-26 上海红阵信息科技有限公司 路由表快速比对方法
CN106603414B (zh) * 2016-11-17 2020-04-10 珠海高凌信息科技股份有限公司 路由表快速比对方法

Also Published As

Publication number Publication date
CN1949746A (zh) 2007-04-18

Similar Documents

Publication Publication Date Title
US7633875B1 (en) Method and system for accelerating route calculation in link state routing protocols
CN101388030B (zh) 数据库和数据库处理方法
CN100486227C (zh) 路由表查找方法
US9258220B2 (en) Communication system, node, control server, communication method and program
US8565247B2 (en) Techniques for efficiently updating routing information upon shortest path tree computation
CN104283723B (zh) 网络访问日志处理方法及装置
CN101534520B (zh) 移动Ad hoc网络可靠路由方法
CN101483610B (zh) 链路状态路由协议的路由更新方法
US20110069706A1 (en) Techniques for next-hop optimization
CN103493441A (zh) 使用路由轨迹生成无回路路由拓扑
US7894365B2 (en) Method for tracking transmission status of data to entities such as peers in a network
WO2012090993A1 (ja) 情報システム、制御装置、通信方法およびプログラム
US20140092762A1 (en) Techniques for efficiently updating routing information
CN106326308B (zh) 一种基于sdn的网内重复数据删除方法及系统
JP2007195180A (ja) ルーティングシステム及びルートアップデート方法
CN103729427B (zh) 一种基于自定义多级流表增量更新的流表转换方法
CN108696438A (zh) Bier报文的转发方法及装置
KR20130087535A (ko) 라우팅 정보의 룩헤드 계산
CN107276916A (zh) 基于协议无感知转发技术的交换机流表管理方法
CN102184234B (zh) 用于查询、增加、更新或删除信息处理规则的方法和设备
KR100480272B1 (ko) 소결합 고도 병렬 라우터 내의 라우팅 조정 프로토콜을위한 프리픽스 통합 방법
JP2008167464A (ja) Tlvに基づいたリンク状態のパケットの処理方法及び装置
CN104767681A (zh) 一种容忍错误连线的数据中心网络路由方法
JP5747997B2 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
JP4646823B2 (ja) ルータ装置、ルータ装置におけるルート決定方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MAIPU COMMUNICATION TECHNOLOGIES CO., LTD.

Free format text: FORMER OWNER: MAIPU(SICHUAN) COMMUNICATION TECHNOLOGY CO.,LTD.

Effective date: 20120215

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120215

Address after: 610041 Sichuan city of Chengdu province high tech Zone nine Hing Road No. 16 building, Maipu

Patentee after: Maipu Communication Technologies Co., Ltd.

Address before: 610041 Sichuan city of Chengdu province high tech Zone nine Hing Road No. 16 building, Maipu

Patentee before: Maipu(Sichuan) Communication Technology Co.,Ltd.