CN102282787A - 将分布式计算机网络中的本地时钟同步的方法 - Google Patents

将分布式计算机网络中的本地时钟同步的方法 Download PDF

Info

Publication number
CN102282787A
CN102282787A CN2008801307058A CN200880130705A CN102282787A CN 102282787 A CN102282787 A CN 102282787A CN 2008801307058 A CN2008801307058 A CN 2008801307058A CN 200880130705 A CN200880130705 A CN 200880130705A CN 102282787 A CN102282787 A CN 102282787A
Authority
CN
China
Prior art keywords
terminal system
switch
synchronous
frame
cold start
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
CN2008801307058A
Other languages
English (en)
Other versions
CN102282787B (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.)
FTS Computertechnik GmbH
Tttech Computertechnik AG
Honeywell International Inc
Original Assignee
FTS Computertechnik GmbH
Honeywell International Inc
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 FTS Computertechnik GmbH, Honeywell International Inc filed Critical FTS Computertechnik GmbH
Publication of CN102282787A publication Critical patent/CN102282787A/zh
Application granted granted Critical
Publication of CN102282787B publication Critical patent/CN102282787B/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/0676Mutual
    • 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
    • H04J3/0652Synchronisation among time division multiple access [TDMA] nodes, e.g. time triggered protocol [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/10Arrangements for initial synchronisation

Abstract

本发明涉及用于将分布式计算机网络中的本地时钟同步的方法,其中所述计算机网络由多个终端系统和至少两个交换机组成,各个终端系统通过双向通信链路连接至至少两个交换机,并且已设置的部分终端系统和交换机以同步状态机的形式执行该方法,其特征在于a)所述状态机使用至少三种不同的帧类型(冷启动帧类型、冷启动应答帧类型、和集成帧类型),以及b)所述状态机中的状态可被说成是属于非同步状态的一组或属于同步状态的一组,以及c)被设置成同步主导装置的所有终端系统在所述其中一个非同步状态中周期性地发送冷启动帧,以及d)被设置为同步主导装置的所有终端系统在接收到冷启动帧之后一段可配置的第一逾时(CSO)时间通过在所有复制的通信通道上发送冷启动应答帧以对接收到的冷启动帧作出反应,条件是:只要终端系统处于同步状态机为冷启动帧限定的转换的状态中,并且在所述冷启动应答发送之前接收到连续的冷启动帧时,重设所述第一逾时(CSO),以及e)所有被设置成同步主导装置的终端系统通过启动可配置的第二逾时(CAO)来对接收到的冷启动应答帧作出反应,该些终端系统还未执行所述第一逾时(CSO),并且在所述第二逾时(CAO)过期时进入同步状态。

Description

