BCSP 包的类型
有4种类型,Sync,Sync-Resp,Conf,Conf-Resp
Sync: {0xda,0xdc,0xed,0xed}
Sync-Resp: {0xac,0xaf,0xef,0xee}
Conf: {0xad,0xef,0xac,0xed}
Conf-Resp: {0xde,0xad,0xd0,0xd0}
上面2图式BCSP的行为和状态机。
Normal Behaviour:
假设"muzzled"为FALSE;
2个BCSP链路连接实体会按一定的时间间隔互相发送"Sync"消息。
收到"Sync"消息的实体会发送"Sync-Resp"消息应答对等方。
当收到"Sync-Resp"消息(自己发送的"Sync"消息的应答),将之作为确认对等方操作是否正确,并进入"Curious"状态。
在"Curious"状态,实体按一定的时间间隔发送"Conf"消息,对等方只有在"Curious"或则"garrulous"状态下才会应答。
当一个实体收到"Conf-Resp",远端设备可以确认本地设备操作正确,因此移除BCSP传输阻塞(choke)
Normal BCSP traffic will not flow through both statks until both have removed their blockages.
当2边的阻塞都移除之后,状态机将潜伏起来。
Passive Start
当状态机开始的时候,如果"muzzled"为TRUE,只有在接收到对等方"Sync"消息之后才能发送"Sync"消息。
Restart Detection
如果状态机处于"garrulous",他不会从对等方接受"Sync"消息,实际上,唯一收到"Sync"消息的原因是对等方重启了。