CN115630367A - 一种基于XGBoost的路由算法关键故障点识别方法 - Google Patents
一种基于XGBoost的路由算法关键故障点识别方法 Download PDFInfo
- 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
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 105
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000002347 injection Methods 0.000 claims abstract description 37
- 239000007924 injection Substances 0.000 claims abstract description 37
- 238000012549 training Methods 0.000 claims abstract description 22
- 238000002474 experimental method Methods 0.000 claims abstract description 11
- 230000000694 effects Effects 0.000 claims abstract description 8
- 239000011159 matrix material Substances 0.000 claims description 21
- 239000013598 vector Substances 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 10
- 230000005855 radiation Effects 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 230000001052 transient effect Effects 0.000 claims description 5
- 238000003066 decision tree Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 2
- 239000000725 suspension Substances 0.000 claims description 2
- 230000007306 turnover Effects 0.000 claims description 2
- 230000002787 reinforcement Effects 0.000 abstract description 5
- 238000010801 machine learning Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 238000013138 pruning Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 1
- 241000131894 Lampyris noctiluca Species 0.000 description 1
- 101100059652 Mus musculus Cetn1 gene Proteins 0.000 description 1
- 101100059655 Mus musculus Cetn2 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种基于XGBoost的路由算法关键故障点识别方法,步骤如下:初步建立故障模型;对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;结合故障点特征改进目标路由算法故障模型,同时构建样本数据集;构建并训练基于XGBoost的故障类型预测模型;根据模型预测结果对路由算法源程序中故障点发生软错误导致的故障类型自动分类,识别关键故障点。本发明给出了一种目标路由算法在单粒子效应影响下的故障预测方法,并可根据预测结果对程序中的故障点自动进行故障类型分类,识别出关键故障点,可为目标路由算法的可靠性加固策略提供指导,并可提供有针对性的软加固方法。应用本发明方法可提高网络的可靠性。
Description
技术领域
本发明属于软加固和可信软件领域,具体涉及一种基于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):式(1)中,AG表示目标网络的邻接矩阵,aij表示网络中节点i和节点j的连接状态,xij为描述边的集合S中的元素,如果节点i和节点j相连,则对应状态值为1,否则,对应状态值为0;进一步,构建权矩阵WG,这是一个包含节点之间连接权重的二维矩阵,根据第一阶段收集的动态拓扑信息,构造M×M阶矩阵WG=(aij),其元素生成方式如式(2):
式(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):
式(5)中,Fpoint表示程序中受辐射影响的位置,分别由和表示故障位置对应目标路由算法的不同阶段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)所示:
式(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:
其中,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):
步骤4.1.4,根据式(13)~(14)分别计算f中各阶段对程序输出结果的影响ω;设集合S1,S2,根据样本数据集中Lg的取值划分S1(Lg=1)和S2(Lg=0),|S1|和|S2|分别表示S1和S2中样本数量;对于样本数据集中第g个样本,得到所对应的执行阶段f以及该阶段包含的指令总数n;设故障点位于的阶段对程序输出结果的影响为ω,计算方法见式(15):
其中,|S1|和|S2|分别为整个样本数据集中根据标签值Lg划分后各自所包含的样本数量,为阶段fi划分后每一阶段包含标签值Lg=1的样本数量;为该阶段指令序列包含的指令数量,|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:
步骤4.2.2,根据式(19)对故障点发生软错误时导致的故障类型进行预测;
对于故障点特征向量Vpoint,分别以样本标签Lg取值为0和Lg取值为1建立两棵分类决策树,对应的预测函数为fcorrect(g)和fsdc(g),fcorrect(g)的计算方法见式(19):
其中,依次选取特征向量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)所示:
步骤4.2.4,根据预测函数训练基于XGBoost的故障类型预测模型;
XGBoost(eXtreme GradientBoosting)通过拟合残差来提升弱分类器的思想,针对标签值类别求出残差Lg(1)'=1-psdc和Lg(0)'=1-pcorrect,开始第二轮训练,针对标签值为1的输入分别为(Fg,Lg(1)'),(Fg,Lg(0)')得到第二轮的预测函数不断拟合残差得到最终的预测模型,如式(21)所示:
步骤5,根据模型预测结果对源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点,具体实施方法如下:
步骤5.1,根据故障预测结果对源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点,识别函数见式(22):
其中,根据步骤3故障模型中的故障点表示方法Fpoint,fpoint_i为Fpoint中的一个故障点,为步骤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),其元素生成方式如下式:
式中,AG表示目标网络的邻接矩阵,aij表示网络中节点i和节点j的连接状态,xij为描述边的集合S中的元素,如果节点i和节点j相连,则对应状态值aij为1,否则对应状态值aij为0;进一步,构建权矩阵WG,这是一个包含节点之间连接权重的二维矩阵,根据第一阶段收集的动态拓扑信息,构造M×M阶矩阵WG=(aij),其元素生成方式如下式:
式中,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表示为:
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中根据故障点特征改进后的故障模型如下式所示:
式中,故障模型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:
其中,xi表示第i条训练样本的特征向量Vi,yi表示第i条训练样本的标签值Lg;
步骤4.2.2,根据下式对故障点发生软错误时导致的故障类型进行预测;
对于故障点特征向量Vpoint,分别以样本标签Lg取值为0和Lg取值为1建立两棵分类决策树,对应的预测函数为fcorrect(g)和fsdc(g),fcorrect(g)的计算方法见下式:
其中,依次选取特征向量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为:
步骤4.2.4,根据预测函数训练基于XGBoost的故障类型预测模型;
XGBoost通过拟合残差来提升弱分类器的思想,针对标签值类别求出残差Lg(1)'=1-psdc和Lg(0)'=1-pcorrect,开始第二轮训练,针对标签值为1的输入分别为(Fg,Lg(1)'),(Fg,Lg(0)')得到第二轮的预测函数不断拟合残差得到最终的预测模型,如下式所示:
6.根据权利要求5所述的基于XGBoost的路由算法关键故障点识别方法,其特征在于,步骤4.1具体包括:
步骤4.1.1,根据步骤3建立的故障模型Mfault,由故障点信息point_i构建如下式所示的目标路由算法故障点位置特征Vpoint-pos:
其中,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表示为:
步骤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;设故障点位于的阶段对程序输出结果的影响为ω,计算方法见下式:
其中,|S1|和|S2|分别为整个样本数据集中根据标签值Lg划分后各自所包含的样本数量,为阶段fi划分后每一阶段包含标签值Lg=1的样本数量;为该阶段指令序列包含的指令数量,|nf|为路由算法可执行程序包含的指令总数;
步骤4.1.5,根据步骤4.1.1、步骤4.1.4中的公式构建故障点特征向量Vpoint,表示为:
Vpoint=<Vpoint-pos,ω>
其中,Vpoint-pos为故障点位置特征,ω为该故障位置对程序输出结果的影响。
8.基于权利要求1至7任意一项所述识别方法的基于XGBoost的路由算法关键故障点识别系统,其特征在于,所述系统包括:
第一模块,用于划分目标路由算法的不同执行阶段,分析程序各阶段输出结果,建立初步故障模型;
第二模块,用于对路由算法源程序进行随机故障注入实验,结合故障注入信息提取故障点特征;
第三模块,用于根据故障点特征改进目标路由算法故障模型,结合程序输出结果构建样本数据集;
第四模块,用于构建并训练基于XGBoost的路由算法关键故障点预测模型,对源程序故障点发生软错误导致的故障类型进行预测;
第五模块,用于根据模型预测结果对路由算法源程序故障点发生软错误导致的故障类型自动进行分类,识别关键故障点。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117081985A (zh) * | 2023-10-12 | 2023-11-17 | 中国信息通信研究院 | 一种网络流量冗余传输方法和装置 |
-
2022
- 2022-10-19 CN CN202211279577.1A patent/CN115630367A/zh active Pending
Cited By (2)
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 |