技术领域
本
发明属于网络通信技术领域。涉及一种点对点的动态网络通信技术,特别涉及适合于大规模网络以及网络中链路权值随时间变化的分布式路由方法。
背景技术
随着Internet规模的不断扩大,多样化的组网设备层出不穷。这些设备构成了通信网络中的一个个自治系统,为了使这些自治系统内部和自治系统之间形成高效低成本的通信,就需要进行数据路由。系统中所有设备,共同遵守同一套的路由规则,使用相同的路由信息表述和存储方法。
在现有的技术中,路由协议是解决数据路由的主要技术手段。路由协议基于抽象的网络模型来计算网络中
节点对之间的最优路径。按照最优路径的计算方式,路由协议可以分为两大类:链路状态路由和距离矢量路由。在链路状态协议的运行过程中,网络中的每台负责交换路由信息的设备(路由器、交换机等)都维护着整个网络的路由结构信息,并根据这些信息使用相应的路由
算法计算最优路径并生成路由表。距离矢量路由协议在使用过程中则不需要维护整个网络路由信息,分布式路由的信息仅在邻居节点之间传递,并在每个节点的使用分布式路由算法获得路由表。目前在Internet上使用最普遍的两种路由协议是:RIP(Routing Information Protocol,路由信息协议)和OSPF(Open ShortestPath First,开放式最
短路径优先协议)。其中,RIP协议是距离矢量路由协议,使用分布式Ford-Bellman算法。它具有简单、可扩展性高的特点,但收敛速度较慢。OSPF协议是典型的链路状态路由协议,使用Dijkstra算法。它有效的提高了路由信息汇聚的速度和准确性,因而减小了网络阻塞的几率,提高了网络的整体效率。但OSPF协议过于庞大,对路由设备有相当高的要求。
目前,随着电信业务的引入,IP网的服务
质量(IP QoS)成为下一代Internet的重要研究课题。QoS路由的目标也是一个通过当前路由器路由表寻找从源节点到目的节点的最优路径的问题。为了解决QoS路由算法随网络规模的增大所需的执行时间和存储需求提高的问题,拓扑结构分层的思想被广泛的应用在大规模的网络中。拓扑聚合的过程是将网络中每个域会聚成具有该域信息的一个简单的拓扑。这一思想虽然大大地简化了路由表的大小,但是由于分层使得网络中的节点只掌握局部信息,从而导致了路由信息的不精确性,针对这一问题,人们设计了各种动态最短路径树算法并得到了很高的成效。但是把这些路由方法应用于动态网络时,仍然存在冗余的计算和不准确的路由信息,基于这些协议的网络路由过程必然不能获得符合实际的精确优化结果和很高的路由效率。因此建立符合实际的高精确性高路由效率并切合实际流量情况的路由方案、研究适合于大规模网络动态改变的路由协议成为一个迫切需要解决的问题。
发明内容
本发明的目的是提供一种能够有效为目前的互联网骨干网自治域提供准确切合实际流量情况的高精确性和路由效率、收敛性能好、对路由设备的资源占用小、可以有效的降低路由设备的成本,并且可以动态自制更新的基于分层结构应用群体智能的路由方法。
本发明的技术解决方案是,在至少存在两个具有路由承载功能的通信设备组成的数据通信网络中,分别使用如下所述的本发明运行方案。数据通信网的拓扑可以是分布式网络或环形网络。网络传输媒介可以使用包括光纤、数字
微波、普通同轴
电缆、双绞线等多种。通信网络的物理层和数据链路层可以使用多种
接口,以支持用户的不同接入方式。本发明的技术方案工作在网络层。由于本发明所使用的模型及路由算法对网内设备的处理器、内存资源的占用比较小,低档路由器甚至软路由设备均可以使用。
本发明是一种适合于互联网骨干网自治域使用的路由方法。该方法使用现有的
硬件路由设备为
基础,适用于路由器和具有软路由功能的设备。
本发明的路由表组织结构如下:本发明的技术方案包括以下步骤:1,由路由设备运行路由协议程序,根据本发明设计的层次网络树模型,针对通信网内路由设备的通信能
力,按照路由器间的链路参数将各链路分属网络树的不同层次域中。从网络树模型的
角度,目前的网络通信设备可以根据其是否是关联节点(联系不同层次域的节点)分为两类,对于非关联节点,它的地图
数据库仅包括从该节点所在域的信息;对于关联节点,它的地图数据库不但包括该节点所在域的信息,还包括与它直接相连的域的信息。地图数据库是链路状态分组(LSA)的集合,每一个链路状态分组(LSA)代表一条链路,具体需要维护的信息如下:链路状态分组(LSA)为一个三元组<i,number,W(i)>,其中,i代表该发送链路分组的源节点地址;number代表该链路分组的更新序号;W(i)是一个二元组<i,cij>的集合,每一个二元组i代表一条链路。
2,由路由设备运行路由协议程序,根据本发明设计的层次网络树模型,在路由设备的内部高速
存储器内存中构建新型的路由表。本发明采用一种新的路由表组织方法,即每台路由器中的路由表分为固定路由表和可变路由表两部分。固定路由表包含域内节点地址路由信息和域地址路由信息。可变路由表是最近
访问的非本域节点路由信息组成。
固定路由表和可变路由表所采用的数据结构是相同的,对于每台路由设备,其具体需要维护的信息如下:数组D,每个元素Dj是从当前节点到目的地址j最优路径的权值。
数组P,每个元素Pj是从当前节点到目的地址j最优路径的下一跳。
3,由路由设备运行路由协议程序,根据本发明设计的层次网络树模型,利用路由设备存储的地图数据库信息计算域内节点的路由表,将计算的路由信息存储到固定路由表中。
4,由路由设备运行路由协议程序,根据本发明设计的层次网络树模型,在路由设备的内部高速存储器内存中构建的固定路由表的域地址部分。
5,由路由设备运行路由协议程序,根据本发明设计的层次网络树模型,开始进行路由转发,当目的节点地址不在已构建的路由表中时,本发明设计了一种基于群体智能算法的域间路由协议,用来形成源目的节点间的路由信息,并将形成的路由信息存入可变路由表中。
6.每个数据发送单元有路由协议程序控制,根据确定的时间间隔向邻居发送探测数据包,用以确定链路的的状态。
7.当路由设备在收到由邻居发送的新的路由表信息时,从网络设备(如网卡)的缓冲区中取得新的路由信息,送路由设备的内部存储器,并由处理器运行路由协议程序,根据本发明设计路由表信息更新算法来更新相应的高速缓存表项。并判断是否需要触发路由表计算。
8.如需要进行路由表的计算,则由路由协议程序根据本发明设计的路由表更新算法进行路由表的更新。在更新的过程中,将更新的表项记录在路由设备的内部存储器中,并根据本发明设计的路由状态信息格式,组织被更新的路由表项,形成路由数据包,由路由设备的网络接口发送给邻居。
9.路由设备根据当前时间段的变化运行路由协议程序自动更新当前固定路由表。
10,路由器根据本身的内存情况设置可变路由表大小的上限,可变路由表采用最近最少使用法进行管理。
本发明所达到的有益效果和益处是,设计的网络树模型能够准确地描述网络的实际状态,有效地描述了网络中分层结构和区域特性。在这一模型的基础上,本发明设计了适合该模型的路由协议。该协议的优势在于路由表的规模小、精确性和路由效率高、收敛性能好、运行效率高、对路由设备的资源占用小、可以有效的降低路由设备的成本,减少研发和维护
费用,符合QoS路由的目标。本发明的路由方案适用于大规模或超大规模网络链路的链路权值随时间变化的情况,其中基于网络树模型所设计的路由信息更新算法,有效地解决了传统路由方法不能解决的大规模网络中链路状态随时间变化的问题,更加合理的分配了网络流量,提高了网络的实际吞吐量。
附图说明
下面结合附图和具体实施方式对本发明作进一步的说明。
图1为本发明使用的网络类型示意图。
图2为本发明路由方案基本
流程图。
图3为本发明路由信息数据包格式图。
图4为本发明蚂蚁数据包格式图。
图5为本发明层次网络树生成流程图。
图6为本发明域间路由的蚂蚁数据包发送流程图。
图7为本发明域间路由算法蚂蚁数据包接收流程图。
具体实施方式
本发明所述的路由方案,以现有的路由设备为应用对象,适合于目前的互联网骨干网自治域使用。该方案主要由网络树模型和基于该模型的路由算法以及一整套路由技术组成。
本发明所述的动态聚合树网络模型具体描述如下:任何一个网络均可划分成若干个称之为域的不规则区域,这个域是原网络的子网络并构成网络树的一个节点.网络树是n(n>0)个域的有限集合,在非空的聚合树中:(1)有且仅有一个特定的域为网络树的根;(2)当n>1时,其余域可分为m(m>0)个有限集合T1,T2,Λ,Tm,并且i≠k,1≤i,k≤m,Ti∩Tk∈V,其中每一个集合本身又是一棵网络树,并且称为根的子树。原网络中的链路根据其参数的取值赋予不同级别,而网络树的层次正是通过这一级别来划分的。各域通过关联节点联系。
本发明的路由协议执行过程具体步骤描述如下:1.路由设备初始化固定和可变路由表。每个路由表分为三个子表,分别是:量度路由子表D,一个一维数组,由目标地址索引,每个元素Dj是从当前节点到目的地址j最短路径的权值。
下一跳路由子表P,一个一维数组,由目标地址索引,每个元素Pj是从当前节点到目的地址j最短路径的下一跳。
2.设置本路由设备各个物理网络接口的物理标识和接口标识,并以此唯一确定邻居路由设备,同时插入邻居信息队列。
3.根据初始化的路由表,生成高速路由二维缓存表T。该表由邻居节点、目标地址索引表项,每个元素Tkj是从当前节点路经邻居节点k到达目的地址j最短路径的权值。
4.将路由表表项内容打包为路由信息数据包,包中包含的字段有:协议标号、包大小(byte)、路由表更新项数、路由表项更新内容。其中,路由表项更新内容为目的地、路径量度组成的一个二元组(j,Dj)。具体数据包格式见附图3。
5.向各个邻居发送路由探测数据包。路由探测数据包分为主动探测和答复探测两类,由包中的类型字段标识,具体格式见附图4。
6.路由设备接到路由数据包后,首先执行网络分割算法,形成网络树模型。运行完这一算法,每个节点都掌握了其子域节点的信息。节点地址由关联节点从根域开始递归分配。具体的流程见附图57.然后执行网络树路由算法,分三个部分:7.1固定路由表形成算法7.1.1节点路由信息的形成根据网络分割算法形成的拓扑信息,执行最短路径算法计算节点路由表。
7.1.2域地址路由信息的形成域地址信息DRI是一个二元组<domain address,cost>
初始化。如果本节点是关联节点,则形成和本节点相连域的DRI,置cost为0,向非该域节点发送。
当节点接收到一个DRI时,如果是和本节点相连或是本域的DRI,忽略。否则,更新关于该域地址的路由表,如果路由表项有变化,则将该DRI的cost更新后,向除发送节点外的所有节点发送该DRI。
7.2域间路由算法蚂蚁数据包ADP是一个五元组<src,dst,cn,success,Path>,其中,src代表源节点;dst代表目的节点;cn代表这只蚂蚁搜索路径的下一个关联节点;success是一个标志位,代表是否是第一个返回的蚂蚁;Path是一个节点的集合,它记录这只蚂蚁从源节点到当前节点走过的所有节点。
路由设备将接到的路由数据包进行分类处理:如果是蚂蚁数据包转步骤7.2.1。
如果是数据包转步骤7.2.2。
7.2.1如果是蚂蚁数据包,根据该包的信息执行相应动作:如果本节点是源节点,如果success是1,更新可变路由表;如果本节点是目的节点,如果该ADP是源节点到目的节点到达的第一个ADP将ADP的success置1,从Path取出最后一个节点,向该节点发送ADP;否则,丢弃该ADP;如果本节点既不是源节点,又不是目的节点,如果success是1,更新到目的节点的路由,从Path取出最后一个节点,向该节点发送ADP;否则,如果本节点是ADP中的关联节点且该ADP是源节点到目的节点到达的第一个ADP,根据目的节点的
位置发送ADP,否则,如果不是第一个到达的ADP,丢弃它;如果本节点不是关联节点,向关联节点cn的下一跳发送ADP。
7.2.2如果是数据包,根据该包的信息执行相应动作:如果该包正在按照域地址进行发送,继续按照域地址发送给该域的下一跳;否则,如果目的节点的地址在路由表,按照节点地址发送;否则,如果不在路由表,将该包按照域地址发送,并发送ADP搜索该数据包目的节点的路径。