一种号码路由分层聚合的方法

文档序号:7587900阅读:179来源:国知局
专利名称:一种号码路由分层聚合的方法
技术领域
本发明涉及下一代网络体系架构下的通讯领域,尤其涉及一种对该网络中号码路由的压缩方法。
背景技术
在以分组交换网为核心传输网络的系统中,许多终端用户是以号码的方式来标记并进行呼叫的。通常终端启动时向呼叫代理(或者呼叫控制)设备进行注册,并将终端和当前呼叫代理的地址加入到路由服务器(也称为位置服务器)中。当其他终端需要呼叫此终端时,通过查询路由服务器,获知此终端当前呼叫代理的地址,然后与此终端当前的呼叫代理进行联系,就可以进行呼叫。
但随着网络规模日渐扩大,呼叫代理和路由服务器的数量也相应增加。通常由一个路由服务器为一个区域的呼叫代理提供路由服务(即从终端号码查找其当前呼叫代理的地址),但在这些路由服务器之间并没有有效的统一管理,因此从一个号码到其当前的呼叫代理地址之间的映射关系仅仅由这些路由服务器的系统管理员通过本地配置来解决。显然这种解决办法是静态的,当网络发生变动的时候必须一一通知所有路由服务器的管理员。而且在所有的路由服务器上都要记录全局的路由信息,产生大量的冗余信息,浪费了大量资源,影响了系统的扩展性。因此需要有一个专门的系统来提供这种公用的路由服务。
目前提出的路由体系提供全网公用的路由分层查询功能。路由服务器分为多层,层次低的路由服务器为本区域的呼叫代理提供路由服务,并将本区域的路由信息上报给上级路由服务器和同级路由服务器,层次高的路由服务器为较大区域的呼叫代理提供路由服务。层次低的路由服务器上记录的是较为具体的路由信息,特别的,在最底层的路由服务器上,记录着终端的号码与其当前的呼叫代理地址的映射关系。层次高的路由服务器通常记录着较为概括的路由信息,例如哪些号码的路由信息可到哪个路由服务器上查询。一旦某个路由服务器上的某些路由信息发生变动,它会自动通知相关的路由服务器进行路由更新。
可以看出,分层的路由服务器架构形成了一个很好的全网公用的路由体系。但是随着路由信息的不断更新,重叠,冗余、不规则的路由信息将会降低路由查找的效率。并且随着网络的扩张,路由服务器上的路由信息空间也不可避免的日益膨胀,因此如何整合和压缩位置服务器上的号码路由信息,以便对其进行有效的存储和查找,成了当前需要解决的一个问题。
在申请号为02131448.9的中国专利申请中,公开了一种路由表压缩的方法,该专利申请针对的对象是互联网中的路由,对基于二叉树数据结构的路由表进行压缩。基树中连续的空节点区域为可优化区间,在可优化的区间上增加并计算聚合路由,不连续的可优化区间之间没有影响,聚合计算分别进行。对一个可优化区间,仅当整个区间或一个子区间的路由都有相同的下一跳时才生成一个聚合路由。
上述方法针对的是互联网路由表中的路由,与本发明针对的以分组交换网为核心传输网络的系统中的号码路由有着较大的差异,两者的数据结构和路由信息中字段的含义都不同,相应的分裂和聚合的规则也不相同。现有技术中,还没有针对电信下一代网络中号码路由的压缩方案。

