CN111641470B - 一种分布式仿真的时间一致性同步方法 - Google Patents
一种分布式仿真的时间一致性同步方法 Download PDFInfo
- Publication number
- CN111641470B CN111641470B CN202010383486.7A CN202010383486A CN111641470B CN 111641470 B CN111641470 B CN 111641470B CN 202010383486 A CN202010383486 A CN 202010383486A CN 111641470 B CN111641470 B CN 111641470B
- 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.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 217
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000004044 response Effects 0.000 claims description 45
- 238000004891 communication Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 abstract description 3
- 238000012544 monitoring process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
- H04L7/0012—Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock 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继续选取。
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 CN111641470A (zh) | 2020-09-08 |
CN111641470B true 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) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111641470B (zh) * | 2020-05-08 | 2022-08-02 | 哈尔滨工程大学 | 一种分布式仿真的时间一致性同步方法 |
CN113821076B (zh) * | 2021-10-11 | 2023-10-27 | 上海航天计算机技术研究所 | 基于虚拟时钟的虚拟仿真系统及同步方法 |
CN114020094A (zh) * | 2021-11-17 | 2022-02-08 | 湖南麒麟信安科技股份有限公司 | 一种服务器集群时间同步方法、装置及计算机设备 |
CN114924617B (zh) * | 2022-06-15 | 2024-04-26 | 深圳前海微众银行股份有限公司 | 一种去中心化系统中的时钟同步方法及装置 |
CN115630937B (zh) * | 2022-12-21 | 2023-05-30 | 北京京东振世信息技术有限公司 | 物流网络仿真的时间同步方法、装置和存储介质 |
Citations (6)
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 | 北京航空航天大学 | 一种适用于多同步域时间触发以太网的主从时钟同步方法 |
Family Cites Families (7)
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 |
DE102018127602A1 (de) * | 2018-11-06 | 2020-05-07 | Dspace Digital Signal Processing And Control Engineering Gmbh | Rechnernetz mit einem ersten und einem zweiten Synchronsignalgeber |
CN111641470B (zh) * | 2020-05-08 | 2022-08-02 | 哈尔滨工程大学 | 一种分布式仿真的时间一致性同步方法 |
-
2020
- 2020-05-08 CN CN202010383486.7A patent/CN111641470B/zh active Active
-
2021
- 2021-01-15 WO PCT/CN2021/071974 patent/WO2021223464A1/zh active Application Filing
- 2021-08-11 US US17/444,901 patent/US11831746B2/en active Active
Patent Citations (6)
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 | 北京航空航天大学 | 一种适用于多同步域时间触发以太网的主从时钟同步方法 |
Non-Patent Citations (2)
Title |
---|
A mutual clock synchronization method using weight coefficient for wireless ad hoc networks;Bo Wang等;《2009 IEEE International Conference on Communications Technology and Applications》;20091108;全文 * |
输入受限的网络Euler-Lagrange系统有限时间一致性;袁利毫等;《哈尔滨工程大学学报》;20160125;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20210376994A1 (en) | 2021-12-02 |
CN111641470A (zh) | 2020-09-08 |
WO2021223464A1 (zh) | 2021-11-11 |
US11831746B2 (en) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111641470B (zh) | 一种分布式仿真的时间一致性同步方法 | |
Birman et al. | Bimodal multicast | |
Chen et al. | Task replication for vehicular cloud: Contextual combinatorial bandit with delayed feedback | |
Zhao et al. | Virtual time CSMA protocols for hard real-time communication | |
EP2378718B1 (en) | Method, node and system for controlling version in distributed system | |
CN105701159B (zh) | 一种数据同步装置和方法 | |
CN110855737B (zh) | 一种一致性级别可控的自适应数据同步方法和系统 | |
US6041342A (en) | Low traffic network management method using estimated process execution time for manager-agent synchronization | |
CN103955984A (zh) | 实现互联网投票的方法、服务器、投票处理节点及系统 | |
CN116506434B (zh) | 一种多终端可离线运行的智能仓库管理方法 | |
GB2602855A (en) | Time consistency synchronization method for distributed simulation | |
US10091288B2 (en) | Ordered execution of tasks | |
CN112231223A (zh) | 基于mqtt的分布式自动化软件测试方法及系统 | |
JP3462064B2 (ja) | 分散シミュレーションシステム | |
CN112306755A (zh) | 一种基于微前端架构的高可用性实现方法和系统 | |
CN109560903A (zh) | 一种完全容灾的车载指挥通信系统 | |
CN117242462A (zh) | 用于改进人工智能(ai)系统中的ai模型的分布式训练的边缘设备、边缘服务器及其同步 | |
CN109688011B (zh) | 一种基于OpenStack的agent选择方法及装置 | |
CN109831372B (zh) | 消息同步方法及即时通讯系统 | |
US6519697B1 (en) | Method and apparatus for coordinating the configuration of massively parallel systems | |
CN115913426A (zh) | 一种虚实协同的天地一体化场景仿真系统 | |
CN112751907B (zh) | 信息处理方法、装置和存储介质及电子装置 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN209134427U (zh) | 一种完全容灾的车载指挥通信系统 | |
Boulanger et al. | A time synchronization protocol for A664-P7 |
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 |