一种使用拓扑分散短路径集的网络路由方法与流程

文档序号:12037741阅读:194来源:国知局

本发明涉及网络科学和计算机通信网络领域,特别是指一种使用拓扑分散短路径集的网络路由方法。



背景技术:

计算机通信网络是支撑现代信息社会的重要基础设施,这类网络通过运行一定的路由协议将携带信息的网络数据包从网络的一个起始节点传输至一个目的节点。在计算机通信网络中,应用高效的路由方法,能保证网络具备优良的传输性能,即网络不易发生拥堵,网络数据包能快速抵达目的节点。当前,在现有计算机通信网络中,大量应用成熟的商用路由协议栈,如ospf协议、bgpv4协议等。这类路由协议的一个重要理论基础是经典的最短路径路由方法。

计算机通信网络是典型的复杂网络,可以使用拓扑网络来进行描述,拓扑网络的节点即通信网络中的各类节点(如计算机终端、路由器等网络设备);若现实中两个节点间存在一条直达的物理通信链路(如光纤、无线信道等),则在拓扑网络中它们间存在连边。近年来,伴随着网络科学理论及应用研究的兴起与发展,网络路由方法的研究有了新的进展。相关方面,科研人员提出了多种新的路由方法,它们大致可分为两类:(1)固定路由方法:预先为网络的所有起始、目的节点对计算好路由路径,在网络数据包传输时直接使用这些路径进行路由传输;(2)动态路由方法:在网络数据包传输过程中实时动态计算路由路径。可以看出,经典的最短路径路由方法属于固定路由方法的范畴。

固定路由方法和动态路由方法有各自的优缺点。对于固定路由方法,路由路径预先已计算,因此在传输阶段将可以快速确定路由路径,但其环境适应能力不够理想,若传输环境发生变化(例如,交通流的od需求分布改变,或部分节点故障等),它们将可能无法保证网络的高效传输;对于动态路由方法,由于路由路径在网络数据包传输过程中动态计算,因此它们可根据传输环境确定高效的路由路径,但路由路径的动态计算需要耗费一定的计算资源(包括运算时间和存储空间),这可能会给系统带来较大的传输延时和运行负担。

考虑到在现有技术中,计算机通信网络往往会进行冗余配置,即在网络中会设置一些环状子图结构来确保系统运行的稳定性,这使得网络中一对节点间往往可能存在多条彼此间重叠较少的路径,本发明提出一种新的网络路由方法,称为一种使用拓扑分散短路径集的网络路由方法。该路由方法结合固定路由方法与动态路由方法的优点,预先为网络中每对起始、目的节点计算一条或多条长度较短且彼此间拓扑重叠较少的路径;在网络进入传输工作状态后,根据网络的传输状况信息,快速从预先计算得到的多条路径中为网络数据包选择一条传输代价较小的路径作为路由路径。理论上,该方法能为网络数据包快速指派可尽量避开网络拥塞区域的路由路径,保证网络优良的传输性能。

在介绍本发明的具体内容之前,首先对计算机通信网络中网络数据包的传输过程进行简单的介绍:网络中的各个节点都有一个网络数据包发送队列,该队列一般来说是一个先进先出fifo(firstinfirstout)的队列,一段时间内节点能按照自身的传输速率将网络数据包发送队列中位于队首的一个或多个网络数据包转发。当一个网络数据包在一个节点上生成,即节点为网络数据包的起始节点时,节点将按照一定的规则为它选择一条路由路径;当一个网络数据包在起始节点中生成或抵达某一中继节点时,它将首先被放入节点的网络数据包发送队列,直到上升至队列的队首时被转发至其路由路径的下一跳节点;当一个网络数据包抵达目的节点时,网络数据包即完成传输,其传输生命周期结束,从网络中被移除。

值得说明的是,在现有计算通信网络中,网络数据包在传输介质中的传输速度大多接近光速,在传输介质上产生的传输时延接近于零,近似可以忽略不计。整体上,网络数据包的传输时延主要由路由中继节点上网络数据包接收、转发涉及的软件程序、硬件电路的物理延时造成。



