哪些实际问题导致使用多播?

网络工程 多播 播送
2022-02-16 09:26:49

SF 上的问题的答案解释了广播和多播之间的区别。我还不清楚使用多播带来了哪些实际问题。

我的理解是,对于广播和多播,数据包都会在线上呈现给每个主机,并且

  • 对于广播,客户端处理数据包以检查它是否有与该客户端相关的内容
  • 对于多播,客户端可以选择处理数据包(通过让服务订阅 224-239 地址)以检查内部是否有与该客户端相关的内容

它是否正确?

如果是,为什么不只使用广播地址并让客户端决定接收到的数据包的有用性?

  • 是对处理能力的关注吗?可能不是因为无论如何都需要处理所有广播数据包(或者至少没有办法提前区分数据包的相关性)
  • 是对路由的关注吗?这更容易理解:路由器只能路由多播数据包,假设这些数据包对更远的设备感兴趣,而不是应该是本地的广播。
  • 或者是其他东西?

注意:根据建议从 SF 移出。

1个回答

是对处理能力的关注吗?

是的。与相同大小的广播风暴相比,给定广播域中给定大小/量的多播洪水对暴露给它的主机集的(全局)影响较小。

可能不是因为所有广播数据包都需要处理

是的。必须处理广播数据包,直到至少第 4 层,才能找到端口号或其他有效负载属性,以便判断数据包是否与主机及其服务/进程相关。

(或者至少没有办法提前区分数据包的相关性)

没有广播,但对于多播,有: 目标地址。

对于传入的多播数据包,主机的网络堆栈可以根据目标 MAC(以 01-.. 开始)或 IP 多播 (224.0.0.0/4) 地址及早决定给定的数据包是否需要进一步处理,或者是否可以被丢弃。然而,广播数据包必须“进一步向上传递”以查看第 4 层属性,直到明确主机上是否有任何进程对其感兴趣。

另请参阅OSPF 及其对多播的使用

是对路由的关注吗?

让我们称之为“高效转发”而不是路由。

实际上,广播(Dst:255.255.255.255)和链路本地多播(Dst:224.0.0.0/24,不得路由)之间的区别并没有那么大,尤其是所有交换机都会为 224.0 淹没多播流量。 0.0/24 就像是广播一样。224.0.0.0/24 的扬声器和监听器不使用 IGMP,因此任何交换机尝试 IGMP-snoop 224.0.0.0/24 都是徒劳的。但是,无论如何,224.0.0.0/24 仅用于特殊目的,绝不应用于此类应用程序。

与“常规”多播不同,主机告诉路由器他们希望接收哪些组(使用 IGMP)以及交换机可以在哪里窃听(“窥探”)IGMP 消息并相应地调整自己的内部第 2 层转发表,所以不每台 100Mbit/s 连接的打印机(其 CPU 较弱)都会受到 CEO 演讲的 20Mbit/s 高清视频流或 25Mbit/s 证券交易所市场数据馈送的影响。

简而言之:在 LAN/VLAN/Broadcast 域中,除非使用低容量/低数据包率发现机制(如使用 224.0.0.0/24 地址),您不想(本地)转发任何已知在多播或单播(即音频和视频传播,或市场数据流)上运行良好的广播。不需要任何这些数据流的毫无戒心的主机不应被迫处理他们从未要求过的数据。