发明内容
本发明要解决的技术问题是提供一种号码路由分层聚合的方法,可以有效地压缩路由服务器上的号码路由信息,节约存储空间,加快路由查找的速度,并使路由体系具有更好的可扩展性。
为了解决以上技术问题,本发明提供了一种号码路由分层聚合的方法,包括以下步骤(a)路由服务器从缓冲区中取出新路由条目;(b)从数据库中查找与所述新路由条目的前缀相同且号码段相邻或相交的旧路由条目;(c)如果找到号码段相交的旧路由条目,将新路由条目划分为与所述旧路由条目号码段重叠和不重叠的多个子条目,执行下一步,如果没有找到号码段相交的旧路由条目,执行步骤(e);(d)对所述号码段重叠的子条目和旧路由条目进行分裂操作;(e)在当前存在的所述号码段相邻的旧路由条目,所述新路由条目或者对新路由条目划分后得到的所述不重叠的子条目、分裂后得到的路由条目中,对相邻的路由条目依次进行合并操作。
上述方法中,所述步骤(d)的分裂操作可进一步包括以下步骤(d1)判断所述号码段重叠的子条目和旧路由条目的下一跳地址是否相同,如果是,执行步骤(d4),否则执行下一步;(d2)将所述旧路由条目分裂为多个子条目,其中一个子条目的号码段为所述重叠号码段;(d3)具有所述重叠号码段的子条目使用所述新条目的下一跳地址,其它分裂得到的子条目使用所述旧路由条目的下一跳地址,作为分裂后得到的路由条目,结束分裂操作;(d4)保持所述旧路由条目不变,作为分裂后得到的路由条目,结束分裂操作。
在上述分裂操作的基础上,如果本地策略对满足一定条件的路由信息设置一个共同的下一跳地址,所述步骤(d2)之前可进一步包括步骤判断所述号码段重叠的子条目和旧路由条目是否能选择一个共同的下一跳地址,如果是,执行下一步,否则执行步骤(d2);保持所述旧路由条目的号码段,将其下一跳地址设为所述共同的下一跳地址,作为分裂后得到的路由条目,结束分裂操作。
上述方法中,所述步骤(e)的一次合并操作可进一步包括以下步骤(e1)判断两个相邻路由条目的下一跳地址是否相同,如果结果为相同,执行步骤(e3),否则执行下一步;(e2)不能将所述两个路由条目合并,结束一次合并操作;(e3)将所述两个相邻的路由条目合并为一个路由条目,合并后的路由条目的号码段涵盖了所述两个相邻路由条目的号码段,下一跳地址为它们相同的下一跳地址,结束一次合并操作。
在上述一次合并操作步骤的基础上,如果本地策略对满足一定条件的路由信息设置一个共同的下一跳地址,所述步骤(e2)之前可进一步包括步骤
判断所述两个相邻的路由条目是否能选择一个共同的下一跳地址,如果是,执行下一步,否则执行步骤(e2);将所述两个相邻的路由条目合并为一个路由条目,合并后的路由条目的号码段涵盖了所述两个相邻路由条目的号码段,下一跳地址为所述共同的下一跳地址,结束一次合并操作。
为了在合并操作时能够最大限度地进行路由条目的合并,本地策略选择在上述方法中增加一个添加黑洞号码段的步骤,所述新、旧路由条目的号码段相邻包括新、旧路由条目的号码段直接邻接,以及均与一个黑洞号码段相邻接的情况。
为了能够最大限度地进行路由条目的合并,所述步骤(e1)中判断两个相邻路由条目的下一跳地址是否相同时,如果新、旧路由条目的号码段均与同一黑洞号码段相邻且新、旧路由条目的下一跳地址相同或可选择共同的下一跳地址,则认为结果为相同,否则认为结果为不相同。
所述步骤(e3)中将两个相邻的路由条目合并时,如果新、旧路由条目的号码段均与同一黑洞号码段相邻,则将其合并为一个路由条目,合并后的路由条目的号码段涵盖了所述两个相邻路由条目的号码段以及黑洞号码段,下一跳地址为新、旧路由条目相同或共同的下一跳地址。
为了避免在下一跳路由条目中造成不必要的冗余,所述步骤(c)中将新路由条目划分为与所述旧路由条目号码段重叠和不重叠的多个子条目时,可以将新路由条目头部和尾部的黑洞号码段除去,所述步骤(d)中,将旧路由条目分裂为多个子条目时,也将子条目头部和尾部的黑洞号码段除去。
上述方法中,根据本地策略可以设定号码前缀长度,将路由条目中的号码段划分为前缀和子号码段。
上述方法中,为了减少操作的次数,可以在所述步骤(a)之前,将临时缓冲区中的新路由条目先依次进行合并操作。
上述方法中,所述步骤(e)之后,还可包括以下步骤将合并后的路由条目与找到的旧路由条目比较,如果不同,将合并后的路由条目向相关的路由服务器上报,执行下一步,否则直接执行下一步;判断缓冲区中的新路由条目是否处理完毕,如果是,结束,否则返回步骤(a)。
由上可知,按本发明方法,在路由服务器上对路由信息进行整合和压缩后,可以有效减少路由条目的数量,减少更新的操作量,最大程度的减少重叠或者冗余的部分,从而可节约路由信息占用的存储空间,加快路由查找的速度,使路由体系具有更好的可扩展性。


