LEO/MEO卫星网络的路由快速收敛优化方法转让专利

申请号 : CN201610404068.5

文献号 : CN106100720B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 潘成胜来维庚杨力魏德宾

申请人 : 大连大学

权利要求 :

1.LEO/MEO卫星网络的路由快速收敛优化方法,其特征在于,包括:A、动态双向转发检测的步骤;所述动态双向转发检测的步骤,包括:相关参数设定,具体为:每个节点内部设置两个参数:设邻居节点数量为n,邻居节点的可靠性等级对端链路的可靠性等级 当节点A发生节点故

障时,该邻居节点可靠性等级为 当链路A-B发生故障时,节点A,B链路的可靠性等级为节点中会话建立后,网络中的所有节点采用相同的报文发送间隔t,每个节点本端的检测倍数为N,当网络发生故障时,故障的检测时间T=t*N;

B、用于MEO/LEO卫星网络的覆盖分簇的步骤;所述用于MEO/LEO卫星网络的覆盖分簇的步骤,包括:S1,卫星分类:

给定卫星集合S,根据轨道高度,将卫星集合分为两类:M={mi|i=1,2,...,m},表示中轨卫星集合;L={lj|j=1,2,...,n},表示低轨卫星集合;

S2,确定链路权重:

令d(si,sj)表示卫星i与卫星j之间的链路权重,其具体为:其中,Uij表示链路e(i,j)的带宽利用率,Dave表示某一时刻卫星网络中所有链路传输时延的平均值,Dij表示链路e(i,j)的时延,Gij表示链路e(i,j)的丢包率;α1,α2,α3为链路权重调节因子,分别用于调节带宽利用率、时延,丢包率对权重的贡献;

S3,初始簇的划分:

遍历集合M,计算被mi覆盖的卫星集合 ljΛmi表示LEO卫星lj被MEO卫星mi覆盖; 是以mi为簇首的簇,令 最终得到簇集合S4,对重复覆盖节点进行处理;

S5:对游离节点处理;

C、卫星网络故障类型判断的步骤;所述卫星网络故障类型判断的步骤,包括:(1)故障类型的判断,卫星网络中的故障包括:链路故障和节点故障;

(2)SFTJM减小路由表更新时延。

2.根据权利要求1所述LEO/MEO卫星网络的路由快速收敛优化方法,其特征在于,发送检测报文的间隔时间:其中K为对端节点可靠性等级与链路可靠性等级的初始值之和, 为对端节点的可靠性等级, 为与对端节点 间的链路可靠性等级,Dd为发送检测报文的时间间隔初始值,Ds为端到端传输时延;

当 时,

当 时,N=1;

其中Nd为发送报文乘数的初始值, 为节点i与节点j之间链路的可靠性等级, 为对端邻居节点的可靠性等级。

3.根据权利要求1所述LEO/MEO卫星网络的路由快速收敛优化方法,其特征在于,动态双向转发检测的步骤,还包括,基于DBFD实现卫星网络故障的快速检测,具体为:第一步:源端R1发送向对端R2周期性的发送报文以确定A-B链路的连通状态;

第二步:对端R2收到P置位的报文,根据源端R1的节点可靠性等级 与R1,R2之间的链路可靠性等级 设置检测报文的时间间隔 检测乘数发送过程中将确认位K置为1;

第三步:源端接收到K置位报文,根据R2的节点可靠性等级 与R1,R2之间的链路可靠性等级 设置检测报文的时间间隔 检测乘数第四步:最终R1与R2通过对端的节点可靠性等级与链路可靠性等级动态设置检测报文的发送间隔与检测乘数。

4.根据权利要求1所述LEO/MEO卫星网络的路由快速收敛优化方法,其特征在于,S4中对重复覆盖节点进行处理的步骤具体为:a,遍历集合N,设重复覆盖节点集 表示簇 与 的交集:若 则更新N为

若 则更新N为

若 设 其中lk∈Lij;若 则

更新N为 若 则更新N为 若 则更新N,

若 且 遍历Lij分别计算d(mi,lk)与d(mj,lk),其中lk∈Lij;