技术实现要素:

本发明提出的一种使用拓扑分散短路径集的网络路由方法的总体思路是:预先针对网络中的每对起始、目的节点,计算从起始节点到目的节点的一条或多条长度较短且彼此间拓扑重叠较少(即包含的共同节点数量较少)的候选路由路径;在网络进入传输工作状态后,对于每个新生成的网络数据包,根据网络的传输状况信息,为它从预先已计算得到的该网络数据包起始节点到目的节点的候选路由路径中选出一条估计传输时延最小的路径作为路由路径。

具体地,本发明提出的网络路由方法包括如下过程。

过程一:收集网络的拓扑信息。

过程二:根据网络的拓扑,预先为网络中的每对起始节点o、目的节点d,计算节点o到节点d的拓扑分散短路径集pso,d,其中拓扑分散短路径集pso,d是指包含一条或多条节点o到节点d的长度较短且彼此间拓扑重叠较少(即包含的共同节点数量较少)的路径的集合。

其中,对于网络中的一对起始节点o、目的节点d,计算节点o到节点d的拓扑分散短路径集的算法如下,

步骤1:设置一个空的路径集合pso,d,设置一个用于保存pso,d中最短路径的长度的变量l并将l初始化为+∞,同时,为网络中的每个节点i,设置各自的重叠代价ci并将ci初始化为1.0;

步骤2:循环进行如下操作(步骤2.1~步骤2.5)pnl次:

步骤2.1根据网络的拓扑与当前网络中各节点的重叠代价,使用dijkstra最小代价路径算法计算节点o到节点d的一条最小代价路径p

步骤2.2若路径p的长度>(l×lrl),跳转至步骤3;

步骤2.3若路径p的长度<l,更新lp的长度;

步骤2.4若路径p在pso,d中不存在,将p加入pso,d

步骤2.5对于每个包含在路径p中的节点j,将重叠代价cj增加ocp;

步骤3:返回集合pso,d作为节点o到节点d的拓扑分散短路径集,运算结束。

上述算法中,路径的长度定义为路径包含的网络节点的个数,路径的代价定义为路径包含的网络节点的重叠代价之和,pnl(pathnumberlimit)表示拓扑分散短路径集可包含的路径数量上限,ocp(overlappingcostpenalty)表示节点重叠代价惩罚增量,lrl(lengthratiolimit)表示拓扑分散短路径集中的任意一条路径与其中的最短路径的长度比值上限。

上述算法的步骤2.1中,根据网络的拓扑与各节点的重叠代价,dijkstra最小代价路径算法计算节点o到节点d的一条最小代价路径的步骤如下,

步骤1:设置两个空的路径集合os和cs;

步骤2:对于节点o的每个邻居节点i,将路径o->i加入集合os;

步骤3:若集合os为空,跳转至步骤8,否则从os中提取并删除一条路径p,要求p在集合os包含的所有路径中代价最小;

步骤4:使用e表示路径p的终止节点,若节点e即为目的节点d,跳转至步骤9;

步骤5:将路径p加入集合cs;

步骤6:对于节点e的每个邻居节点j,若集合cs中不存在oj的路径,则:①使用路径p扩展得到路径p->j(即在路径p的尾部增加一段路径e->j);②若集合os中不存在节点oj的路径,将路径p->j加入os;③若集合os中存在节点oj的路径但该路径的代价大于路径p->j的代价,使用路径p->j替换os中节点oj的路径;

步骤7:跳转至步骤3;

步骤8:提示节点o到节点d间不存在可达路径,运算结束;

步骤9:返回路径p作为节点o到节点d的最小代价路径,运算结束。

过程三:在网络进入传输工作状态后,对于每个新生成的网络数据包φ,为φ从它的起始节点o到目的节点d的拓扑分散短路径集pso,d中选出一条路径p作为φ的路由路径,要求在路径选择时刻路径p在pso,d包含的各路径中估计传输时延tp最小;之后,网络数据包φ在网络中沿着路由路径p传输。

