针对口头消息,描述n=7, m=2的BGP协议过程

对于这次口头协议的简介:

此次口头协议分为三轮迭代。

对于七名将军,分别将他们命名为CL1L2L3L4L5L6

第一轮:C依次发消息给L1~L6

第二轮:以L1为例,他会怀疑C发来消息的真实性,于是他会询问L2~L6C给你们发来的什么消息。剩余的5位重复L1的询问过程,向除自己和C之外的5位发起询问。

第三轮,以L1为例,他会依次确认在第二轮中收到的每份消息的真实性:为了确认L2发来消息的真实性,他会向L3~L6发起询问:L2告诉你们他收到的将军的命令是什么,再结合之前L2告诉自己的L2收到的将军的命令,用majority函数决策L2收到的将军的命令是什么。同样的,他也会确认L3~L6在第二轮发给自己值的真实性从而向另外的4个人分别发起询问。询问结束后,结合第二轮得到的值,依次进行L3~L6在第二轮发给自己值的真实性确认。这样L1就完成了对第二轮收到值的确认。结合第一轮C发给自己的值和第二轮确认后的五个值,用majority函数投出自己最终的决定。这就是对L1而言的第三轮询问以及回到前两轮的迭代,即以上是L1完整的思考过程,对于L2~L6而言,他们经历和L1相同的思考过程,最终投出自己的决定。

另外,由于n=7m=2,满足n>3*m,所以这个口头协议满足交互式一致性目标:IC1:所有忠诚的下属都遵守相同的命令;IC2:如果指挥官忠诚,那么每个忠诚的下属都遵守他发送的命令。验证如下:由于m=2,即有两名叛徒,所以分为指挥官是否是叛徒这两种情况。

  1. 具体过程分析:

情况一:C是忠诚的,L5L6是叛徒。

第一轮,C分布命令,告诉L1~L6Attack(以下简称A,另外撤退命令是Retreat,以下简称R)。

第二轮,L1~L6彼此之间交换从C收来的命令。

第三轮,L1为验证L2告诉自己消息的真实性,问L3~L6L2告诉你们他收到的将军的命令是什么。从表格第二行可以看出(行列从序号1开始计数),(22)是A表示第二轮L2告诉L1自己接收到的命令是A,(23)是AL3L1说:L2告诉我他收到的将军的命令是A,因为L3是忠诚的,所以他如实的转述了L2对自己说的话。(25)是a,即不确定是A还是R,因为L5是叛徒,所以他不一定会如实转述L2的值。同理,(26)是b,也是不确定值。由表可知,第二行是关于L2的表述,即有3个人说L2收到的命令是A,两个人给出不确定值(这个不确定值范围是是AR),根据majority函数,L1决策L2收到的C的命令是A,填到表格的(21)中,即(21)代表L2=A。由于L3L4L2一样都是忠诚的,所以他们对L1的转述过程以及L1对于他们说的话的决策过程和上述L2类似,如表格所示。对于L5来说,他是一个叛徒,他说出去的话都不具备参考价值,即使转述他的话的人是忠诚的,这条消息也没有用,因为可能L5一开始告诉他们的就是假的值,所以在第五行,第26列的值都是上述随机值,从而决策出来的也是随机值,用X表示,填于(51)。对于叛徒L6,同L5。以上就是L1的思考过程,在他看来,自己接受到的命令是AL2~L4接收到的命令也是A,用majority函数进行决策,投出自己的决定,即A。(由表可知,第一列就是L1的决策依据)。因为L2~L4L1一样都是忠诚的并且他们也收到了A这个命令,所以他们最终的决策也会是A,这就满足了IC1IC2的目标:忠诚的下属L1~L4都遵守了CAttack的命令以及C是忠诚的,他每个忠诚的下属L1~L4都遵守了他发送的Attack命令。

L1=A

L2

L3

L4

L5

L6

L2=A

A

A

A

a

b

L3=A

A

A

A

c

d

L4=A

A

A

A

e

f

L5=X

g

h

i

j

k

L6=X'

l

m

n

o

p

 

情况二:CL6是叛徒。假设CL1~L4发出的命令是A,对L5L6发出的命令是R。他们每个人的思考过程和情况一类似,不再赘述。下面给出L1的思考过程见表格如下。由决策可知,L1会执行A这个命令。由于L2~L3L1都是忠诚的,而且他们收到的都是A,所以他们也会执行A这个命令。

L1=A

L2

L3

L4

L5

L6

L2=A

A

A

A

A

a

L3=A

A

A

A

A

b

L4=A

A

A

A

A

c

L5=R

R

R

R

R

d

L6=Y

e

f

g

h

i

 

对于L5,他的思考过程如下表所示。根绝majority函数,他最终的决策是A。虽然他收到的来自C的命令是A,但是通过上述的询问决策过程,他发现了C是叛徒,并且做出了和其他冲忠诚的下属一致的决定。综上所述,这个情况也是满足交互一致性目标的。验证:因为C不是忠诚的,所以只需满足IC1即可。因为忠诚的L1~L5都执行了A这个相同的命令,验证通过。

L5=R

L1

L2

L3

L4

L6

L1=A

A

A

A

A

a

L2=A

A

A

A

A

b

L3=A

A

A

A

A

c

L4=A

A

A

A

A

d

L6=Z

e

f

g

h

i

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值