CN115630367A - 一种基于XGBoost的路由算法关键故障点识别方法 - Google Patents

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

Info

Publication number
CN115630367A
CN115630367A CN202211279577.1A CN202211279577A CN115630367A CN 115630367 A CN115630367 A CN 115630367A CN 202211279577 A CN202211279577 A CN 202211279577A CN 115630367 A CN115630367 A CN 115630367A
Authority
CN
China
Prior art keywords
fault
point
routing algorithm
model
program
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.)
Pending
Application number
CN202211279577.1A
Other languages
English (en)
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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202211279577.1A priority Critical patent/CN115630367A/zh
Publication of CN115630367A publication Critical patent/CN115630367A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

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

Description

一种基于XGBoost的路由算法关键故障点识别方法
技术领域
本发明属于软加固和可信软件领域,具体涉及一种基于XGBoost的路由算法关键故障点识别方法。
背景技术
路由器作为天基网络移动通信的重要组成部分,其功能为连通不同的网络,通过选择通畅快捷的传输路径提高通信速度,以减轻网络系统的数据传输负荷,节约网络系统资源,提高网络系统的通信效率,从而让其发挥出更大的效益。选择最佳传输路径的策略与路由算法是路由器的关键技术,路由算法决定去往目的节点的最佳路径。分为静态路由算法和动态路由算法,动态路由算法可以很好的适应网络的拓扑变化或者链路的状态变化,常用于大型和复杂的网路环境中,能改善网络的性能并有助于流量控制。动态路由算法作为网络系统运行的关键程序,需要高水平的可靠性技术来加固,以降低故障率。然而,现代微处理器和存储器件已被证明极易受到太阳辐射等强干扰引起的软错误的影响,导致网络故障和数据损坏。如我国发射的“风云一号”气象卫星由于发生瞬时故障导致提前退役;我国“萤火一号”探测卫星发生瞬时故障,导致探测任务失败。因此,这类不可靠因素将影响辐射环境中路由器中执行的动态路由选择程序,如美国的Telstar401卫星,由于辐射问题导致损坏,致使北美地区通讯大面积中断,造成严重影响。
在太空辐射环境中,因为空间辐射或高能粒子撞击,使计算机系统中的硬件部分如半导体数字电路等受到干扰,这种现象称为单粒子效应。它的具体表现有单粒子翻转(SEU,Single Event Upset)等,SEU属于一种瞬时故障,是由于高能带电粒子对微电子设备(微处理器、半导体存储器、功率晶体管等)的敏感节点进行轰击,使得这些信息逻辑位上发生单位翻转的物理现象,也被称为软错误。软错误所触发的瞬时故障会对运行在计算机硬件上的软件带来不可忽视的影响,比如造成程序陷入死循环、程序崩溃、程序输出结果错误等影响。
识别应用程序的关键故障点可通过软件故障注入的方式,穷举故障注入技术能够识别出程序中几乎所有的关键故障点,却带来无法估量的开销问题。为了减少故障注入的开销,已有的研究工作大多使用故障点修剪或者错误传播建模的方法。如University ofBritish Columbia的Li等人通过基于对程序中错误传播规律的研究构建一个三级模型TRIDENT,在无需故障注入的情况下预测给定程序的总体SDC概率和单个指令的SDC概率。University ofFlorida的Xin Fu等人通过研究微体系结构组件在其运行时表现出的时变行为,使用基于代码结构和基于运行时事件的方法来预测程序的可靠性。NortheasternUniversity的Fritz等人提出了一种故障注入方法PCFI(program counter(PC)guidedfault injection),利用基于软错误影响指令的程序计数器的故障注入结果的可预测性来减少故障注入活动的次数,在不牺牲准确性的情况下将故障注入活动的时间缩短了22%。College ofWilliam&Mary的B.Nie等人提出了一种逐步修剪故障站点空间的系统方法,通过识别线程集中代码块之间的动态指令公共性、代表性线程中循环迭代的子集以及目标寄存器位位置的子集,实现故障点的修剪,从而减少所需要的故障注入的次数。上述方法减少了故障注入的开销,但这一过程难以实现自动化且缺少对应用程序特征的分析。
关键故障点的预测可通过分析程序的SDC脆弱性得到,静默数据损坏(SilentData Corruption,SDC)错误是具有危害性的软错误类型之一,导致程序发生SDC错误的故障位置视为关键故障点。基于机器学习的SDC脆弱性预测方法通过提取目标程序的相关特征来训练模型,从而达到识别程序关键故障点的目的。如University ofBritish Columbia的Lu等人提出了一种经验模型SDCTune,模型首先提取程序中指令的编译时静态特征,然后通过决策回归树和程序分析方法来预测程序中指令的SDC脆弱性。东南大学的YANG等人提出了一种基于支持向量机的方法PVInsiden,该方法通过机器学习训练检测器,能够识别出SDC脆弱性高的指令。基于机器学习的方法通常可较为准确地预测指令的脆弱性。现有研究中基于机器学习的SDC预测方法,很少针对特定应用程序工作。现有研究在特征提取方面没有考虑应用程序的特有特征,因此预测结果不具有针对性。
综上所述,目前广泛采用故障注入的方法识别程序关键故障点,改进技术大多采用故障点修剪或者错误传播建模的方式。虽然可减少开销,但难以使这一过程实现自动化。而基于机器学习的程序SDC脆弱性预测方法又难以直接分析特定应用程序的执行特征,模型的输入特征提取不具有针对性,无法很好得适用于天基网络中的路由机制。
发明内容
本发明所解决的技术问题在于针对上述现有技术存在的问题,通过分析目标路由算法的执行过程,建立故障模型;给出了提取程序指令执行的固有特征和目标路由算法的特有特征的方法;提出了一种基于XGBoost的关键故障点识别方法,无需采用穷举故障注入的方式,可自动识别出目标路由算法的关键故障点,进而可用于指导高效的路由软加固策略。尤其是针对太空辐射致路由机制发生软错误导致的故障问题,应用本发明可提高路由机制的可靠性。
实现本发明目标的技术解决方案为:一种基于XGBoost的路由算法关键故障点识别方法,能有效地对辐射环境下受到单粒子翻转影响的路由程序进行关键故障点预测,包括如下步骤:
步骤1,划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
步骤2,对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
步骤3,根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
步骤4,构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
步骤5,根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
基于XGBoost的路由算法关键故障点识别系统,所述系统包括:
第一模块,用于划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
第二模块,用于对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
第三模块,用于根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
第四模块,用于构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
第五模块,用于根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
本发明与现有技术相比,其显著优点为:
1)故障模型的构建结合了目标路由算法的特有特征,使得故障模型更具有针对性。
2)通过构建的故障模型来提取目标路由算法故障点特征,训练出的故障类型预测模型相较于其他方法具有更高的预测准确率。
3)提出了基于XGBoost的路由算法关键故障点识别方法,相较于穷举故障注入的方式,能够减少故障注入的次数以识别程序的关键故障点,提高评估目标路由算法的可靠性。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为本发明基于XGBoost的关键故障点识别方法的流程图。
图2为本发明的方法与随机故障注入实验的耗时比较结果图。
图3为本发明的方法与其他方法的性能对比实验结果图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
在一个实施例中,结合图1,本发明提供了一种基于XGBoost的路由算法关键故障点识别方法。包括如下步骤:
步骤1,划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,初步建立故障模型,具体实施方法如下:
步骤1.1,根据动态路由协议的执行流程,将目标路由算法逻辑上划分为收集动态拓扑信息,构建目标网络,更新路由信息,形成路由表四个阶段;
收集动态拓扑信息阶段:
步骤1.2,收集动态拓扑信息,节点之间互相发送状态信息,直接相连节点之间连接权值为wij
构建目标网络阶段:
步骤1.3,构建目标网络,网络由图模型G={N,S}表示,其中描述网络中的节点集合为N={1,2,…,M},描述边的集合为S={xij,i,j∈N},边代表节点之间的链路,用邻接矩阵和权矩阵构建目标网络,邻接矩阵AG为包含图中连接信息的二维矩阵,对于模型G,构造M×M阶邻接矩阵AG=(aij),其元素生成方式如式(1):
Figure BDA0003898114590000051
式(1)中,AG表示目标网络的邻接矩阵,aij表示网络中节点i和节点j的连接状态,xij为描述边的集合S中的元素,如果节点i和节点j相连,则对应状态值为1,否则,对应状态值为0;进一步,构建权矩阵WG,这是一个包含节点之间连接权重的二维矩阵,根据第一阶段收集的动态拓扑信息,构造M×M阶矩阵WG=(aij),其元素生成方式如式(2):
Figure BDA0003898114590000052
式(2)中,aij进一步表示为加入连接权重后的节点i和节点j的连接状态,如果节点i和节点j相连接,则对应的值为权重wij;如果是同一个节点,则对应值为0;如果节点i和节点j无相连,系数为∞;
更新路由信息阶段:
步骤1.4,更新路由信息,运行最短路径算法Dijkstra,根据构建目标网络阶段生成的权矩阵WG=(aij),节点之间的路径度量值由连接权重wij给出,计算网络中节点之间的最短路径,节点集合N中任一节点n,到其余节点的最短路径表示为式(3):
Dn={d1,d2,…,dm},(1,2,…,n,…,m)∈N#(3)
式(3)中,Dn表示节点n与网络节点集N中其余节点的最短路径的集合,集合中的元素d1,d2,…,dm分别表示节点n与其余节点(1,2,…,m)间的最短路径;
形成路由表阶段:
步骤1.5,形成路由表,根据更新路由信息阶段计算出节点之间的最短路径,为当前节点到网络中其余节点的传输路径生成路由信息,对于节点n,路由表中包含自身到节点集合N中的其余节点的路径与下一跳信息,表示为式(4):
Rn={Dn,n'}|(n,n')∈N(4)
式(4)中,Rn表示节点n形成的路由表,包含最短路径集合Dn和下一跳节点n';
步骤1.6,在目标路由算法运行时引入瞬时故障,根据收集的运行信息,构建目标路由算法的故障模型;根据单粒子效应发生在目标路由算法的不同阶段,以及故障发生时对输出结果的影响,初步构建的目标路由算法的故障模型Mfault表示为式(5):
Figure BDA0003898114590000061
式(5)中,Fpoint表示程序中受辐射影响的位置,分别由
Figure BDA0003898114590000062
Figure BDA0003898114590000063
表示故障位置对应目标路由算法的不同阶段f,point_i表示对应阶段的具体故障点,R表示故障发生时,对每一阶段输出结果的影响,初步表示为error(输出结果错误)和correct(输出结果正确);
步骤2,对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点相关特征,具体实施方法如下:
根据单粒子效应对存储单元产生的影响,分析其在程序执行过程中的表现形式,在指令级引入瞬时故障,对于目标路由算法的每一阶段动态执行的指令序列Iins中包含的其中第j条指令,故障点的特征表示方法如式(6):
point_i=<insj,instype,storagename,bit>#(6)
式(6)中,insuj表示阶段f中某一阶段的第j条指令,instype表示该指令的指令类型,storagename表示指令操作数的存储单元,具体为指令操作涉及的寄存器或内存,biti表示位翻转发生在相应的存储单元中的第i位,即指令操作数的寄存器的第i位或某一内存单元地址i;根据故障点的表示方法point_i提取下列信息:故障点特征Ftype(指令类型)、Fbit-pos(翻转位位置)、Fbit-flip(翻转方向)、Fstorage(存储单元名称),构建故障点特征向量的算法如下:
步骤2.1,构建如式(7)所示的目标路由算法故障点的指令类型向量Ftype
Ftype=<add,cmp,leave,mov,pop,store,test,xor>#(7)
根据源程序所包含的静态指令集合,有add,cmp,leave,mov,pop,store,test和xor8种类型,故障点发生软错误时相对应指令类型取值为1,否则为0,对应于式(4)中故障点point_i中的instype
步骤2.2,构建如式(8)所示的故障点的存储单元类型特征向量Fstorage
Fstorage=<regname,memory>#(8)
其中,regname表示指令操作数为寄存器时对应的寄存器名称,memory为指令操作数为内存单元时对应的内存地址,Fstorage对应于式(4)中故障点point_i中的storagename
步骤2.3,构建如式(9)所示的故障点的翻转位特征向量Fbit
Fbit=<biti,bitflip>|i∈[1,n],bitflip={0,1}#(9)其中,翻转位特征Fbit由翻转位位置biti和翻转方向bitflip构成,biti为存储单元的第i位发生翻转,当指令操作数的存储单元为通信接口中的寄存器时,n为该寄存器的总位数;bitflip为发生单位翻转的位翻转方向,分为0→1和1→0,当翻转方向为1→0,该特征取值为1;否则为0,对应于式(4)中故障点point_i中的bit。
步骤3,根据故障点特征改进完善目标路由算法故障模型,结合程序输出结果构建样本数据集,具体实施方法如下:
根据故障点特征修改后重构的故障模型如式(10)所示:
Figure BDA0003898114590000071
式(10)中,故障模型Mfault由故障点集合以及对应故障类型集合构成,Fpoint为故障点集合,由目标路由算法的不同阶段f和阶段中的故障点特征point_i的笛卡尔积得到,R为故障点发生单位翻转时的故障类型集合,根据软错误发生时对程序输出结果的影响,将故障类型分为error,masked,sdc(Silent Data Corruption)三种;error表示程序因运行崩溃或挂起没有输出结果这类显式故障;masked表示软错误在程序中被屏蔽,对输出结果没有产生影响这类暂时可忽略的潜在故障;数据静默损坏sdc(Silent Data Corruption)表示程序的输出结果与黄金输出不一致这类隐式故障;
步骤4,构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型自动进行分类,具体实施方法如下:
步骤4.1,构建基于故障模型的目标路由算法故障点特征向量;
步骤4.1.1,根据步骤3建立的故障模型Mfault,由故障点信息point_i构建如式(12)所示的目标路由算法故障点位置特征Vpoint-pos
Figure BDA0003898114590000081
其中,Vins_type、Vstorage和Vbit分别对应于point_i中的Ftype,Fstorage和Fbit
步骤4.1.2,根据步骤3建立的故障模型Mfault,将故障点位于的执行阶段f进一步具体表示为式(13):
f=<fi,ni>,i∈{1,2,3,4}#(13)
其中,用i表示f中包含的四个阶段,ni为每一阶段包含的指令数量;
步骤4.1.3,遍历样本数据集,根据故障注入后程序的输出结果集合R中的元素,定义标签Lg,g=1,2,…,m,m为数据集样本总数量,Lg表示第g个样本的标签值,代表该故障点样本所对应的故障类型;Lg表示为式(14):
Figure BDA0003898114590000082
步骤4.1.4,根据式(13)~(14)分别计算f中各阶段对程序输出结果的影响ω;设集合S1,S2,根据样本数据集中Lg的取值划分S1(Lg=1)和S2(Lg=0),|S1|和|S2|分别表示S1和S2中样本数量;对于样本数据集中第g个样本,得到所对应的执行阶段f以及该阶段包含的指令总数n;设故障点位于的阶段对程序输出结果的影响为ω,计算方法见式(15):
Figure BDA0003898114590000083
其中,|S1|和|S2|分别为整个样本数据集中根据标签值Lg划分后各自所包含的样本数量,
Figure BDA0003898114590000093
为阶段fi划分后每一阶段包含标签值Lg=1的样本数量;
Figure BDA0003898114590000094
为该阶段指令序列包含的指令数量,|nf|为路由算法可执行程序包含的指令总数;
步骤4.1.5,根据式(12)、式(15)构建故障点特征向量Vpoint,表示为式(16):
Vpoint=<point-pos,ω>#(16)
其中,Vpoint-pos为故障点位置特征,ω为该故障位置对程序输出结果的影响。
步骤4.2,构建并训练基于XGBoost(eXtreme Gradient Boosting)的故障类型预测模型;
步骤4.2.1,根据步骤5.1构建的特征向量,构建如式(18)所示数据集Tset,其中xi表示第i条训练样本的特征向量Vi,yi表示第i条训练样本的标签值Lg
Figure BDA0003898114590000091
步骤4.2.2,根据式(19)对故障点发生软错误时导致的故障类型进行预测;
对于故障点特征向量Vpoint,分别以样本标签Lg取值为0和Lg取值为1建立两棵分类决策树,对应的预测函数为fcorrect(g)和fsdc(g),fcorrect(g)的计算方法见式(19):
Figure BDA0003898114590000092
其中,依次选取特征向量Vpoint的特征取值,R1表示数据集Tset中符合该特征取值的样本集合,R2为剩余样本集合,x表示集合中任一样本,Lg(0)和Lg(1)分别表示R1和R2中该样本所对应标签值Lg=0和Lg=1出现次数的均值,I(g∈R1)和I(g∈R2)分别表示出现的次数;
步骤4.2.3,根据式(20)计算故障类型为sdc的概率;
根据建立的两棵分类决策树对样本g的预测值分别为fcorrect(g)和fsdc(g),则样本g属于sdc的概率psdc为式(20)所示:
Figure BDA0003898114590000101
步骤4.2.4,根据预测函数训练基于XGBoost的故障类型预测模型;
XGBoost(eXtreme GradientBoosting)通过拟合残差来提升弱分类器的思想,针对标签值类别求出残差Lg(1)'=1-psdc和Lg(0)'=1-pcorrect,开始第二轮训练,针对标签值为1的输入分别为(Fg,Lg(1)'),(Fg,Lg(0)')得到第二轮的预测函数
Figure BDA0003898114590000106
不断拟合残差得到最终的预测模型,如式(21)所示:
Figure BDA0003898114590000102
其中,
Figure BDA0003898114590000103
为第m轮训练得到的预测函数,M为迭代的次数;预测概率Psdc(Lg=1|g)为模型对输入特征向量V的预测结果为Lg=1的概率;
步骤5,根据模型预测结果对源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点,具体实施方法如下:
步骤5.1,根据故障预测结果对源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点,识别函数见式(22):
Figure BDA0003898114590000104
其中,根据步骤3故障模型中的故障点表示方法Fpoint,fpoint_i为Fpoint中的一个故障点,
Figure BDA0003898114590000105
为步骤4.2.3中对故障点fpoint_i导致的故障类型对程序运行产生sdc的预测概率;根据步骤4.2.3得到的预测函数Psdc,计算目标路由算法发生单位翻转时的故障结果概率;
步骤5.2,根据Kpoint的值来判断是否为关键故障点,当Kpoint的值大于阈值时,将被识别为关键故障点。
在一个实施例中,提供了一种基于XGBoost的路由算法关键故障点识别系统,所述系统包括:
第一模块,用于划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
第二模块,用于对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
第三模块,用于根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
第四模块,用于构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
第五模块,用于根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
关于基于XGBoost的路由算法关键故障点识别系统的具体限定可以参见上文中对于基于XGBoost的路由算法关键故障点识别方法的限定,在此不再赘述。上述基于XGBoost的路由算法关键故障点识别系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤1,划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
步骤2,对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
步骤3,根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
步骤4,构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
步骤5,根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
关于每一步的具体限定可以参见上文中对于基于XGBoost的路由算法关键故障点识别方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤1,划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
步骤2,对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
步骤3,根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
步骤4,构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
步骤5,根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
关于每一步的具体限定可以参见上文中对于基于XGBoost的路由算法关键故障点识别方法的限定,在此不再赘述。
本发明的方法在训练好故障类型预测模型后,可自动预测出程序中的故障点发生软错误时对应的程序故障类型,而无需进行大量的故障注入时间,与随机故障注入耗时比较如图2所示,本发明的方法预测故障类型耗时远小于随机故障注入实验。
使用accuray(准确率)、recall(召回率)、f1_score和presicion(精确率)量化关键故障点预测模型的性能指标,对比方法为支持向量机SVM,随机森林random forest,如图3所示,本发明的方法优于其他方法。
综上,本发明提出的一种基于XGBoost的关键故障点识别方法主要思想是针对准确评估路由程序对软错误的恢复力,由于穷举故障点需要大量的资源和时间消耗,我们采用提取能够表征程序恢复力的特征,利用这些启发式特征,驱动基于机器学习的模型来揭示故障点恢复力和特征之间的关系,为实现高效的检测及加固方法提供有效支持。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于XGBoost的路由算法关键故障点识别方法,其特征在于,包括如下步骤:
步骤1,划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
步骤2,对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
步骤3,根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
步骤4,构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
步骤5,根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
2.根据权利要求1所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤1中初步故障模型的构建方法如下:
步骤1.1,根据动态路由协议的执行流程,将目标路由算法逻辑上划分为收集动态拓扑信息、构建目标网络、更新路由信息、形成路由表四个阶段;
收集动态拓扑信息阶段:
步骤1.2,收集动态拓扑信息,节点之间互相发送状态信息,直接相连节点之间连接权值为wij
构建目标网络阶段:
步骤1.3,构建目标网络,该网络由图模型G={N,S}表示,其中描述网络中的节点集合为N={1,2,…,M},M为节点的数目,描述边的集合为S={xij,i,j∈N},边代表节点之间的链路,用邻接矩阵和权矩阵构建目标网络,邻接矩阵AG为包含图中连接信息的二维矩阵,对于模型G,构造M×M阶邻接矩阵AG=(aij),其元素生成方式如下式:
Figure FDA0003898114580000011
式中,AG表示目标网络的邻接矩阵,aij表示网络中节点i和节点j的连接状态,xij为描述边的集合S中的元素,如果节点i和节点j相连,则对应状态值aij为1,否则对应状态值aij为0;进一步,构建权矩阵WG,这是一个包含节点之间连接权重的二维矩阵,根据第一阶段收集的动态拓扑信息,构造M×M阶矩阵WG=(aij),其元素生成方式如下式:
Figure FDA0003898114580000021
式中,aij进一步表示为加入连接权重后的节点i和节点j的连接状态,如果节点i和节点j相连接,则对应的值aij为权重wij;如果是同一个节点,则对应的值aij为0;如果节点i和节点j无相连,则对应的值aij为∞;
更新路由信息阶段:
步骤1.4,更新路由信息,运行最短路径算法Dijkstra,根据构建目标网络阶段生成的权矩阵WG=(aij),节点之间的路径度量值由连接权重wij给出,计算网络中节点之间的最短路径,节点集合N中任一节点n,到其余节点的最短路径表示为下式:
Dn={d1,d2,…,dm},(1,2,…,n,…,m)∈N
式中,Dn表示节点n与网络节点集合N中其余节点的最短路径的集合,集合中的元素d1,d2,…,dm分别表示节点n与其余节点1,节点2,…,节点m间的最短路径;
形成路由表阶段:
步骤1.5,形成路由表,根据更新路由信息阶段计算出的节点之间的最短路径,为当前节点到网络中其余节点的传输路径生成路由信息,对于节点n,路由表中包含自身到节点集合N中的其余节点的路径与下一跳信息,表示为:
Rn={Dn,n'}|(n,n')∈N
式中,Rn表示节点n形成的路由表,包含最短路径集合Dn和下一跳节点n';
步骤1.6,在目标路由算法运行时引入瞬时故障,根据收集的运行信息,构建目标路由算法的故障模型;根据单粒子效应发生在目标路由算法的不同阶段,以及故障发生时对输出结果的影响,初步构建的目标路由算法的故障模型Mfault表示为:
Figure FDA0003898114580000022
式中,Fpoint表示程序中受辐射影响的位置,分别由
Figure FDA0003898114580000023
Figure FDA0003898114580000024
表示故障位置对应目标路由算法的不同阶段f,point_i表示对应阶段的具体故障点,R表示故障发生时,对每一阶段输出结果的影响,初步表示为输出结果错误error和输出结果正确correct。
3.根据权利要求2所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤2中故障点特征,对应于步骤1中初步构建的故障模型Mfault中的point_i,特征提取方法如下:
在指令级引入瞬时故障,对于目标路由算法的每一阶段动态执行的指令序列Iins中包含的其中第j条指令,故障点的特征表示方法如下式:
point_i=<insj,instype,storagename,biti>
式中,insj表示阶段f中某一阶段的第j条指令,instype表示该指令的指令类型,storagename表示指令操作数的存储单元,具体为指令操作涉及的寄存器或内存,biti表示位翻转发生在相应的存储单元中的第i位,即指令操作数的寄存器的第i位或某一内存单元地址i;根据故障点的表示方法point_i提取下列信息:故障点特征指令类型Ftype、翻转位位置Fbit-pos、翻转方向Fbit-flip、存储单元名称Fstorage,构建故障点特征向量的算法如下:
步骤2.1,构建如下式所示的目标路由算法故障点的指令类型向量Ftype
Fytpe=<add,cmp,leave,mov,pop,store,test,xor>
根据源程序所包含的静态指令集合,有add,cmp,leave,mov,pop,store,test和xor8种类型,故障点发生软错误时相对应指令类型取值为1,否则为0,对应于步骤1.5公式中故障点point_i中的instype
步骤2.2,构建如下式所示的故障点的存储单元类型特征向量Fstorage
Fstorage=<regname,memory>
其中,regname表示指令操作数为寄存器时对应的寄存器名称,memory为指令操作数为内存单元时对应的内存地址,Fstorage对应于步骤1.5公式中故障点point_i中的storagename
步骤2.3,构建如下式所示的故障点的翻转位特征向量Fbit
Fbit=<biti,bitflip>|i∈[1,n],bitflip={0,1}
其中,翻转位特征Fbit由翻转位位置biti和翻转方向bitflip构成,biti为存储单元的第i位发生翻转,当指令操作数的存储单元为通信接口中的寄存器时,n为该寄存器的总位数;bitflip为发生单位翻转的位翻转方向,分为0→1和1→0,当翻转方向为1→0,该特征取值为1;否则为0,对应于步骤1.5公式中故障点point_i中的bit。
4.根据权利要求3所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤3中根据故障点特征改进后的故障模型如下式所示:
Figure FDA0003898114580000041
式中,故障模型Mfault由故障点集合以及对应故障类型集合构成,故障点集合Fpoint由目标路由算法的不同阶段f和阶段中的故障点特征point_i的笛卡尔积得到;R为故障点发生单位翻转时的故障类型集合,根据软错误发生时对程序输出结果的影响,将故障类型分为error,masked,sdc三种;error表示程序因运行崩溃或挂起没有输出结果这类显式故障;masked表示软错误在程序中被屏蔽,对输出结果没有产生影响这类暂时可忽略的潜在故障;数据静默损坏sdc表示程序的输出结果与正常输出结果不一致这类隐式故障,根据故障类型的不同将数据进行分类,构建样本数据集。
5.根据权利要求4所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤4中构建关键故障点预测模型,模型的建立过程包括特征向量构建和预测模型构建两个阶段,具体步骤如下:
步骤4.1,构建基于故障模型的目标路由算法故障点特征向量;
步骤4.2,构建并训练基于XGBoost的故障类型预测模型;具体包括:
步骤4.2.1,根据步骤4.1构建的特征向量,构建如下式所示的数据集Tset
Figure FDA0003898114580000042
其中,xi表示第i条训练样本的特征向量Vi,yi表示第i条训练样本的标签值Lg
步骤4.2.2,根据下式对故障点发生软错误时导致的故障类型进行预测;
对于故障点特征向量Vpoint,分别以样本标签Lg取值为0和Lg取值为1建立两棵分类决策树,对应的预测函数为fcorrect(g)和fsdc(g),fcorrect(g)的计算方法见下式:
Figure FDA0003898114580000051
其中,依次选取特征向量Vpoint的特征取值,R1表示数据集Tset中符合该特征取值的样本集合,R2为剩余样本集合,x表示集合中任一样本,Lg(0)和Lg(1)分别表示R1和R2中该样本所对应标签值Lg=0和Lg=1出现次数的均值,I(g∈R1)和I(g∈R2)分别表示出现的次数;
步骤4.2.3,根据下式计算故障类型为sdc的概率;
根据建立的两棵分类决策树对样本g的预测值分别为fcorrect(g)和fsdc(g),则样本g属于sdc的概率psdc为:
Figure FDA0003898114580000052
步骤4.2.4,根据预测函数训练基于XGBoost的故障类型预测模型;
XGBoost通过拟合残差来提升弱分类器的思想,针对标签值类别求出残差Lg(1)'=1-psdc和Lg(0)'=1-pcorrect,开始第二轮训练,针对标签值为1的输入分别为(Fg,Lg(1)'),(Fg,Lg(0)')得到第二轮的预测函数
Figure FDA0003898114580000053
不断拟合残差得到最终的预测模型,如下式所示:
Figure FDA0003898114580000054
其中,
Figure FDA0003898114580000055
为第m轮训练得到的预测函数,M为迭代的次数;预测概率Psdc(Lg=1|g)为模型对输入特征向量V的预测结果为Lg=1的概率。
6.根据权利要求5所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤4.1具体包括:
步骤4.1.1,根据步骤3建立的故障模型Mfault,由故障点信息point_i构建如下式所示的目标路由算法故障点位置特征Vpoint-pos
Figure FDA0003898114580000061
其中,Vins_type、Vstorage和Vbit分别对应于point_i中的Ftype,Fstorage和Fbit
步骤4.1.2,根据步骤3建立的故障模型Mfault,将故障点位于的执行阶段f进一步具体表示为下式:
f=<fi,ni>,i∈{1,2,3,4}
其中,用i表示f中包含的四个阶段,ni为每一阶段包含的指令数量;
步骤4.1.3,遍历样本数据集,根据故障注入后程序的输出结果集合R中的元素,定义标签Lg,g=1,2,…,m,m为数据集样本总数量,Lg表示第g个样本的标签值,代表该故障点样本所对应的故障类型;Lg表示为:
Figure FDA0003898114580000062
步骤4.1.4,根据步骤4.1.2~步骤4.1.3的公式分别计算f中各阶段对程序输出结果的影响ω;设集合S1,S2,根据样本数据集中Lg的取值划分S1(Lg=1)和S2(Lg=0),|S1|和|S2|分别表示S1和S2中样本数量;对于样本数据集中第g个样本,得到所对应的执行阶段f以及该阶段包含的指令总数n;设故障点位于的阶段对程序输出结果的影响为ω,计算方法见下式:
Figure FDA0003898114580000063
其中,|S1|和|S2|分别为整个样本数据集中根据标签值Lg划分后各自所包含的样本数量,
Figure FDA0003898114580000064
为阶段fi划分后每一阶段包含标签值Lg=1的样本数量;
Figure FDA0003898114580000065
为该阶段指令序列包含的指令数量,|nf|为路由算法可执行程序包含的指令总数;
步骤4.1.5,根据步骤4.1.1、步骤4.1.4中的公式构建故障点特征向量Vpoint,表示为:
Vpoint=<Vpoint-pos,ω>
其中,Vpoint-pos为故障点位置特征,ω为该故障位置对程序输出结果的影响。
7.根据权利要求5所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤5中根据预测结果识别关键故障点,具体步骤如下:
步骤5.1,根据故障预测结果对源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点,识别函数如下式:
Figure FDA0003898114580000071
其中,根据步骤3故障模型中的故障点表示方法Fpoint,fpoint_i为Fpoint中的一个故障点,
Figure FDA0003898114580000072
为步骤4.2.3中对故障点fpoint_i导致的故障类型对程序运行产生sdc的预测概率;
步骤5.2,根据Kpoint的值来判断是否为关键故障点,当Kpoint的值大于预设阈值时,将被识别为关键故障点。
8.基于权利要求1至7任意一项所述识别方法的基于XGBoost的路由算法关键故障点识别系统,其特征在于,所述系统包括:
第一模块,用于划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
第二模块,用于对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
第三模块,用于根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
第四模块,用于构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
第五模块,用于根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
CN202211279577.1A 2022-10-19 2022-10-19 一种基于XGBoost的路由算法关键故障点识别方法 Pending CN115630367A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211279577.1A CN115630367A (zh) 2022-10-19 2022-10-19 一种基于XGBoost的路由算法关键故障点识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211279577.1A CN115630367A (zh) 2022-10-19 2022-10-19 一种基于XGBoost的路由算法关键故障点识别方法