若d(mi,lk)>d(mj,lk),则

若d(mi,lk)<d(mj,lk),则

若d(mi,lk)=d(mj,lk),设 表示簇 中的元素个数;若 则更新簇 为若 则更新簇 为 若 则更新簇 为 或

b,经过上述处理后,集合N中可能会出现元素为空,需要将N中的空元素删除,遍历集合N,若 更新簇集合N为

5.根据权利要求1所述LEO/MEO卫星网络的路由快速收敛优化方法,其特征在于,S5对游离节点处理具体为:步骤1,设游离节点集 若Ls=φ,分簇完成;

步骤2,若Ls≠φ,遍历Ls集合,la∈Ls(a=1,2,...,n),设lk为la的同轨道节点,且根据lk到la跳数由小到大的顺序,依次选择lk;若lk=φ且 则 更新Ls集合为Ls\la;

步骤3,若lk=φ,设lv为la的异轨道节点,根据到la跳数由小到大的顺序,依次次选择lv;若 则 更新Ls集合为Ls\la;

重复步骤2、步骤3,若Ls=φ,则分簇完成。

6.根据权利要求1所述LEO/MEO卫星网络的路由快速收敛优化方法,其特征在于,链路故障为:当链路e(i,j)出现故障时,卫星节点i和j分别产生相应的LSA,网络中的其他节点通过接收并读取两个节点产生的LSA信息来判断出链路e(i,j)出现故障;

节点故障为:当节点i出现故障时,网络中的其他节点通过接收并读取集合E(i)中所有节点产生的LSA信息来判断节点i出现故障。

7.根据权利要求1所述LEO/MEO卫星网络的路由快速收敛优化方法,其特征在于,SFTJM减小路由表更新时延的步骤为:路由器处于INIT状态,在接受到第一个LSA后,执行路由表更新操作并启动spfDelaytimer,同时路由器转移到Judgement状态;

在Judgement状态收到LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障,执行路由表更新操作并关闭spfDelaytimer,路由器状态转移到INIT;如果故障类型为链路故障,或在spfDelay期间无法判断故障类型,路由器状态转移到SPF状态,并开启spfHoldtimer;

在SPF状态收到LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障,或spfHoldTime期间没有收到LSA,执行路由表更新操作,关闭spfHoldtimer,将spfHoldTime恢复为默认值,路由器状态转移到INIT状态;如果故障类型为链路故障,执行路由表更新,spfHoldTime增加一倍,路由器状态转移到SPF HOLD状态;

在SPF HOLD状态接收LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障,执行路由表更新,关闭spfHoldtimer并恢复spfHoldTime默认值,路由器状态转移到INIT;如果故障类型为链路故障,或spfHoldTime超时,路由器状态转移到SPF状态。

说明书 :

LEO/MEO卫星网络的路由快速收敛优化方法

技术领域

[0001] 本发明属于卫星网络动态路由协议领域,具体说是一种LEO/MEO卫星网络的路由快速收敛优化方法。

背景技术

