一种实现在智能光网络中查找路由表项的方法及装置的制作方法

文档序号:7857852阅读:198来源:国知局
专利名称:一种实现在智能光网络中查找路由表项的方法及装置的制作方法
技术领域
本发明涉及光网络路由优化领域,特别是涉及一种在智能光网络中的查找路由表项的方法及装置。
背景技术
针对光网络中链路流量工程和节点交换能力的改变,国际组织扩展了原有的协议,开发出了 GMPLS(Generalized Multiprotocol Label Switching,通用多协议标志交换协议)技术为主的智能光网络协议。随着网络规模的日益扩大,光网络的异构化日益增强,人们提出多层多域化和集中路由信息处理的方案(如路径计算单元(PCE))以处理的日益复杂的路由信息。显然日益庞大的路由信息和复杂多变的网络环境已经大大加重了网络路 由器的负担,同时如多约束路径计算(CSPF计算)基于多种流量工程因素的综合算路也进一步加重了路由器的负担。这些都是基于光网络中的路由技术,由于路由查找是转发过程中的关键环节,因此路由查找算法的速度直接影响着路由器的报文转发性能,它也成为了制约网络性能提高的主要瓶颈。

发明内容
本发明要解决的技术问题是提供一种实现在智能光网络中查找路由表项的方法及装置,以克服现有光网络中路由数据库过于庞大,进行路由计算时约束信息较多而存在的存取速度较慢和缓存空间过多的问题。为了解决上述技术问题,本发明提供了一种实现在智能光网络中查找路由表项的方法,包括接收到路由请求后,在预先建立的哈希表中查找对应的路由表项;若在所述哈希表中查找到对应的路由表项,则返回所述路由表项;若在所述哈希表中未查找到对应的路由表项,则遍历线性链表。进一步地,上述方法还具有下面特点所述在预先建立的哈希表中查找对应的路由表项,包括根据所述路由请求中携带的源宿节点信息,通过哈希算法计算出一索引值;根据所述索引值在所述哈希表中查找对应的路由表项。进一步地,上述方法还具有下面特点所述路由表项包括对应路由的流量工程信息,所述路由请求包括源宿节点信息和流量工程约束条件信息,所述在预先建立的哈希表中查找对应的路由表项,包括根据所述源宿节点信息通过哈希算法计算出一索引值;如根据所述索引值在所述哈希表中查找到一路由表项,则判断该路由表项中的流量工程信息是否满足所述流量工程约束条件,如满足,则视为找到对应的路由表项。进一步地,上述方法还具有下面特点所述哈希表的初始值为空,所述遍历线性链表后还包括
如遍历到对应的路由表项,则根据所述源宿节点信息通过哈希算法计算出对应的索引值;将该索引值与对应的路由表项信息加入所述哈希表。进一步地,上述方法还具有下面特点为了解决上述问题,本发明还提供了一种实现在智能光网络中查找路由表项的装置,包括第一模块,用于接收到路由请求后,在预先建立的哈希表中查找对应的路由表项;第二模块,用于若所述第一模块在所述哈希表中查找到对应的路由表项,则返回所述路由表项;若在所述哈希表中未查找到对应的路由表项,则遍历线性链表。
进一步地,上述装置还具有下面特点所述第一模块包括第一单元,用于接收到路由请求后,根据所述路由请求中携带的源宿节点信息,通过哈希算法计算出一索引值;第二单元,用于根据所述索引值在所述哈希表中查找对应的路由表项。进一步地,上述装置还具有下面特点所述路由表项包括对应路由的流量工程信息,所述路由请求包括源宿节点信息和流量工程约束条件信息,所述第一模块包括第三单元,用于根据所述源宿节点信息通过哈希算法计算出一索引值;第四单元,用于如根据所述索引值在所述哈希表中查找到一路由表项,则判断该路由表项中的流量工程信息是否满足所述流量工程约束条件,如满足,则视为找到对应的路由表项。进一步地,上述装置还具有下面特点所述装置还包括第三模块,用于在所述第二模块遍历线性链表后,如遍历到对应的路由表项,则根据所述源宿节点信息通过哈希算法计算出对应的索引值;第四模块,用于将该索引值与对应的路由表项信息加入所述哈希表。综上,本发明提供一种实现在智能光网络中查找路由表项的方法及装置,在光网络路由信息处理方法中引入了 Hash链表技术,通过Hash链表的高效性能,可以有效的提高路由信息的查找速度,同时降低内存消耗,从而降低了光网络中路由器的负担。


