基于相对时间的异构执行体程序同步方法及装置

阅读: 评论:0

著录项
  • CN202010897173.3
  • 20200831
  • CN112162866A
  • 20210101
  • 中国人民解放军战略支援部队信息工程大学
  • 魏帅;刘勤让;虎艳宾;张霞;沈剑良;宋克;刘冬培;于洪;丁瑞浩;张文建
  • G06F9/52
  • G06F9/52 G06F9/54 G06F21/56 G06F21/57

  • 河南省郑州市高新区科学大道62号
  • 河南(41)
  • 郑州大通专利商标代理有限公司
  • 张立强
摘要
本发明公开基于相对时间的异构执行体程序同步方法及装置,该方法包括:异构执行体向调度器发送同步申请消息;调度器接收同步申请消息,返回同步响应消息;若异构执行体在等待时间内未收到调度器发送的同步响应消息,则再次以相同的同步申请次数SNs发送同步申请消息给调度器,以定时器事件最小到时时间为IO复用检测函数的等待时间;异构执行体若在等待时间内收到调度器发送的同步响应消息,则先判断SNr与SNs是否相等,若SNr=SNs,则根据RTr进行计算,将定时器事件的超时事件加入Qready中,同时判断RDr与ENr是否相等,若相等则将读事件加入Qready中,程序处理Qready;若SNr≠SNs,则将同步响应消息丢弃。本发明可有效解决定时器事件、read事件执行顺序不一致导致的状态机失步的问题。
权利要求

1.一种基于相对时间的异构执行体程序同步方法,其特征在于,包括:

步骤1、异构执行体向调度器发送同步申请消息:执行体判断是否有读事件,将读事件标识RDs置位,发送包含读事件标识RDs、同步申请次数SNs的同步申请消息给调度器,以定时器事件最小到期时间为IO复用检测函数的等待时间;

步骤2、调度器接收同步申请消息,返回同步响应消息:调度器接收执行体同步申请信息后,若没有记录同步申请次数的同步信息节点NODEsn,则添加,并记录添加时间,若已有则将NODEsn中执行体的置位标识INDEXi置位,判断NODEsn的存在时间是否大于同步信息等待时间阈值,若是则发送包含根据NODEsn中信息计算的同步响应次数SNr、调度器的读事件响应结果RDr、调度器返回的相对时间RTr、有效执行体个数ENr的同步响应消息给各执行体;若否发送第SNs-1次同步申请对应的NODEsn中信息给各执行体;并清洗NODEsn中INDEXi=0的执行体;

步骤3、若异构执行体在等待时间内未收到调度器发送的同步响应消息,则再次以相同的同步申请次数SNs发送同步申请消息给调度器,以定时器事件最小到时时间为IO复用检测函数的等待时间;

步骤4、异构执行体若在等待时间内收到调度器发送的同步响应消息,则先判断SNr与SNs是否相等,若SNr=SNs,则根据收到的RTr进行计算,将定时器事件的超时事件加入待处理队列中,同时判断RDr与ENr是否相等,若相等则将读事件加入待处理队列中,程序处理待处理队列;若SNr≠SNs,则将同步响应消息丢弃。

2.根据权利要求1所述的基于相对时间的异构执行体程序同步方法,其特征在于,在所述步骤1之前,还包括:

初始化待处理队列,定时器事件的相对时间RT,同步申请次数SNs,读事件标识RDs。

4.根据权利要求2所述的基于相对时间的异构执行体程序同步方法,其特征在于,所述步骤2中,所述同步响应次数SNr=SNs,所述调度器的读事件响应结果所述调度器返回的相对时间RTr=R_now-RT_start,所述有效执行体个数其中,RDi为异构功能等价体i的读事件标识,1≤i≤ENr;R_now为调度器当前时间,RT_start为调度器中RT的初始时间;EN为异构执行体总个数。

5.根据权利要求2所述的基于相对时间的异构执行体程序同步方法,其特征在于,所述步骤4中,按照如下方式判断定时器事件的超时事件:

判断是否RTr-RT>Pi,若是则为超时事件;其中,Pi为定时器事件i的周期。

3.根据权利要求1所述的基于相对时间的异构执行体程序同步方法,其特征在于,所述步骤2中,所述同步信息等待时间阈值为1s。

6.一种基于相对时间的异构执行体程序同步装置,其特征在于,包括:

第一同步申请模块,用于异构执行体向调度器发送同步申请消息:执行体判断是否有读事件,将读事件标识RDs置位,发送包含读事件标识RDs、同步申请次数SNs的同步申请消息给调度器,以定时器事件最小到期时间为IO复用检测函数的等待时间;

同步响应模块,用于调度器接收同步申请消息,返回同步响应消息:调度器接收执行体同步申请信息后,若没有记录同步申请次数的同步信息节点NODEsn,则添加,并记录添加时间,若已有则将NODEsn中执行体的置位标识INDEXi置位,判断NODEsn的存在时间是否大于同步信息等待时间阈值,若是则发送包含根据NODEsn中信息计算的同步响应次数SNr、调度器的读事件响应结果RDr、调度器返回的相对时间RTr、有效执行体个数ENr的同步响应消息给各执行体;若否发送第SNs-1次同步申请对应的NODEsn中信息给各执行体;并清洗NODEsn中INDEXi=0的执行体;

第二同步申请模块,用于若异构执行体在等待时间内未收到调度器发送的同步响应消息,则再次以相同的同步申请次数SNs发送同步申请消息给调度器,以定时器事件最小到时时间为IO复用检测函数的等待时间;

同步执行模块,用于异构执行体若在等待时间内收到调度器发送的同步响应消息,则先判断SNr与SNs是否相等,若SNr=SNs,则根据收到的RTr进行计算,将定时器事件的超时事件加入待处理队列中,同时判断RDr与ENr是否相等,若相等则将读事件加入待处理队列中,程序处理待处理队列;若SNr≠SNs,则将同步响应消息丢弃。

7.根据权利要求6所述的基于相对时间的异构执行体程序同步装置,其特征在于,还包括:

初始化模块,用于初始化待处理队列,定时器事件的相对时间RT,同步申请次数SNs,读事件标识RDs。

说明书
技术领域

本发明属于网络安全技术领域,尤其涉及一种基于相对时间的异构执行体程序同步方法及装置。

如何根据有毒带菌的器件构建安全可靠的系统,邬江兴等提出了拟态防御的思想,采用动态异构冗余的思路打破漏洞利用通常依赖的相似确定静态执行环境,具体模型如图1所示,外界输入通过输入代理分发给异构执行体,异构执行体执行相同的任务,并将结果发送给调度器,调度器采用大数裁决等策略对执行结果进行裁决,最终产生出一个认为是正确的输出结果(邬江兴.网络空间拟态防御原理[M].北京:科学出版社,2018.WU JX.Cyberspace mimic defense[M].Beijing:Science Press,2018.),调度器可以根据各执行体的表现进行相应的反馈控制,如某个执行体产生错误,则对其进行清洗,待其清洗完成之后再将其加入工作队列,裁决相关参数和系统运行状态信息可通过反馈控制器进行控制和查看。

虽然拟态系统可以有效防御已知或者未知漏洞/后门的攻击,但是异构执行体通常是处理器上配置操作系统,内部应用是多线程应用,异构系统中进行调度和切换会造成输入执行的不确定性,最终会使系统产生不一样的输出,虽然这些输出对于单个执行体都是正常的,但是会造成拟态防御系统中调度器难以进行有效判决,尤其是调度器出于安全因素采用硬件实现,逻辑功能较为简单的情况下。以单执行体中某个进程为例,如图2所示。进程存在多个状态,状态之间的变迁由读事件、定时器事件和其他事件引起,其他事件也由读事件和定时器事件引起,只要控制住读事件和定时器事件顺序即可保证状态机一致,但是通常定时器事件是各个执行体根据本地时钟设定的,事件执行也是调用本地的IO复用检测函数(select、poll、epoll)触发的,各个执行体由于时钟和调度策略等原因使得异构执行体执行超时事件和读事件乱序,从而导致状态机失步。

目前尚无针对该种环境的同步策略。在容错系统中复制状态机采用Paxos、ZAB、Raft等共识算法解决状态机同步问题,但是这些方法各个执行体之间需要相互通信,与拟态防御系统各执行体之间不能协同的原理相悖,并且消息通信更加复杂。另一种常见的状态同步是数据库的同步,但是其通常采用快照、日志备份等方法,无需考虑定时器和调度等复杂因素。