[0002] 随着网络通信的发展,卫星网络作为地面网络的扩展已越来越受到学者们的关注。由于卫星网络具有大时延、高动态等特点,地面上原有的路由协议不能适应卫星网络,目前,国内外科学家提出将虚拟拓扑路由算法与OSPF协议结合动态路由协议来提高卫星网络的路由收敛速度。RLSR协议是该类协议的代表,但该协议仍有以下的不足:
[0003] 第一,RLSR协议在故障检测阶段为了实现故障快速检测,检测报文的确认次数仅为一次,虽然能有效的加快故障的检测,但是对于稳定性差的卫星网络来说,这种检测方式不具备动态性且故障的误判率较高。
[0004] 第二,RLSR协议在链路状态通告LSA扩散阶段使用泛洪的方法进行扩散,则会使得卫星网络中的路由开销增大,也会增加网络拥塞的可能性,使得LSA排队时延增大,从而影响网络的路有收敛。
[0005] 第三,RLSR协议在路由表更新时的定时器调度方面仍延用了OSPF协议的指数规避算法。指数规避算法是应用于OSPF协议内部的定时器调度算法,在OSPF协议中,为限制路由表的更新频率,路由器内部会设置两个定时器spfDelay timer和spfHoldTime timer,通过相关算法对两个定时器进行调度,从而达到对多个链路状态通告LSA批量处理的目的。指数规避算法是OSPF协议中应用最多的一种定时器调度算法,该算法可以根据网络的稳定性动态设置定时器的时延,具有较强的适应性。如图1所示指数规避算法将路由器分为四个状态:INIT状态,FIRST LSA状态、SPF状态和SPF HOLD状态。
[0006] 最初,路由器处于INIT状态。在收到第一个新的LSA中,路由器转移到FIRST LSA状态,并启动spfDelay timer,默认5s。在FIRSTLSA状态的路由器收到LSA时不会引起路由表更新,spfDelay结束后,路由器执行路由表更新并启动spfHoldTime timer,同时,路由器转移到SPF状态。spfHoldTime具有预先配置的较小的初始值。如果spfHoldTime期间没有收到任何新的LSA,路由器返回INIT状态,收敛完成。如果路由器在SPF状态接收到一个新的LSA,会导致spfHoldTime值增加一倍,上限为10秒。同时路由器状态转移到SPFHOLD状态,在SPFHOLD状态下接收的LSA不会引起路由表更新。当spfHoldTime结束后,路由器移回SPF状态,执行一次路由表更新并重新启动spfHoldTime计时器,spfHoldTime将被设置一个新的值。重复上述过程直至返回到INI T状态,则收敛完成。
[0007] 指数规算法在开始时spfHoldTime用较小的初始值,一旦拓扑结构变化频繁,spfHoldTime将很快达到其最大值从而有效限制了路由表的更新频率。但由于卫星网络的高动态特性,指数规避算法在用于卫星网络时,spfHoldTime会很快到达极限值,会造成大量时延。而且在指数规避算法中,定时器是作为判断路由表更新的唯一标准,这将产生大量的不必要的时延,例如,当整个网络中只有一个LSA时,假设路由器在0时刻收到该LSA,使用指数规避算法会延迟spfDelay+spfHoldTime的时间,而这个延时是没有必要的,这会影响整个网络的收敛速度。

发明内容