将分布式计算机网络中的本地时钟同步的方法
背景技术
本发明涉及将分布式计算机网络中的本地时钟同步。本发明尤其感兴趣的是通过在网络中的组件之间的通信链路上发送信息来交换资讯的计算机网络。在不对本发明的具体实现作为限制下,我们使用标准的以太网作为说明例子。在标准的以太网中,终端系统通过双向通信链路经由网络交换机连接。终端系统会通过把信息发送到交换机而与第二终端系统或一组终端系统通信,然后该交换机会把信息转播到接收的终端系统或其他终端系统。同样地,终端系统能通过双向通信链路相互直接连接,这使得终端系统和交换机之间的明显分别在某些结构中是难以区分的。因此,我们通常使用组件这个术语来称呼可能是终端系统或交换机的实体装置。组件之所以被称为终端系统或交换机是由其用途而非其实体外观来决定的。
时钟同步的问题是使不同组件的本地时钟达至接近一致的问题。由于容错的原因,多个组件可被设置成产生同步信息。
将本地时钟同步的问题具有长久的历史,已知很多声称即使有失效出现也可将本地时钟同步的算法(拜占庭时钟同步,兰波特L和梅利亚-史密斯PM,美国计算机学会作业系统专业组综论(ACM SIGOPS Operating Systems Review),第20卷,第3期,第10-16页,1986,美国计算机学会纽约(ACM New York),NY,美国;最佳时钟同步,斯瑞肯思TK和图格S,美国计算机学会期刊(JACM),第34卷,第3期,第626-645页,1987,美国计算机学会纽约(ACM New York),NY,美国;可靠时钟同步范例,施奈德FB,计算机科学系技术报告TR,第86-735页;分布式实时系统中的时钟同步,柯匹兹H和欧施森雷特W,IEEE计算机汇刊(IEEE Transactions on Computers),第36卷,第8期,第933-940页,1987,IEEE计算机学会华盛顿(IEEE Computer SocietyWashington),DC,美国;容错的时间触发通信的启动和恢复:以基于总线和基于交换机的网络拓扑结构为中心,斯泰纳W,2008,Vdm出版社穆勒博士)。
发明内容
本发明在其容错性质方面从上述协议中区别出来。
■本发明是可扩展的:本发明能被设置成作为例如用于工业控制的简单的主从时钟同步协议运行。另一方面,本发明能被设置成作为例如用于载人航天应用中的多主导装置(Multi-Master)时钟同步协议运行。这种可扩展性提供了巨大的经济利益:由于本发明能用于不同的应用领域,因此能显著地降低实现本发明的成本。同样地,本发明被跨领域地使用增加了可探测到在实现本发明中的潜在失效(failure)的可能性,并由此大大完善了本发明的实现。依循正确概率(probability of correctness)是其实现数量(number of implementations)的直接函数这一概念,这也被称为“百万证明”(“proof-by-million”)。
■本发明容忍多个不一致的错误(inconsistent faults):当本发明被设置成多主导装置模式时,其在同一时间点上容忍完全不一致-遗漏(inconsistent-omission)的错误的通信路径甚至错误的终端系统。这失效模式意味着各个错误的组件对各个信息有着潜在不一致的撤销行为在任何其输入通信链路和任何其送出通信链路上任意地撤销信息。尽管发明家们在容错时钟同步上有丰富的经验,但他们并不知道任何现有的容错同步算法会容忍这一程度的容错。因此,本发明允许更具有成本效益地实现需要容忍系统中多种失效的系统结构。例如,甚至能在仅由两个独立的通信信道组成的系统结构中容忍所述不一致的失效模式。以前实现容忍所述失效的通信结构需要至少三个独立的通信信道。
■即使有永久失效出现本发明也可容忍任意的暂时干扰。除了所述容错之外,本发明还提供自稳定性质。自稳定意味着在分布式计算机系统的多个组件中的暂时扰动之后还会重新确立同步。本发明通过使用形式化方法(formalmethods)(模型检测研究(model-checking studies))从任意的系统状态稳定为同步系统状态。随着计算机芯片的特征尺寸减小从而造成组件内的暂时扰动增多,这一自稳定性质变得越来越重要。今后设计可靠的分布式计算机网络要依靠本发明提供的对多个暂时扰动的有效而合理的容限。尽管发明家们在容错时钟同步上有丰富的经验,但他们并不知道任何现有的容错同步算法会容忍这一程度的容错。
本发明基于以下创新性步骤:
■容错握手程序的新概念,以在系统一开机就确立同步以及一旦总体同步消失时重新获得同步。与以前的协议相比,只要有至少一个无错误的通信信道,容错握手即使在同一时间点有不一致的通信信道及甚至是有错误的终端系统出现也可保证端对端的一致性。容错握手保证冷启动信息或所产生的冷启动应答信息(或者上述两者)在系统中是一致的。
■不同类型的探测团集机制的新概念,其既用于两者:与预定组件同步的终端系统的数量,以及被识别出不与所述组件同步的终端系统的数量,又用于该两者之间的关系。
■多个同步状态的新概念,其允许为不同的同步状态指定不同的探测团集机制;因为时间触发的协议在一旦确立同步时就比在启动程序期间能容忍范围广得多的失效模式。能使用不同的同步状态来追踪同步程序的运行历史。在早期和容易达到的同步状态中,探测团集机制被设置得非常脆弱,以捕捉所有可能的团集情况,而在较后的同步状态(如组件看到终端系统数量足够,或者同步通信在可配置数目的同步轮次中是成功的话,就进入该状态)中,探测团集机制被设置得较为宽松,以致无需执行重设同步就能容忍范围更广的失效模式。
■中央监护功能的新概念,如提供同步信息的终端系统是不被信任,则能在交换机中启用该功能。同样地,如提供该同步的终端系统是被信任,则能把中央监护功能减至最小功能。
■重新使用按照高完整性(high-integrity)设计实现部分(subset)设备的概念;按照高完整性设计原理实施的组件能被假定在受限制的失效模式中失效。信任按照高完整性原理实现的组件是工程学上的通常做法,然而受限制的失效模式并不意味着故障沉默(fail-silent)。本发明还允许高完整性组件在完全不一致遗漏的失效模式。该失效模式意味着各个错误的组件能按各个信息的潜在不一致的撤销行为在任何其输入通信链路和任何其送出通信链路上任意地撤销信息。
附图说明
图1描述了分布式计算机网络的例子。
图2描述了同步信息的数据结构的例子。
图3描述了同步信息从终端系统到交换机的流动和在该交换机内执行的同步压缩功能。
图4描述了同步操作中同步程序的三个迭代。
图5描述了同步的探测团集程序。
图6描述了非同步的探测团集程序。
图7描述了在终端系统中执行的协议状态机。
图8描述了如该终端系统被假定为信任时在交换机中执行的协议状态机。
图9描述了如该终端系统被假定为不信任时在交换机中执行的协议状态机,该交换机正在执行广泛的监护功能。
图10描述了所述分布式计算机网络的无错误的和无碰撞的启动情况。
图11描述了所述分布式计算机网络的无错误的启动碰撞情况。
图12描述了所述分布式计算机网络在出现错误的终端系统101和错误的交换机201时的启动情况。
具体实施方式
图1描述了由5个终端系统101-105和2个交换机201,202组成的分布式计算机网络。终端系统101-105中各个通过双向通信链路110连接至交换机201并通过另一双向通信链路120连接至交换机202。因此,该分布式计算机网络提供两个多余通信信道以供任何两个终端系统101-105之间通信。
终端系统101-105产生被交换机201,202消费的一些同步信息。交换机201,202从接收来自终端系统101-105的一些同步信息去产生一些新的同步信息。
一旦终端系统101-105被同步,终端系统101-105会在同一预先排定的瞬间发布该些同步信息。发布是指在终端系统101-105中的内部信号,其显示信息已准备好被传输。信息在通信链路110,120上传输的实际启动是可以被延迟的。这种延迟的一个原因是已有另一信息正在传输中。该新发布的信息会因此被延迟,直至在通信链路110,120上该进行传输中的信息完成。
除了这些终端系统101-105之外,在分布式计算机网络中可以存在另一些终端系统,其仅是同步信息的消费者而并不发布同步信息。发布同步信息的终端系统101-105被称为同步主导装置。
图2描述了同步信息的数据结构的例子。在一个实现中,集成周期域401被用来显示在时间触发的通信排程中的位置。在一个实现中,成员新域402被用来显示各个信息的发送器。在一个实现中,优先同步域403被用来实现同步信息上的优先机制。在一个实现中,区域同步域404被用来实现相互同步的独立的组件组:不同独立组中的组件的同步信息会有不同的数值分配给区域同步域404。在一个实现中,类型域405被用来实现不同的同步信息类型:同步协议通常使用不同的类型来区分开机时所使用的同步信息和一旦确立组件之外的同步时所执行的同步信息。在一个实现中,透明时钟域406被用来追踪在信息横跨分布式计算机网络时终端系统和交换机所施加的动态延迟。在一个实现中,引起信息延迟的各个组件会把该延迟加至透明时钟域406的数值中。
图3描述了分布式计算机网络中同步信息301-304,380的信息流,从左到右描述了实时的进展。终端系统101-104产生同步信息301-304,把这些信息发送至交换机201。交换机201记录同步信息301-304的到达时间点并计算这些信息的时间持久点791-794。交换机201从时间持久点791-794计算压缩同步信息380的发布时间点,然后压缩同步信息被发送至终端系统101-104。同样地,交换机201能转发各个同步信息301-304而非压缩同步信息380。当这些交换机压缩同步信息时会在压缩同步信息的成员新域402中设定一些位元,该些位元与提供同步信息以用来计算压缩同步信息的发布时间点的终端系统有关联。
术语“持久”与单个信息有关,并以一时间点为参考,接收器能从这一时间点开始使用该信息,以保证接收器不会在这一时间点之后接收到先于所述第一信息发送的另一信息。
依照交换机的协议状态,交换机可阻挡某些同步信息。我们称这种阻挡同步信息为中央监护功能。
除了产生或转播同步信息外,交换机使用同步信息本身来同步。在进一步描述一实现中,我们将会讨论在交换机中执行的协议状态机(图8-图9),其也把压缩同步信息当作为输入。
描述了仅在一个通信信道(信道包括交换机201)上的信息流。在一个实现中,终端系统101-104同时或依次把同步信息301-304在一些复制的通信信道上发送。
图4描述了在同步运行期间,即一旦成功地将终端系统101-105和交换机201-202的足够部分(subset)的本地时钟同步,该同步程序的三个迭代。从左到右描述了实时的进展。在预先排定的时间点,一些终端系统发布同步信息5101-5105。交换机201-202使用该些同步信息将其本地时钟同步,并各自产生压缩同步信息5201。然后,交换机201-202的同步信息会被用来将终端系统101-105的本地时钟同步。
终端系统101-105的同步信息5101-5105被用于交换机201-202的时钟同步以及用于交换机201-202的集成或重新集成。交换机201-202的该些同步信息5201被用于终端系统101-105的时钟同步以及集成或重新集成。
在同步操作期间,该些同步信息是以一段INC的时间作为时间单位排程。终端系统使用变量本地集成周期(LocalIntegrationCycle)循环地点算始于0直至指定最大值的集成周期。终端系统使用本地集成周期(LocalIntegrationCycle)值去设定其传输的集成帧内的集成周期域401,并去检查其接收到的集成周期域401。
仅在一个通信信道(信道包括交换机201)上的信息流被描述。在一个实现中,终端系统101-105同时或依次把同步信息5101-5105在一些复制的通信信道上发送。
图5描述了同步的探测团集程序。同步的探测团集程序使用本地变量来跟踪当前有多少终端系统与各自的终端系统同步。在预定的集成帧的排定接收时间点前后的接收窗口RW过期时,终端系统会更新可变本地成员组件(varLocalMembershipComp)。如果接收到的集成帧内的集成周期域401与本地集成周期(LocalIntegrationCycle)的值相配,其会把可变本地成员组件(varLocalMembershipComp)设定成在接收窗口RW期间接收到的集成帧中的最大成员新域402。
能独立地为各个同步状态(终端系统_尝试同步状态1060、终端系统_同步状态1070、终端系统_稳定状态1080,见图7)启用或停止同步的探测团集机制。如在同步状态下启用同步的探测团集机制,则在同步评价时间点SEV更新可变本地成员组件(varLocalMembershipComp)之后,以状态相关阈值(尝试同步阈值同步(TentativeSyncThresholdSync)、同步阈值同步(SyncThresholdSync)、或稳定阈值同步(StableThresholdSync))来测试可变本地成员组件(varLocalMembershipComp)。如设定在可变本地成员组件(varLocalMembershipComp)中的位元的数量少于各自的阈值,则测试是成功的,否则就是不成功的。
还与终端系统类似的是,交换机在启用时也可在同步状态(交换机_尝试同步状态2060、交换机_同步状态2070、以及交换机_稳定状态2080,见图8)执行同步的探测团集算法。
图6描述了非同步的探测团集程序。非同步的探测团集的程序使用本地变量可变本地非同步成员计数(varLocalAsyncMembCount)来跟踪当前有多少终端系统不与各自的组件同步,但是可运行的(从而排除了已关机的终端系统)。该变量可变本地非同步成员计数(varLocalAsyncMembCount)是具有从位元到终端系统的一对一关系的位元向量。
能独立地为各个同步状态(终端系统_尝试同步状态1060、终端系统_同步状态1070、终端系统_稳定状态1080)启用或停止非同步的探测团集机制。如在同步状态下启用非同步的探测团集机制,则在非同步评价时间点AEV以状态相关阈值(尝试同步阈值非同步(TentativeSyncThresholdAsync)、同步阈值非同步(SyncThresholdAsync)、或稳定阈值非同步(StableThresholdAsync)来测试可变本地非同步成员计数(varLocalAsyncMembCount)。
终端系统在各自的接收窗口RW以外接收到集成帧时会更新可变本地非同步成员计数(varLocalAsyncMembCount),这也被称为排程外接收。如图6所示,排程外接收可以是在任何接收窗口RW外接收集成帧(如集成帧5211所描述),或者可以是在接收窗口内接收集成帧,但在接收窗口内接收到的集成帧带有错误的集成周期域401(如集成帧5221所描述)。
当终端系统接收到排程外的集成帧时,设定在集成帧的成员新域402中的所有位元也会被设定在可变本地非同步成员计数(varLocalAsyncMembCount)中。在非同步的评价时间点AEV时,评价可变本地非同步成员计数(varLocalAsyncMembCount)。如设定在可变本地成员组件(varLocalMembershipComp)中的位元数量等于或多于各自的状态相关阈值,则测试是成功的。当可变本地成员组件(varLocalMembershipComp)少于2个(意味着交换机目前仅和单个终端系统同步或根本不和任何终端系统同步)而可变本地非同步成员计数(varLocalAsyncMembCount)至少为1个时,测试同样是成功的。在所有其他情况下,非同步探测团集程序是不成功的。
与终端系统类似,交换机在启用时也会在同步状态(交换机_尝试同步状态2060、交换机_同步状态2070、以及交换机_稳定状态2080)下执行非同步的探测团集算法。然而,非同步的评价时间点AEV会紧接在同步的评价时间点SEV之前。
图7描述了终端系统中执行的协议状态机。终端系统将非同步状态和同步状态区分。终端系统_集成状态1010、终端系统_等待周期开始状态1020、终端系统_非同步状态1030、终端系统_泛滥状态1040、以及终端系统_等待周期开始_冷启动状态1050属于非同步状态。终端系统_尝试同步状态1060、终端系统_同步状态1070、终端系统_稳定状态1080属于同步状态。终端系统能通过接收集成帧从非同步状态进入同步状态,在这种情况下我们称从非同步到同步的转换为集成程序。而且,终端系统能通过成功执行容错握手而从非同步状态进入同步状态。在这第二种情况下,我们谈到冷启动或重设程序。接下来,假设所有的终端系统是时钟同步主导装置,我们讨论图7中描述的状态机。在另一实现中,仅部分终端系统可被设置为时钟同步主导装置。未被设置为时钟同步主导装置的终端系统仅通过集成程序进入同步状态,从而在状态机中仅执行部分转换。
终端系统_集成状态1010和终端系统_等待周期开始状态1020:
终端系统在一开机时就以终端系统_集成状态1010开始。当终端系统接收到在成员新域402中设有位元数量足够多的集成帧时,其能从终端系统_集成状态1010进入同步状态:终端系统_同步状态1070(转换1011)。同样地,如终端系统接收到的集成帧带有足够多的位元数量被设定在集成帧中,但带有的位元数量不够多到设定转换到终端系统_同步状态1070(转换1011)时,其就能通过终端系统_等待周期开始状态1020进入终端系统_尝试同步状态1060(转换1012,1021)。当终端系统在终端系统_集成状态1010中接收到冷启动应答帧时,其转换到等待周期开始_冷启动状态1050(转换1013)。
当终端系统在一段可设定的时间内接收不到带有为转换1011或1012设定的足够位元数量的集成帧时,该终端系统进入终端系统_非同步状态1030(转换1014)。
终端系统_非同步状态1030:
当终端系统在终端系统_非同步状态1030时,其在某已被配置的时期内在所有复制信道上传输冷启动帧。
只要终端系统接收到带有为转换1032或转换1033设定的足够位元数量的集成帧(集成程序),就再次允许其从终端系统_非同步状态进入终端系统_尝试同步状态1060或终端系统_同步状态1070。当终端系统在终端系统_非同步状态中并接收到冷启动应答帧时,其转换到终端系统_等待周期开始_冷启动状态(转换1031)。
此外,在终端系统_非同步状态1030中,终端系统还能够启动容错握手程序。当在终端系统_非同步状态的终端系统接收到冷启动帧时,其进入终端系统_泛滥状态1040(转换1034),容错握手可被说成已被启动。
终端系统_泛滥状态1040:
在终端系统_泛滥状态1040中,终端系统等待一段时间CSO,当CSO过时时,终端系统在所有复制的通信信道上传输冷启动应答帧。当终端系统在CSO逾时过期之前接收到冷启动帧时,则重启CSO逾时。在终端系统_泛滥状态1040中,所有集成帧都被丢弃。当CSO逾时过期,终端系统发送冷启动应答帧时,终端系统会等待接收冷启动应答帧。如其在预期的到达窗口内接收到冷启动应答帧,则结论为该容错握手是成功的,并进入终端系统_等待周期开始_冷启动状态1050(转换1041)。太早接收到的冷启动应答帧会被丢弃。当终端系统发送冷启动应答帧,但未在预期的到达窗口中接收到冷启动应答帧时,结论为该容错握手是不成功的,并转换回终端系统_非同步状态1030(转换1042)。
该容错握手允许容忍冷启动帧的启动/重启碰撞以及在出现错误的组件时启动。图10-图12描述了这两种情况。
终端系统_等待周期开始_冷启动状态1050:
在终端系统_等待周期开始_冷启动状态1050中,终端系统等待冷启动应答逾时CAO(见图10、图11)。当终端系统在CAO过时前接收到冷启动应答帧时,重启CAO逾时。当终端系统接收到冷启动帧时,终端系统会转换到终端系统_泛滥状态1050,并启动容错握手(转换1052)。当CAO逾时过期时,终端系统转换到终端系统_尝试同步状态1060(转换1051)。
终端系统_尝试同步状态1060:
当该些探测团集算法中的任一算法被启用并且成功返回时,终端系统会转换到终端系统_非同步状态1030(转换1063)。当终端系统接收到冷启动帧时,其转换到终端系统_泛滥状态1040(转换1064),并启动容错握手。当终端系统接收到冷启动应答帧时,其转换到终端系统_等待周期开始_冷启动状态1050(转换1065)。当设定在用于同步的探测团集算法的可变本地成员组件(varLocalMembershipComp)变量中的位元数量增长超过可配置阈值时,则终端系统转换到终端系统_同步状态1070(转换1062)。当终端系统在终端系统_尝试同步状态1060停留某可配置数目的集成周期INC时,如可设置的旗标已被设定的话,终端系统可转换到终端系统_稳定状态1080。
终端系统_同步状态1070:
当探测团集算法中的任一个被启用并且成功返回时,终端系统能被设置成转换到终端系统_非同步状态1030(转换1073)或终端系统_集成状态1010(转换1072)。当终端系统接收到冷启动应答帧时,其转换到终端系统_等待周期开始_冷启动状态1050(转换1074)。当终端系统在终端系统_同步状态1070停留某可配置数目的集成周期INC时,如可设置旗标被设定,终端系统可转换到终端系统_稳定状态1080。
终端系统_稳定状态1080:
当非同步的探测团集算法被启用并且成功返回时,终端系统转换到终端系统_集成状态1010(转换1081)。而且,当同步的探测团集算法被启用并且在某可配置数目或顺序的集成周期INC中成功返回时,终端系统也转换到终端系统_集成状态1010(转换1081)。当终端系统接收到冷启动应答帧时,其转换到终端系统_等待周期开始_冷启动状态。
图8描述了如假定终端系统是被信任,在交换机中执行的协议状态机。这种情况下的交换机状态机与终端系统状态机是非常相似的。在一个实现中,终端系统和交换机的状态机是统一的,以致能通过设定来选择终端系统和交换机的行为。
交换机_集成状态2010和交换机_等待周期开始状态2020:
交换机状态机在一开机时就以交换机_集成状态2010开始。当交换机接收到在成员新域402中设有位元数量足够多的集成帧时,其能从交换机_集成状态2010进入同步状态:交换机_同步状态2070(转换2011)。而且,如交换机接收到的集成帧带有足够多位元数量被设定在集成帧中,但位元数量不够多到设定成转换到交换机_同步状态2070(转换2011),交换机就能通过交换机_等待周期开始状态2020进入交换机_尝试同步状态2060(转换2012,2021)。
当交换机在一段可设定时段内没有接收到带有为转换2011或2012而设定的足够位元数量的集成帧时,交换机进入交换机_非同步状态2030(转换2013)。
交换机_非同步状态2030:
只要交换机接收到带有为转换2032或转换2033而设定的足够位元数量的集成帧,就允许其从交换机_非同步状态进入交换机_尝试同步状态2060或交换机_同步状态2070(集成程序)。
交换机_尝试同步状态2060:
当探测团集算法中的任一个被启用并且成功返回时,交换机会转换到交换机_非同步状态2030(转换2063)。
当设定在用于同步的探测团集算法中的可变本地成员组件(varLocalMembershipComp)变量中位元数量的增长超过可配置的阈值时,交换机转换到交换机_同步状态2070(转换2062)。当交换机在交换机_尝试同步状态2060停留某可配置数目的集成周期INC时,如可设置旗标已被设定,交换机就可转换到交换机_稳定状态2080(转换2061)。
交换机_同步状态2070:
当非同步的探测团集算法被启用并且成功返回时,交换机转换到交换机_集成状态2010(转换2072)。当同步的探测团集算法被启用并且成功返回时,交换机依交换机的设定而转换到交换机_集成状态2010(转换2072)或交换机_尝试同步状态2060(转换2073)。
当交换机在交换机_同步状态2070停留某可配置数目的集成周期INC时,如可设置旗标已被设定,交换机就可转换到交换机_稳定状态2080(转换2071)。
在交换机_同步状态2070中,交换机不会转发冷启动帧。
交换机_稳定状态2080:
当非同步的探测团集算法被启用并且成功返回时,交换机转换到交换机_集成状态2010(转换2081)。而且,当同步的探测团集算法被启用并且在某可配置数目或顺序的集成周期INC中成功返回时,交换机也转换到交换机_集成状态2010(转换2081)。
在交换机_稳定状态2080中,交换机不会转发冷启动帧。
图9描述了如假定终端系统不被信任,在交换机中执行的协议状态机。交换机状态机又与终端系统状态机非常相似。在一个实现中,终端系统和交换机的状态机是统一的,以致能通过设定来选择终端系统和交换机的行为。
当交换机在交换机_非同步状态2030时,与不信任的终端系统一起运行的交换机转播冷启动帧并阻挡所有其它状态的冷启动帧。
当交换机在交换机_非同步状态2030时,只要成员新域402的值足够高,或者当交换机在交换机_冷启动应答启用状态2040时,与不被信任的终端系统一起运行的交换机会转播冷启动应答帧并阻挡所有其它状态的冷启动应答帧。
如交换机带有转换,而该转换在其协议状态机中被限定为使用该集成帧或该集成帧被用于时钟同步程序的话,与不被信任的终端系统一起运行的交换机会转播在交换机_集成状态2010、交换机_非同步状态2030、交换机_等待进入状态2040、交换机_同步状态2070、以及交换机_稳定状态2080中的集成帧。所有其它集成帧都被阻挡。交换机会阻挡不是用于交换机协议状态机的集成帧。例如,这种集成帧可以是由单个错误的终端系统发送的错误的集成帧。
交换机_集成状态2010:
交换机状态机在一开机时就以交换机_集成状态2010开始。当交换机接收到在成员新域402中设有位元数量足够多的集成帧时,交换机能从交换机_集成状态2010进入同步状态:交换机_同步状态2070(转换2011)。
当交换机在一段可设定的时段内没有接收到带有足够为转换2011或2012而设定的位元数量的集成帧时,就进入交换机_非同步状态2030(转换2013)。
交换机_非同步状态2030:
只要交换机接收到带有为转换2033而设定的足够位元数量的集成帧,就允许交换机从交换机_非同步状态进入交换机_同步状态2070(集成程序)。
当交换机接收到冷启动帧或足够数量的冷启动应答帧时,就转换到交换机_冷启动应答启用状态2040(转换2034)。
交换机_冷启动应答启用状态2040:
在可配置的逾时过期后,交换机转换到交换机_等待进入状态2050(转换2041)。
交换机_等待进入状态2050:
在交换机_等待进入状态2050中,交换机等待至接收到在成员新域402中设有位元数量足够多的集成帧时转换到交换机_同步状态2070(转换2051)。如交换机在可配置的逾时时间内未接收到这种集成帧,交换机就转换回交换机_非同步状态2030(转换2052)。
交换机_同步状态2070:
当非同步的探测团集算法被启用并且成功返回时,交换机转换到交换机_集成状态2010(转换2072)。当同步探测团集算法被启用并且成功返回时,交换机转换到交换机_集成状态2010(转换2072)。
当交换机在交换机_同步状态2070停留某可配置数目的集成周期INC时,如可设置旗标被设定,交换机就可转换到交换机_稳定状态2080(转换2071)。
交换机_稳定状态2080:
当非同步的探测团集算法被启用并且成功返回时,交换机转换到交换机_集成状态2010(转换2081)。而且,当同步的探测团集算法被启用并且在某可配置数目或顺序的集成周期INC内成功返回时,交换机也转换到交换机_集成状态2010(转换2081)。
图10描述了分布式计算机网络的无错误的和无碰撞的启动情况,从左到右描述了实时的进展。描述了仅在一个通信信道(信道包括交换机201)上的信息流。
本发明区分了不同类型的信息:冷启动帧3101、冷启动应答帧4102-4105和集成帧5101-5105。集成帧在同步操作期间使用,也就是一旦成功确立同步时。冷启动帧用于启动容错握手阶段。冷启动应答帧用于确认和结束容错握手程序并在容错握手阶段之外接收到时用于进行同步。图10描述了以接受冷启动帧3101开始,到接收到冷启动应答帧4201结束的容错握手FTH。
各个终端系统101-105会发送冷启动应答帧至其接受的冷启动帧。终端系统会接受在FTH期间接收到发送自其它终端系统的所有冷启动帧(终端系统能被设置成对自己的冷启动帧作出反应或不作出反应),并会重启CSO。当冷启动偏移CSO过时时,终端系统会发送冷启动应答帧。当终端系统接收来自交换机的冷启动应答帧时,其结论是容错握手FTH是成功的并朝同步状态前进。在FTH期间仅这些回应的冷启动应答帧被使用。在FTH期间太早接收到的冷启动应答帧会被丢弃。当终端系统没有接受到冷启动应答帧回来至其自己发送的冷启动应答帧时,其结论是容错握手FTH是不成功的并且进入非同步状态。
图10中的情况始于终端系统101发送冷启动帧3101。在一个实现中,冷启动帧被交换机201转播回到所有终端系统101-105。转播时交换机就在与冷启动帧各自的发送器有关的成员新域402中设定位元,在这一情况是终端系统101,并清除所有其他位元。这意味着各个接收终端系统能通过成员新域402识别出冷启动帧的发送器。在这一情况中,各个终端系统把终端系统101识别为冷启动帧3101的原本发送器。
在一个实现中,所有终端系统101-105被设置成其不会对自己的冷启动帧(即各个终端系统原本发送的冷启动帧)作出反应。终端系统102-105会启动冷启动偏移逾时CSO。当逾时过期时,终端系统102-105会发送冷启动应答帧4102-4105。
在一个实现中,交换机压缩冷启动应答帧4102-4105并产生新的冷启动应答帧4201。然后压缩冷启动应答帧4201被发送至终端系统。终端系统101-105一接收到冷启动应答帧4201就会启动冷启动应答逾时CAO。当逾时过期时,终端系统101-105会进入同步状态并发送集成帧5101-5105。在另一个实现中,冷启动应答帧不被压缩,但交换机201-202转发所有冷启动应答帧。
图11描述了无错误的带碰撞的启动情况,从左到右描述了实时的进展。由于容错的原因,多个终端系统101-105被设置成提供同步信息,以致就算在部分终端系统有失效的情况下,那些无错误的终端系统仍会产生同步信息。特别是,多个终端系统101-105可被设置成提供冷启动信息,冷启动信息被用于初始同步。由于这些信息是在还未确立同步信息时所发送的第一批同步信息,所以在我们称为碰撞区域(collisiondomain)CD的间隔期间,两个或更多个终端系统可决定在大体相同的时间点发送其冷启动帧。原则上,有可能像初始同步事件般地使用碰撞。然而,在这种情况下,由于两个不同的终端系统101-105可决定使用不同的冷启动帧来同步,所以该初始同步是碰撞区域CD的直接函数。在存储和转发网络中,碰撞区域CD是很大的。因此,为了提高初始同步,本发明指定了决定性地解决碰撞情况的机制。图11中描述的情况描述了如何在无错误的情况下解决碰撞的情况的例子。
所述情况始于终端系统102发送冷启动帧3102。在冷启动帧开始传输后的碰撞时段CD之内,终端系统101也开始发送冷启动帧3101,引起碰撞。冷启动帧3102是交换机201-202转播及终端系统101-105接收到的第一个冷启动帧。终端系统101,103-105会使用该冷启动帧3102启动冷启动偏差逾时CSO(终端系统102被设置成不使用其自己的冷启动帧)。然而,在接收到冷启动帧3102后,冷启动帧3101由交换机201-202转播到终端系统101-105。终端系统102-105会使用冷启动帧3102来重设冷启动偏差逾时CSO。因为终端系统101也被设置成不对自己的冷启动帧作出反应,所以其不会对冷启动帧3101作出反应。因此,终端系统101是第一个过时并发送冷启动应答帧4101的终端系统。因为终端系统102-105冷启动偏差逾时CSO发生得较后,其接着发送其冷启动应答帧4102-4105。交换机首先处理来自终端系统101的冷启动应答帧4101,和把所产生的冷启动应答帧4201发送回终端系统101-105。仅终端系统101会通过启动冷启动应答偏差逾时CAO对该冷启动应答帧作出反应。终端系统102-105不会使用冷启动应答帧4201,因为在其容错握手FTH中是太早接收到冷启动应答帧4201。一旦终端系统101-105接收到冷启动应答帧4211时,所有终端系统101-105会接受这冷启动应答:终端系统102-105接受是因为其时间上符合其容错握手FTH阶段,终端系统102接受是因为其已经结束其FTH。
图12描述了在启动期间包括错误的终端系统101和错误的交换机201的失效情况,从左到右描述了实时的进展。该情况始于错误的终端系统101把冷启动帧3101仅发送至交换机201(正确的终端系统总会在所有复制信道上发送同步帧)。错误的交换机201把冷启动帧3101仅转播到终端系统103(正确的交换机总会把同步发送至所有的终端系统)。终端系统103接收到冷启动帧3101并通过设定冷启动偏差逾时CSO来启动其容错握手。当CTO过期时,终端系统103在所有复制信道上发送冷启动应答帧。从而错误的交换机201和正确的交换机202接收到冷启动应答帧4103。正确的交换机202会把冷启动应答帧4103作为冷启动应答帧4202转播到所有的终端系统101-104。终端系统103会接收到该与其容错握手FTH相配的冷启动应答帧4202,并其结论是该FTH是成功的。终端系统102和104在FTH之外接收到冷启动应答帧,从而用其同步。从而所有正确的终端系统会通过接收冷启动应答帧4202来启动冷启动应答偏差CAO,并会进行到同步操作。

Claims (17)

1.用于将分布式计算机网络中的本地时钟同步的方法,其中所述计算机网络由多个终端系统和至少两个交换机组成,各个终端系统通过双向通信链路连接至至少两个交换机,并且已设置的部分终端系统和交换机以同步状态机的形式执行该方法,
其特征在于
a)所述状态机使用至少三种不同的帧类型(冷启动帧类型、冷启动应答帧类型、和集成帧类型),以及
b)所述状态机中的状态可被说成是属于非同步状态的一组或属于同步状态的一组,以及
c)被设置成同步主导装置的所有终端系统在所述其中一个非同步状态中周期性地发送冷启动帧,以及
d)被设置为同步主导装置的所有终端系统在接收到冷启动帧之后一段可配置的第一逾时(CSO)时间通过在所有复制的通信通道上发送冷启动应答帧以对接收到的冷启动帧作出反应,条件是:只要终端系统处于同步状态机为冷启动帧限定的转换的状态中,并且在所述冷启动应答发送之前接收到连续的冷启动帧时,重设所述第一逾时(CSO),以及
e)所有被设置成同步主导装置的终端系统通过启动可配置的第二逾时(CAO)来对接收到的冷启动应答帧作出反应,条件是:该些终端系统还未执行所述第一逾时(CSO),并且在所述第二逾时(CAO)过期时进入同步状态。
2.按照权利要求1所述的方法,其特征在于终端系统不会对自己的冷启动帧作出反应。
3.按照权利要求1或2所述的方法,其特征在于在其中一个同步状态中的被设置成同步主导装置的终端系统会周期性地发送集成帧,所述集成帧被那些已经在同步状态中的终端系统用于时钟同步,并被那些在其中一个非同步状态中的终端系统用于集成。
4.按照权利要求1至3中其中一项权利要求所述的方法,其特征在于信息发送器由设定在同步信息中的位元识别。
5.按照权利要求1至4中其中一项权利要求所述的方法,其特征在于所述终端系统和/或交换机在至少其中一个同步状态中执行同步的探测团集算法。
6.按照权利要求5所述的方法,其特征在于所述同步的探测团集算法通过以下方法实现:组件(终端系统或交换机)监测与所述组件同步的终端系统,并且如与所述组件同步的终端系统的数量低于在某个数量的通信周期的阈值,则该组件进入非同步状态。
7.按照权利要求6的方法,其特征在于对每个同步状态能独立地设定用于同步的团集探测算法的阈值。
8.按照权利要求1至7中任一权利要求所述的方法,其特征在于所述终端系统和/或交换机在至少一个同步状态中执行非同步的团集探测算法。
9.如权利要求8所述的方法中,其特征在于实现非同步的团集探测算法,以致组件(终端系统或交换机)监测不与所述组件同步但可运行的终端系统,并且如不与所述组件同步的终端系统的数量增长至超过在某个数量的通信周期中的状态相关阈值,则该组件进入非同步状态。
10.按照权利要求9所述的方法,其特征在于对每个同步状态能独立地设定用于非同步的团集探测算法的阈值。
11.按照权利要求1至10中其中一项权利要求所述的方法,其特征在于终端系统101-105实现以下的方法去点算未同步的组件:通过在某段长过一个集成周期INC的时间,记录在排程外接收到的集成帧组中的被设定在同步信息中的位元(成员新域402),并且不与所述组件同步的终端系统的数量是被设定在所记录的数据结构中的位元的位元和。
12.按照权利要求1至11中其中一项权利要求所述的方法,其特征在于当所述组件是在可配置的时间中处于同步状态时,从另一同步状态(同步状态)进入其中一个同步状态(稳定状态)。
13.按照权利要求1至12中其中一项所述的方法,其特征在于当同步的团集探测机制显示所述同步的终端系统的数量少于在一段可配置数目的顺序集成周期(INC)而非依第一显示时所设定的状态相关的阈值,终端系统或交换机从其中一个同步状态(稳定状态)转换到其中一个非同步状态。
14.按照权利要求1至13中其中一项权利要求所述的方法,其特征在于所述交换机是能根据状态来设定的,以仅转播带有可设置的某些类型组的信息。
15.用于按照权利要求1至14中其中一项权利要求所述的方法的终端系统。
16.用于按照权利要求1至14中其中一项权利要求所述的方法的交换机。
17.由多个按照权利要求15所述的终端系统组成的网络,其中各个终端系统通过双向通信链路连接至至少两个按照权利要求16所述的交换机。
CN200880130705.8A 2008-06-02 2008-06-02 将分布式计算机网络中的本地时钟同步的方法 Active CN102282787B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/AT2008/000191 WO2009146471A1 (en) 2008-06-02 2008-06-02 Method for synchronizing local clocks in a distributed computer network