其中,某一时刻网络中一条路径p的估计传输时延tp定义为该时刻路径p包含的除终止节点外的所有节点上的网络数据包发送队列长度与节点的发送速率的比值之和,即有

其中,(p-pend)表示路径p中除终止节点外的所有节点的集合,lnrn分别是节点n上的网络数据包发送队列长度和节点n的发送速率。

本发明的有益效果为:提出的一种使用拓扑分散短路径集的网络路由方法,能综合利用网络的拓扑及传输状况信息,为计算机通信网络中的网络数据包快速确定可尽量避开网络中拥塞区域的路由路径,进而有效提升网络的整体传输性能。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中,图1示出了本发明的一个实施例的网络拓扑与拓扑分散短路径集示意图。

具体实施方式

以下结合附图与一个实施例对本发明作进一步说明。

实施例1:参照图1,一种使用拓扑分散短路径集的网络路由方法,包括如下过程。

过程一:收集网络的拓扑信息。

在本实施例中,网络的拓扑见图1的(a)子图。

过程二:根据网络的拓扑,预先为网络中的每对起始节点o、目的节点d,计算节点o到节点d的拓扑分散短路径集pso,d,其中拓扑分散短路径集pso,d是指包含一条或多条节点o到节点d的长度较短且彼此间拓扑重叠较少(即包含的共同节点数量较少)的路径的集合。

其中,对于网络中的一对起始节点o、目的节点d,计算节点o到节点d的拓扑分散短路径集的算法如下,

步骤1:设置一个空的路径集合pso,d,设置一个用于保存pso,d中最短路径的长度的变量l并将l初始化为+∞,同时,为网络中的每个节点i,设置各自的重叠代价ci并将ci初始化为1.0;

步骤2:循环进行如下操作(步骤2.1~步骤2.5)pnl次:

步骤2.1根据网络的拓扑与当前网络中各节点的重叠代价,使用dijkstra最小代价路径算法计算节点o到节点d的一条最小代价路径p

步骤2.2若路径p的长度>(l×lrl),跳转至步骤3;

步骤2.3若路径p的长度<l,更新lp的长度;

步骤2.4若路径p在pso,d中不存在,将p加入pso,d

步骤2.5对于每个包含在路径p中的节点j,将重叠代价cj增加ocp;

步骤3:返回集合pso,d作为节点o到节点d的拓扑分散短路径集,运算结束。

上述算法中,路径的长度定义为路径包含的网络节点的个数,路径的代价定义为路径包含的网络节点的重叠代价之和,pnl(pathnumberlimit)表示拓扑分散短路径集可包含的路径数量上限,ocp(overlappingcostpenalty)表示节点重叠代价惩罚增量,lrl(lengthratiolimit)表示拓扑分散短路径集中的任意一条路径与其中的最短路径的长度比值上限。

在本实施例中,设pnl=4、ocp=1.0、lrl=1.5,以针对起始为节点1、目的为节点6的节点对计算拓扑分散短路径集ps1,6为例。

首先按照步骤1:设置一个空的路径集合ps1,6,设置一个用于保存ps1,6中最短路径的长度的变量l并将l初始化为+∞,同时,为网络中的每个节点,设置各自的重叠代价并将初始化为

之后在步骤2中进行pnl(=4)轮循环操作。

在第一轮操作中,依据各节点的重叠代价,通过dijkstra最小代价路径算法计算得到节点1至节点6的最小代价路径p为:节点1->节点2->节点5->节点6。由于路径p在集合ps1,6中尚未存在,且其长度(=4)符合要求(即<(l×lrl=+∞)),将其加入ps1,6。由于路径p的长度<l,更新l为路径p的长度,即l变为4。同时,将该路径包含的所有节点的代价增加ocp(即1.0),得到更新后各节点的重叠代价为

