一种针对路由方向单调变化网络的容错曼哈顿路由方法

文档序号:9828090阅读:780来源:国知局
一种针对路由方向单调变化网络的容错曼哈顿路由方法
【技术领域】
[0001] 本发明涉及可靠性计算技术领域。更具体地,涉及一种针对路由方向单调变化网 络的容错曼哈顿路由方法。
【背景技术】
[0002] 在诸多类型的计算机网络和片上网络中,曼哈顿路由方法(也称为最小路由方法) 以其实现开销小、复杂度低等特性而得到了广泛的应用。由于网络中错误节点的不可避免 性,使得设计能够避让错误节点的曼哈顿路由算法(也称为最小路由算法)成为一项很有意 义的工作。
[0003] 国内外有很多容错曼哈顿路由算法的工作,其中一个典型的做法就是基于错误块 模型来设计容错路由算法,可以分为三个阶段:第一阶段是提出一种错误块模型以及相应 的错误块构建方法;所谓的错误块是指包含了多个错误节点的、具有一定形状特征的节点 的集合。错误块中的节点,无论是错误节点还是非错误节点,都不能被路由算法所到达。第 二阶段是根据错误块来判断容错路径的存在性;如果存在容错路径,则进入第三阶段来寻 找容错路径。已有的错误块模型下,错误块本身的构建过程复杂度较高如MCC错误块模型, 而且判断是否存在容错路径的算法也比较复杂,有一些错误模块模型如只能容忍一个错误 的容错路由算法、凸错误块模型以及防御区模型等甚至还会牺牲掉许多可用的非错误节点 以及可用的容错路径,最终使得容错路由算法的复杂度很高以及可用性较低。这些错误块 模型还有一个普遍存在的问题,那就是只能适用特定拓扑的网络以及特定的路由算法,普 适性较低。
[0004] 因此,需要提供一种复杂度低、普适性高且不牺牲可用容错曼哈顿路径的针对路 由方向单调变化网络的容错曼哈顿路由方法。

【发明内容】