在紧耦合的异构执行体中,如果采用Paxos、ZAB、Raft等共识算法交互次数太多,影响系统效率,且与拟态防御的异构执行体不能协同的机理相悖。采用类似数据库的输入控制不能有效解决定时器不一致导致的状态机失步。

本发明针对在紧耦合的异构执行体中,如果采用Paxos、ZAB、Raft等共识算法交互次数太多,影响系统效率,且与拟态防御的异构执行体不能协同的机理相悖;而采用类似数据库的输入控制不能有效解决定时器不一致导致的状态机失步的问题,提出一种基于相对时间的异构执行体程序同步方法及装置。

为了实现上述目的,本发明采用以下技术方案:

一种基于相对时间的异构执行体程序同步方法,包括:

步骤1、异构执行体向调度器发送同步申请消息:执行体判断是否有读事件,将读事件标识RDs置位,发送包含读事件标识RDs、同步申请次数SNs的同步申请消息给调度器,以定时器事件最小到期时间为IO复用检测函数的等待时间;

步骤2、调度器接收同步申请消息,返回同步响应消息:调度器接收执行体同步申请信息后,若没有记录同步申请次数的同步信息节点NODEsn,则添加,并记录添加时间,若已有则将NODEsn中执行体的置位标识INDEXi置位,判断NODEsn的存在时间是否大于同步信息等待时间阈值,若是则发送包含根据NODEsn中信息计算的同步响应次数SNr、调度器的读事件响应结果RDr、调度器返回的相对时间RTr、有效执行体个数ENr的同步响应消息给各执行体;若否发送第SNs-1次同步申请对应的NODEsn中信息给各执行体;并清洗NODEsn中INDEXi=0的执行体;

步骤3、若异构执行体在等待时间内未收到调度器发送的同步响应消息,则再次以相同的同步申请次数SNs发送同步申请消息给调度器,以定时器事件最小到时时间为IO复用检测函数的等待时间;

步骤4、异构执行体若在等待时间内收到调度器发送的同步响应消息,则先判断SNr与SNs是否相等,若SNr=SNs,则根据收到的RTr进行计算,将定时器事件的超时事件加入待处理队列中,同时判断RDr与ENr是否相等,若相等则将读事件加入待处理队列中,程序处理待处理队列;若SNr≠SNs,则将同步响应消息丢弃。

进一步地,在所述步骤1之前,还包括:

初始化待处理队列,定时器事件的相对时间RT,同步申请次数SNs,读事件标识RDs。

进一步地,所述步骤2中,所述同步信息等待时间阈值为1s。

进一步地,所述步骤2中,所述同步响应次数SNr=SNs,所述调度器的读事件响应结果所述调度器返回的相对时间RTr=R_now-RT_start,所述有效执行体个数其中,RDi为异构功能等价体i的读事件标识,1≤i≤ENr;R_now为调度器当前时间,RT_start为调度器中RT的初始时间;EN为异构执行体总个数。

进一步地,所述步骤4中,按照如下方式判断定时器事件的超时事件:

判断是否RTr-RT>Pi,若是则为超时事件;其中,Pi为定时器事件i的周期。

一种基于相对时间的异构执行体程序同步装置,包括:

第一同步申请模块,用于异构执行体向调度器发送同步申请消息:执行体判断是否有读事件,将读事件标识RDs置位,发送包含读事件标识RDs、同步申请次数SNs的同步申请消息给调度器,以定时器事件最小到期时间为IO复用检测函数的等待时间;

同步响应模块,用于调度器接收同步申请消息,返回同步响应消息:调度器接收执行体同步申请信息后,若没有记录同步申请次数的同步信息节点NODEsn,则添加,并记录添加时间,若已有则将NODEsn中执行体的置位标识INDEXi置位,判断NODEsn的存在时间是否大于同步信息等待时间阈值,若是则发送包含根据NODEsn中信息计算的同步响应次数SNr、调度器的读事件响应结果RDr、调度器返回的相对时间RTr、有效执行体个数ENr的同步响应消息给各执行体;若否发送第SNs-1次同步申请对应的NODEsn中信息给各执行体;并清洗NODEsn中INDEXi=0的执行体;

第二同步申请模块,用于若异构执行体在等待时间内未收到调度器发送的同步响应消息,则再次以相同的同步申请次数SNs发送同步申请消息给调度器,以定时器事件最小到时时间为IO复用检测函数的等待时间;