图I为本发明实施例的实现在智能光网络中查找路由表项的方法的流程图。图2是Hash表在LSDB中的使用流程示意图。图3是Hash表在流量工程中使用的流程示意图。图4为本发明实施例的实现在智能光网络中查找路由表项的装置的示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
哈希表(Hash)因其结构简单并且查找速度快,又可以很方便地替换Hash算法,故而常常被用以存储关键的数据。Hash算法是基于哈希技术的,对规则的变化与增减较容易,而且查询速度很快,时间复杂度可以达到0(1)(算法的时间复杂度记作T(n) =0(f(n)),它表示随问题规模η的增大,算法执行时间的增长率和f (η)的增长率相同,0(1)是指常量阶的复杂度),但是要注意的是哈希函数的选择以及冲突的处理。Hash表技术在数据库管理具有高效便捷的优点,已经在各个领域得到普遍的应用。在对互联网中路由数据库的领域的应用也有所报道,通过应用Hash表技术,有效减少路由表占用的存储资源和存取速度。由于原有的OSPF(Open Shortest Path First,开放式最短路径优先)路由协议对于针对光网络自身的流量工程问题进行了扩展,对于路由信息的存取方式也出现了改变,然而相应的Hash表技术在光网络路由协议中的应用还没有被进一步的扩展。本发明实施例引入Hash算法在遍历线性链表前加一个Hash表进行查询,开始的时候Hash表是空的,建了一次路之后,就把相应的源宿节点通过Hash算法创建一个索引值,放在哈希表中,这样,在下次建立同样的源宿节点之间的路径时,就可以通过索引值直 接找到源宿节点之间具体的路由路径取出,而不用遍历链表。然后每次建路查询的时候,都先来查询Hash表,如果Hash表中找不到再去遍历线性链表,在线性链表里找到以后,再把这个目的节点通过Hash算法计算出另一个索引值,同时更新哈希表。线性链表的遍历就是顺序查找,这种查找的效率依赖于查找过程中所进行的比较次数。理想的情况是希望不经过任何比较,一次存取便能得到所查记录,这就是利用Hash表的好处,当然在Hash表中存在冲突的时候,不是一次存取便能得到所查记录,但是比较的次数会远远小于顺序查找的效率,当网络的规模扩大和业务量增加的时候,这种优势尤其明显。哈希查找的基本原理设置一个长度为m的表A,用一个哈希函数H把数据集中的η个关键字唯一地转换成O m-Ι范围内的数值,即对于数据集中的任意键Ici,有O ( H(Ki)彡 m-l,0 彡 i 彡 n-1这样,就可以利用函数H将数据集中的元素映射到表A中,表A中的每一个元素保存的是索引值,然后这个索引值中可以有和目的节点之间的对应关系,H(Ki)便是Ici在表中的存储位置。图I为本发明实施例的实现在智能光网络中查找路由表项的方法的流程图,如图I所示,本实施例的方法包括S11、接收到路由请求后,在预先建立的哈希表中查找对应的路由表项;S12、若在所述哈希表中查找到对应的路由表项,则返回所述路由表项;若在所述哈希表中未查找到对应的路由表项,则遍历线性链表。还可以包括步骤S13、所述遍历线性链表后如遍历到对应的路由表项,则根据所述源宿节点信息通过哈希算法计算出对应的索引值,将该索引值与对应的路由表项信息加入所述哈希表。现有的OSPF的LSDB (Link State Data Base,链路状态数据库)是根据类型进行存储,每一种类型都有一个独立的LSDB,每一个独立的LSDB都是根据二叉Trie树的形式进行存储,然后每一个源节点到其他节点的最短路都存储在线性链表里面,所以有多少个节点就会有多少个线性链表。
在实际建路时,就会先取出源节点,然后做一些判断(判断源节点和目的节点是否是同一个节点,如果是就退出返回),接着去遍历线性链表,找出线性链表里的节点地址和目的地址相同的那个,然后把这个节点相应的最短路(事先算好的)取出来就是源节点到目的节点的最短路。如果网络规模较小,即使不采用Hash表技术,路由器负担也不会很大,相应的开销也应该在可以容忍范围内。在普通的不分域情况下,由于网络节点较多,每一个节点里的LSDB (RouterLSA (链路状态通告))的规模很大,所以每次顺序遍历线性链表的开销很大,在采用Hash表技术之后,查找效率大大提高。以下以两个具体实施例对本发明的方法进行详细说明。如附图2所示,包括以下步骤
步骤101、RC(路由控制器)发起路由请求;路由请求中包括源节点信息和宿节点信息。步骤102、节点设备的OSPF模块接收到路由请求后去LSDB中查询相应的路由,这时先去Hash表里面查,若有则直接返回相应表项,若没有则去遍历线性链表,遍历完线性链表找到相应项之后返回给OSPF模块,同时将此表项加入到Hash表中。本实施例的Hash表存储路由表项与索引值的对应关系信息,在查找Hash表时,先根据所述路由请求中携带的源宿节点信息,通过哈希算法计算出一索引值,然后根据该索弓I值在所述哈希表中查找对应的路由表项。在引入流量工程(Traffic Engineering,简称TE)后,通过控制数据流在网络上的流动来实现网络资源的优化使用和网络性能的提高。流量工程所要达到的目标,正是要改变传统的网络资源管理和分配的方式,通过获取当前网络资源状况,基于约束路由技术对整个网络进行优化选路,使网络资源得到更加合理均衡的利用,同时为用户提供特定服务质量(QoS)的保证。流量工程的主要目标是采用有效与可靠的网络操作来优化网络资源使用和通信性能,从而对网络实施有效的监测管理措施。对光网络的OSPF增加流量工程TE信息之后,Hash表技术也可以应用于TED (流量工程数据库),在业务量较大的情形下,可以查找出最常用的那条链路,最常用的那个波长信息等,提高业务的可靠性。在OSPF中的扩展是建立在其本身所具有的OPAQUE LSA (不透明的LSA (链路状态通告))的基础上,定义了一个类型10的LSA,称为流量工程LSA (TE-LSA)。该LSA的泛洪范围为域内,只能携带一个顶层TLV (Type-Length-Value,类型长度值),该TLV可能是路由器地址TLV或链路TLV,并且链路TLV可以包含一组扩展的SUB-TLV。这些SUB-TLV描述链路的各方面不同特性。OSPF基于TE-LSA组建TE数据库,约束最短路径优先(CSPF)这种基于约束的路由算法,通过使用TE数据库和LSDB中的链路状态信息,再根据给定的约束条件计算得到最优的显示路由(ER)。在Hash表(如下表)中可以包含其他的一些信息,每一个节点的Hash表的结构可以如下(可以是这样,也可以往其中增减值,即每次通过Hash算法得到的索引值,索引值能够得到的信息)Hash 表索引值KeylKey2Key3
Path 指针*pathl*path2*path3
节点使用次数FrequencelFrequence2Frequence3
波长信息WavelWave2Wave3对于TE信息,Hash表中通过索引值能够得到接口交换能力,带宽,保护类型,TE度量值,共享风险链路值等TE信息。这些值都通过泛洪SUB-TLV来实时更新,保存在TE数据库中,每种链路特性都用指针的形式来访问,这样当TE数据库中有链路特性改变时,只是指针指的值发生改变了,指针本身并没有发生改变,仍然可以通过指针访问最新的链路特性。这样在流量工程中使用Hash表技术就可以提高CSPF算路的效率。具体实现的流程图如图3所示。实现过程包括如下步骤步骤201、RC发起约束路由请求; 约束路由可以参考OSPF-TE的RFC3630、RFC4203,可以包括很多约束信息,比如波长、接口交换能力、最大可预留带宽等TE信息。步骤202、节点设备的CSPF (约束最短路径优先)路由协议模块接收到约束路由请求后从OSPF模块处接收流量工程信息(Opaque LSA),处理流量工程请求,根据指定的约束条件计算显示路由。这时先查Hash表中是否有要查的信息,如果没有,再去遍历线性链表,得到路径信息和相应的链路特性,将其返回,并且放入Hash表中,如果有,就直接从Hash表中返回,不用再去遍历线性链表,提高了算路的效率。根据所述源宿节点信息通过哈希算法计算出一索引值;如根据所述索引值在所述哈希表中查找到一路由表项,则判断该路由表项对应的流量工程信息是否满足流量工程约束条件,如满足,则返回该路由表项,并同时更新哈希表,将不满足项剔除,将满足项和源宿节点计算出的索引值建立绑定关系,如不满足,则遍历线性链表,如找不到满足流量工程约束条件的路由表项,则返回失败,并把哈希表中的不满足项剔除。图4为本发明实施例的实现在智能光网络中查找路由表项的装置的示意图,如图4所示,本实施例的装置包括第一模块,用于接收到路由请求后,在预先建立的哈希表中查找对应的路由表项;第二模块,用于若所述第一模块在所述哈希表中查找到对应的路由表项,则返回所述路由表项;若在所述哈希表中未查找到对应的路由表项,则遍历线性链表。其中,所述第一模块包括第一单元,用于接收到路由请求后,根据所述路由请求中携带的源宿节点信息,通过哈希算法计算出一索引值;第二单元,用于根据所述索引值在所述哈希表中查找对应的路由表项。上述的CSPF路由协议模块相当于第一单元和第二单元的组合。
其中,所述第一模块包括第三单元,用于根据所述源宿节点信息通过哈希算法计算出一索引值;第四单元,用于如根据所述索引值在所述哈希表中查找到一路由表项,则判断该路由表项中的流量工程信息是否满足所述流量工程约束条件,如满足,则视为找到对应的路由表项。上述的CSPF路由协议模块相当于第三单元和第四单元的组合。其中,本实施例的装置还可以包括第三模块,用于在所述第二模块遍历线性链表后,如遍历到对应的路由表项,则根据所述源宿节点信息通过哈希算法计算出对应的索引值;
第四模块,用于将该索引值与对应的路由表项信息加入所述哈希表。在只计算网络拓扑信息时,一般节点只有本域的Router LSA的LSDB,若有分层域的处理,域间网关节点也有逻辑层的Summary LSA (网络汇总LSA)的LSDB,也有本域内节点的Router LSA的LSDB。在这种情况下,采用的是分布式信令算路,对每个域的入网关节点和出网关节点都有很大的依赖性,而入网关与出网关节点的数量不是太多,如果每次都去顺序遍历线性链表,那么造成的额外开销很大。如果采用本发明实施例Hash表技术,那么常用的入网关和出网关都不必去遍历查找了,可以实现不经过任何比较,一次存取便能得到所查记录,提高了分布式信令算路的效率。路由查找技术的研究受到广泛重视,主要归结在两个方面一是查找速度,二是内存消耗。本发明实施例在光网络中引入Hash表技术,这样就可以提高查找路由表的速度,提高了查找算法的效率。不仅可以用于普通的路由算路,而且可以用于流量工程中,提高约束路径计算算法的效率。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种实现在智能光网络中查找路由表项的方法,包括 接收到路由请求后,在预先建立的哈希表中查找对应的路由表项; 若在所述哈希表中查找到对应的路由表项,则返回所述路由表项;若在所述哈希表中未查找到对应的路由表项,则遍历线性链表。
2.如权利要求I所述的方法,其特征在于所述在预先建立的哈希表中查找对应的路由表项,包括 根据所述路由请求中携帯的源宿节点信息,通过哈希算法计算出一索引值; 根据所述索引值在所述哈希表中查找对应的路由表项。
3.如权利要求I所述的方法,其特征在于所述路由表项包括对应路由的流量工程信息,所述路由请求包括源宿节点信息和流量工程约束条件信息, 所述在预先建立的哈希表中查找对应的路由表项,包括 根据所述源宿节点信息通过哈希算法计算出一索引值; 如根据所述索引值在所述哈希表中查找到一路由表项,则判断该路由表项中的流量エ程信息是否满足所述流量工程约束条件,如满足,则视为找到对应的路由表项。
4.如权利要求1-3任一项所述的方法,其特征在于所述哈希表的初始值为空,所述遍历线性链表后还包括 如遍历到对应的路由表项,则根据所述源宿节点信息通过哈希算法计算出对应的索引值; 将该索引值与对应的路由表项信息加入所述哈希表。
5.一种实现在智能光网络中查找路由表项的装置,包括 第一模块,用于接收到路由请求后,在预先建立的哈希表中查找对应的路由表项; 第二模块,用于若所述第一模块在所述哈希表中查找到对应的路由表项,则返回所述路由表项;若在所述哈希表中未查找到对应的路由表项,则遍历线性链表。
6.如权利要求5所述的装置,其特征在于所述第一模块包括 第一単元,用于接收到路由请求后,根据所述路由请求中携帯的源宿节点信息,通过哈希算法计算出一索引值; 第二単元,用于根据所述索引值在所述哈希表中查找对应的路由表项。
7.如权利要求5所述的装置,其特征在于所述路由表项包括对应路由的流量工程信息,所述路由请求包括源宿节点信息和流量工程约束条件信息, 所述第一模块包括 第三単元,用于根据所述源宿节点信息通过哈希算法计算出一索引值; 第四単元,用于如根据所述索引值在所述哈希表中查找到一路由表项,则判断该路由表项中的流量工程信息是否满足所述流量工程约束条件,如满足,则视为找到对应的路由表项。
8.如权利要求5-7任一项所述的装置,其特征在于所述装置还包括 第三模块,用于在所述第二模块遍历线性链表后,如遍历到对应的路由表项,则根据所述源宿节点信息通过哈希算法计算出对应的索引值; 第四模块,用于将该索引值与对应的路由表项信息加入所述哈希表。
全文摘要
本发明提供一种实现在智能光网络中查找路由表项的方法及装置,该方法包括接收到路由请求后,在预先建立的哈希表中查找对应的路由表项;若在所述哈希表中查找到对应的路由表项,则返回所述路由表项;若在所述哈希表中未查找到对应的路由表项,则遍历线性链表。本发明在光网络路由信息处理方法中引入了Hash链表技术,通过Hash链表的高效性能,可以有效的提高路由信息的查找速度,同时降低内存消耗,从而降低了光网络中路由器的负担。
文档编号H04L12/56GK102801621SQ201210284688
公开日2012年11月28日 申请日期2012年8月10日 优先权日2012年8月10日
发明者曹徐平, 马爱国, 任明艳, 黄善国 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1