[0008] 针对现有技术存在的上述缺点和不足,本发明提供了一种LEO/MEO卫星网络的路由快速收敛优化方法,减小了卫星网络中故障检测的时间与误判率,降低了网络开销,提高了卫星网络的路由收敛速度。
[0009] 为实现上述目的,本发明提供了一种LEO/MEO卫星网络的路由快速收敛优化方法,包括:
[0010] 动态双向转发检测的步骤;
[0011] 用于MEO/LEO卫星网络的覆盖分簇的步骤;
[0012] 卫星网络故障类型判断的步骤。
[0013] 进一步的,动态双向转发检测的步骤,包括:相关参数设定,具体为:
[0014] 每个节点内部设置两个参数:设邻居节点数量为n,邻居节点的可靠性等级对端链路的可靠性等级 当节点A发生节点故障时,该邻居节点可靠性等级为 当链路A-B发生故障时,节点A,B链路的可靠性等级为
[0015] 节点中会话建立后,网络中的所有节点采用相同的报文发送间隔t,每个节点本端的检测倍数为N,当网络发生故障时,故障的检测时间T=t*N。
[0016] 进一步的,发送检测报文的间隔时间:
[0017]
[0018] 其中K为对端节点可靠性等级与链路可靠性等级的初始值之和, 为对端节点的可靠性等级, 为与对端节点 间的链路可靠性等级,Dd为发送检测报文的时间间隔的初始值,Ds为端到端传输时延;
[0019] 当 时,
[0020] 当 时,N=1;
[0021] 其中Nd为发送报文乘数的初始值, 为节点i与节点j之间链路的可靠性等级,为对端邻居节点的可靠性等级。
[0022] 进一步的,动态双向转发检测的步骤,还包括,基于DBFD实现卫星网络故障的快速检测,具体为:
[0023] 第一步:源端R1发送向对端R2周期性的发送报文以确定A-B链路的连通状态;
[0024] 第二步:对端R2收到P置位的报文,根据源端R1的节点可靠性等级 与R1,R2之间的链路可靠性等级 设置检测报文的时间间隔 检测乘数 发送过程中将确认位K置为1;
[0025] 第三步:源端接收到K置位报文,根据R2的节点可靠性等级 与R1,R2之间的链路可靠性等级 设置检测报文的时间间隔 检测乘数
[0026] 第四步:最终R1与R2通过对端的节点可靠性等级与链路可靠性等级动态设置检测报文的发送间隔与检测乘数。
[0027] 进一步的,用于MEO/LEO卫星网络的覆盖分簇的步骤,包括:
[0028] S1,卫星分类:
[0029] 给定卫星集合S,根据轨道高度,将卫星集合分为两类:M={mi|i=1,2,...,m},表示中轨卫星集合;L={lj|j=1,2,...,n},表示低轨卫星集合;
[0030] S2,确定链路权重:
[0031] 令d(si,sj)表示卫星i与卫星j之间的链路权重,其具体为:
[0032]
[0033] 其中,Uij表示链路e(i,j)的带宽利用率,Dave表示某一时刻卫星网络中所有链路传输时延的平均值,Dij表示链路e(i,j)的时延,Gij表示链路e(i,j)的丢包率;α1,α2,α3为链路权重调节因子,分别用于调节带宽利用率、时延,丢包率对权重的贡献;
[0034] S3,初始簇的划分:
[0035] 遍历集合M,计算被mi覆盖的卫星集合Lmi={lj|lj∈L,ljΛmi},ljΛmi表示LEO卫星lj被MEO卫星mi覆盖; 是以mi为簇首的簇,令 最终得到簇集合
[0036] S4,对重复覆盖节点进行处理;
[0037] S5:对游离节点处理。
[0038] 更进一步的,S4中对重复覆盖节点进行处理的步骤具体为:
[0039] a,遍历集合N,设重复覆盖节点集 表示簇 与 的交集:
[0040] 若 则更新N为
[0041] 若 则更新N为
[0042] 若 设 其中lk∈Lij ;若则更新N为 若 则更新N为 若 则更新N,
[0043] 若 且 遍历Lij分别计算d(mi,lk)与d(mj,lk),其中lk∈Lij;
[0044] 若d(mi,lk)>d(mj,lk),则
[0045] 若d(mi,lk)<d(mj,lk),则
[0046] 若d(mi,lk)=d(mj,lk),设 表示簇 中的元素个数;若 则更新簇为 若 则更新簇 为 若 则更新簇 为

