一种基于XGBoost的路由算法关键故障点识别方法技术

技术编号:36428119 阅读:8 留言:0更新日期:2023-01-20 22:39
本发明专利技术公开了一种基于XGBoost的路由算法关键故障点识别方法,步骤如下:初步建立故障模型;对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;结合故障点特征改进目标路由算法故障模型,同时构建样本数据集;构建并训练基于XGBoost的故障类型预测模型;根据模型预测结果对路由算法源程序中故障点发生软错误导致的故障类型自动分类,识别关键故障点。本发明专利技术给出了一种目标路由算法在单粒子效应影响下的故障预测方法,并可根据预测结果对程序中的故障点自动进行故障类型分类,识别出关键故障点,可为目标路由算法的可靠性加固策略提供指导,并可提供有针对性的软加固方法。应用本发明专利技术方法可提高网络的可靠性。的可靠性。的可靠性。

【技术实现步骤摘要】
一种基于XGBoost的路由算法关键故障点识别方法


[0001]本专利技术属于软加固和可信软件领域,具体涉及一种基于XGBoost的路由算法关键故障点识别方法。

技术介绍

[0002]路由器作为天基网络移动通信的重要组成部分,其功能为连通不同的网络,通过选择通畅快捷的传输路径提高通信速度,以减轻网络系统的数据传输负荷,节约网络系统资源,提高网络系统的通信效率,从而让其发挥出更大的效益。选择最佳传输路径的策略与路由算法是路由器的关键技术,路由算法决定去往目的节点的最佳路径。分为静态路由算法和动态路由算法,动态路由算法可以很好的适应网络的拓扑变化或者链路的状态变化,常用于大型和复杂的网路环境中,能改善网络的性能并有助于流量控制。动态路由算法作为网络系统运行的关键程序,需要高水平的可靠性技术来加固,以降低故障率。然而,现代微处理器和存储器件已被证明极易受到太阳辐射等强干扰引起的软错误的影响,导致网络故障和数据损坏。如我国发射的“风云一号”气象卫星由于发生瞬时故障导致提前退役;我国“萤火一号”探测卫星发生瞬时故障,导致探测任务失败。因此,这类不可靠因素将影响辐射环境中路由器中执行的动态路由选择程序,如美国的Telstar401卫星,由于辐射问题导致损坏,致使北美地区通讯大面积中断,造成严重影响。
[0003]在太空辐射环境中,因为空间辐射或高能粒子撞击,使计算机系统中的硬件部分如半导体数字电路等受到干扰,这种现象称为单粒子效应。它的具体表现有单粒子翻转(SEU,Single Event Upset)等,SEU属于一种瞬时故障,是由于高能带电粒子对微电子设备(微处理器、半导体存储器、功率晶体管等)的敏感节点进行轰击,使得这些信息逻辑位上发生单位翻转的物理现象,也被称为软错误。软错误所触发的瞬时故障会对运行在计算机硬件上的软件带来不可忽视的影响,比如造成程序陷入死循环、程序崩溃、程序输出结果错误等影响。
[0004]识别应用程序的关键故障点可通过软件故障注入的方式,穷举故障注入技术能够识别出程序中几乎所有的关键故障点,却带来无法估量的开销问题。为了减少故障注入的开销,已有的研究工作大多使用故障点修剪或者错误传播建模的方法。如University of British Columbia的Li等人通过基于对程序中错误传播规律的研究构建一个三级模型TRIDENT,在无需故障注入的情况下预测给定程序的总体SDC概率和单个指令的SDC概率。University ofFlorida的Xin Fu等人通过研究微体系结构组件在其运行时表现出的时变行为,使用基于代码结构和基于运行时事件的方法来预测程序的可靠性。Northeastern University的Fritz等人提出了一种故障注入方法PCFI(program counter(PC)guided fault injection),利用基于软错误影响指令的程序计数器的故障注入结果的可预测性来减少故障注入活动的次数,在不牺牲准确性的情况下将故障注入活动的时间缩短了22%。College ofWilliam&Mary的B.Nie等人提出了一种逐步修剪故障站点空间的系统方法,通过识别线程集中代码块之间的动态指令公共性、代表性线程中循环迭代的子集以及目标寄
存器位位置的子集,实现故障点的修剪,从而减少所需要的故障注入的次数。上述方法减少了故障注入的开销,但这一过程难以实现自动化且缺少对应用程序特征的分析。
[0005]关键故障点的预测可通过分析程序的SDC脆弱性得到,静默数据损坏(Silent Data Corruption,SDC)错误是具有危害性的软错误类型之一,导致程序发生SDC错误的故障位置视为关键故障点。基于机器学习的SDC脆弱性预测方法通过提取目标程序的相关特征来训练模型,从而达到识别程序关键故障点的目的。如University ofBritish Columbia的Lu等人提出了一种经验模型SDCTune,模型首先提取程序中指令的编译时静态特征,然后通过决策回归树和程序分析方法来预测程序中指令的SDC脆弱性。东南大学的YANG等人提出了一种基于支持向量机的方法PVInsiden,该方法通过机器学习训练检测器,能够识别出SDC脆弱性高的指令。基于机器学习的方法通常可较为准确地预测指令的脆弱性。现有研究中基于机器学习的SDC预测方法,很少针对特定应用程序工作。现有研究在特征提取方面没有考虑应用程序的特有特征,因此预测结果不具有针对性。
[0006]综上所述,目前广泛采用故障注入的方法识别程序关键故障点,改进技术大多采用故障点修剪或者错误传播建模的方式。虽然可减少开销,但难以使这一过程实现自动化。而基于机器学习的程序SDC脆弱性预测方法又难以直接分析特定应用程序的执行特征,模型的输入特征提取不具有针对性,无法很好得适用于天基网络中的路由机制。

