多播路由在互联网上如何工作?

多播路由在互联网上如何工作?

对于 LAN,它实际上是硬件/软件上的几层附加过滤器,可能包括交换机(IGMP 侦听)/NIC/内核堆栈等。否则它类似于广播。我想我可以大致理解这部分。

对于WAN来说,如果一台主机订阅了一个多播地址,但不知道它可能来自哪里,那么似乎这个订阅主机需要发送一个IGMP数据包,该数据包需要传递到互联网上的所有路由器,以便一个数据包从任何主机发送到该多播地址的消息都可以路由到订阅者。但这听起来额外的流量太多了,我错过了什么?

答案1

此描述仅基于我自己的理解,可能包含错误。它可能有助于帮助您找到更好的资源......

多播是可路由的,这意味着整个互联网不会收到您的订阅消息。组播是一对多而不是多对多。这很重要,因为“一”是发布者,“多”是订阅者。新订阅只需从新订阅者路由到现有发布者。

一些多播地址(包括224.0.0.1)保留用于不可路由多播。其他地址用于路由多播。需要注意的是,要在 Internet 上发布多播流,您必须分配一个多播 IP 地址。

为了使组播有效,每个路由器必须理解他们正在执行组播路由。这是因为从发布者到订阅者的每个路由器可能需要从发布者处接收一次数据包并将其多次发送到其他路由器或最终订阅者。

这意味着您的订阅请求可能会触发一系列订阅请求。每个路由器必须决定将请求转发到哪个其他路由器。幸运的是,这个问题与正常的一对一路由非常相似。多播订阅请求链的路由非常类似于发送到单个客户端的单个数据包,因为多播 IP 是拥有的由订户。

我已经掩盖了路由的复杂性以及它如何改变。这篇文章中有更多信息:http://www.enterprisenetworkingplanet.com/netsp/article.php/3623181/Networking-101--Understanding-Multicast-Routing.htm


IPv4 与 IPv6

理论上来说,两者没有太大区别。但是,正如本答案前面所述,每个路由器都必须支持多播才能正常工作。 Internet 上的许多 IPv4 路由器不支持多播。

各个 ISP 通过确保自己的所有路由器都支持多播来设法在自己的网络上设置多播。但很多时候这是不可能的。

IPv4 下的多播 IP 分配也相当小。我不相信 IANA 仍在提供这些服务。我可能是错的。

据我所知,IPv6 使多播成为标准的必需部分,并且预计路由器可能会完全支持它。这是否真的发生还有待观察。

IPv6 对多播地址的分配要大得多。 根据维基百科,IPv6 多播地址具有 64 位网络前缀和 32 位组 Id。

答案2

RFC 2236 (IGMPv2) 在第 6 节(主机状态图)和第 7 节(路由器状态图)中解释了基本机制。该文档还声称所有 IGMP 消息均以 TTL=1 发送,因此绝对不会联系互联网上的所有主机。请注意,IGMP 不涵盖所使用的协议之间多播路由器。

答案3

通常,互联网中的多播流仅存在于您的 ISP WAN 内(例如 IP TV),这基本上是一个“宽”LAN。在这种情况下,使用 IGMP 等东西实现传统路由是可以接受的。

我从未听说过“全球、互联网范围内可用”的多播流。

相关内容