[发明专利]2D-Mesh拓补结构下的片上网络偏转容错路由算法在审
申请号: | 201410384174.2 | 申请日: | 2014-08-06 |
公开(公告)号: | CN104202241A | 公开(公告)日: | 2014-12-10 |
发明(设计)人: | 杨勇;才华;吴剑飞;陈玉群;谷欣超;韩太林;刘俊杰 | 申请(专利权)人: | 长春理工大学 |
主分类号: | H04L12/703 | 分类号: | H04L12/703;H04L12/771;H04L12/757 |
代理公司: | 长春市吉利专利事务所 22206 | 代理人: | 李晓莉 |
地址: | 130022 吉林省长春*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | mesh 结构 网络 偏转 容错 路由 算法 | ||
1.2D-Mesh拓补结构下的片上网络偏转容错路由算法,其特征在于:该方法包括如下步骤:
步骤一:给m×n的2D-mesh拓扑片上网络定义变量、全局路由器、基础的X-Y传输规则、边缘路由表和容错偏转决策模型,其具体包括如下子步骤:
步骤1.1:分别定义变量,包括:内部路由节点、边缘路由节点和ping命令的测试超时时间;
内部路由节点:在m×n的2D-mesh拓扑片上网络上的一个当前路由节点,若与该当前路由节点直接相连的其它路由节点共有四个,则将这类有四个邻近路由节点的当前路由节点称为内部路由节点;
边缘路由节点:在m×n的2D-mesh拓扑片上网络上的一个当前路由节点,若与该当前路由节点直接相连的其它路由节点的总数不大于三个,则将这类至多有三个邻近路由节点的当前路由节点称为边缘路由节点;
ping命令的测试超时时间:定义一个确定的时间常数T,当前路由节点对其它邻近路由节点进行ping测试命令时,若被测试的路由节点在时长为T的时间段内一直没有反馈,则将该被测试路由节点所在的路径判定为非通路;
步骤1.2:定义基础的X-Y传输规则为:
2Dmesh拓扑的片上网络上,由m×n个路由节点组成的矩形阵列上的每一个路由节点都具有自己的唯一坐标,设任意一个路由节点A的坐标值(x,y),另外一个任意路由节点B的坐标值(p,q),则从路由节点A(x,y)始发并去往路由节点B(p,q)时,其遵循如下的基础规则:
当路由节点A(x,y)与B(p,q)的横坐标和纵坐标均不相同时,A(x,y)总是忽略纵坐标上的差值,并优先选择能使横坐标差值的绝对值缩小的那一个横轴上的邻近路由节点作为下一跳时的交付地址;
当路由节点A(x,y)与B(p,q)的横坐标相同但纵坐标不相同时,A(x,y)总是优先选择能使纵坐标差值的绝对值缩小的那一个纵轴上的邻近路由节点作为下一跳时的交付地址;
从路由节点A(x,y)始发并去往路由节点B(p,q)时,按上述基础X-Y传输规则所确定的总跳步数初始值T初的表达式为:
T初=|x-p|+|y-q|……(1)
步骤1.3:定义全局路由器:随机指定一个路由节点作为m×n的2D-mesh拓扑片上网络的全局路由器,并将该全局路由器在片上网络中的坐标分配给所有其他路由节点;
步骤1.4:定义任意确定路由节点与其他全部路由节点相对坐标位置关系的全局相对坐标关系路由表;该全局相对坐标关系路由表由步骤1.3所述的全局路由器按照步骤1.2所述基础的X-Y传输规则求解生成并存储;
所述全局相对坐标关系路由表中的每一行条目均与由步骤1.2所述的基础X-Y传输规则所确定的一条基础X-Y路径对应,该行条目顺次记载了以任意一个路由节点A为起点并以另外一个任意路由节点B为终点所形成的一条基础X-Y路径上的全部路由节点的坐标信息,并且也记载了沿该条基础X-Y路径的总跳步数初始值T初;
在当前传送任务中,当前的路由节点A禁止向刚刚给路由节点A传送数据的邻近节点反向回传数据,该限制一直持续到当前源节点顺利将信息传送到目的节点之后才予以解除;
步骤1.5:定义容错偏转决策模型,其具体包括如下子步骤:
步骤1.5.1:分别定义任意一个当前路由节点A向其自身的上、下、左、右四个临近路由节点:路由节点U、路由节点D、路由节点L或路由节点R交付任务数据包时的优先级顺序为:
从当前路由节点A出发,选择向路由节点U传送的优先级为最低;
从当前路由节点A出发,选择向路由节点D传送的优先级为最高;
从当前路由节点A出发,选择向路由节点R传送优先级为较高,而选择向路由节点L传送的优先级为较低;
步骤1.5.2:由当前路由节点A分别向与其如步骤1.5.1所述的四个临近路由节点分别发送如步骤1.1所述的ping命令测试以判断当前路径是否通路;
步骤1.5.3:由当前路由节点A将ping命令测试结果为非通路的各个临近路由节点的优先级在当前传送任务完成之前均暂时被降低为限制级;
步骤1.5.4:由当前路由节点A将当前优先级相对最高的临近路由节点作为下一跳的交付路由节点,并向该下一跳的交付路由节点传送全部任务数据;
步骤二:2D-mesh拓扑片上网络的初始化
步骤2.1:为2D-mesh拓扑片上网络指定一个具体的路由节点作为全局路由器;
步骤2.2:对全部路由节点进行初始化,为每一个路由节点都设定统一的如步骤1.1所述的时间常数T;
步骤2.3:将步骤2.1所述的全局路由器在片上网络中的坐标地址分配给其余全部路由节点;
步骤2.4:由全局路由器按照步骤1.4所述方法分别求得任意确定路由节点与其他全部路由节点相对坐标位置关系的全局相对坐标关系路由表;
步骤2.5:除全局路由器以外的每一个路由节点分别从步骤2.4所述全局相对坐标关系路由表中调取包含自身坐标的全部条目片段,并将这些片段合并成为本节点自身与其它节点的相对位置关系路由表,保存在该节点自身的缓存中;
步骤2.6:除全局路由器以外每一个路由节点对其自身所存储的本节点自身与其它节点的相对位置关系路由表进行运算,根据式(1)分别求解出本节点自身与其它节点的相对位置关系路由表中每一行条目对应下的由基于基础X-Y传输规则所确定的总跳步数的初始值T初;
步骤三:当m×n的2D-mesh拓扑片上网络开始一个以任意一个路由节点A为起点并以另外一个任意路由节点B为终点的数据传送任务时,将路由节点A称为数据源节点,并将目标路由节点B称为目标节点;
由当前的数据源节点根据其自身在片上网络内的坐标值进行判断,若其自身属于步骤1.1所述内部路由节点则将路由节点A重新计作由当前的内部数据源节点M并继续执行步骤四,若其自身属于步骤1.1所述边缘路由节点则将路由节点A重新计作当前的边缘数据源节点N并继续执行步骤五;
步骤四:内部路由节点的数据传输过程,其具体包括如下子步骤:
步骤4.1:由当前的内部数据源节点M从如步骤2.5所述的本节点自身与其它节点的相对位置关系路由表中查找包含有当前目标节点B的一行条目,从而获得由步骤1.2所述基于基础X-Y传输规则所确定的一条由当前的内部数据源节点M始发去往目标节点B的基础X-Y传输路径;
步骤4.2:由当前的内部数据源节点M向沿着步骤4.1所述基础X-Y传输路径上的下一个临近节点C发送ping命令测试包,以判断内部数据源节点M到下一个临近节点C的邻近路径是否通路;若该邻近路径为通路则执行步骤4.3,若该邻近路径为非通路则执行步骤4.4;
步骤4.3:由当前的内部数据源节点M将待传送的数据全部传送给步骤4.2所述的临近节点C,并在当前传送的最后一个数据包内做出当前数据全部传送完成的标志;
步骤4.4:由步骤4.2所述的临近节点C判断,其自身是否已经收到携带有如步骤4.3所述当前数据全部传送完成的标志的数据包,若已收到则执行步骤4.5,否则,重新执行步骤4.3;
步骤4.5:由步骤4.2所述的当前临近节点C判断,其自身如步骤2.6所述到目标节点B的总跳步数的初始值T初是否等于1,若T初等于1则当前临近节点C将自身待传送数据全部传给目标节点B并在完成全部数据的传送后终止当前的传送任务;若前述T初不等于1则所述的临近节点C将其自身视作如步骤三所述的一个全新的数据源节点,并重新执行步骤三;
步骤4.6:由当前的内部数据源节点M判断,其自身的横坐标值与目标节点B的横坐标值是否相同,若其二者的横坐标值不同则执行步骤4.7,否则执行步骤4.8;
步骤4.7:按照步骤1.5所述容错偏转决策模型将全部数据传送至当前的数据源节点的下一邻近节点D,然后,该邻近节点D将其自身视作步骤4.3所述的临近节点C,并继续执行步骤4.4至步骤4.5所述过程;
步骤4.8:由当前的内部数据源节点M优先向沿着步骤4.1所述基础X-Y传输路径的X轴方向上的下一个临近节点E发送ping命令测试包,以判断内部数据源节点M到其在X轴方向上的下一个临近节点E的邻近路径是否通路;若该邻近路径为通路则执行步骤4.9,若该邻近路径为非通路则执行步骤4.7;
步骤4.9:由当前的内部数据源节点M将待传送的数据全部传送给步骤4.8所述的其在X轴方向上的下一个临近节点E,并在当前传送的最后一个数据包内做出当前数据全部传送完成的标志;
步骤4.10:步骤4.9所述的当前节点E在收到由内部数据源节点M传来的全部数据后,当前节点E判断其自身的纵坐标值与目标节点B的纵坐标值是否相同,若其二者的纵坐标值相同,则执行步骤4.11,否则执行步骤4.12;
步骤4.11:步骤4.9所述的当前节点E判断,其自身如步骤2.6所述到目标节点B的总跳步数的初始值T初是否等于1,若T初等于1则当前临近节点E将自身待传送数据全部传给目标节点B并在完成全部数据的传送后终止当前的传送任务;若前述T初不等于1则所述的临近节点E将其自身视作如步骤三所述的一个全新的数据源节点,并重新执行步骤三;
步骤4.12:由步骤4.9所述的当前节点E将数据包沿着能使当前节点E与目标节点B之间的纵坐标差值的绝对值进一步缩小的方向,将待传输的数据包全部传给该方向上的下一个临近节点F,并在当前传送的最后一个数据包内做出当前数据全部传送完成的标志;
步骤4.13:由步骤4.12所述的当前临近节点F判断,其自身是否已经收到携带有如步骤4.12所述当前数据全部传送完成的标志的数据包,若已收到则执行步骤4.14,否则,重新执行步骤4.12;
步骤4.14:由步骤4.12所述的当前临近节点F判断,其自身如步骤2.6所述到目标节点B的总跳步数的初始值T初是否等于1,若T初等于1则由步骤4.12所述的当前临近节点F将自身待传送数据全部传给目标节点B并在完成全部数据的传送后终止当前的传送任务;若前述T初不等于1则由步骤4.12所述的当前临近节点F将其自身视作如步骤三所述的一个全新的数据源节点,并重新执行步骤三;
步骤五:内部路由节点的数据传输过程,其具体包括如下子步骤:
步骤5.1:由当前的边缘数据源节点N向其自身的各个邻近节点分别发送ping命令测试包,以判断当前的边缘数据源节点N到其下一个临近节点S(n)(n≤3,n取自然数)的邻近路径是否通路;若该邻近路径为通路则执行步骤5.2,若该邻近路径为非通路则在当前的传送任务全部完成之前,暂时禁止向该非通路的下一个临近节点S(n)传送数据;
步骤5.2:由当前的边缘数据源节点N分别从其如步骤5.1所述剩余的临近节点S(n剩)的路由表中调取如步骤2.5所述的该临近节点S(n剩)与其它节点的相对位置关系路由表,并分别获得以该临近节点S(n剩)为起点并去往目标节点B时,如步骤2.6所述的总跳步数的初始值T初S(n剩)(n≤3,n取自然数);
步骤5.3:由当前的边缘数据源节点N对步骤5.2所述的多个总跳步数的初始值T初S(n剩)(n≤3,n取自然数)进行比较和排序,并从中随机选择一个总跳步数初始值T初S(n剩)最小的临近节点S(n剩)作为边缘数据源节点N的数据交付节点K;
步骤5.4:由当前的边缘数据源节点N将待传输的数据包全部传给由步骤5.3所确定的数据交付节点K,并在当前传送的最后一个数据包内做出当前数据全部传送完成的标志;
步骤5.5:由步骤5.4所述的当前数据交付节点K,其自身是否已经收到携带有如步骤5.3所述当前数据全部传送完成的标志的数据包,若已收到则执行步骤5.6,否则,重新执行步骤5.4;
步骤5.6:由步骤5.4所述的当前数据交付节点K判断,其自身如步骤2.6所述到目标节点B的总跳步数的初始值T初是否等于1,若T初等于1则所述当前数据交付节点K将自身待传送数据全部传给目标节点B并在完成全部数据的传送后终止当前的传送任务;若前述T初不等于1则所述当前数据交付节点K将其自身视作如步骤三所述的一个全新的数据源节点,并重新执行步骤三。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春理工大学;,未经长春理工大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410384174.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种网络数据传输方法及装置
- 下一篇:一种远程设备跟踪管理系统及方法