同步执行模块,用于异构执行体若在等待时间内收到调度器发送的同步响应消息,则先判断SNr与SNs是否相等,若SNr=SNs,则根据收到的RTr进行计算,将定时器事件的超时事件加入待处理队列中,同时判断RDr与ENr是否相等,若相等则将读事件加入待处理队列中,程序处理待处理队列;若SNr≠SNs,则将同步响应消息丢弃。

进一步地,还包括:

初始化模块,用于初始化待处理队列,定时器事件的相对时间RT,同步申请次数SNs,读事件标识RDs。

与现有技术相比,本发明具有的有益效果:

利用本发明可以解决定时器事件难以控制,易与读事件处理顺序不一致导致复制状态机失步的情形。通过向各个执行体发送定时器事件的相对时间,各个执行体按照相对时间进行比对,执行超时事件,确保异构执行体对超时事件和读事件的执行顺序一致,从而保证异构执行体状态机同步和输出一致,该发明可以快速地适配大部分程序,程序修改量不大,只需对主体架构进行修改即可;相对于分布式同步算法如Paxos、ZAB、Raft等,同步数据较少,原理简单明了。且通过与异构执行体系统时间同步、部分关键事件同步、事件整队列同步方法在ospf协议应用上的同步效果进行实验对比,验证了本发明能够有效的使异构执行体的程序状态实现同步。

图1为典型拟态防御系统架构图;

图2为进程状态转移示意图;

图3为基于相对时间的异构执行体程序同步的拟态系统架构图;

图4为本发明实施例一种基于相对时间的异构执行体程序同步方法的基本流程图;

图5为本发明实施例一种基于相对时间的异构执行体程序同步方法的执行体端处理流程图;

图6为本发明实施例一种基于相对时间的异构执行体程序同步方法的调度器端处理流程图;

图7为本发明实施例一种基于相对时间的异构执行体程序同步装置的结构示意图。

下面结合附图和具体的实施例对本发明做进一步的解释说明:

基于相对时间的异构执行体程序同步的拟态系统模型包括输入代理、异构执行体池、调度器、反馈控制器组成,模型结构如图3所示。

输入代理是用户请求的入口,将用户请求复制多份分发给异构执行体池。异构执行体池是由异构的、多样的、冗余的执行体组成,对用户的请求进行响应,同时将响应结果发送给调度器。调度器包括同步模块和判决模块,同步模块用于接收异构执行体发送的同步信息,根据一定的同步策略将同步结果返回给异构执行体。判决模块是用户请求响应的最终出口,为保证对用户输出结果的一致性和正确性,将对多个响应进行投票表决,根据表决策略产生最后输出。同时调度器可以根据各执行体的表现进行相应的反馈控制,如某个执行体长期不发送同步申请或输出报文与其它子卡不一致,则对其进行清洗,待其清洗完成之后再将其加入工作队列,裁决相关参数和系统运行状态信息可通过反馈控制器进行控制和查看。

基于相对时间的异构执行体程序同步方法在拟态系统中起着至关重要的作用,是保证异构执行体中程序状态同步、输出报文一致性的关键。程序进程存在多个状态,状态之间的变迁由读事件、定时器事件及其他事件引起,其他事件也由读事件和定时器事件引起,各事件通过IO复用检测函数(select、poll、epoll)触发执行,基于相对时间的异构执行体程序同步方法通过控制住读事件和定时器事件顺序来保证状态机一致,从而控制异构执行体状态一致,进而控制异构执行体发出的报文一致,方便拟态防御系统中调度器进行有效判决,并控制整个系统s的正常运行。

如图4所示,一种基于相对时间的异构执行体程序同步方法,包括:

步骤S101、异构执行体向调度器发送同步申请消息:执行体判断是否有读事件,将读事件标识RDs置位,发送包含读事件标识RDs、同步申请次数SNs的同步申请消息给调度器,以定时器事件最小到期时间为IO复用检测函数的等待时间;

步骤S102、调度器接收同步申请消息,返回同步响应消息:调度器接收执行体同步申请信息后,若没有记录同步申请次数的同步信息节点NODEsn,则添加,并记录添加时间,若已有则将NODEsn中执行体的置位标识INDEXi置位,判断NODEsn的存在时间是否大于同步信息等待时间阈值,若是则发送包含根据NODEsn中信息计算的同步响应次数SNr、调度器的读事件响应结果RDr、调度器返回的相对时间RTr、有效执行体个数ENr的同步响应消息给各执行体;若否发送第SNs-1次同步申请对应的NODEsn中信息给各执行体;并清洗NODEsn中INDEXi=0的执行体;