技术实现思路

[0007]本专利技术所解决的技术问题在于针对上述现有技术存在的问题,通过分析目标路由算法的执行过程,建立故障模型;给出了提取程序指令执行的固有特征和目标路由算法的特有特征的方法;提出了一种基于XGBoost的关键故障点识别方法,无需采用穷举故障注入的方式,可自动识别出目标路由算法的关键故障点,进而可用于指导高效的路由软加固策略。尤其是针对太空辐射致路由机制发生软错误导致的故障问题,应用本专利技术可提高路由机制的可靠性。
[0008]实现本专利技术目标的技术解决方案为:一种基于XGBoost的路由算法关键故障点识别方法,能有效地对辐射环境下受到单粒子翻转影响的路由程序进行关键故障点预测,包括如下步骤:
[0009]步骤1,划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
[0010]步骤2,对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
[0011]步骤3,根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
[0012]步骤4,构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
[0013]步骤5,根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
[0014]基于XGBoost的路由算法关键故障点识别系统,所述系统包括:
[0015]第一模块,用于划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建
立初步故障模型;
[0016]第二模块,用于对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
[0017]第三模块,用于根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
[0018]第四模块,用于构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
[0019]第五模块,用于根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于XGBoost的路由算法关键故障点识别方法,其特征在于,包括如下步骤:步骤1,划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;步骤2,对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;步骤3,根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;步骤4,构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;步骤5,根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。2.根据权利要求1所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤1中初步故障模型的构建方法如下:步骤1.1,根据动态路由协议的执行流程,将目标路由算法逻辑上划分为收集动态拓扑信息、构建目标网络、更新路由信息、形成路由表四个阶段;收集动态拓扑信息阶段:步骤1.2,收集动态拓扑信息,节点之间互相发送状态信息,直接相连节点之间连接权值为w
ij
;构建目标网络阶段:步骤1.3,构建目标网络,该网络由图模型G={N,S}表示,其中描述网络中的节点集合为N={1,2,

,M},M为节点的数目,描述边的集合为S={x
ij
,i,j∈N},边代表节点之间的链路,用邻接矩阵和权矩阵构建目标网络,邻接矩阵A
G
为包含图中连接信息的二维矩阵,对于模型G,构造M
×
M阶邻接矩阵A
G
=(a
ij
),其元素生成方式如下式:式中,A
G
表示目标网络的邻接矩阵,a
ij
表示网络中节点i和节点j的连接状态,x
ij
为描述边的集合S中的元素,如果节点i和节点j相连,则对应状态值a
ij
为1,否则对应状态值a
ij
为0;进一步,构建权矩阵W
G
,这是一个包含节点之间连接权重的二维矩阵,根据第一阶段收集的动态拓扑信息,构造M
×
M阶矩阵W
G
=(a
ij
),其元素生成方式如下式:式中,a
ij
进一步表示为加入连接权重后的节点i和节点j的连接状态,如果节点i和节点j相连接,则对应的值a
ij
为权重w
ij
;如果是同一个节点,则对应的值a
ij
为0;如果节点i和节点j无相连,则对应的值a
ij
为∞;更新路由信息阶段:步骤1.4,更新路由信息,运行最短路径算法Dijkstra,根据构建目标网络阶段生成的权矩阵W
G
=(a
ij
),节点之间的路径度量值由连接权重w
ij
给出,计算网络中节点之间的最短
路径,节点集合N中任一节点n,到其余节点的最短路径表示为下式:D
n
={d1,d2,

,d
m
},(1,2,

,n,

,m)∈N式中,D
n
表示节点n与网络节点集合N中其余节点的最短路径的集合,集合中的元素d1,d2,