Publications (2)

Publication Number Publication Date
CN102282787A true CN102282787A (zh) 2011-12-14
CN102282787B CN102282787B (zh) 2015-01-14

Family

ID=40342797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880130705.8A Active CN102282787B (zh) 2008-06-02 2008-06-02 将分布式计算机网络中的本地时钟同步的方法

Country Status (6)

Country Link
US (1) US8463945B2 (zh)
EP (1) EP2297885B1 (zh)
JP (1) JP5413750B2 (zh)
CN (1) CN102282787B (zh)
HK (1) HK1163388A1 (zh)
WO (1) WO2009146471A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104412528A (zh) * 2012-04-11 2015-03-11 Fts电脑技术有限公司 可靠地交换同步讯息的方法和交换单元
CN108628284A (zh) * 2017-03-17 2018-10-09 Tttech电脑技术股份公司 用于识别用于控制受控对象的电子系统中的故障的容错方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT509700B1 (de) * 2010-04-07 2019-05-15 Tttech Computertechnik Ag Verfahren und apparat zur fehlertoleranten zeitgesteuerten echtzeitkommunikation
CN103001720B (zh) * 2012-11-12 2017-05-10 中兴通讯股份有限公司 时间同步方法和装置
CN105686830B (zh) * 2015-12-29 2019-03-19 上海联影医疗科技有限公司 医疗设备的数据采集系统及其配置方法
WO2017114267A1 (zh) 2015-12-29 2017-07-06 上海联影医疗科技有限公司 一种医疗设备的数据采集系统及其配置方法
CN109150354B (zh) * 2018-08-03 2020-01-10 湖南华芯通网络科技有限公司 一种时间触发以太网中压缩修正值的计算方法
CN113783721B (zh) * 2021-08-20 2022-06-21 大连理工大学 面向工业控制网络协议的可信性建模与验证方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6731654B1 (en) * 1999-04-27 2004-05-04 Carriercomm, Inc. Communication system overhead channel
CN100586086C (zh) * 2003-02-03 2010-01-27 索尼株式会社 无线通信系统,无线通信设备和无线通信方法
ES2300772T3 (es) * 2003-05-20 2008-06-16 Nxp B.V. Sistema de comunicaion disparado en el tiempo y metodo para el inicio sincronizado de un red de dos canales.
WO2005053244A2 (en) * 2003-11-19 2005-06-09 Honeywell International Inc. Simplified time synchronization for a centralized guardian in a tdma star network
JP4442338B2 (ja) * 2004-02-06 2010-03-31 ソニー株式会社 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム
WO2007000007A1 (en) * 2005-06-28 2007-01-04 Tttech Computertechnik Aktiengesellschaft Safe start-up of a network
CN102119499B (zh) * 2008-06-02 2015-01-14 Tttech电脑技术股份公司 将分布式计算机网络中的本地时钟同步的方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104412528A (zh) * 2012-04-11 2015-03-11 Fts电脑技术有限公司 可靠地交换同步讯息的方法和交换单元
CN104412528B (zh) * 2012-04-11 2017-08-18 Fts电脑技术有限公司 可靠地交换同步讯息的方法和交换单元
CN108628284A (zh) * 2017-03-17 2018-10-09 Tttech电脑技术股份公司 用于识别用于控制受控对象的电子系统中的故障的容错方法
CN108628284B (zh) * 2017-03-17 2023-03-31 Tttech汽车股份公司 一种用于控制处于变化的环境中的受控对象的方法及其电子系统

