-
Notifications
You must be signed in to change notification settings - Fork 2
/
[New]同步,异步和部分同步(链芝士)
59 lines (27 loc) · 3.47 KB
/
[New]同步,异步和部分同步(链芝士)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
在标准的分布式计算模型中,不确定性通信由可以控制消息延迟的敌手捕获,敌手控制延迟消息的限制由通信模型所定义。
三个基本的通信模型包括:同步模型,异步模型和部分同步模型。
在同步模型中,存在已知有限的时间界限。对于发送的每个消息,敌手都能延迟消息的传递最多一个时间界限。
在异步模型中,敌手可以延迟消息的传递任意有限长的时间,换句话说,任何消息的传递都没有时间限制,但是必须保证消息最后被传送出去。
部分同步模型的目标是寻求这两个模型的中间状态,它假设存在某个有限时间界限和特殊的GST(全局稳定时间,global stablization time)事件并且满足以下条件:
1)敌手必须使 GST 事件在某个未知的有限时间之后发生。
2)假设消息发送的时间是x,那么它被传送的时间是同步模型中的有限时间界限+max(x,GST)(取x,GST中的最大值)
更形象一点来说,部分同步模型中,在未到达 GST 事件触发之前,系统会表现得和异步模型相同;
而在之后,系统则会表现得和同步模型相同。值得注意的是,敌手可以任意延迟 GST 事件的触发时间,
没有协议可以检测GST是否触发,并且没有任何外部信号用来表明GST的状态。
乍看同步模型已经足够良好,假设在互联网上消息的传送时间是2分钟:
设定一个大而且保守的有限时间界限(10分钟)可能忠实地模拟现实世界,
但依赖于它的协议设计者会有很高的延迟,从而降低性能;
设置一个小而且激进的有限时间界限(0.1秒),则不能总是忠实地模拟现实世界,
这意味着依赖于此限制的协议可能会面临安全性方面的问题。
再者,如果发现有限时间界限的奇异点,想象一下一个消息发送者向两个接收者广播消息,那么这个消息会在不同的时间到达,可能会再次引发安全问题。
为了克服同步模型所面临的问题,异步模型迫使协议设计者不考虑网络延迟,其结果是非常具有鲁棒性的协议:
1)因为它们不依赖于任何时间界限,所以不会引发未知的安全问题。
2)因为针对超时,它们不能使用任何固定值,因此必须适应系统的延迟。
异步模型的主要问题是该模型中的协议往往更复杂,举两个例子:
1)在Fischer,Lynch 和 Paterson 在1985年发表的论文中提及,在异步模型中,任何致力于解决与敌手共识方面协议,在执行方面必须是无限的。
2)拜占庭协议经验证在同步模型中对于n>2f是可能的,但在异步模型中$n \leq 3f$是不可能的。(其中f表示的是敌手的数量)
部分同步模型由 Dwork,Lynch 和 Stockmeyer 在1988年提出,
这个模型同时也在其他两篇文章中被用到,分别是 Lamport 的 Paxos 和 Oki 与 Liskov 协作完成的 viewstamped replication.
部分同步模型的设计初衷是为了实现在多数情况下能同步运行的系统,但即使在被一些像拒绝服务攻击这样的极端情况下,同时也能得到一些保障。
它一直在强调的解决方案是设计始终安全的协议,即使系统是异步的;在同步系统中,它在GST之后提供活性和终止保证。
部分同步的另一种定义是假设在消息传递上存在有限的未知上界,这种界限由敌手选择,并且不是事先知道的。