图1是本发明实施例分裂操作的过程示意图。
图2是本发明实施例一次合并操作的过程示意图。
图3是本发明实施例整合和压缩过程中的新、旧路由条目中的号码段的关系示意图。
图4是本发明实施例对路由信息进行整合和压缩的流程图。
具体实施例方式
路由体系中的号码路由信息由一个号码段和对应的下一跳地址组成。每个路由服务器根据本地策略将号码分割为前缀和小号码段两部分。前缀代表在此路由服务器中划分的号码段的最大范围。这个前缀通常对应于系统中的一个呼叫代理,而每个包含前缀的号码段都对应着一个有效的下一跳地址,例如一个呼叫代理地址,或者一个路由服务器的地址。
在路由服务器的数据库中,或者收到的上报信息中,号码路由信息是以路由条目的形式存在的,路由条目由多个连续号码段及对应的下一跳地址组成,且各号码段的前缀和对应的下一跳地址都相同,查询时,只需判断待查号段落在哪一个条目的区域内,即可得到下一跳地址。
在分层的路由体系中,各层路由服务器管理的数据范围不同,管理员也有不同的需求,因此为了对路由信息进行有效的整合和压缩,需要在路由服务器中设置本地策略。本地策略包括号码前缀的长度、黑洞号码段以及下一跳地址选择策略等与路由信息相关的策略。
本地策略中的号码前缀长度代表着路由信息压缩的粒度。前缀越短,路由信息压缩的粒度就越大,前缀越长,路由信息压缩的粒度就越小。由于不同的路由服务器管理着不同范围的数据,需要压缩的程度也不同,因此不同层次的路由服务器应该指定不同长度的前缀,既要为相应范围的用户提供路由信息服务,又要最大限度的对数据进行压缩。
所述黑洞号码段指尚未分配或者无效的号码段,因此不存在路由信息,或者说没有一个与之关联的下一跳地址,因此在整合的过程中可以与邻接的号码段进行任意的合并和分裂操作。本地策略中应该尽量将存在的黑洞号码段添加进去,所述添加黑洞号码段是指手工或者使用某种协议使得路由服务器程序可以获知黑洞号码段的范围。以便在进行合并操作的时候能够最大限度的进行路由条目的合并。这时路由条目所涵盖的号码段就可能包括黑洞号码段了。
路由信息的下一跳地址既可以是具体的呼叫代理的地址,也可以是其他路由服务器的地址。针对路由信息的合并操作,本地策略还可以对满足一定条件的路由信息设置一个共同的下一跳地址。例如,是指A、B、C三个呼叫代理(或者路由服务器)与本路由服务器之间,可通过网关位置的D路由服务器接续,则可以把原下一跳地址为A、B、C的号码段均指向D。这样,使得下一跳地址不同的路由信息也可以进行合并操作。
通过设置本地策略,将大部分路由信息的下一跳指向少数几个路由服务器,就可以大大的压缩路由信息。当然这会增加路由查询的跳数和延时,但在服务质量允许的范围内这是可行的。并且也可以适当增加冗余的路由信息,来提高对某些号码段的路由查询速度。这也取决于本地策略的制定。
因此,应该根据本地的具体情况,如需要提供的路由信息,内存空间的大小,不同服务对查询速度的不同要求等,来决定本地策略。
下面结合附图和实施例进行进一步的详述。对路由信息的整合和压缩主要包括合并和分裂两种操作。
如图1所示,分裂的操作是指根据新路由条目的信息,将一个旧路由条目分裂为多个有着不同的下一跳地址的子路由条目(这里的新路由条目可能是由一个大的新路由条目划分得到的)。其前提是,新、旧路由条目的号码段前缀必须相同,且新路由条目的号码段是旧路由条目的号码段的子集。其方法如下如果新路由条目B1的下一跳地址与旧路由条目A1不同,并且根据本地策略,也不能选择一个共同的下一跳地址,则将旧路由条目A1分裂成三个子路由条目A1-1、B1’和A1-2。分裂后的子路由条目B1’的号码段涵盖了路由条目B1剥离黑洞号码段后的号码段,其下一跳地址是B1的下一跳地址。分裂后的子路由条目A1-1、A1-2的的号码段涵盖了路由条目A1剥离B1号码段和黑洞号码段后其余的号码段,其下一跳地址与旧路由条目A1的下一跳地址相同。
如果新路由条目B1的下一跳地址与旧路由条目A1相同,或者根据本地策略可以选择一个共同的下一跳地址,则分裂的结果仍然是旧路由条目A1,其号码段不变,下一跳地址是原来的下一跳地址或根据本地策略选择的共同的下一跳地址。
上图中,B1中包含一段无效的号码段(即黑洞号码段),可能是由于没有即时更新等原因产生的。
如图2所示,合并操作是指将多个路由合并为一个更概括的路由条目,他们的覆盖范围相同。其前提是,新、旧路由条目的号码段前缀必须相同,且号码段邻接,或者均与某个黑洞号码段邻接。其步骤如下如果新路由条目B2和旧路由条目A2的号码段邻接,或者均与一个黑洞号码段邻接,并且新、旧路由条目有着相同的下一跳地址,或者根据本地策略,可以选择一个共同的下一跳地址,则可将路由条目B2和A2合并为一个路由条目C2。合并后的路由条目C2的号码段涵盖了路由条目B2和A2的号码段以及黑洞号码段,其下一跳地址是新、旧路由条目相同的下一跳地址,或者根据本地策略选择的共同的下一跳地址。
如果新路由条目B2和旧路由条目A2的号码段邻接,或者均与一个黑洞号码段邻接,但下一跳地址不同,也不能根据本地策略选择一个共同的下一跳地址,则合并的结果仍然是两个路由条目A2和B2。
如果新路由条目B2和旧路由条目A2的号码段不邻接,也不与一个黑洞号码段邻接,则合并的结果仍然是两个路由条目A2和B2。
请参照图3、图4,本实施例路由信息整合和压缩的流程包括以下步骤当一个路由服务器收到路由更新条目(即新路由条目)后,将其放入临时缓冲区,步骤100;
判断缓冲区中的路由更新条目的号码段是否有交叉,或者有其他的无效参数,如果是,执行步骤210,否则执行下一步,步骤110;对路由更新条目依次进行合并操作,步骤120;取出一个路由更新条目C3,步骤130;取出数据库中与新路由条目号码段C3相交的旧路由条目A3、B3,步骤140;将路由更新条目C3划分为与旧路由条目A3、B3号码段重叠的子条目C3-1、C3-2和不重叠的子条目C3’,步骤150;将子条目C3-1和旧路由条目A3进行分裂操作,得到子路由条目A3-2和A3-1,步骤160;将子条目C3-2和旧路由条目B3进行分裂操作,得到子路由条目B3-1和B3-2,步骤170;将路由条目A3-2、A3-1、C3’、B3-1和B3-2依次进行合并操作,可以按号码段的顺序,从A3-2或者B3-2开始,步骤180;整合后的路由条目与旧路由条目A3、B3不相同时,将整合后的路由条目向相关的路由服务器上报,步骤190;判断缓冲中是否还有路由更新条目需处理,如果是,返回步骤130,否则结束,步骤200;向发送者返回出错信息,结束,步骤210。
在该实例中,如果C3的下一跳地址与A3、B3都不同且不能选择共同的下一跳地址,合并后的条目就是A3-2,C3,B3-2,其中的C3应该是根据本地策略除去头部和尾部黑洞号码段之后的C3。
权利要求
1.一种号码路由分层聚合的方法,包括以下步骤(a)路由服务器从缓冲区中取出新路由条目;(b)从数据库中查找与所述新路由条目的前缀相同且号码段相邻或相交的旧路由条目;(c)如果找到号码段相交的旧路由条目,将新路由条目划分为与所述旧路由条目号码段重叠和不重叠的多个子条目,执行下一步,如果没有找到号码段相交的旧路由条目,执行步骤(e);(d)对所述号码段重叠的子条目和旧路由条目进行分裂操作;(e)在当前存在的所述号码段相邻的旧路由条目,所述新路由条目或者对新路由条目划分后得到的所述不重叠的子条目、分裂后得到的路由条目中,对相邻的路由条目依次进行合并操作。
2.如权利要求1所述的方法,其特征在于,所述步骤(d)的分裂操作进一步包括以下步骤(d1)判断所述号码段重叠的子条目和旧路由条目的下一跳地址是否相同,如果是,执行步骤(d4),否则执行下一步;(d2)将所述旧路由条目分裂为多个子条目,其中一个子条目的号码段为所述重叠号码段;(d3)具有所述重叠号码段的子条目使用所述新条目的下一跳地址,其它分裂得到的子条目使用所述旧路由条目的下一跳地址,作为分裂后得到的路由条目,结束分裂操作;(d4)保持所述旧路由条目不变,作为分裂后得到的路由条目,结束分裂操作。
3.如权利要求2所述的方法,其特征在于,所述步骤(d2)之前还包括步骤判断所述号码段重叠的子条目和旧路由条目是否能选择一个共同的下一跳地址,如果是,执行下一步,否则执行步骤(d2);保持所述旧路由条目的号码段,将其下一跳地址设为所述共同的下一跳地址,作为分裂后得到的路由条目,结束分裂操作。
4.如权利要求1所述的方法,其特征在于,所述步骤(e)的一次合并操作进一步包括以下步骤(e1)判断两个相邻路由条目的下一跳地址是否相同,如果是,执行步骤(e3),否则执行下一步;(e2)不能将所述两个路由条目合并,结束一次合并操作;(e3)将所述两个相邻的路由条目合并为一个路由条目,合并后的路由条目的号码段涵盖了所述两个相邻路由条目的号码段,下一跳地址为它们相同的下一跳地址,结束一次合并操作。
5.如权利要求4所述的方法,其特征在于,所述步骤(e2)之前还包括步骤判断所述两个相邻的路由条目是否能选择一个共同的下一跳地址,如果是,执行下一步,否则执行步骤(e2);将所述两个相邻的路由条目合并为一个路由条目,合并后的路由条目的号码段涵盖了所述两个相邻路由条目的号码段,下一跳地址为所述共同的下一跳地址,结束一次合并操作。
6.如权利要求1、4或5所述的方法,其特征在于,还包括一个添加黑洞号码段的步骤,所述新、旧路由条目的号码段相邻指新、旧路由条目的号码段直接邻接,或者均与一个黑洞号码段相邻接。
7.如权利要求6所述的方法,其特征在于,所述步骤(e1)中判断两个相邻路由条目的下一跳地址是否相同时,如果新、旧路由条目的号码段均与同一黑洞号码段相邻且新、旧路由条目的下一跳地址相同或可选择共同的下一跳地址,则认为结果为相同,否则认为结果为不相同。
8.如权利要求6所述的方法,其特征在于,所述步骤(e3)中将两个相邻的路由条目合并时,如果新、旧路由条目的号码段均与同一黑洞号码段相邻,则将其合并为一个路由条目,合并后的路由条目的号码段涵盖了所述新、旧路由条目的号码段以及黑洞号码段,下一跳地址为新、旧路由条目相同或共同的下一跳地址。
9.如权利要求6所述的方法,其特征在于,所述步骤(c)中将新路由条目划分为与所述旧路由条目号码段重叠和不重叠的多个子条目时,将新路由条目头部和尾部的黑洞号码段除去,所述步骤(d)中,将旧路由条目分裂为多个子条目时,也将子条目头部和尾部的黑洞号码段除去。
10.如权利要求1所述的方法,其特征在于,所述前缀是根据本地策略设定号码前缀长度,对路由条目中的号码段进行划分得到的。
11.如权利要求1所述的方法,其特征在于,所述步骤(a)之前,还包括步骤路由服务器收到新路由条目后,放入临时缓冲区,首先对其中的新路由条目依次进行合并操作。
12.如权利要求1或11所述的方法,其特征在于,所述步骤(e)之后,还包括步骤将合并后的路由条目与找到的旧路由条目比较,如果不同,将合并后的路由条目向相关的路由服务器上报,执行下一步,否则直接执行下一步;判断缓冲区中的新路由条目是否处理完毕,如果是,结束,否则返回步骤(a)。
全文摘要
本发明公开一种号码路由分层聚合的方法,路由服务器从缓冲区中取出新路由条目后,从数据库中查找与其前缀相同且号码段相邻或相交的旧路由条目,如果找到号码段相交的旧路由条目,将新路由条目划分为与所述旧路由条目号码段重叠和不重叠的多个子条目,然后对所述号码段重叠的子条目和旧路由条目进行分裂操作,再对当前存在的所述不重叠的子条目、分裂后得到的路由条目以及号码段相邻的旧路由条目中的相邻路由条目依次进行合并操作。按本发明方法对路由信息进行整合和压缩后,可以有效减少路由条目的数量,最大程度的减少重叠或者冗余的部分,从而节约路由信息占用的存储空间,加快路由查找的速度,使路由体系具有更好的可扩展性。
文档编号H04L12/56GK1558622SQ20041000027
公开日2004年12月29日 申请日期2004年1月13日 优先权日2004年1月13日
发明者彭燕林, 李海鹏, 程宁 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1