Also Published As

Publication number Publication date
US8463945B2 (en) 2013-06-11
HK1163388A1 (zh) 2012-09-07
US20110173347A1 (en) 2011-07-14
JP5413750B2 (ja) 2014-02-12
JP2011523814A (ja) 2011-08-18
EP2297885B1 (en) 2013-02-20
CN102282787B (zh) 2015-01-14
WO2009146471A1 (en) 2009-12-10
EP2297885A1 (en) 2011-03-23

Similar Documents

Publication Publication Date Title
CN102282787B (zh) 将分布式计算机网络中的本地时钟同步的方法
JPS62239641A (ja) 同報通信方式
US9654555B2 (en) Method for synchronizing local clocks in a distributed computer system
CN102984042A (zh) 一种实现总线通信的确定性调度方法及系统
RU2408995C2 (ru) Система и способ синхронизации пакетной сети
Steiner et al. Towards synchronous deterministic channels for the internet of things
JPH0126211B2 (zh)
JP5154648B2 (ja) ネットワークにおいて、分散型方式からマスタ/スレーブ型方式へ切換える方法。
CN111708659B (zh) 一种基于kubernetes构建云原生容灾架构的方法
CN101237319B (zh) 以太环网中的主节点、时间同步方法和以太环网系统
CN102118266A (zh) 工业以太网双链路冗余技术
CN109274763A (zh) 一种信息同步方法及双机热备设备
CN102480366A (zh) 一种关于会议系统软件的双机热备份运行方法
Verissimo Redundant media mechanisms for dependable communication in token-bus LANs
CN110098886B (zh) 一种基于复杂网络结构的fc网络时间同步的方法
CN111181678A (zh) 一种应用于时间触发fc网络的时间同步方法
CN109217966A (zh) 2oo3冗余结构下的操作系统时钟同步方法、系统
Hiergeist et al. Implementation of a SPI based redundancy network for SoC based UAV FCCs and achieving synchronization
CN111274068B (zh) 一种热备计算机联锁系统的通信机双cpu数据同步方法
Paulitsch et al. Starting and resolving a partitioned brain
Silvano et al. Challenges implementing PTPv2 in a PRP network
US9209964B2 (en) Systems and methods for DTE/DCE CESoP timing
Silvano et al. Considerations on the application of PTPv2 over a PRP network
CN116095812A (zh) 星载时间触发网络时间压缩主节点的系统和方法
Oliveira et al. Deployment and evaluation of PTPv2 in a PRP network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1163388

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1163388

Country of ref document: HK