[0005] 本发明的目的在于提供一种采用路径计数的策略的针对路由方向单调变化网络 的容错曼哈顿路由方法,可以快速判断出路由方向单调变化的网络中是否存在容错曼哈顿 路径,并给出了灵活的容错曼哈顿路径的寻路策略。
[0006] 为达到上述目的,本发明采用下述技术方案:
[0007] -种针对路由方向单调变化网络的容错曼哈顿路由方法,该方法包括如下步骤:
[0008] S1、判断源节点和目标节点是否为错误节点,若两者至少有一个为错误节点则说 明源节点和目标节点之间不存在容错曼哈顿路径,结束流程;若两者均非错误节点,则转入 步骤S2;
[0009] S2、在源节点和目标节点在网络中位置已知的情况下,判断源节点和目标节点之 间的每一个中间节点的被最小路由策略允许的下一跳节点,并记录每一个中间节点的被最 小路由策略允许的上一跳节点,下一跳的方向是源节点到目标节点的方向,即可得知上一 跳的方向是目标节点到源节点的方向,还需要说明的是:在完全适应性最小路由策略的情 况下,不需要计算,原因在于每个节点的下一跳节点和上一跳节点都是被最小路由策略允 许的下一跳节点和上一跳节点;而在部分适应性最小路由策略的情况下,则需要执行该部 分适应性最小路由策略来计算出每个节点的被最小路由策略允许的下一跳节点和上一跳 节点;
[0010] S3、将源节点的路径计数值设为非0;根据中间节点及其被最小路由策略允许的所 有下一跳节点是否是错误节点,计算中间节点和目标节点的路径计数值,计算方法为:若中 间节点为错误节点,则该中间节点的路径计数值为0;若中间节点非错误节点,则该中间节 点的路径计数值为其所有被最小路由策略允许的上一跳节点的路径计数值的总和;目标节 点的路径计数值为其所有被最小路由策略允许的上一跳节点的路径计数值的总和;需要说 明的是:由于源节点的路径计数值是设定好的,所以计算中间节点和目标节点的路径计数 值的计算先后顺序为由作为源节点的下一跳节点的中间节点至目标节点;源节点已经获取 了网络中错误节点的位置信息;
[0011] S4、判断目标节点的路径计数值是否为0,若为0则说明源节点和目标节点之间不 存在容错曼哈顿路径,结束流程;若不为0则说明源节点和目标节点之间存在容错曼哈顿路 径,并且源节点和目标节点之间的容错曼哈顿路径的总数目等于目标节点D的路径计数值, 转入步骤S5;
[0012] S5、将目标节点作为寻路的起点,从起点开始逐跳查找路径计数值不为0且被最小 路由策略允许的上一跳节点直至查找到源节点,将由查找过程中被查找到的中间节点组成 的路径作为源节点到目标节点之间的容错曼哈顿路径。
[0013] 优选地,步骤S2中最小路由策略包括完全适应性最小路由策略和部分适应性最小 路由策略,若步骤S2中的最小路由策略为完全适应性最小路由策略,则源节点和目标节点 之间的每一个中间节点的下一跳节点均被直接判定为被最小路由策略允许的,并直接记录 每一个中间节点的上一跳节点,不必再执行该完全适应性最小路由策略来加以判断;若步 骤S2中的最小路由策略为部分适应性最小路由策略,则根据部分适应性最小路由策略判断 源节点和目标节点之间的每一个中间节点的被部分适应性最小路由策略允许下一跳节点, 并根据部分适应性最小路由策略记录每一个中间节点的被部分适应性最小路由策略允许 的上一跳节点。
[0014] 优选地,步骤S3中源节点的路径计数值设为1,这样,可以在最后得到源节点到目 标节点之间的容错曼哈顿路径的同时,直接得到源节点到目标节点之间的容错曼哈顿路径 的总数量。
[0015] 优选地,步骤S5进一步包括如下子步骤:
[0016] S5.1、将目标节点作为寻路的起点,查找起点的路径计数值不为0且被最小路由策 略允许的上一跳节点;
[0017] S5.2、将查找到的上一跳节点作为起点,查找起点的路径计数值不为0的且被最小 路由策略允许的上一跳节点;
[0018] S5.3、迭代执行步骤S5.2直至查找到源节点,将由查找过程中被查找到的中间节 点组成的路径作为源节点到目标节点之间的容错曼哈顿路径。
[0019]优选地,若查找到的路径计数值不为0且被最小路由策略允许的上一跳节点的数 量为至少两个,则依据随机策略,维度优先策略或节点拥塞程度最小策略等选择上一跳节 点,维度优先策略包括第一维优先策略或者最后一个维度优先策略等。
[0020] 下面对本发明中的一些基本定义作进一步说明:
[0021] (1)曼哈顿路径(最小路径)的说明:路径长度为曼哈顿距离的路径。
[0022 ] (2)下一跳节点和上一跳节点的说明:给定两个相邻的节点A和B,如果从A节点到 目标节点D的曼哈顿距离比从B节点到目标节点D的曼哈顿距离要多一跳,那么B节点就被称 为A节点的下一跳节点,A节点就被称为B节点的上一跳节点。在不同的拓扑结构下,一个节 点的下一跳或者上一跳节点的数目可能是不同的。例如,在一个M*N规模的2D Mesh拓扑网 络中,假设源节点S(l,l)位于目标节点D(M,N)的X-和Y-方向。如果当前节点为(i,j)(l〈 = i < = M, 1〈 = j〈 = N),那么节点(i+1,j)(l〈i+l〈 = M)和节点(i,j+l)(l〈j+l〈 = N;^|^^*Si 前节点的"下一跳节点",原因在于当前节点与这两个节点都是相邻节点,并且这两个相邻 节点离目标节点D的曼哈顿距离要比当前节点到D的曼哈顿距离小1;同时,当前节点也被称 为这两个节点的"上一跳节点"。需要说明的是,在完全适应性路由算法下,当前节点的下一 跳转发数据包的方向可以是其所有"下一跳节点"中的任意一个;如果网络中采用的是部分 适应性路由算法,那么当前节点的多个下一跳节点中只能有一部分能够作为其下一跳的数 据包转发节点。
[0023] (3)最小路由(minimal routing)的说明:数据包从源节点出发沿着曼哈顿路径被 传输到目标节点,该曼哈顿路径的寻找过程就称为最小路由。
[0024] (4)被最小路由策略允许的下一跳节点和被最小路由策略禁止的下一跳节点的说 明:假设某当前节点一共存在M(M为大于等于0的整数)个下一跳节点。在完全适应性最小路 由策略下,不用调用完全适应性最小路由策略进行计算,该节点能够向这M个下一跳节点转 发数据包,这M个下一跳节点都被称为"被路由策略允许的下一跳节点";而在部分适应性最 小路由策略下,由于一些限制如转弯模型的限制,比如负向优先转弯模型和奇偶转弯模型 等,需要调用转弯模型依次计算当前节点的"被部分适应性路由策略允许的下一跳节点", 则当前节点只能向部分下一跳节点转发数据包,这部分下一跳节点的数目被记为C',C'值 将小于M,这C'个下一跳节点被称为"被路由策略允许的下一跳节点";那些虽然是该当前节 点的下一跳节点但当前节点并不能向其转发数据包的节点被称为"被路由策略禁止的下一 跳节点",其数目为M-C'。
[0025] (5)被最小路由策略允许的上一跳节点和被最小路由策略禁止的上一跳节点的说 明:假设某当前节点一共存在N(N为大于等于0的整数)个上一跳节点。在完全适应性最小路 由策略下,不用调用完全适应性最小路由策略进行计算,这N个上一跳节点都有可能向当前 节点转发数据包,这N个上一跳节点都被称为"被路由策略允许的上一跳节点";在部分适应 性最小路由策略下,由于一些限制如转弯模型的限制,比如负向优先转弯模型和奇偶转弯 模型等,需要调用转弯模型依次计算当前节点的"被部分适应性路由策略允许的下一跳节 点",则这N个上一跳节点并不是都能够向当前节点转发数据包,可能只有其中的一部分上 一跳节点能够向当前节点转发数据包,这部分上一跳节点的数目记为C',其值将小于N。这 C'个上一跳节点被称为当前节点的"被路由策略允许的上一跳节点";其余的N-C'个虽然是 该当前节点的上一跳节点但不能向当前节点转发数据包的节点被称为"被路由策略禁止的 上一跳节点"。
[0026] (6)路径计数值的说明:在给定的最小路由策略下,从源节点出发,能够到达当前 节点的容错曼哈顿路径的总数,该总数就被称为当前节点的路径计数值。显然,如果当前节 点为错误节点,那么能够到达当前节点的容错曼哈顿路径的总数为0,即当前节点的路径计 数值为0;如果当前节点为目的节点D,那么D的路径计
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1