CN111865791B - 一种用于动态网络的路由更新方法及系统 - Google Patents

一种用于动态网络的路由更新方法及系统 Download PDF

Info

Publication number
CN111865791B
CN111865791B CN202010666872.7A CN202010666872A CN111865791B CN 111865791 B CN111865791 B CN 111865791B CN 202010666872 A CN202010666872 A CN 202010666872A CN 111865791 B CN111865791 B CN 111865791B
Authority
CN
China
Prior art keywords
node
dynamic network
routing matrix
routing
kth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010666872.7A
Other languages
English (en)
Other versions
CN111865791A (zh
Inventor
卢勇
倪国旗
程东
汤勇刚
付新华
王威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China Zhongshan Institute
Original Assignee
University of Electronic Science and Technology of China Zhongshan Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China Zhongshan Institute filed Critical University of Electronic Science and Technology of China Zhongshan Institute
Priority to CN202010666872.7A priority Critical patent/CN111865791B/zh
Publication of CN111865791A publication Critical patent/CN111865791A/zh
Application granted granted Critical
Publication of CN111865791B publication Critical patent/CN111865791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种用于动态网络的路由更新方法及系统。该方法包括:获取动态网络中发生变化的链路;根据所述链路的两个端节点更新所述动态网络的拓扑表;根据更新后的所述动态网络的拓扑表,利用Dijkstra最短路径算法更新所述第一端节点的路由表和所述第二端节点的路由表;确定待更新节点,得到路由更新集合;判断所述路由更新集合中是否包括所述第i个节点;如果是,更新所述第i个节点存储的所述动态网络的拓扑表,并根据更新后的所述动态网络的拓扑表计算所述第i个节点的路由表;如果否,更新所述第i个节点存储的所述动态网络的拓扑表。本发明可以解决任意动态网络环境下的全局最优路由更新问题,降低路由更新引起的计算负载。

Description

一种用于动态网络的路由更新方法及系统
技术领域
本发明涉及动态网络领域,特别是涉及一种用于动态网络的路由更新方法及系统。
背景技术
动态网络的概念广泛存在于各种各样的网络体系,例如Internet中节点或链路的失效、地面Ad Hoc网络中节点的移动、卫星网络中卫星的高速运动,均可导致网络的拓扑发生变化。路由是网络数据传输的基础,一旦网络的拓扑发生变化,如果不进行相应的路由计算与更新,基于原始拓扑的数据传输可能会失效。因此,动态网络环境下的路由更新是解决动态网络数据传输的关键问题。目前动态网络的路由更新主要包括反应式路由更新与主动式路由更新策略。
反应式路由更新策略主要包括两步:一是扩散变化链路的信息,二是进行重路由计算。变化链路信息扩散包括全局扩散和局部扩散。全局扩散需要将变化链路信息扩散至网络中所有节点,当所有节点收到变化的链路信息后,然后进行重路由计算,即最短路径路由树计算。局部扩散仅在本地扩散变化链路信息,然后实现局部路由更新。
主动式路由更新策略主要基于多路径转发的思想,通过为任意源与目的节点计算多条路径,从而实现节点的多地址转发。然而,相关文献已经证明,主动式路由保护机制仅能实现任单链路或双链路失效情况下的快速路由恢复机制。
综上所述,反应式路由更新策略中全局扩散能够实现全局最优路由,但全网信息扩散与路由计算引起较大的计算负载。而局部扩散尽管减少了通信与计算负载,但不能实现全局最优路由。而主动式路由更新策略仅能适应单链路或双链路失效情况下的动态网络环境,不能应用于任意动态的网络环境。
发明内容
本发明的目的是提供一种用于动态网络的路由更新方法及系统,以解决任意动态网络环境下的全局最优路由更新问题,降低了路由更新引起的计算负载。
为实现上述目的,本发明提供了如下方案:
一种用于动态网络的路由更新方法,包括:
获取动态网络中发生变化的链路;所述链路包括两个端节点,分别为第一端节点和第二端节点;
根据所述链路的两个端节点更新所述动态网络的拓扑表;所述动态网络的拓扑表为所述动态网络中所有节点的连接关系表;
根据更新后的所述动态网络的拓扑表,利用Dijkstra最短路径算法更新所述第一端节点的路由表和所述第二端节点的路由表;
根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合;所述路由更新集合为所有待更新节点的集合;所述路由矩阵的第i行第j列表示第i个节点到第j节点之间的下一跳地址相关的信息;
对于所述动态网络中的第i个节点,判断所述路由更新集合中是否包括所述第i个节点;所述第i个节点为所述动态网络中除所述第一端节点和所述第二端节点之外的任一节点;
当所述路由更新集合中包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表,并根据更新后的所述动态网络的拓扑表计算所述第i个节点的路由表;
当所述路由更新集合中不包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表。
可选的,所述获取动态网络中发生变化的链路,之前还包括:
初始化所述动态网络中每个节点的存储信息;所述节点的存储信息包括所述动态网络的拓扑表、所述节点的路由表和所述节点的路由矩阵。
可选的,所述根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合,具体包括:
将链路发生变化后所述第一端节点的路由矩阵与链路发生变化前所述第一端节点的路由矩阵做差,得到第一差值矩阵;
将所述第一差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点;
将链路发生变化后所述第二端节点的路由矩阵与链路发生变化前所述第二端节点的路由矩阵做差,得到第二差值矩阵;
将所述第二差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点;
根据所有待更新节点,确定所述路由更新集合。
可选的,所述根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合,之前还包括:
对于第k个节点,根据所述第k个节点存储的所述动态网络的拓扑表,利用Dijkstra最短路径算法计算所述第k个节点到达第m个节点的所有下一跳地址,得到所述第k个节点对应的下一跳地址集合;所述第k个节点为所述第一端节点或所述第二端节点,所述第m个节点为所述动态网络中除所述第k个节点之外的节点;
根据所述第k个节点对应的下一跳地址集合,基于康托配对函数,更新所述第k个节点的路由矩阵中第k行第m列的元素值;
依次更新所述第k个节点的路由矩阵中第k行的所有元素值,得到更新后的所述第k个节点的路由矩阵;所述更新后的所述第k个节点的路由矩阵为链路发生变化后的所述第k个节点的路由矩阵。
可选的,所述根据所述第k个节点对应的下一跳地址集合,基于康托配对函数,更新所述第k个节点的路由矩阵中第k行第m列的元素值,具体包括:
基于康托配对函数,利用公式R1(k,m)=(x1+0)(x1+0+1)/2+0计算第1次迭代的函数初值;其中,x1为所述第k个节点对应的下一跳地址集合中第1个元素,R1(k,m)为第1次迭代的函数初值;
对于第j次迭代,利用公式Rj(k,m)=(xj+Rj-1(k,m))(xj+Rj-1(k,m)+1)/2+Rj-1(k,m)计算第j次迭代的函数值;其中,Rj(k,m)为第j次迭代的函数值,xj为所述第k个节点对应的下一跳地址集合中第j个元素,Rj-1(k,m)为第j-1次迭代的函数值;
将第n次迭代的函数值确定为第k个节点的路由矩阵中第k行第m列的元素值;n为所述第k个节点对应的下一跳地址集合的元素个数。
可选的,所述根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合,之后还包括:
利用广播方式将扩散信息广播至所述动态网络中的节点;所述扩散信息包括所述第一端节点、所述第二端节点和所述路由更新集合。
本发明还提供一种用于动态网络的路由更新系统,包括:
变化链路获取模块,用于获取动态网络中发生变化的链路;所述链路包括两个端节点,分别为第一端节点和第二端节点;
动态网络拓扑表更新模块,用于根据所述链路的两个端节点更新所述动态网络的拓扑表;所述动态网络的拓扑表为所述动态网络中所有节点的连接关系表;
路由表更新模块,用于根据更新后的所述动态网络的拓扑表,利用Dijkstra最短路径算法更新所述第一端节点的路由表和所述第二端节点的路由表;
路由更新集合获取模块,用于根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合;所述路由更新集合为所有待更新节点的集合;所述路由矩阵的第i行第j列表示第i个节点到第j节点之间的下一跳地址相关的信息;
节点判断模块,用于对于所述动态网络中的第i个节点,判断所述路由更新集合中是否包括所述第i个节点;所述第i个节点为所述动态网络中除所述第一端节点和所述第二端节点之外的任一节点;
第一更新模块,用于当所述路由更新集合中包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表,并根据更新后的所述动态网络的拓扑表计算所述第i个节点的路由表;
第二更新模块,用于当所述路由更新集合中不包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表。
可选的,所述路由更新集合获取模块,具体包括:
第一差值矩阵获取单元,用于将链路发生变化后所述第一端节点的路由矩阵与链路发生变化前所述第一端节点的路由矩阵做差,得到第一差值矩阵;
待更新节点确定单元,用于将所述第一差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点;
第二差值矩阵获取单元,用于将链路发生变化后所述第二端节点的路由矩阵与链路发生变化前所述第二端节点的路由矩阵做差,得到第二差值矩阵;
所述待更新节点确定单元,还用于将所述第二差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点;
路由更新集合确定单元,用于根据所有待更新节点,确定所述路由更新集合。
可选的,还包括:
下一跳地址集合确定模块,用于在根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合之前,对于第k个节点,根据所述第k个节点存储的所述动态网络的拓扑表,利用Dijkstra最短路径算法计算所述第k个节点到达第m个节点的所有下一跳地址,得到所述第k个节点对应的下一跳地址集合;所述第k个节点为所述第一端节点或所述第二端节点,所述第m个节点为所述动态网络中除所述第k个节点之外的节点;
路由矩阵元素值更新模块,用于根据所述第k个节点对应的下一跳地址集合,基于康托配对函数,更新所述第k个节点的路由矩阵中第k行第m列的元素值;
路由矩阵更新模块,用于依次更新所述第k个节点的路由矩阵中第k行的所有元素值,得到更新后的所述第k个节点的路由矩阵;所述更新后的所述第k个节点的路由矩阵为链路发生变化后的所述第k个节点的路由矩阵。
可选的,所述路由矩阵元素值更新模块,具体包括:
函数初值计算单元,用于基于康托配对函数,利用公式R1(k,m)=(x1+0)(x1+0+1)/2+0计算第1次迭代的函数初值;其中,x1为所述第k个节点对应的下一跳地址集合中第1个元素,R1(k,m)为第1次迭代的函数初值;
第j次迭代的函数值计算单元,用于对于第j次迭代,利用公式Rj(k,m)=(xj+Rj-1(k,m))(xj+Rj-1(k,m)+1)/2+Rj-1(k,m)计算第j次迭代的函数值;其中,Rj(k,m)为第j次迭代的函数值,xj为所述第k个节点对应的下一跳地址集合中第j个元素,Rj-1(k,m)为第j-1次迭代的函数值;
元素值确定单元,用于将第n次迭代的函数值确定为第k个节点的路由矩阵中第k行第m列的元素值;n为所述第k个节点对应的下一跳地址集合的元素个数。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明通过计算出网络中链路变化时需要进行路由更新的最小节点集,该节点集限制了路由更新的范围,从而避免了全网范围内全局更新,最大限度降低了路由更新引起的计算负载,加快了拓扑变化环境下的路由恢复。
具体的,本发明采用路由矩阵与康托配对函数相结合的思路,实现最短路径与转发地址同时到路由矩阵中对应元素的映射,即NN至N的映射,从而计算出网络中链路变化时需要进行路由更新的最小节点集,不仅能够实现动态网络环境下全局的路由更新,而且相比传统的全局路由更新方法,能够最大限度降低路由更新引起的计算负载。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明用于动态网络的路由更新方法的流程示意图;
图2为本发明用于动态网络的路由更新系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明用于动态网络的路由更新方法的流程示意图。如图1所示,本发明用于动态网络的路由更新方法包括以下步骤:
步骤100:获取动态网络中发生变化的链路。所述链路包括两个端节点,分别为第一端节点和第二端节点。当动态网络中某个链路发生变化时,即关闭该链路或创建新链路时,该链路对应的两个端节点触发更新过程。
在动态网络的链路发生变化之前,需要初始化所述动态网络中每个节点的存储信息。所述节点的存储信息包括所述动态网络的拓扑表、所述节点的路由表和所述节点的路由矩阵。所述动态网络的拓扑表为所述动态网络中所有节点的连接关系表,包括每个节点的编号与节点之间的连接关系。节点的路由表为该节点对应的传输数据的路由信息,节点初始的路由表采用Dijkstra最短路径算法基于动态网络的拓扑表计算得到,路由表可以确保动态网络的数据可以正常传输。节点的路由矩阵为N×N的矩阵,N为节点的个数,路由矩阵中行和列均表示节点,路由矩阵的第i行第j列表示第i个节点到第j节点之间的下一跳地址相关的信息。
节点的初始路由矩阵采用康托配对函数计算得到,初始状态下,每个节点的路由矩阵均相同。具体的过程如下:
对于第i个节点,根据动态网络的拓扑表,利用Dijkstra最短路径算法计算第i个节点到节点j的所有下一跳地址,得到第i个节点的下一跳地址集合NEXTi(j)={x1,x2,…,xn}。
基于康托配对函数,采用下面的迭代计算方法计算路由矩阵RM(t)中第i行第j列的元素值R(i,j):
R1(i,j)=(x1+0)(x1+0+1)/2+0;
R2(i,j)=(x2+R1(i,j))(x2+R1(i,j)+1)/2+R1(i,j);
·····
Rn(i,j)=(xn+Rn-1(i,j))(xn+Rn-1(i,j)+1)/2+Rn-1(i,j)。
最终计算结果Rn(i,j)即为路由矩阵RM(t)中第i行第j列的值R(i,j)。
采用上述方法,依次得到第i行所有的元素,进而得到所有行的所有元素,得到路由矩阵。
步骤200:根据链路的两个端节点更新动态网络的拓扑表。链路发生变化时,节点之间的连接关系发生变化,因此,整个动态网络的拓扑表需要根据链路的端节点进行相应的更新,并且,将更新后的动态网络的拓扑表分别存储至两个端节点。
步骤300:根据更新后的动态网络的拓扑表,利用Dijkstra最短路径算法更新第一端节点的路由表和第二端节点的路由表。
步骤400:根据链路发生变化前第一端节点的路由矩阵和第二端节点的路由矩阵,以及链路发生变化后第一端节点的路由矩阵和第二端节点的路由矩阵,确定待更新节点,得到路由更新集合。路由更新集合为所有待更新节点的集合。具体过程为:
将链路发生变化后所述第一端节点的路由矩阵与链路发生变化前所述第一端节点的路由矩阵做差,得到第一差值矩阵。
将所述第一差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点。
将链路发生变化后所述第二端节点的路由矩阵与链路发生变化前所述第二端节点的路由矩阵做差,得到第二差值矩阵。
将所述第二差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点。
根据所有待更新节点,确定所述路由更新集合。
本发明中两个路由矩阵做差是指两个路由矩阵中对应元素相减。相减的目的是为了判断两个路由矩阵中每行的所有元素是否发生变化。如果相减后某行元素不全为0,则表示这两个路由矩阵对应行的元素不是一一对应相等的,从而暗示该行对应的节点在拓扑变化后路由信息不一致,因此,该节点的路由需要更新,因此,将该行的行号即对应的节点编号加入路由更新集合,得到的集合为最小路由更新集合。
本步骤中链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵是已知的。链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵是在变化前的路由矩阵的基础上更新得到的,路由矩阵的更新过程采用基于康托配对函数的方式实现。用第k个节点表示第一端节点和第二端节点,具体路由矩阵更新过程如下:
根据所述第k个节点存储的所述动态网络的拓扑表,利用Dijkstra最短路径算法计算所述第k个节点到达第m个节点的所有下一跳地址,得到所述第k个节点对应的下一跳地址集合;所述第k个节点为所述第一端节点或所述第二端节点,所述第m个节点为所述动态网络中除所述第k个节点之外的节点。
根据所述第k个节点对应的下一跳地址集合,基于康托配对函数,更新所述第k个节点的路由矩阵中第k行第m列的元素值。第k个节点的路由矩阵中第k行第m列的元素值与前述初始路由矩阵中元素值的计算方法相同。具体的,首先,基于康托配对函数,利用公式R1(k,m)=(x1+0)(x1+0+1)/2+0计算第1次迭代的函数初值;其中,x1为所述第k个节点对应的下一跳地址集合中第1个元素,R1(k,m)为第1次迭代的函数初值。然后,采用迭代过程,利用公式Rj(k,m)=(xj+Rj-1(k,m))(xj+Rj-1(k,m)+1)/2+Rj-1(k,m)计算第j次迭代的函数值;其中,Rj(k,m)为第j次迭代的函数值,xj为所述第k个节点对应的下一跳地址集合中第j个元素,Rj-1(k,m)为第j-1次迭代的函数值。最后,将第n次迭代的函数值Rn(k,m)确定为第k个节点的路由矩阵中第k行第m列的元素值,Rn(k,m)=(xn+Rn-1(k,m))(xn+Rn-1(k,m)+1)/2+Rn-1(k,m);xn为所述第k个节点对应的下一跳地址集合中第n个元素,n为所述第k个节点对应的下一跳地址集合的元素个数。
依次更新所述第k个节点的路由矩阵中第k行的所有元素值,得到更新后的所述第k个节点的路由矩阵;所述更新后的所述第k个节点的路由矩阵为链路发生变化后的所述第k个节点的路由矩阵。
步骤500:判断路由更新集合中是否包括第i个节点。如果是,执行步骤600;如果否,执行步骤700。对于动态网络中的第i个节点,第i个节点为动态网络中除第一端节点和第二端节点之外的任一节点。根据两个端节点得到路由更新集合之后,利用广播方式将扩散信息广播至所述动态网络中的节点,扩散信息的格式如表1所示。扩散信息包括所述第一端节点(节点A)、所述第二端节点(节点B)和所述路由更新集合(RN)。
表1扩散信息
节点A 节点B RN
广播过程中如果某节点收到邻居节点的扩散信息,禁止该信息向该邻居节点扩散,从而减少扩散负载。
动态网络中任意节点收到扩散信息后,检查扩散信息中RN集合是否包含自身,如果包含自身,说明自身为待更新节点,需要更新路由信息。如果不包含自身,说明自身不是待更新节点,无需更新路由信息。
对于任意一个节点来说,在接收扩散信息过程中包括两种情形:第一种情形是该节点首次收到该扩散信息,此时,保存该信息,并将该扩散信息向其他邻居发送,然后检查该扩散信息中RN集合是否包含自身,如果包含自身,则执行步骤600;如果不包含自身,则执行步骤700,从而减少计算负载。第二种情形是该节点非首次收到扩散信息,此时节点不进行任何处理,同时删除该扩散信息。
步骤600:更新第i个节点存储的动态网络的拓扑表,并根据更新后的动态网络的拓扑表计算第i个节点的路由表。第i个节点是指动态网络中的任意一个节点。
步骤700:更新第i个节点存储的动态网络的拓扑表。
对应图1所示的用于动态网络的路由更新方法,本发明还提供一种用于动态网络的路由更新系统,图2为本发明用于动态网络的路由更新系统的结构示意图。如图2所示,本发明用于动态网络的路由更新系统包括以下结构:
变化链路获取模块201,用于获取动态网络中发生变化的链路;所述链路包括两个端节点,分别为第一端节点和第二端节点。
动态网络拓扑表更新模块202,用于根据所述链路的两个端节点更新所述动态网络的拓扑表;所述动态网络的拓扑表为所述动态网络中所有节点的连接关系表。
路由表更新模块203,用于根据更新后的所述动态网络的拓扑表,利用Dijkstra最短路径算法更新所述第一端节点的路由表和所述第二端节点的路由表。
路由更新集合获取模块204,用于根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合;所述路由更新集合为所有待更新节点的集合;所述路由矩阵的第i行第j列表示第i个节点到第j节点之间的下一跳地址相关的信息。
节点判断模块205,用于对于所述动态网络中的第i个节点,判断所述路由更新集合中是否包括所述第i个节点;所述第i个节点为所述动态网络中除所述第一端节点和所述第二端节点之外的任一节点。
第一更新模块206,用于当所述路由更新集合中包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表,并根据更新后的所述动态网络的拓扑表计算所述第i个节点的路由表。
第二更新模块207,用于当所述路由更新集合中不包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表。
作为另一实施例,本发明用于动态网络的路由更新系统中,所述路由更新集合获取模块204,具体包括:
第一差值矩阵获取单元,用于将链路发生变化后所述第一端节点的路由矩阵与链路发生变化前所述第一端节点的路由矩阵做差,得到第一差值矩阵。
待更新节点确定单元,用于将所述第一差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点。
第二差值矩阵获取单元,用于将链路发生变化后所述第二端节点的路由矩阵与链路发生变化前所述第二端节点的路由矩阵做差,得到第二差值矩阵。
所述待更新节点确定单元,还用于将所述第二差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点。
路由更新集合确定单元,用于根据所有待更新节点,确定所述路由更新集合。
作为另一实施例,本发明用于动态网络的路由更新系统还包括:
下一跳地址集合确定模块,用于在根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合之前,对于第k个节点,根据所述第k个节点存储的所述动态网络的拓扑表,利用Dijkstra最短路径算法计算所述第k个节点到达第m个节点的所有下一跳地址,得到所述第k个节点对应的下一跳地址集合;所述第k个节点为所述第一端节点或所述第二端节点,所述第m个节点为所述动态网络中除所述第k个节点之外的节点。
路由矩阵元素值更新模块,用于根据所述第k个节点对应的下一跳地址集合,基于康托配对函数,更新所述第k个节点的路由矩阵中第k行第m列的元素值。
路由矩阵更新模块,用于依次更新所述第k个节点的路由矩阵中第k行的所有元素值,得到更新后的所述第k个节点的路由矩阵;所述更新后的所述第k个节点的路由矩阵为链路发生变化后的所述第k个节点的路由矩阵。
作为另一实施例,本发明用于动态网络的路由更新系统中,所述路由矩阵元素值更新模块,具体包括:
函数初值计算单元,用于基于康托配对函数,利用公式R1(k,m)=(x1+0)(x1+0+1)/2+0计算第1次迭代的函数初值;其中,x1为所述第k个节点对应的下一跳地址集合中第1个元素,R1(k,m)为第1次迭代的函数初值。
第j次迭代的函数值计算单元,用于对于第j次迭代,利用公式Rj(k,m)=(xj+Rj-1(k,m))(xj+Rj-1(k,m)+1)/2+Rj-1(k,m)计算第j次迭代的函数值;其中,Rj(k,m)为第j次迭代的函数值,xj为所述第k个节点对应的下一跳地址集合中第j个元素,Rj-1(k,m)为第j-1次迭代的函数值。
元素值确定单元,用于将第n次迭代的函数值确定为第k个节点的路由矩阵中第k行第m列的元素值;n为所述第k个节点对应的下一跳地址集合的元素个数。
本发明不仅能够实现动态网络环境下全局的路由更新,而且相比传统的全局路由更新方法,能够最大限度降低路由更新引起的计算负载。其关键技术是采用了路由矩阵与康托配对函数相结合的思路,实现最短路径与转发地址同时到路由矩阵中对应元素的NN至N的映射,从而计算出网络中链路变化时需要进行路由更新的最小节点集。该节点集限制了路由更新的范围,从而避免了全网范围内全局更新,最大限度降低了路由更新引起的计算负载,加快了拓扑变化环境下的路由恢复。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (3)

1.一种用于动态网络的路由更新方法,其特征在于,包括:
初始化动态网络中每个节点的存储信息;所述节点的存储信息包括所述动态网络的拓扑表、所述节点的路由表和所述节点的路由矩阵;
采用康托配对函数对所述节点的路由矩阵进行初始化,初始状态下,每个节点的路由矩阵均相同,具体包括:
对于第i个节点,根据所述动态网络的拓扑表,利用Dijkstra最短路径算法计算第i个节点到节点j的所有下一跳地址,得到第i个节点的下一跳地址集合NEXTi(j)={x1,x2,…,xn};
基于所述康托配对函数,采用迭代计算方法计算路由矩阵RM(t)中第i行第j列的元素值R(i,j),具体包括:
R1(i,j)=(x1+0)(x1+0+1)/2+0;
R2(i,j)=(x2+R1(i,j))(x2+R1(i,j)+1)/2+R1(i,j);
·····;
Rn(i,j)=(xn+Rn-1(i,j))(xn+Rn-1(i,j)+1)/2+Rn-1(i,j);
其中,Rn(i,j)即为路由矩阵RM(t)中第i行第j列的值R(i,j);
采用所述迭代计算方法,依次得到第i行所有的元素,进而得到所有行的所有元素,得到初始化后的所述节点的路由矩阵;
获取动态网络中发生变化的链路;所述链路包括两个端节点,分别为第一端节点和第二端节点;
根据所述链路的两个端节点更新所述动态网络的拓扑表;所述动态网络的拓扑表为所述动态网络中所有节点的连接关系表;
根据更新后的所述动态网络的拓扑表,利用Dijkstra最短路径算法更新所述第一端节点的路由表和所述第二端节点的路由表;
对于第k个节点,根据所述第k个节点存储的所述动态网络的拓扑表,利用Dijkstra最短路径算法计算所述第k个节点到达第m个节点的所有下一跳地址,得到所述第k个节点对应的下一跳地址集合;所述第k个节点为所述第一端节点或所述第二端节点,所述第m个节点为所述动态网络中除所述第k个节点之外的节点;
根据所述第k个节点对应的下一跳地址集合,基于康托配对函数,更新所述第k个节点的路由矩阵中第k行第m列的元素值,具体包括:
基于康托配对函数,利用公式R1(k,m)=(x1+0)(x1+0+1)/2+0计算第1次迭代的函数初值;其中,x1为所述第k个节点对应的下一跳地址集合中第1个元素,R1(k,m)为第1次迭代的函数初值;
对于第j次迭代,利用公式Rj(k,m)=(xj+Rj-1(k,m))(xj+Rj-1(k,m)+1)/2+Rj-1(k,m)计算第j次迭代的函数值;其中,Rj(k,m)为第j次迭代的函数值,xj为所述第k个节点对应的下一跳地址集合中第j个元素,Rj-1(k,m)为第j-1次迭代的函数值;
将第n次迭代的函数值确定为第k个节点的路由矩阵中第k行第m列的元素值;n为所述第k个节点对应的下一跳地址集合的元素个数;
依次更新所述第k个节点的路由矩阵中第k行的所有元素值,得到更新后的所述第k个节点的路由矩阵;所述更新后的所述第k个节点的路由矩阵为链路发生变化后的所述第k个节点的路由矩阵;
根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合,具体包括:
将链路发生变化后所述第一端节点的路由矩阵与链路发生变化前所述第一端节点的路由矩阵做差,得到第一差值矩阵;
将所述第一差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点;
将链路发生变化后所述第二端节点的路由矩阵与链路发生变化前所述第二端节点的路由矩阵做差,得到第二差值矩阵;
将所述第二差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点;
根据所有待更新节点,确定所述路由更新集合;
所述路由更新集合为所有待更新节点的集合;所述路由矩阵的第i行第j列表示第i个节点到第j节点之间的下一跳地址相关的信息;
对于所述动态网络中的第i个节点,判断所述路由更新集合中是否包括所述第i个节点;所述第i个节点为所述动态网络中除所述第一端节点和所述第二端节点之外的任一节点;
当所述路由更新集合中包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表,并根据更新后的所述动态网络的拓扑表计算所述第i个节点的路由表;
当所述路由更新集合中不包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表。
2.根据权利要求1所述的用于动态网络的路由更新方法,其特征在于,所述根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合,之后还包括:
利用广播方式将扩散信息广播至所述动态网络中的节点;所述扩散信息包括所述第一端节点、所述第二端节点和所述路由更新集合。
3.一种用于动态网络的路由更新系统,其特征在于,包括:
变化链路获取模块,用于获取动态网络中发生变化的链路;所述链路包括两个端节点,分别为第一端节点和第二端节点;在所述获取动态网络中发生变化的链路之前还包括:初始化动态网络中每个节点的存储信息;所述节点的存储信息包括所述动态网络的拓扑表、所述节点的路由表和所述节点的路由矩阵;
采用康托配对函数对所述节点的路由矩阵进行初始化,初始状态下,每个节点的路由矩阵均相同,具体包括:
对于第i个节点,根据所述动态网络的拓扑表,利用Dijkstra最短路径算法计算第i个节点到节点j的所有下一跳地址,得到第i个节点的下一跳地址集合NEXTi(j)={x1,x2,…,xn};
基于所述康托配对函数,采用迭代计算方法计算路由矩阵RM(t)中第i行第j列的元素值R(i,j),具体包括:
R1(i,j)=(x1+0)(x1+0+1)/2+0;
R2(i,j)=(x2+R1(i,j))(x2+R1(i,j)+1)/2+R1(i,j);
·····;
Rn(i,j)=(xn+Rn-1(i,j))(xn+Rn-1(i,j)+1)/2+Rn-1(i,j);
其中,Rn(i,j)即为路由矩阵RM(t)中第i行第j列的值R(i,j);
采用所述迭代计算方法,依次得到第i行所有的元素,进而得到所有行的所有元素,得到初始化后的所述节点的路由矩阵;
动态网络拓扑表更新模块,用于根据所述链路的两个端节点更新所述动态网络的拓扑表;所述动态网络的拓扑表为所述动态网络中所有节点的连接关系表;
路由表更新模块,用于根据更新后的所述动态网络的拓扑表,利用Dijkstra最短路径算法更新所述第一端节点的路由表和所述第二端节点的路由表;
路由更新集合获取模块,用于根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合;所述路由更新集合为所有待更新节点的集合;所述路由矩阵的第i行第j列表示第i个节点到第j节点之间的下一跳地址相关的信息;
所述路由更新集合获取模块,具体包括:
第一差值矩阵获取单元,用于将链路发生变化后所述第一端节点的路由矩阵与链路发生变化前所述第一端节点的路由矩阵做差,得到第一差值矩阵;
待更新节点确定单元,用于将所述第一差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点;
第二差值矩阵获取单元,用于将链路发生变化后所述第二端节点的路由矩阵与链路发生变化前所述第二端节点的路由矩阵做差,得到第二差值矩阵;
所述待更新节点确定单元,还用于将所述第二差值矩阵中行元素不全为0的行号对应的节点确定为待更新节点;
路由更新集合确定单元,用于根据所有待更新节点,确定所述路由更新集合;
节点判断模块,用于对于所述动态网络中的第i个节点,判断所述路由更新集合中是否包括所述第i个节点;所述第i个节点为所述动态网络中除所述第一端节点和所述第二端节点之外的任一节点;
第一更新模块,用于当所述路由更新集合中包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表,并根据更新后的所述动态网络的拓扑表计算所述第i个节点的路由表;
第二更新模块,用于当所述路由更新集合中不包括所述第i个节点时,更新所述第i个节点存储的所述动态网络的拓扑表;
下一跳地址集合确定模块,用于在根据链路发生变化前所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,以及链路发生变化后所述第一端节点的路由矩阵和所述第二端节点的路由矩阵,确定待更新节点,得到路由更新集合之前,对于第k个节点,根据所述第k个节点存储的所述动态网络的拓扑表,利用Dijkstra最短路径算法计算所述第k个节点到达第m个节点的所有下一跳地址,得到所述第k个节点对应的下一跳地址集合;所述第k个节点为所述第一端节点或所述第二端节点,所述第m个节点为所述动态网络中除所述第k个节点之外的节点;
路由矩阵元素值更新模块,用于根据所述第k个节点对应的下一跳地址集合,基于康托配对函数,更新所述第k个节点的路由矩阵中第k行第m列的元素值;
所述路由矩阵元素值更新模块,具体包括:
函数初值计算单元,用于基于康托配对函数,利用公式R1(k,m)=(x1+0)(x1+0+1)/2+0计算第1次迭代的函数初值;其中,x1为所述第k个节点对应的下一跳地址集合中第1个元素,R1(k,m)为第1次迭代的函数初值;
第j次迭代的函数值计算单元,用于对于第j次迭代,利用公式Rj(k,m)=(xj+Rj-1(k,m))(xj+Rj-1(k,m)+1)/2+Rj-1(k,m)计算第j次迭代的函数值;其中,Rj(k,m)为第j次迭代的函数值,xj为所述第k个节点对应的下一跳地址集合中第j个元素,Rj-1(k,m)为第j-1次迭代的函数值;
元素值确定单元,用于将第n次迭代的函数值确定为第k个节点的路由矩阵中第k行第m列的元素值;n为所述第k个节点对应的下一跳地址集合的元素个数;
路由矩阵更新模块,用于依次更新所述第k个节点的路由矩阵中第k行的所有元素值,得到更新后的所述第k个节点的路由矩阵;所述更新后的所述第k个节点的路由矩阵为链路发生变化后的所述第k个节点的路由矩阵。
CN202010666872.7A 2020-07-13 2020-07-13 一种用于动态网络的路由更新方法及系统 Active CN111865791B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010666872.7A CN111865791B (zh) 2020-07-13 2020-07-13 一种用于动态网络的路由更新方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010666872.7A CN111865791B (zh) 2020-07-13 2020-07-13 一种用于动态网络的路由更新方法及系统

Publications (2)

Publication Number Publication Date
CN111865791A CN111865791A (zh) 2020-10-30
CN111865791B true CN111865791B (zh) 2022-02-08

Family

ID=72983237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010666872.7A Active CN111865791B (zh) 2020-07-13 2020-07-13 一种用于动态网络的路由更新方法及系统

Country Status (1)

Country Link
CN (1) CN111865791B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113572646B (zh) * 2021-07-28 2024-04-02 上海欧冶金诚信息服务股份有限公司 一种适用于区块链节点外网部署的星型组网方法及系统
CN114285783B (zh) * 2021-12-14 2023-08-11 中国联合网络通信集团有限公司 一种基于多矩阵的路由扩散模拟方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102272A (zh) * 2007-07-13 2008-01-09 北京航空航天大学 一种路由更新方法
CN108471628A (zh) * 2017-01-13 2018-08-31 国家电网公司 一种具备优化网络负载的路由控制器
CN109120536A (zh) * 2018-09-29 2019-01-01 北京空间飞行器总体设计部 一种面向确定链路状态变化的空间网络路由与转发方法
CN110138670A (zh) * 2019-04-30 2019-08-16 哈尔滨英赛克信息技术有限公司 一种基于动态路径的负载迁移方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10127880A1 (de) * 2001-06-11 2002-12-12 Philips Corp Intellectual Pty Dynamisches Netzwerk und Routing-Verfahren für ein dynamisches Netzwerk
WO2008077420A1 (en) * 2006-12-22 2008-07-03 Telecom Italia S.P.A. Dynamic routing of optical signals in optical networks
US8310931B2 (en) * 2008-07-18 2012-11-13 International Business Machines Corporation Discovering network topology from routing information
WO2015061470A1 (en) * 2013-10-23 2015-04-30 Harshavardha Paramasiviah Internet protocol routing method and associated architectures
CN108270677A (zh) * 2016-12-30 2018-07-10 中国移动通信集团浙江有限公司 一种快速路由收敛方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102272A (zh) * 2007-07-13 2008-01-09 北京航空航天大学 一种路由更新方法
CN108471628A (zh) * 2017-01-13 2018-08-31 国家电网公司 一种具备优化网络负载的路由控制器
CN109120536A (zh) * 2018-09-29 2019-01-01 北京空间飞行器总体设计部 一种面向确定链路状态变化的空间网络路由与转发方法
CN110138670A (zh) * 2019-04-30 2019-08-16 哈尔滨英赛克信息技术有限公司 一种基于动态路径的负载迁移方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
卫星时变网络中基于连接计划的最短路径优化算法;戴翠琴等;《重庆邮电大学学报(自然科学版)》;20170215(第01期);全文 *
基于动态最短路径策略的多QoS路由算法;张倩倩等;《软件导刊》;20110630(第06期);全文 *

Also Published As

Publication number Publication date
CN111865791A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN111865791B (zh) 一种用于动态网络的路由更新方法及系统
CN113261245B (zh) 网络链路或节点故障的恢复系统和方法
US7554921B2 (en) Method and apparatus for generating routing information in a data communication network
CN108964746B (zh) 时变卫星网络多拓扑搜索最短路由方法
US20050078656A1 (en) Method and apparatus for generating routing information in a data communications network
CN113489528A (zh) 一种适用于星间路由的自适应抗毁方法
WO2004092871A2 (en) Peer-to-peer system with prefix-based
CN101072241B (zh) 提高最短路径桥可靠性的方法及装置
CN101267398B (zh) 二维torus网中的无死锁自适应路由方法
CN113572646A (zh) 一种适用于区块链节点外网部署的星型组网方法及系统
CN115632692B (zh) 一种卫星动态拓扑路由方法
CN115529266B (zh) 一种路由选择方法、装置及设备
US8514876B2 (en) Method and apparatus for sequencing operations for an incoming interface check in data center ethernet
CN114285783B (zh) 一种基于多矩阵的路由扩散模拟方法及装置
CN108934053B (zh) 一种不对称通信链路条件下的网络自组织方法
CN113067775B (zh) 一种协议无关的启发式源路由发现方法
CN115297045A (zh) 面向低轨卫星网络的洪泛拓扑构建方法、装置和存储介质
CA2537898C (en) Method and apparatus for generating routing information in a data communications network
Lee et al. The design and analysis of an efficient load balancing algorithm employing the symmetric balanced incomplete block design
CN112819048B (zh) 用于星间动态网络的分布式社区检测方法
Faychuk et al. Investigation of the bellman-ford algorithm enhanced for remote execution
Arabpour Niasari et al. An efficient shortest path routing on the hypercube with blocking/faulty nodes
CN113825175B (zh) 一种卫星数据的传输方法、装置、设备及存储介质
CN114244854B (zh) 基于强化学习的数据中心数据备份方法及系统
CN110608749B (zh) 路径的确定方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant