2

我不清楚为什么有些论文使用一个或另一个术语。我认为它们是同一件事:也许原子多播实际上是使用 IP 多播(如环 Paxos)实现的原子广播。

4

2 回答 2

1

在分布式系统理论中,它与使用 IP 多播或任何其他实现细节无关。实际上,大多数时候这是作者个人喜好的问题,您可以放心地假设它们的含义相同。

详细地说,严格地说,当您说多播时,您假设并非所有进程都必须接收所有消息。当您说广播时,您假设所有进程都是所有消息的目标。歧义产生如下:由于多播算法通常位于成员管理之上,因此在视图上下文中向所有成员多播的抽象协议与向系统模型中的所有进程广播的协议几乎没有区别。因此,您可以将其描述为多播或广播。这真的取决于上下文。

于 2012-11-14T18:27:26.560 回答
1

原子广播一词与单个中央实体更相关,通常称为定序器,它执行和发送一组完全有序的消息,通常称为事件流。它如何发送消息(广播、多播、单播、tcp 等)不是它的主要特征,或者至少不应该是。除了@jop 所说的,在 TCP/IP 协议方面,UDP 广播和 UDP 多播之间存在很大的技术差异。例如:

  • 组播可以跨子网传播,广播不能
  • 组播通常需要IGMP,广播不需要
  • 大多数内核绕过网卡将加速多播,但不会广播

这并不意味着永远不应该使用 UDP 广播。有些网络可能不支持多播,但会支持广播。理想情况下,消息传递系统将支持多种传输机制:

  • UDP组播
  • UDP单播
  • UDP广播
  • TCP
  • 记忆
  • 共享内存
  • 双(TCP + UDP)

对于不依赖于任何特定传输机制的原子广播消息系统的示例,您可以查看CoralSequencer

免责声明:我是 CoralSequencer 的开发者之一。

于 2021-06-25T15:27:58.133 回答