CN111641470A - 一种分布式仿真的时间一致性同步方法 - Google Patents

一种分布式仿真的时间一致性同步方法 Download PDF

Info

Publication number
CN111641470A
CN111641470A CN202010383486.7A CN202010383486A CN111641470A CN 111641470 A CN111641470 A CN 111641470A CN 202010383486 A CN202010383486 A CN 202010383486A CN 111641470 A CN111641470 A CN 111641470A
Authority
CN
China
Prior art keywords
clock
simulation
logic
node
local
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.)
Granted
Application number
CN202010383486.7A
Other languages
English (en)
Other versions
CN111641470B (zh
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.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
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 Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN202010383486.7A priority Critical patent/CN111641470B/zh
Publication of CN111641470A publication Critical patent/CN111641470A/zh
Priority to GB2110633.1A priority patent/GB2602855B/en
Priority to PCT/CN2021/071974 priority patent/WO2021223464A1/zh
Priority to US17/444,901 priority patent/US11831746B2/en
Application granted granted Critical
Publication of CN111641470B publication Critical patent/CN111641470B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • H04L7/0012Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于计算机协同仿真的时间同步技术领域,具体涉及一种分布式仿真的时间一致性同步方法。本发明根据选票选取最合适的主方时钟,再用主方时钟控制网络中的其他时钟同步,以此保证各个节点的数据以及与时间有关的事件在时间逻辑上的一致性,即使某个仿真节点宕机,对整个系统的其他环节影响也较小,可以有效地去中心化,可以最大程度上保证时间的一致性,保证整个分布式系统的正确性和规模性。

Description

一种分布式仿真的时间一致性同步方法
技术领域
本发明属于计算机协同仿真的时间同步技术领域,具体涉及一种分布式仿真的时间一致性同步方法。
背景技术
分布式仿真系统由于其耗费小,可重复且无破坏的特点,逐渐成为一种重要的评价和试验手段。在船舶、航天、油气开采、大型装备安装等高尖端领域得到快速的发展。在分布式仿真系统中,多个分布在不同位置的计算机共同完成仿真任务。各个通过计算机网络完成相互间的通信和数据交互。由于各节点分布在不同的地理位置,因此如何保证各个节点的数据以及与时间有关的事件在时间逻辑上的一致性是分布式虚拟试验系统需要解决的一个关键问题。
现有技术的时间同步方法的设计存在以下问题和缺点:以服务端/客户端的方式进行时间同步,如果服务端宕机则致使仿真系统中止运行,容错性与鲁棒性较低。
在一个分布有众多节点的系统中,每个节点都具有高度自治的特征。节点之间彼此可以自由连接,形成新的连接单元。任何一个节点都可能成为阶段性的中心,但不具备强制性的中心控制功能。节点与节点之间的影响,会通过网络而形成非线性因果关系。这种开放式、扁平化、平等性的系统现象或结构,称之为去中心化。
总的来说,在分布式系统中,如何设计行之有效的去中心化的时间管理方法,可以在最大程度上保证时间的一致性,从而直接影响了整个分布式系统的正确性和规模性,是计算机分布式系统领域所面临的难点问题之一。
发明内容
本发明的目的在于提供解决现有技术存在的分布式仿真系统时间一致性不高的问题的一种分布式仿真的时间一致性同步方法。
本发明的目的通过如下技术方案来实现:包括以下步骤:
步骤1:将虚拟仿真系统中的各仿真节点的系统参数置零,设置本地最小推进时钟间隔;
所述的虚拟仿真系统中包含的仿真节点个数至少为2个,所有的仿真节点均处于对等地位;所述的系统参数包括本地逻辑时钟、全局逻辑时钟、全局最小推进时钟间隔及其他仿真节点逻辑时钟列表;所述的本地逻辑时钟表示当前仿真节点的系统逻辑时间;所述的本地最小推进时钟间隔表示当前仿真节点每个推进时间请求的最小间隔;所述的全局逻辑时钟表示全局最小的仿真节点本地逻辑时钟;所述的全局最小推进时钟间隔表示当前仿真节点中逻辑时间推进间隔的最小值;
步骤2:各仿真节点与网络中的其他仿真节点建立连接;确定主方时钟,其他仿真节点设置为从方时钟;
步骤3:各从方时钟构建逻辑时间状态查询包,并将逻辑时间状态查询包推送至主方时钟;从方时钟接收主方时钟应答的查询响应包,查询响应包中包括主方时钟的全局逻辑时钟、其他仿真节点的本地逻辑时钟及本地最小推进时钟间隔;从方时钟将自身的全局逻辑时钟、本地逻辑时钟设置为查询响应包中的全局逻辑时钟;
主方时钟和从方时钟之间的数据均通过网络通讯工作线程传输;所述的网络通讯工作线程包括发送队列和接收队列;仿真节点发送到其他仿真节点的数据包依照顺序推送至发送队列中;所述的接收队列依照网络接收顺序存放其他仿真节点发送过来的数据包;
步骤4:各从方时钟将本地逻辑时钟打包成数据包通过网络通讯工作线程传到其他仿真节点的接收队列中;其他仿真节点从接收队列中选取一个数据包,比较数据包中的本地逻辑时钟和自身的本地逻辑时钟;
若数据包中的本地逻辑时钟小于自身的本地逻辑时钟,则丢弃数据包,并向数据包发送方返回逻辑时钟滞后响应包;
若数据包中的本地逻辑时钟大于或等于自身的本地逻辑时钟且小于本地逻辑时间与本地最小推进时钟间隔总和,则接受数据包;
若数据包中的本地逻辑时钟大于或等于自身的本地逻辑时钟,且数据包中的本地逻辑时钟大于或等于本地逻辑时间与本地最小推进时钟间隔总和,则向主方时钟发送逻辑时间推进请求;
步骤5:主方时钟接收到从方时钟的逻辑时间推进请求后,将从方时钟请求推进的本地逻辑时间与主方时钟的全局逻辑时间进行比较;
若从方时钟请求推进的本地逻辑时间小于或等于主方时钟的全局逻辑时间,则向从方时钟返回允许时间推进成功的响应包;
若从方时钟请求推进的本地逻辑时间大于全局逻辑时间且小于全局逻辑时间与全局最小推进时钟间隔总和,则允许时间推进;
若从方时钟请求推进的本地逻辑时间大于全局逻辑时间且大于全局逻辑时间与全局最小推进时钟间隔总和,则比较此时其他仿真节点的第一数据与全局逻辑时间与全局最小推进时钟间隔总和;所述的第一数据为本地逻辑时间与本地最小推进时钟间隔总和;若第一数据大于或等于全局逻辑时间与全局最小推进时钟间隔总和,且有时间推进请求被阻塞,则允许全部的时间推进请求,更新主方时钟中的仿真节点的本地逻辑时间列表,将全局逻辑时间设置为所有仿真节点中最小的本地逻辑时间。
本发明还可以包括:
所述的步骤2中各仿真节点与网络中的其他仿真节点建立连接的方法具体为:
步骤2.1:第一仿真节点通过广播发送侦测包查询网络中其他仿真节点;
步骤2.2:其他仿真节点在接收到侦测包后,构建响应包并与第一仿真节点建立TCP连接并将响应包回传给第一仿真节点;所述的响应包包括网络地址和网络连接列表;
步骤2.3:第一仿真节点接收到响应包后,将响应包中的网络连接列表与本地网络连接列表相比对,若两者内容不一致,构建网络信息差异包,利用网络地址传输网络信息差异包至发送响应包的仿真节点,完成连接建立。
所述的步骤2中主方时钟的确定方法具体为:各仿真节点先将自己设置为主方时钟,并通知其他仿真节点;若此时网络中已有主方时钟,主方时钟则告知该仿真节点,该仿真节点将自己改为从方时钟;若此时网络中不存在主方时钟,则进入投票选取主方时钟阶段选取主方时钟,各仿真节点判断被选取的主方时钟是否是自己,若是则将自己设置为主方时钟;若不是,则将自己设置为从方时钟;
所述的投票选取主方时钟阶段具体包括以下步骤:
步骤3.1:每个仿真节点构建内部选票;所述的内部选票包括节点标识码与全局逻辑时钟;
步骤3.2:将内部全票放入发送队列中发往其他仿真节点,作为外部选票,供其他仿真节点从接收队列中获取;
步骤3.3:仿真节点无间隔的从接收队列中获取外部选票;
步骤3.4:仿真节点获取所有网络连接的外部选票后,对外部选票进行统计;若仿真节点无法获取其他仿真节点的外部选票,则尝试与其他仿真节点重新建立网络连接,连接成功后再次进行发送和接收工作;
步骤3.5:选取全局逻辑时钟值最大的选票,判断选取的选票数量是否大于或等于2;若选取的选票数量大于或等于2,则选择节点标识码最大的选票,丢弃其余选票;
步骤3.6:变更本节点的内部选票为选取的外部选票,并将变更后的内部选票放入到发送队列中发往其他仿真节点;
步骤3.7:仿真节点无间隔的从接收队列中获取第二轮外部选票;
步骤3.8:仿真节点获取所有网络连接的外部选票后,对外部选票进行统计;
步骤3.9:判断是否超过半数的仿真节点认可本节点的外部选票;若超过半数的仿真节点认可本节点的外部选票,则将该节点选取为主方时钟;否则返回步骤3.1继续选取。。
本发明的有益效果在于:
本发明根据选票选取最合适的主方时钟,再用主方时钟控制网络中的其他时钟同步,以此保证各个节点的数据以及与时间有关的事件在时间逻辑上的一致性,即使某个仿真节点宕机,对整个系统的其他环节影响也较小,可以有效地去中心化,可以最大程度上保证时间的一致性,保证整个分布式系统的正确性和规模性。
附图说明
图1为仿真节点的工作线程组成示意图。
图2为仿真节点建立连接过程中信号传输示意图。
图3为仿真节点建立连接过程中信息比对示意图。
图4为投票选取主方时钟的流程图。
图5为时钟同步过程中从方时钟执行流程图。
图6为时钟同步过程中主方时钟执行流程图。
具体实施方式
下面结合附图对本发明做进一步描述。
本发明设计了一种分布式仿真的时间一致性同步方法,先将系统参数初始化,并设置本地最小推进时钟间隔;再将各仿真节点与网络中的其他仿真节点建立连接,并确定主方时钟,其他仿真节点设置为从方时钟;各从方时钟通过主方时钟进行逻辑时间状态查询;从方时钟将自身的全局逻辑时钟、本地逻辑时钟设置为查询响应包中的全局逻辑时钟;从方时钟根据数据包比对决定是否向主方时钟发送逻辑时间推进请求;主方时钟根据从方时钟发送的逻辑时间推进请求决定是否允许逻辑时间推进。本发明可以有效地去中心化,可以最大程度上保证时间的一致性,保证整个分布式系统的正确性和规模性。
一种分布式仿真的时间一致性同步方法,包括以下步骤:
(1)将虚拟仿真系统中的各仿真节点的系统参数置零,系统参数包括本地逻辑时钟、全局逻辑时钟、本地最小推进时钟间隔、全局最小推进时钟间隔及其他仿真节点逻辑时钟列表,并设置本地最小推进时钟间隔;
(2)各仿真节点与网络中的其他仿真节点建立连接,并确定主方时钟,其他仿真节点设置为从方时钟;
(3)各从方时钟构建逻辑时间状态查询包,并将逻辑时间状态查询包推送至主方时钟;从方时钟接收主方时钟应答的查询响应包,查询响应包中包括主方时钟的全局逻辑时钟、其他仿真节点的本地逻辑时钟及本地最小推进时钟间隔;从方时钟将自身的全局逻辑时钟、本地逻辑时钟设置为查询响应包中的全局逻辑时钟;
(4)各从方时钟将本地逻辑时钟打包成数据包通过网络通讯工作线程传到其他仿真节点的接收队列中,其他仿真节点从接收队列中选取一个数据包,比较数据包中的本地逻辑时钟和自身的本地逻辑时钟,若数据包中的本地逻辑时钟小于自身的本地逻辑时钟,则丢弃数据包,并向数据包发送方返回逻辑时钟滞后响应包;若数据包中的本地逻辑时钟大于等于自身的本地逻辑时钟且小于本地逻辑时间与本地最小推进时钟间隔总和,则接受数据包;若大于等于本地逻辑时间与本地最小推进时钟间隔总和,则向主方时钟发送逻辑时间推进请求;
(5)主方时钟接收到从方时钟的逻辑时间推进请求后,将从方时钟请求推进的本地逻辑时间与主方时钟的全局逻辑时间进行比较,若从方时钟请求推进的本地逻辑时间小于等于主方时钟的全局逻辑时间,则向从方时钟返回允许时间推进成功的响应包;若大于全局逻辑时间且小于全局逻辑时间与全局最小推进时钟间隔总和,则允许时间推进;若大于全局逻辑时间与全局最小推进时钟间隔总和,则比较此时其他仿真节点的第一数据与全局逻辑时间与全局最小推进时钟间隔总和,第一数据为本地逻辑时间与本地最小推进时钟间隔总和,若第一数据大于等于全局逻辑时间与全局最小推进时钟间隔总和,且有时间推进请求被阻塞,则允许全部的时间推进请求以及更新主方时钟中的仿真节点的本地逻辑时间列表,将全局逻辑时间设置为所有仿真节点中最小的本地逻辑时间。
步骤(2)中,建立连接的方法为:
第一仿真节点通过广播发送侦测包查询网络中其他仿真节点;
其他仿真节点在接收到侦测包后,构建响应包并与第一仿真节点建立TCP连接并将响应包回传给第一仿真节点,响应包包括网络地址和网络连接列表;
第一仿真节点接收到响应包后,将响应包中的网络连接列表与本地网络连接列表相比对,若两者内容不一致,构建网络信息差异包,利用网络地址传输网络信息差异包至发送响应包的仿真节点,完成连接建立。
步骤(2)中,主方时钟的确定方法为:
各仿真节点先将自己设置为主方时钟,并通知其他仿真节点,若此时网络中已有主方时钟,主方时钟则告知该仿真节点,该仿真节点将自己改为从方时钟,执行步骤(3);若此时网络中不存在主方时钟,则进入投票选取主方时钟阶段选取主方时钟,各仿真节点判断被选取的主方时钟是否是自己,若是则将自己设置为主方时钟;若不是,则将自己设置为从方时钟。
步骤(2)中,投票选取主方时钟的方法为:
(a)每个仿真节点构建内部选票,内部选票包括节点标识码与全局逻辑时钟;
(b)将内部全票放入发送队列中发往其他仿真节点,作为外部选票,供其他仿真节点从接收队列中获取;
(c)仿真节点无间隔的从接收队列中获取外部选票;
(d)仿真节点获取所有网络连接的外部选票后,对外部选票进行统计;
(e)选取全局逻辑时钟值最大的选票,判断选取的选票数量是否大于等于2,若是则选择节点标识码最大的选票,丢弃其余选票;
(f)变更本节点的内部选票为选取的外部选票,并将变更后的内部选票放入到发送队列中发往其他仿真节点;
(g)仿真节点无间隔的从接收队列中获取第二轮外部选票;
(h)仿真节点获取所有网络连接的外部选票后,对外部选票进行统计;
(i)判断是否超过半数的仿真节点认可本节点的外部选票,若是,将该节点选取为主方时钟;否则返回(a)继续选取。
步骤(3)中,主方时钟和从方时钟之间的数据均通过网络通讯工作线程传输,所述网络通讯工作线程包括发送队列和接收队列;仿真节点发送到其他仿真节点的数据包依照顺序推送至发送队列中;接收队列依照网络接收顺序存放其他仿真节点发送过来的数据包。
步骤(1)中,本地逻辑时钟表示当前仿真节点的系统逻辑时间;本地最小推进时钟间隔表示当前仿真节点每个推进时间请求的最小间隔;全局逻辑时钟表示全局最小的仿真节点本地逻辑时钟;全局最小推进时钟间隔表示当前仿真节点中逻辑时间推进间隔的最小值。
步骤(d)中,若仿真节点无法获取其他仿真节点的外部选票,则尝试与其他仿真节点重新建立网络连接,连接成功后再次进行发送和接收工作。
采用网络连接监测工作线程使用Ping-Pong机制定时监测与其他节点之间的网络连接。虚拟仿真实验系统中包含的仿真节点个数至少为2个,所有的仿真节点均处于对等地位。
本发明提供一种分布式仿真的时间一致性同步方法,相比较现有技术,根据选票选取最合适的主方时钟,再用主方时钟控制网络中的其他时钟同步,以此保证各个节点的数据以及与时间有关的事件在时间逻辑上的一致性,即使某个仿真节点宕机,对整个系统的其他环节影响也较小,可以有效地去中心化,可以最大程度上保证时间的一致性,保证整个分布式系统的正确性和规模性。
实施例1:
在本实施例中,主方时钟控制网络中的其它时钟同步,亦即,从方时钟。时钟控制信息在主方时钟与其它本地从方时钟之间交换,以使本地从方时钟与主方时钟同步。交换的时钟控制信息包括:从方时钟的识别码(Identification Code);从方时钟的当前逻辑时间;从方时钟的最小逻辑时间推进量;从方时钟尝试推进到逻辑时间;以及主方时钟在接收从方时钟的时间推进请求后的应答信息;用于在当前主方时钟宕机后的对主方时钟选取进行投票的Vote信息。
如图1所示,仿真节点包含三个工作线程,分别是:事务处理工作线程T1、网络连接监测线程T2、网络通讯工作线程T3。网络通讯工作线程包含两个消息队列:SendQueue队列S001、RecvQueue队列S002。仿真节点发送到其它节点的数据包依照顺序推送至SendQueue中;RecvQueue队列依照网络接收顺序存放其它节点发送的数据包。事务处理工作线程T1运行时间同步算法代码,包含本地逻辑时钟V1、全局逻辑时钟V2、本地最小推进时钟间隔V3、其它节点本地逻辑时钟列表V4、外部选票集合V5。本地逻辑时钟V1表示当前仿真节点的系统逻辑时间;本地最小推进时钟间隔V3表示当前仿真节点每个推进时间请求的最小间隔;全局逻辑时钟V2表示全局最小的仿真节点本地逻辑时钟,通常所有的节点本地逻辑时钟都大于等于它;全局最小推进时钟间隔是指当前仿真节点中逻辑时间推进间隔的最小值。网络连接监测工作线程使用Ping-Pong机制定时监测与其他节点之间的网络连接。
一种分布式仿真的时间一致性同步算法,包括以下步骤:
(1)虚拟仿真实验系统中包含n(n≥2)个仿真节点,所有的仿真节点均处于对等地位,每个仿真节点均可扮演主方时钟与从方时钟的角色。首先将虚拟仿真系统中的各仿真节点的系统参数置零,系统参数包括本地逻辑时钟、全局逻辑时钟、本地最小推进时钟间隔、全局最小推进时钟间隔及其他仿真节点逻辑时钟列表,并设置本地最小推进时钟间隔;
本地逻辑时钟表示当前仿真节点的系统逻辑时间;本地最小推进时钟间隔表示当前仿真节点每个推进时间请求的最小间隔;全局逻辑时钟表示全局最小的仿真节点本地逻辑时钟;全局最小推进时钟间隔表示当前仿真节点中逻辑时间推进间隔的最小值。
(2)各仿真节点与网络中的其他仿真节点建立连接,并确定主方时钟,其他仿真节点设置为从方时钟;
如图2所示,仿真节点之间建立连接的方法为:
仿真节点C启动后,通过广播发送侦测包P1查询当前计算机网络中其它仿真节点。网络中的仿真节点A与仿真节点B在接收到侦测包P1后,将网络地址、网络连接列表V9封装为响应包,与仿真节点C建立TCP连接并传输响应包P2。仿真节点C收到响应包后,如图3所示,比对本节点网络连接列表V9与响应包中的网络连接列表P3。如果两个网络连接列表V9的内容不一致,构建网络信息差异包P5,传输网络信息差异包至响应包发送仿真节点P6,完成连接建立。
主方时钟的确定方法为:
各仿真节点先将自己设置为主方时钟,并通知其他仿真节点,若此时网络中已有主方时钟,主方时钟则告知该仿真节点,该仿真节点将自己改为从方时钟,执行步骤(3);若此时网络中不存在主方时钟,则进入投票选取主方时钟阶段选取主方时钟,各仿真节点判断被选取的主方时钟是否是自己,若是则将自己设置为主方时钟;若不是,则将自己设置为从方时钟。
其中,投票选取主方时钟的方法如图4所示为:
(a)每个仿真节点构建内部选票,内部选票包括节点标识码与全局逻辑时钟;
(b)将内部全票放入发送队列中发往其他仿真节点,作为外部选票,供其他仿真节点从接收队列中获取;
(c)仿真节点无间隔的从接收队列中获取外部选票;
(d)仿真节点获取所有网络连接的外部选票后,对外部选票进行统计;若仿真节点无法获取其他仿真节点的外部选票,则尝试与其他仿真节点重新建立网络连接,连接成功后再次进行发送和接收工作。
(e)选取全局逻辑时钟值最大的选票,判断选取的选票数量是否大于等于2,若是则选择节点标识码最大的选票,丢弃其余选票;
(f)变更本节点的内部选票为选取的外部选票,并将变更后的内部选票放入到发送队列中发往其他仿真节点;
(g)仿真节点无间隔的从接收队列中获取第二轮外部选票;
(h)仿真节点获取所有网络连接的外部选票后,对外部选票进行统计;
(i)判断是否超过半数的仿真节点认可本节点的外部选票,若是,将该节点选取为主方时钟;否则返回(a)继续选取。
若已经确定终止投票,则仿真节点首先判断当前被过半仿真节点认可的投票所对应的主方时钟是否是自己,如果是则将自己的设置为主时钟;如果不是,则将自己设置为从方时钟。
(3)如图5所示,各从方时钟构建逻辑时间状态查询包,并将逻辑时间状态查询包推送至主方时钟;从方时钟接收主方时钟应答的查询响应包,查询响应包中包括主方时钟的全局逻辑时钟、其他仿真节点的本地逻辑时钟及本地最小推进时钟间隔;从方时钟接收到查询响应包后,将自身的全局逻辑时钟、本地逻辑时钟设置为查询响应包中的全局逻辑时钟;
主方时钟和从方时钟之间的数据均通过网络通讯工作线程传输,所述网络通讯工作线程包括发送队列和接收队列;仿真节点发送到其他仿真节点的数据包依照顺序推送至发送队列中;接收队列依照网络接收顺序存放其他仿真节点发送过来的数据包。
(4)如图5,各从方时钟将本地逻辑时钟打包成数据包通过网络通讯工作线程传到其他仿真节点的接收队列中,其他仿真节点从接收队列中选取一个数据包,比较数据包中的本地逻辑时钟和自身的本地逻辑时钟,若数据包中的本地逻辑时钟小于自身的本地逻辑时钟,则丢弃数据包,并向数据包发送方返回逻辑时钟滞后响应包;若数据包中的本地逻辑时钟大于等于自身的本地逻辑时钟且小于本地逻辑时间与本地最小推进时钟间隔总和,则接受数据包;若大于等于本地逻辑时间与本地最小推进时钟间隔总和,则向主方时钟发送逻辑时间推进请求;
(5)如图6所示,主方时钟接收到从方时钟的逻辑时间推进请求后,将从方时钟请求推进的本地逻辑时间与主方时钟的全局逻辑时间进行比较,若从方时钟请求推进的本地逻辑时间小于等于主方时钟的全局逻辑时间,则向从方时钟返回允许时间推进成功的响应包;若大于全局逻辑时间且小于全局逻辑时间与全局最小推进时钟间隔总和,则允许时间推进;若大于全局逻辑时间与全局最小推进时钟间隔总和,则比较此时其他仿真节点的第一数据与全局逻辑时间与全局最小推进时钟间隔总和,第一数据为本地逻辑时间与本地最小推进时钟间隔总和,若第一数据大于等于全局逻辑时间与全局最小推进时钟间隔总和,且有时间推进请求被阻塞,则允许全部(包括被阻塞)的时间推进请求以及更新主方时钟中的仿真节点的本地逻辑时间列表,将全局逻辑时间设置为所有仿真节点中最小的本地逻辑时间。
采用网络连接监测工作线程使用Ping-Pong机制定时监测与其他节点之间的网络连接。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种分布式仿真的时间一致性同步方法,其特征在于,包括以下步骤:
步骤1:将虚拟仿真系统中的各仿真节点的系统参数置零,设置本地最小推进时钟间隔;
所述的虚拟仿真系统中包含的仿真节点个数至少为2个,所有的仿真节点均处于对等地位;所述的系统参数包括本地逻辑时钟、全局逻辑时钟、全局最小推进时钟间隔及其他仿真节点逻辑时钟列表;所述的本地逻辑时钟表示当前仿真节点的系统逻辑时间;所述的本地最小推进时钟间隔表示当前仿真节点每个推进时间请求的最小间隔;所述的全局逻辑时钟表示全局最小的仿真节点本地逻辑时钟;所述的全局最小推进时钟间隔表示当前仿真节点中逻辑时间推进间隔的最小值;
步骤2:各仿真节点与网络中的其他仿真节点建立连接;确定主方时钟,其他仿真节点设置为从方时钟;
步骤3:各从方时钟构建逻辑时间状态查询包,并将逻辑时间状态查询包推送至主方时钟;从方时钟接收主方时钟应答的查询响应包,查询响应包中包括主方时钟的全局逻辑时钟、其他仿真节点的本地逻辑时钟及本地最小推进时钟间隔;从方时钟将自身的全局逻辑时钟、本地逻辑时钟设置为查询响应包中的全局逻辑时钟;
主方时钟和从方时钟之间的数据均通过网络通讯工作线程传输;所述的网络通讯工作线程包括发送队列和接收队列;仿真节点发送到其他仿真节点的数据包依照顺序推送至发送队列中;所述的接收队列依照网络接收顺序存放其他仿真节点发送过来的数据包;
步骤4:各从方时钟将本地逻辑时钟打包成数据包通过网络通讯工作线程传到其他仿真节点的接收队列中;其他仿真节点从接收队列中选取一个数据包,比较数据包中的本地逻辑时钟和自身的本地逻辑时钟;
若数据包中的本地逻辑时钟小于自身的本地逻辑时钟,则丢弃数据包,并向数据包发送方返回逻辑时钟滞后响应包;
若数据包中的本地逻辑时钟大于或等于自身的本地逻辑时钟且小于本地逻辑时间与本地最小推进时钟间隔总和,则接受数据包;
若数据包中的本地逻辑时钟大于或等于自身的本地逻辑时钟,且数据包中的本地逻辑时钟大于或等于本地逻辑时间与本地最小推进时钟间隔总和,则向主方时钟发送逻辑时间推进请求;
步骤5:主方时钟接收到从方时钟的逻辑时间推进请求后,将从方时钟请求推进的本地逻辑时间与主方时钟的全局逻辑时间进行比较;
若从方时钟请求推进的本地逻辑时间小于或等于主方时钟的全局逻辑时间,则向从方时钟返回允许时间推进成功的响应包;
若从方时钟请求推进的本地逻辑时间大于全局逻辑时间且小于全局逻辑时间与全局最小推进时钟间隔总和,则允许时间推进;
若从方时钟请求推进的本地逻辑时间大于全局逻辑时间且大于全局逻辑时间与全局最小推进时钟间隔总和,则比较此时其他仿真节点的第一数据与全局逻辑时间与全局最小推进时钟间隔总和;所述的第一数据为本地逻辑时间与本地最小推进时钟间隔总和;若第一数据大于或等于全局逻辑时间与全局最小推进时钟间隔总和,且有时间推进请求被阻塞,则允许全部的时间推进请求,更新主方时钟中的仿真节点的本地逻辑时间列表,将全局逻辑时间设置为所有仿真节点中最小的本地逻辑时间。
2.根据权利要求1所述的一种分布式仿真的时间一致性同步方法,其特征在于:所述的步骤2中各仿真节点与网络中的其他仿真节点建立连接的方法具体为:
步骤2.1:第一仿真节点通过广播发送侦测包查询网络中其他仿真节点;
步骤2.2:其他仿真节点在接收到侦测包后,构建响应包并与第一仿真节点建立TCP连接并将响应包回传给第一仿真节点;所述的响应包包括网络地址和网络连接列表;
步骤2.3:第一仿真节点接收到响应包后,将响应包中的网络连接列表与本地网络连接列表相比对,若两者内容不一致,构建网络信息差异包,利用网络地址传输网络信息差异包至发送响应包的仿真节点,完成连接建立。
3.根据权利要求1或2所述的一种分布式仿真的时间一致性同步方法,其特征在于:所述的步骤2中主方时钟的确定方法具体为:各仿真节点先将自己设置为主方时钟,并通知其他仿真节点;若此时网络中已有主方时钟,主方时钟则告知该仿真节点,该仿真节点将自己改为从方时钟;若此时网络中不存在主方时钟,则进入投票选取主方时钟阶段选取主方时钟,各仿真节点判断被选取的主方时钟是否是自己,若是则将自己设置为主方时钟;若不是,则将自己设置为从方时钟;
所述的投票选取主方时钟阶段具体包括以下步骤:
步骤3.1:每个仿真节点构建内部选票;所述的内部选票包括节点标识码与全局逻辑时钟;
步骤3.2:将内部全票放入发送队列中发往其他仿真节点,作为外部选票,供其他仿真节点从接收队列中获取;
步骤3.3:仿真节点无间隔的从接收队列中获取外部选票;
步骤3.4:仿真节点获取所有网络连接的外部选票后,对外部选票进行统计;若仿真节点无法获取其他仿真节点的外部选票,则尝试与其他仿真节点重新建立网络连接,连接成功后再次进行发送和接收工作;
步骤3.5:选取全局逻辑时钟值最大的选票,判断选取的选票数量是否大于或等于2;若选取的选票数量大于或等于2,则选择节点标识码最大的选票,丢弃其余选票;
步骤3.6:变更本节点的内部选票为选取的外部选票,并将变更后的内部选票放入到发送队列中发往其他仿真节点;
步骤3.7:仿真节点无间隔的从接收队列中获取第二轮外部选票;
步骤3.8:仿真节点获取所有网络连接的外部选票后,对外部选票进行统计;
步骤3.9:判断是否超过半数的仿真节点认可本节点的外部选票;若超过半数的仿真节点认可本节点的外部选票,则将该节点选取为主方时钟;否则返回步骤3.1继续选取。
CN202010383486.7A 2020-05-08 2020-05-08 一种分布式仿真的时间一致性同步方法 Active CN111641470B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010383486.7A CN111641470B (zh) 2020-05-08 2020-05-08 一种分布式仿真的时间一致性同步方法
GB2110633.1A GB2602855B (en) 2020-05-08 2021-01-15 Time consistency synchronization method for distributed simulation
PCT/CN2021/071974 WO2021223464A1 (zh) 2020-05-08 2021-01-15 一种分布式仿真的时间一致性同步方法
US17/444,901 US11831746B2 (en) 2020-05-08 2021-08-11 Time consistency synchronization method for distributed simulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010383486.7A CN111641470B (zh) 2020-05-08 2020-05-08 一种分布式仿真的时间一致性同步方法

Publications (2)

Publication Number Publication Date
CN111641470A true CN111641470A (zh) 2020-09-08
CN111641470B CN111641470B (zh) 2022-08-02

Family

ID=72330858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010383486.7A Active CN111641470B (zh) 2020-05-08 2020-05-08 一种分布式仿真的时间一致性同步方法

Country Status (3)

Country Link
US (1) US11831746B2 (zh)
CN (1) CN111641470B (zh)
WO (1) WO2021223464A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021223464A1 (zh) * 2020-05-08 2021-11-11 哈尔滨工程大学 一种分布式仿真的时间一致性同步方法
CN113821076A (zh) * 2021-10-11 2021-12-21 上海航天计算机技术研究所 基于虚拟时钟的虚拟仿真系统及同步方法
CN114924617A (zh) * 2022-06-15 2022-08-19 深圳前海微众银行股份有限公司 一种去中心化系统中的时钟同步方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115630937B (zh) * 2022-12-21 2023-05-30 北京京东振世信息技术有限公司 物流网络仿真的时间同步方法、装置和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2370634A1 (en) * 1999-04-14 2000-10-19 Francois Trans Universal synchronous network system for internet processor and web operating environment
CN103268251A (zh) * 2013-05-02 2013-08-28 中国人民解放军国防科学技术大学 一种基于时戳截流的并行离散事件仿真时间同步方法
CN103647682A (zh) * 2013-12-09 2014-03-19 北京航空航天大学 一种模拟交换式以太网时钟同步的仿真系统
CN105262656A (zh) * 2015-09-22 2016-01-20 南京航空航天大学 航空发动机分布式控制系统时间触发通信总线的实现方法
CN106059701A (zh) * 2016-08-17 2016-10-26 北京航空航天大学 一种通过捕获协议控制帧测试时间触发以太网的时钟同步修正值的装置
CN107070578A (zh) * 2017-04-02 2017-08-18 北京航空航天大学 一种适用于多同步域时间触发以太网的主从时钟同步方法
US20200145486A1 (en) * 2018-11-06 2020-05-07 Dspace Digital Signal Processing And Control Engineering Gmbh Computer network with a first and a second synchronizing signal transmitter

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8909509B2 (en) * 2010-10-01 2014-12-09 Rockwell Automation Technologies, Inc. Dynamically selecting master clock to manage non-linear simulation clocks
KR20140098602A (ko) * 2013-01-31 2014-08-08 한국전자통신연구원 분산 시뮬레이션 수행 시스템 및 방법
CN103716397B (zh) * 2013-12-30 2016-09-21 中国电子科技集团公司第二十八研究所 一种面向服务仿真时钟推进方法
KR20160114459A (ko) * 2015-03-24 2016-10-05 한국전자통신연구원 이종 미들웨어 연동을 위한 게이트웨이 장치 및 시각 동기화 방법
US9584302B2 (en) * 2015-06-05 2017-02-28 Analog Devices Global Method and apparatus for synchronization of slave clock to master clock
CN111641470B (zh) * 2020-05-08 2022-08-02 哈尔滨工程大学 一种分布式仿真的时间一致性同步方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2370634A1 (en) * 1999-04-14 2000-10-19 Francois Trans Universal synchronous network system for internet processor and web operating environment
CN103268251A (zh) * 2013-05-02 2013-08-28 中国人民解放军国防科学技术大学 一种基于时戳截流的并行离散事件仿真时间同步方法
CN103647682A (zh) * 2013-12-09 2014-03-19 北京航空航天大学 一种模拟交换式以太网时钟同步的仿真系统
CN105262656A (zh) * 2015-09-22 2016-01-20 南京航空航天大学 航空发动机分布式控制系统时间触发通信总线的实现方法
CN106059701A (zh) * 2016-08-17 2016-10-26 北京航空航天大学 一种通过捕获协议控制帧测试时间触发以太网的时钟同步修正值的装置
CN107070578A (zh) * 2017-04-02 2017-08-18 北京航空航天大学 一种适用于多同步域时间触发以太网的主从时钟同步方法
US20200145486A1 (en) * 2018-11-06 2020-05-07 Dspace Digital Signal Processing And Control Engineering Gmbh Computer network with a first and a second synchronizing signal transmitter

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BO WANG等: "A mutual clock synchronization method using weight coefficient for wireless ad hoc networks", 《2009 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS TECHNOLOGY AND APPLICATIONS》 *
袁利毫等: "输入受限的网络Euler-Lagrange系统有限时间一致性", 《哈尔滨工程大学学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021223464A1 (zh) * 2020-05-08 2021-11-11 哈尔滨工程大学 一种分布式仿真的时间一致性同步方法
CN113821076A (zh) * 2021-10-11 2021-12-21 上海航天计算机技术研究所 基于虚拟时钟的虚拟仿真系统及同步方法
CN113821076B (zh) * 2021-10-11 2023-10-27 上海航天计算机技术研究所 基于虚拟时钟的虚拟仿真系统及同步方法
CN114924617A (zh) * 2022-06-15 2022-08-19 深圳前海微众银行股份有限公司 一种去中心化系统中的时钟同步方法及装置
CN114924617B (zh) * 2022-06-15 2024-04-26 深圳前海微众银行股份有限公司 一种去中心化系统中的时钟同步方法及装置

Also Published As

Publication number Publication date
US20210376994A1 (en) 2021-12-02
CN111641470B (zh) 2022-08-02
WO2021223464A1 (zh) 2021-11-11
US11831746B2 (en) 2023-11-28

Similar Documents

Publication Publication Date Title
CN111641470B (zh) 一种分布式仿真的时间一致性同步方法
EP2378718B1 (en) Method, node and system for controlling version in distributed system
CN111338773A (zh) 一种分布式定时任务调度方法、调度系统及服务器集群
CN110855737B (zh) 一种一致性级别可控的自适应数据同步方法和系统
CN112583931A (zh) 消息处理方法、消息中间件、电子设备和存储介质
EP1016252B1 (en) Process scheduling in computer network
CN107707370B (zh) 群组通信方法、服务器、终端及计算机存储介质
CN103955984A (zh) 实现互联网投票的方法、服务器、投票处理节点及系统
US6041342A (en) Low traffic network management method using estimated process execution time for manager-agent synchronization
US10091288B2 (en) Ordered execution of tasks
CN109560903A (zh) 一种完全容灾的车载指挥通信系统
JP3462064B2 (ja) 分散シミュレーションシステム
CN110225133A (zh) 消息发送方法、节点、装置、系统及相关设备
CN102118422B (zh) Reload对等网络的对等节点及其配置的更新方法和系统
GB2602855A (en) Time consistency synchronization method for distributed simulation
CN109831372B (zh) 消息同步方法及即时通讯系统
CN112231223A (zh) 基于mqtt的分布式自动化软件测试方法及系统
CN115913426A (zh) 一种虚实协同的天地一体化场景仿真系统
CN116346834A (zh) 一种会话同步方法、装置、计算设备及计算机存储介质
CN112751907B (zh) 信息处理方法、装置和存储介质及电子装置
CN112306755B (zh) 一种基于微前端架构的高可用性实现方法和系统
CN209134427U (zh) 一种完全容灾的车载指挥通信系统
CN117242462A (zh) 用于改进人工智能(ai)系统中的ai模型的分布式训练的边缘设备、边缘服务器及其同步
CN114500416A (zh) 用于最多一次消息投递的投递方法和投递系统
Kumar et al. HT-Paxos: high throughput state-machine replication protocol for large clustered data centers

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
GR01 Patent grant
GR01 Patent grant