Publications (1)

Publication Number Publication Date
CN115630367A true CN115630367A (zh) 2023-01-20

Family

ID=84906452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211279577.1A Pending CN115630367A (zh) 2022-10-19 2022-10-19 一种基于XGBoost的路由算法关键故障点识别方法

Country Status (1)

Country Link
CN (1) CN115630367A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117081985A (zh) * 2023-10-12 2023-11-17 中国信息通信研究院 一种网络流量冗余传输方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117081985A (zh) * 2023-10-12 2023-11-17 中国信息通信研究院 一种网络流量冗余传输方法和装置
CN117081985B (zh) * 2023-10-12 2024-01-12 中国信息通信研究院 一种网络流量冗余传输方法和装置

Similar Documents

Publication Publication Date Title
Jin et al. Anemone: Graph anomaly detection with multi-scale contrastive learning
Su et al. Redundant rule detection for software-defined networking
Pellet et al. Using markov blankets for causal structure learning.
Lu et al. Software defect prediction using semi-supervised learning with dimension reduction
Birkner et al. {Config2Spec}: Mining network specifications from network configurations
Wang et al. High-performance, energy-efficient, fault-tolerant network-on-chip design using reinforcement learning
CN111274134A (zh) 基于图神经网络的漏洞识别与预测方法、系统、计算机设备和存储介质
Chatzigiannakis et al. Passively mobile communicating machines that use restricted space
Jaffar et al. Unbounded symbolic execution for program verification
Jin et al. Modeling with node degree preservation can accurately find communities
CN113592035A (zh) 基于ai辅助决策的大数据挖掘方法及ai辅助决策系统
CN115630367A (zh) 一种基于XGBoost的路由算法关键故障点识别方法
Azad et al. From online fault detection to fault management in Network-on-Chips: A ground-up approach
Guo et al. Flash: fast, consistent data plane verification for large-scale network settings
CN117980923A (zh) 用于实现量子代码的校准解码器
CN113592034B (zh) 基于大数据可视化挖掘处理的内容推送方法及ai管控系统
Yang et al. Predicting the silent data corruption vulnerability of instructions in programs
Wang et al. More anti-chain based refinement checking
CN108334903B (zh) 一种基于支持向量回归的指令sdc脆弱性预测方法
Wang et al. AGAPE: anomaly detection with generative adversarial network for improved performance, energy, and security in manycore systems
Zoppi et al. Anomaly Detectors for Self-Aware Edge and IoT Devices
Guha et al. On decidability of prebisimulation for timed automata
Gaspers et al. Backdoors to q-Horn
CN115828269A (zh) 源代码漏洞检测模型的构建方法、装置、设备及存储介质
Park et al. Static analysis to identify invariants in RSML specifications

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