在第二轮操作中,依据各节点的重叠代价,通过dijkstra最小代价路径算法计算得到节点1至节点6的最小代价路径p为:节点1->节点4->节点5->节点6。由于路径p在集合ps1,6中尚未存在,且其长度(=4)符合要求(即<(l×lrl=6.0)),将其加入ps1,6。同时,将该路径包含的所有节点的代价增加ocp(即1.0),得到更新后各节点的重叠代价为

在第三轮操作中,依据各节点的重叠代价,通过dijkstra最小代价路径算法计算得到节点1至节点6的最小代价路径p为:节点1->节点2->节点5->节点6。虽然路径p的长度(=4)符合要求(即<(l×lrl=6.0)),但它在拓扑分散短路径集ps1,6中已存在,未将其加入ps1,6,仍需将该路径包含的所有节点的代价增加ocp(即1.0),得到更新后各节点的重叠代价为

在第四轮操作中,依据各节点的重叠代价,通过dijkstra最小代价路径算法计算得到节点1至节点6的最小代价路径为:节点1->节点3->节点7->节点5->节点6。由于路径p在集合ps1,6中尚未存在,且其长度(=5)符合要求(即<(l×lrl=6.0)),将其加入ps1,6。同时,将该路径包含的所有节点的代价增加ocp(1.0),得到更新后各节点的重叠代价为

最后,执行步骤3返回ps1,6作为节点1到节点6的拓扑分散短路径集,运算结束。

通过运算,得到节点1至节点6的拓扑分散短路径集包含如下三条路径:

路径①:节点1->节点2->节点5->节点6;

路径②:节点1->节点4->节点5->节点6;

路径③:节点1->节点3->节点7->节点5->节点6。

上述路径已在图1的(b)子图中使用不同样式的虚线作出标注。

过程三:在网络进入传输工作状态后,对于每个新生成的网络数据包φ,为φ从它的起始节点o到目的节点d的拓扑分散短路径集pso,d中选出一条路径p作为φ的路由路径,要求在路径选择时刻路径p在pso,d包含的各路径中估计传输时延tp最小;之后,网络数据包φ在网络中沿着路由路径p传输。

其中,某一时刻网络中一条路径p的估计传输时延tp定义为该时刻路径p包含的除终止节点外的所有节点上的网络数据包发送队列长度与节点的发送速率的比值之和,即有

其中,(p-pend)表示路径p中除终止节点外的所有节点的集合,lnrn分别是节点n上的网络数据包发送队列长度和节点n的发送速率。

在本实施例中,设所有节点单位时间可以发送2.0个网络数据包,即各节点发送速率为2.0。以在某一时刻在节点1上新产生拟发送给节点6(即起始节点为节点1,目的节点为节点6)的一个网络数据包为例。

若此时网络中各节点上的网络数据包发送队列长度分别为

根据定义,节点1到节点6的拓扑分散短路径集中的各条路径的估计传输时延分别为:

路径①(节点1->节点2->节点5->节点6):20/2.0+10/2.0+7/2.0=18.5;

路径②(节点1->节点4->节点5->节点6):20/2.0+15/2.0+7/2.0=21.0;

路径③(节点1->节点3->节点7->节点5->节点6):20/2.0+5/2.0+1/2.0+7/2.0=16.5。

由于路径③的估计传输时延最小,将选择它作为范例网络数据包的路由路径;之后,范例网络数据包在网络中将沿着该路由路径传输。

在本发明具体实施时,可由一台管理计算机负责收集、维护网络的拓扑信息,由它基于完整的网络拓扑完成网络中各起始、目的节点对的拓扑分散短路径集的预先计算,并在计算完成后将结果派发部署至各网络节点。在网络进入传输工作状态后,为网络数据包选择路由路径的工作可由产生网络数据包的节点(即网络数据包的起始节点)各自负责。此外,管理计算机也可用于定期收集网络中各节点上的网络数据包发送队列长度等网络动态传输状况信息,并将它们派发给网络中的各节点,用于路由路径选择时估计传输时延的计算。

如上所述为本发明的具体实施案例,用于使本发明更加清晰。凡在本发明的精神和权力要求的保护范围内,对本发明所作的任何修改、等同替换,都落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1