步骤S103、若异构执行体在等待时间内未收到调度器发送的同步响应消息,则再次以相同的同步申请次数SNs发送同步申请消息给调度器,以定时器事件最小到时时间为IO复用检测函数的等待时间;

步骤S104、异构执行体若在等待时间内收到调度器发送的同步响应消息,则先判断SNr与SNs是否相等,若SNr=SNs,则根据收到的RTr进行计算,将定时器事件的超时事件加入待处理队列中,同时判断RDr与ENr是否相等,若相等则将读事件加入待处理队列中,程序处理待处理队列;若SNr≠SNs,则将同步响应消息丢弃。

进一步地,在所述步骤S101之前,还包括:

初始化待处理队列,定时器事件的相对时间RT,同步申请次数SNs,读事件标识RDs。

进一步地,所述步骤S102中,所述同步响应次数SNr=SNs,所述调度器的读事件响应结果所述调度器返回的相对时间RTr=R_now-RT_start,所述有效执行体个数其中,RDi为异构功能等价体i的读事件标识,1≤i≤ENr;R_now为调度器当前时间,RT_start为调度器中RT的初始时间;EN为异构执行体总个数。

进一步地,所述步骤S102中,所述同步信息等待时间阈值为1s。具体地,异构执行体程序运行时每一次IO复用检测函数触发执行均会向调度器申请时间,若某个异构执行体程序异常,同步申请中断,调度器端若无限等待,则所有执行体程序均会等待,因此调度器端需要添加同步信息等待时间的阈值。根据异构执行体程序运行时每秒钟IO复用检测函数触发执行的次数统计,以路由协议ospf为例,根据交互量的不同,执行次数范围为10~300,因此基于相对时间的异构执行体程序同步方法中采用1s为同步信息等待时间的阈值。调度器端在接收到同步标识为SNs的同步信息后记录时间R_start,若在1s中以内,即R_now-R_start>1时未收到某一执行体的同步申请,即NODEsn中某些执行体的INDEXi=0,则证明该异构执行体出现异常,可将该执行体的同步信息从同步队列中删除,判断其它执行体的同步信息,同时清洗异常的执行体。

进一步地,所述步骤S104中,按照如下方式判断定时器事件的超时事件:

判断是否RTr-RT>Pi,若是则为超时事件;其中,Pi为定时器事件i的周期。

值得说明的是,基于相对时间的异构执行体程序同步方法采用的是非阻塞同步方式,每一次IO复用检测函数触发执行时向调度器发送的同步信息中携带同步标识SNs,调度器收到同步信息后查同步响应队列中包含所有有效执行体的最大标识SNr的响应消息发送给该执行体,该执行体通过对比同步标识SNr是否与SNs相等来确定后续执行过程,避免由于丢包导致的程序不能正常运行。

作为一种可实施方式,考虑一个通用拟态防御系统的异构冗余池,符号表示如表1所示,并由以下定义进行形式化描述。

表1通用拟态防御系统的异构冗余池符号表示

在上述表1描述的通用拟态防御系统的异构冗余池的基础上,一种基于相对时间的异构执行体程序同步方法的具体流程如下:

(1)异构执行体向调度器发送同步申请消息

执行体判断是否有读(read)事件,将读标识RDs(由多个RDi组成)置位,发送包含读标识RDs、同步申请次数SNs的同步申请消息Ms给调度器,以定时器事件最小到期时间为IO复用检测函数的等待时间。

(2)调度器接收同步申请消息,返回同步响应消息

调度器接收执行体同步申请消息Ms后,若没有NODEsn节点则添加,并记录添加时间R_start,若已有则将相应的执行体标识INDEXi置位,判断NODEsn的存在时间R_now-R_start是否大于1s,若R_now-R_start>1则根据NODEsn信息计算SNr、RDr、RTr、ENr(SNr=SNs,RTr=R_now-RT_start,)发送Mr;若否发送第SNs-1次同步申请对应的NODEsn中信息给各执行体;清洗NODEsn中INDEXi=0的执行体。