[0047] b,经过上述处理后,集合N中可能会出现元素为空,需要将N中的空元素删除,遍历集合N,若 更新簇集合N为
[0048] 作为更进一步的,S5对游离节点处理具体为:
[0049] 步骤1,设游离节点集 若Ls=φ,分簇完成;
[0050] 步骤2,若Ls≠φ,遍历Ls集合,la∈Ls(a=1,2,...,n),设lk为la的同轨道节点,且根据lk到la跳数由小到大的顺序,依次选择lk;若lk=φ且 则 更新Ls集合为Ls\la;
[0051] 步骤3,若lk=φ,设lv为la的异轨道节点,根据到la跳数由小到大的顺序,依次次选择lv;若 则 更新Ls集合为Ls\la;
[0052] 重复第二、三步,若Ls=φ,则分簇完成。
[0053] 作为更进一步的,卫星网络故障类型判断的步骤,包括:
[0054] (1)故障类型的判断,卫星网络中的故障包括:链路故障和节点故障;
[0055] 链路故障:当链路e(i,j)出现故障时,卫星节点i和j分别产生相应的LSA,网络中的其他节点通过接收并读取两个节点产生的LSA信息来判断出链路e(i,j)出现故障;
[0056] 节点故障:当节点i出现故障时,网络中的其他节点通过接收并读取集合E(i)中所有节点产生的LSA信息来判断节点i出现故障;
[0057] (2)SFTJM减小路由表更新时延。
[0058] 作为更进一步的,SFTJM减小路由表更新时延的步骤为:
[0059] 路由器处于INIT状态,在接受到第一个LSA后,执行路由表更新操作并启动spfDelaytimer,同时路由器转移到Judgement状态;
[0060] 在Judgement状态收到LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障,执行路由表更新操作并关闭spfDelaytimer,路由器状态转移到INIT;如果故障类型为链路故障,或在spfDelay期间无法判断故障类型,路由器状态转移到SPF状态,并开启spfHoldtimer;
[0061] 在SPF状态收到LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障,或spfHoldTime期间没有收到LSA,执行路由表更新操作,关闭spfHoldtimer,将spfHoldTime恢复为默认值,路由器状态转移到INIT状态;如果故障类型为链路故障,执行路由表更新,spfHoldTime增加一倍,路由器状态转移到SPF HOLD状态;
[0062] 在SPF HOLD状态接收LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障,执行路由表更新,关闭spfHoldtimer并恢复spfHoldTime默认值,路由器状态转移到INIT;如果故障类型为链路故障LinkDown,或spfHoldTime超时,路由器状态转移到SPF状态。
[0063] 本发明由于采用以上技术方案,能够取得如下的技术效果:
[0064] (1)减小了卫星网络中故障检测的时间与误判率;
[0065] (2)减小了卫星网络中LSA扩散时的路由开销;
[0066] (3)提高了卫星网络的路由收敛速度;
[0067] 优化后的路由协议更适用于卫星网络。

附图说明

[0068] 本发明共有附图7幅:
[0069] 图1为现有技术使用指数规避算法的节点状态图;
[0070] 图2为初始分簇图;
[0071] 图3为重复覆盖节点处理后的分簇图;
[0072] 图4为游离节点处理后的分簇图;
[0073] 图5为链路故障图;
[0074] 图6为节点故障图;
[0075] 图7为SFTJM的节点状态图。

具体实施方式

