数据链路协议与部分同步算法介绍
1. 数据链路协议
1.1 五包握手协议特性
五包握手协议在实际应用中有一个重要特性,即当只有有限个 SEND、CRASH 和 RECOVER 事件时,最终两个进程会达到并保持与初始状态相同的状态,只是使用的集合可能不同。通俗来讲,该协议最终会“忘记”到目前为止发生的所有事情。这意味着当该协议没有积极处理从 U1 到 U2 的消息时,不需要为其使用预留内存。实际上,网络中的同一对进程可以为大量不同的用户对 (U1, U2) 并行模拟五包握手协议。如果任何时候只有少量的用户对 (U1, U2) 处于活跃通信状态,那么五包握手协议所有并行执行所需的总内存量是相当小的。
1.2 有限 UID 集
在实际应用中,可用的 UID 数量非常大,但并非像我们假设的那样是无限的。例如,UID 可以选择为对某个非常大的数 n 取模的连续递增整数。只要在 UID“循环”重用值 u 时,任何携带相同 UID u 的旧数据包已经从系统中消除,这个协议的“有限版本”就能正常工作,并且其正确性可以通过与普通五包握手协议的模拟关系来证明。在实际环境中,由于已知的消息传递时间、本地处理时间和高级消息提交速率的限制,或者由于明确的丢弃旧数据包的策略,有可能保证这一点。
1.3 常见协议简介
- ISO 分层通信架构 :提供了一种结构化的通信框架。
- Stenning 协议 :由 Stenning 提出。
- ABP 协议 :由 Bartlett、S