(3)异构执行体未收到同步响应消息的处理

异构执行体若在等待时间内未收到调度器发送的同步响应消息Mr,以相同的申请次数SNs发送同步申请消息Ms给调度器,以定时器事件最小到期时间为IO复用检测函数的等待时间。

(4)异构执行体收到同步响应消息的处理

异构执行体若在等待时间内收到调度器发送的同步响应消息Mr,则先判断SNr与SNs是否相等,若SNr=SNs,则根据收到的RTr进行计算,将定时器事件的超时事件加入ready队列Qready中,同时判断RDr与ENr是否相等,若相等则将read事件加入ready队列Qready中,程序处理ready队列。若SNr≠SNs,则将同步响应消息丢弃。

具体地,基于相对时间的异构执行体程序同步方法的异构执行体端的流程如图5所示。

执行体端算法实现如下:

Algorithm 1基于相对时间的异构执行体程序同步方法-执行体端

Input:初始RT、初始SNs、初始RDs,同步响应消息Mr

Output:异构执行体同步结果

其中Ms中含有RTs,RDs,SNs。

具体地,基于相对时间的异构执行体程序同步方法的调度器端的流程如图6所示。

调度器端算法实现如下:

Algorithm 2基于相对时间的异构执行体程序同步方法-调度器端

Input:初始RT=0,Ms(RDr=0,ENr)

Output:同步结果Mr

其中Mr中含有RDr,RTr,SNr ENr。

为验证本发明效果,进行如下实验:

路由协议ospf邻居存在多个状态,邻接关系建立过程有down、init、2-way、exstart、exchange、loading、full七种状态,状态之间的变迁由读(read)事件、定时器(timer)事件引起,各事件通过IO复用检测函数触发执行,因此在邻接关系建立过程中处理各事件的顺序的不同会导致异构执行体ospf邻居所处的状态的不同,下面以ospf路由协议为例将本发明方法(为方便描述,简称为:基于相对时间同步)与异构执行体系统时间同步、部分关键事件同步、事件整队列同步等方法的同步效果进行对比,验证基于相对时间同步的有效性,√表示状态同步:邻居状态一致、database(数据库)一致、路由条数一致;×表示状态不同步:邻居状态不一致、database不一致、路由条数不一致。

实验配置环境如下表所示:

表2实验配置环境

Ospf协议进程运行在三个异构执行体上,修改quagga-1.2.4中ospf源码,增加向调度器申请定时器添加与超时的时间基准、read事件和timer事件的执行顺序向调度器同步功能,调度器通过fpga编程实现同步信息的接收及响应。

1、路由容量场景测试

路由容量的测试场景采用的是测试仪向异构执行体发送不同数量的LSA(链路状态),异构执行体中的ospf程序接收到LSA后进行路由计算,随着测试仪向异构执行体发送的LSA条目数的增多,ospf协议与外界交互的报文数增加,从而导致ospf内部的read事件与定时器事件的数量增加,在此场景下对比各种同步方法的同步效果。

测试仪分别向异构执行体发送3000条、5000条、8000条LSA,测试结果如下表所示:

表3路由容量场景测试结果

针对于路由容量的多次测试,3000条路由学习,各方法均能实现,对于5000条以上路由学习,异构执行体系统时间同步方法由于受不同执行体获取时间的时机不一致影响变大,事件执行顺序不一致从而导致状态失步,其它方法均能实现;8000条路由学习,部分关键事件同步方法受read事件与定时器事件增多的影响出现未同步的事件与read事件执行顺序不一致,从而导致状态失步,事件整队列同步方法与基于相对时间同步方法均能实现。

2、多邻接关系建立场景测试

多邻接关系的测试场景,异构执行体中ospf角为DR(指定路由器),测试仪模拟4个设备与异构执行体建立邻接关系,随着每个设备中具有的LSA数量的增加,ospf内部的read事件与定时器事件的数量在短时间内急剧增加,在此场景下对比各种同步方法的同步效果。

测试仪每个设备具有1000条LSA、2000条LSA、3000条LSA等场景的异构执行体程序状态,结果如下表所示:

表4多邻接关系建立场景测试结果