[0076] 下面通过实施例,并结合附图,对本发明的技术方案作进一步的具体说明。
[0077] 实施例1
[0078] LEO/MEO卫星网络的路由快速收敛优化方法,包括:动态双向转发检测的步骤,针对RLSR误判率高的问题,提出了动态双向转发检测技术DBFD(Dynamic Bidirectional forwarding Detection),该技术为每条链路和每个节点分配可靠性参数,通过链路与节点在一个卫星网络周期内发生故障的次数设置链路和节点的可靠性,并根据可靠性动态调整端对端报文的发送间隔,使其能够适应卫星网络的高动态特性。
[0079] 1、相关参数设定,具体为:
[0080] 每个节点内部设置两个参数:设邻居节点数量为n,邻居节点的可靠性等级对端链路的可靠性等级 当节点A发生节点故障时,该邻居节点可靠性等级为 当链路A-B发生故障时,节点A,B链路的可靠性等级为
[0081] 节点中会话建立后,网络中的所有节点采用相同的报文发送间隔t,每个节点本端的检测倍数为N,当网络发生故障时,故障的检测时间T=t*N。
[0082] 发送检测报文的间隔时间:
[0083]
[0084] 其中K为对端节点可靠性等级与链路可靠性等级的初始值之和, 为对端节点的可靠性等级, 为与对端节点 间的链路可靠性等级,Dd为发送检测报文的时间间隔的初始值,Ds为端到端传输时延;
[0085] 当 时,
[0086] 当 时,N=1;
[0087] 其中Nd为发送报文乘数的初始值, 为节点i与节点j之间链路的可靠性等级,为对端邻居节点的可靠性等级。
[0088] 2、基于DBFD实现卫星网络故障的快速检测,具体为:
[0089] 第一步:源端R1发送向对端R2周期性的发送报文以确定A-B链路的连通状态,其中时间间隔为t为初始值100ms,检测次数N,初始为3,在发送的报文中将检测标志位P置为1;
[0090] 第二步:对端R2收到P置位的报文,根据源端R1的节点可靠性等级 与R1,R2之间的链路可靠性等级 设置检测报文的时间间隔 检测乘数 发送过程中将确认位K置为1;
[0091] 第三步:源端接收到K置位报文,根据R2的节点可靠性等级 与R1,R2之间的链路可靠性等级 设置检测报文的时间间隔 检测乘数
[0092] 第四步:最终R1与R2通过对端的节点可靠性等级与链路可靠性等级动态设置检测报文的发送间隔与检测乘数。
[0093] 实施例2
[0094] LEO/MEO卫星网络的路由快速收敛优化方法,包括:用于MEO/LEO卫星网络的覆盖分簇的步骤,根据MEO卫星的覆盖范围进行分簇,簇首由MEO卫星担任,然后对重复覆盖节点Coincidence Node与游离节点Free Node进行进一步处理,完成整个分簇过程,该算法限制了LSA扩散的路由跳数,降低了路由开销;
[0095] S1,卫星分类:
[0096] 给定卫星集合S,根据轨道高度,将卫星集合分为两类:M={mi|i=1,2,...,m},表示中轨卫星集合;L={lj|j=1,2,...,n},表示低轨卫星集合;
[0097] e(i,j)表示卫星i与卫星j之间的链路,E(i)表示卫星i邻居节点集合;
[0098] S2,确定链路权重:
[0099] 令d(si,sj)表示卫星i与卫星j之间的链路权重,其具体为:
[0100]
[0101] 其中,Uij表示链路e(i,j)的带宽利用率,Dave表示某一时刻卫星网络中所有链路传输时延的平均值,Dij表示链路e(i,j)的时延,Gij表示链路e(i,j)的丢包率;α1,α2,α3为链路权重调节因子,分别用于调节带宽利用率、时延,丢包率对权重的贡献;
[0102] S3,初始簇的划分:
[0103] 如图2所示,遍历集合M,计算被mi覆盖的卫星集合Lmi={lj|lj∈L,ljΛmi},ljΛmi表示LEO卫星lj被MEO卫星mi覆盖; 是以mi为簇首的簇,令 最终得到簇集合
[0104] S4,对重复覆盖节点进行处理;
[0105] S5:对游离节点处理。
[0106] 实施例3
[0107] 如图3所示,对实施例2作进一步补充,由于簇首的覆盖区域的重合问题,会存在同一颗LEO卫星被多个簇首覆盖的情况,因此需要对重复覆盖节点进一步处理。处理方法如下:
[0108] 第一步,遍历集合N,设重复覆盖节点集 表示簇 与 的交集,
[0109] 若 则更新N为
[0110] 若 则更新N为
[0111] 若 设 其中lk∈Lij。若则更新N为 若 则更新N为 若 则更新N,
[0112] 若 且 遍历Lij分别计算d(mi,lk)与d(mj,lk),其中lk∈Lij。若d(mi,lk)>d(mj,lk),则 若d(mi,lk)<d(mj,lk),则 若d(mi,lk)=d(mj,lk),设 表示簇 中的元素个数。若 则更新簇 为 若
则更新簇 为 若 则更新簇 为 或
[0113] 第二步,经过第一步处理后,集合N中可能会出现元素为空,需要将N中的空元素删除。遍历集合N,若 更新簇集合N为 通过重复覆盖节点处理后簇集合如3图所示。
[0114] 实施例4
[0115] 对实施例2作进一步补充,如图3所示,当MEO卫星无法覆盖全球时,可能会出现LEO卫星游离于MEO卫星的覆盖范围之外,此时需要对游离节点进行进一步处理。处理步骤如下:
[0116] 步骤1,设游离节点集 若Ls=φ,分簇完成;
[0117] 步骤2,若Ls≠φ,遍历Ls集合,la∈Ls(a=1,2,...,n),设lk为la的同轨道节点,且根据lk到la跳数由小到大的顺序,依次选择lk;若lk=φ且 则 更新Ls集合为Ls\la;
[0118] 步骤3,若lk=φ,设lv为la的异轨道节点,根据到la跳数由小到大的顺序,依次次选择lv;若 则 更新Ls集合为Ls\la;
[0119] 重复步骤2、步骤3,若Ls=φ,则分簇完成。游离节点处理后的簇集合如图4所示。
[0120] 实施例5
[0121] LEO/MEO卫星网络的路由快速收敛优化方法,包括:卫星网络故障类型判断的步骤,在路由表更新阶段,提出一种新的卫星网络故障类型判断算法SFTJM(Satellite Network Fault Type Judging Method),优化传统定时器调度算法,该算法在指数规避算法中加入故障类型判断机制,使网络的故障类型作为判断路由表是否更新的标准之一。
[0122] (1)故障类型的判断,卫星网络中的故障包括:链路故障LinkDown和节点故障NodeDown;
[0123] 链路故障:当链路e(i,j)出现故障时,卫星节点i和j分别产生相应的LSA,网络中的其他节点通过接收并读取两个节点产生的LSA信息来判断出链路e(i,j)出现故障;
[0124] 以图5为例,E点为路由更新节点,当A-B间链路断开时,节点A、B会分别产生描述A-B间链路状态的LSA。当节点E收到来自节点A、B的两个LSA时,即可判断故障类型为A-B间的链路故障。
[0125] 节点故障:当节点i出现故障时,网络中的其他节点通过接收并读取集合E(i)中所有节点产生的LSA信息来判断节点i出现故障;
[0126] 以图6为例,当节点A发生故障时,A与所有邻居节点的链路断开,即除节点A之外,所有的邻居节点都会产生描述自身与节点A链路状态的LSA,E节点只能收到来自节点B、C、D的LSA,无法接收节点A的LSA,依此判断故障类型为节点A的故障。
[0127] (2)SFTJM减小路由表更新时延,构建用于判断故障类型的Judge()函数,若发生链路故障,则Judge()返回数字1。若发生节点故障,则Judge()返回2。若无法判断故障类型,则返回0。SFTJM算法核心是在指数规避算法中加入Judge()函数,使网络的故障类型作为判断路由表是否更新的标准之一。SFTJM的节点状态如图7所示。
[0128] 作为进一步改进的,SFTJM减小路由表更新时延的步骤为:
[0129] 路由器处于INIT状态,在接受到第一个LSA后,执行路由表更新操作Perform SPF并启动spfDelaytimer,同时路由器转移到Judgement状态;
[0130] 在Judgement状态收到LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障NodeDown,执行路由表更新操作Perform SPF并关闭spfDelaytimer,路由器状态转移到INIT;如果故障类型为链路故障LinkDown,或在spfDelay期间无法判断故障类型,路由器状态转移到SPF状态,并开启spfHoldtimer;
[0131] 在SPF状态收到LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障NodeDown,或spfHoldTime期间没有收到LSA,执行路由表更新操作Perform SPF,关闭spfHoldtimer,将spfHoldTime恢复为默认值,路由器状态转移到INIT状态;如果故障类型为链路故障LinkDown,执行路由表更新,spfHoldTime增加一倍,上限10s,路由器状态转移到SPF HOLD状态;
[0132] 在SPF HOLD状态接收LSA时,路由器通过Judge()函数判断故障类型,如果故障类型为节点故障NodeDown,执行路由表更新Perform SPF,关闭spfHoldtimer并恢复spfHoldTime默认值,路由器状态转移到INIT;如果故障类型为链路故障LinkDown,或spfHoldTime超时,路由器状态转移到SPF状态。
[0133] 本发明针对卫星网络传输时延大、拓扑结构高动态特性导致路由收敛慢的问题,提出一种LEO/MEO卫星网络的路由快速收敛优化方法。在具体实施时,可将优化后协议放在卫星节点上,在故障检测阶段,通过DBFD技术实现故障快速检测并减小检测过程中的误判率;在LSA扩散阶段,通过覆盖式网络分簇减少路由开销和排队时延;在路由表更新阶段,通过SFTJM,减少路由表更新时延,最终实现整个网络的快速收敛。
[0134] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。