,d
m
分别表示节点n与其余节点1,节点2,

,节点m间的最短路径;形成路由表阶段:步骤1.5,形成路由表,根据更新路由信息阶段计算出的节点之间的最短路径,为当前节点到网络中其余节点的传输路径生成路由信息,对于节点n,路由表中包含自身到节点集合N中的其余节点的路径与下一跳信息,表示为:R
n
={D
n
,n'}|(n,n')∈N式中,R
n
表示节点n形成的路由表,包含最短路径集合D
n
和下一跳节点n';步骤1.6,在目标路由算法运行时引入瞬时故障,根据收集的运行信息,构建目标路由算法的故障模型;根据单粒子效应发生在目标路由算法的不同阶段,以及故障发生时对输出结果的影响,初步构建的目标路由算法的故障模型M
fault
表示为:式中,F
point
表示程序中受辐射影响的位置,分别由和表示故障位置对应目标路由算法的不同阶段f,point_i表示对应阶段的具体故障点,R表示故障发生时,对每一阶段输出结果的影响,初步表示为输出结果错误error和输出结果正确correct。3.根据权利要求2所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤2中故障点特征,对应于步骤1中初步构建的故障模型M
fault
中的point_i,特征提取方法如下:在指令级引入瞬时故障,对于目标路由算法的每一阶段动态执行的指令序列I
ins
中包含的其中第j条指令,故障点的特征表示方法如下式:point_i=<ins
j
,ins
type
,storage
name
,bit
i
>式中,ins
j
表示阶段f中某一阶段的第j条指令,ins
type
表示该指令的指令类型,storage
name
表示指令操作数的存储单元,具体为指令操作涉及的寄存器或内存,bit
i
表示位翻转发生在相应的存储单元中的第i位,即指令操作数的寄存器的第i位或某一内存单元地址i;根据故障点的表示方法point_i提取下列信息:故障点特征指令类型F
type
、翻转位位置F
bit

pos
、翻转方向F
bit

flip
、存储单元名称F
storage
,构建故障点特征向量的算法如下:步骤2.1,构建如下式所示的目标路由算法故障点的指令类型向量F
type
;F
ytpe
=<add,cmp,leave,mov,pop,store,test,xor>根据源程序所包含的静态指令集合,有add,cmp,leave,mov,pop,store,test和xor8种类型,故障点发生软错误时相对应指令类型取值为1,否则为0,对应于步骤1.5公式中故障点point_i中的ins
type
;步骤2.2,构建如下式所示的故障点的存储单元类型特征向量F
storage
;F
storage
=<regname,memory>其中,regname表示指令操作数为寄存器时对应的寄存器名称,memory为指令操作数为内存单元时对应的内存地址,F
storage
对应于步骤1.5公式中故障点point_i中的storage
name
;步骤2.3,构建如下式所示的故障点的翻转位特征向量F
bit

F
bit
=<bit
i
,bit
flip
>|i∈[1,n],bit
flip
={0,1}其中,翻转位特征F
bit
由翻转位位置bit
i
和翻转方向bit
flip
构成,bit
i
为存储单元的第i位发生翻转,当指令操作数的存储单元为通信接口中的寄存器时,n为该寄存器的总位数;bit
flip
为发生单位翻转的位翻转方向,分为0

1和1

0,当翻转方向为1

0,该特征取值为1;否则为0,对应于步骤1.5公式中故障点point_i中的bit。4.根据权利要求3所述的基于XGBoost的路由算法关键故障点识别方法,其特...

【专利技术属性】
技术研发人员:庄毅李想顾晶晶乔恭哲
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1