针对于多邻接关系的不同LSA数量的多次测试,分别具有1000条LSA的4个设备的邻接关系建立,系统时间同步方法状态完全失步;分别具有2000条LSA的4个设备的邻接关系建立,部分关键事件同步方法状态失步;分别具有3000条LSA的4个设备的邻接关系建立,事件整队列同步方法状态失步;基于相对时间同步方法能够稳定的实现状态同步。

3、同步消息丢失场景测试

在实际的工程实践中,链路丢包是常见现象,通过调度器随机不接收及连续不接收某些执行体同步申请消息、调度器随机不发送及连续不发送同步响应信息四个场景对比各种同步方法的同步效果,测试结果如下表所示:

表5同步消息丢失场景测试结果

针对同步消息丢失的场景,异构执行体采用系统时间同步、部分关键事件同步和事件整队列等方法均会受同步信息丢包的影响,从而导致程序状态失步,基于相对时间的异构执行体同步方法不受少量同步信息丢包的影响,对于连续多次的丢包现象能够及时发现该异构执行体出现问题,从而启动该执行器清洗恢复工作。

4、实验结果分析

以上通过路由容量、多邻接关系建立、同步信息丢包等场景的多次测试,将基于相对时间同步方法与异构执行体系统时间同步、部分关键事件同步、事件整队列同步等方法的同步效果进行对比,实验结果显示,在基于相对时间的异构执行体程序同步方法在与外界大量交互、read事件与定时器事件的数量较大的环境下能够实现复杂路由协议ospf程序运行状态的一致,能够有效解决同步过程丢包带来的影响,同时能够灵活的随子卡状态的变更改变同步策略。

在上述实施例的基础上,如图7所示,本发明还公开一种基于相对时间的异构执行体程序同步装置,包括:

第一同步申请模块201,用于异构执行体向调度器发送同步申请消息:执行体判断是否有读事件,将读事件标识RDs置位,发送包含读事件标识RDs、同步申请次数SNs的同步申请消息给调度器,以定时器事件最小到期时间为IO复用检测函数的等待时间;

同步响应模块202,用于调度器接收同步申请消息,返回同步响应消息:调度器接收执行体同步申请信息后,若没有记录同步申请次数的同步信息节点NODEsn,则添加,并记录添加时间,若已有则将NODEsn中执行体的置位标识INDEXi置位,判断NODEsn的存在时间是否大于同步信息等待时间阈值,若是则发送包含根据NODEsn中信息计算的同步响应次数SNr、调度器的读事件响应结果RDr、调度器返回的相对时间RTr、有效执行体个数ENr的同步响应消息给各执行体;若否发送第SNs-1次同步申请对应的NODEsn中信息给各执行体;并清洗NODEsn中INDEXi=0的执行体;

第二同步申请模块203,用于若异构执行体在等待时间内未收到调度器发送的同步响应消息,则再次以相同的同步申请次数SNs发送同步申请消息给调度器,以定时器事件最小到时时间为IO复用检测函数的等待时间;

同步执行模块204,用于异构执行体若在等待时间内收到调度器发送的同步响应消息,则先判断SNr与SNs是否相等,若SNr=SNs,则根据收到的RTr进行计算,将定时器事件的超时事件加入待处理队列中,同时判断RDr与ENr是否相等,若相等则将读事件加入待处理队列中,程序处理待处理队列;若SNr≠SNs,则将同步响应消息丢弃。

进一步地,还包括:

初始化模块,用于初始化待处理队列,定时器事件的相对时间RT,同步申请次数SNs,读事件标识RDs。

综上,利用本发明可以解决定时器事件难以控制,易与读事件处理顺序不一致导致复制状态机失步的情形。通过向各个执行体发送定时器事件的相对时间,各个执行体按照相对时间进行比对,执行超时事件,确保异构执行体对超时事件和读事件的执行顺序一致,从而保证异构执行体状态机同步和输出一致,该发明可以快速地适配大部分程序,程序修改量不大,只需对主体架构进行修改即可;相对于分布式同步算法如Paxos、ZAB、Raft等,同步数据较少,原理简单明了;可以采用异步方式,不影响系统应用的并行执行;为处理器的清洗恢复提供了必要条件。且通过与异构执行体系统时间同步、部分关键事件同步、事件整队列同步等方法在ospf协议应用上的同步效果进行实验对比,验证了本发明能够有效的使异构执行体的程序状态实现同步。

以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

本文发布于:2023-04-13 10:02:22,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/86421.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图