多播和多播地址

多播和多播地址

我对多播地址感到困惑,我读过一个给出的示例。

假设已经构建了两个应用程序来通过网络发送音频。一个应用程序接受并数字化音频输入流,然后通过网络将结果帧发送到其他应用程序。第二个应用程序从网络接收数字化音频,将其转换回音频信号并通过扬声器播放结果。除非这两个应用程序使用广播发送帧,否则网络上的其他计算机都不会收到该帧的副本。多播为允许某些计算机参与音频传输的问题提供了极好的解决方案。要使用多播,必须为音频应用程序选择一个多播地址接收应用程序将多播地址传递给网络接口。接口开始接受发送到该地址的数据包。

问题:如何选择这个多播地址,接收应用程序如何知道发送方使用这个特定的目标地址来发送音频帧。

答案1

多播地址是从 239.0.0.0/8 范围中任意选择的(至少如果应用程序是企业内部的)。然后在源和所有订阅者上配置它。

因此,网络中通常没有“目录服务”,它依赖于人机交互来正确配置应用程序。

答案2

首先我要声明,多播是邪恶的。它设置起来极其困难,而且很难有效地排除故障。

话虽如此,我会尝试回答您的问题。发送方选择使用哪个多播 IP 地址来发送流量。多播 IP 地址的保留范围是 224.0.0.0 到 239.255.255.255。

大多数 ISP 不支持在其公共互联网网络上进行多播,因此如果您希望在不同地点之间进行多播,则需要在它们之间设置某种 VPN。多播经过的每个路由器都需要配置为多播。

如果您正在配置自己的设备,我将尝试提供所涉及过程的概述,但要获得详细信息,您需要阅读一些资料。幸运的是,维基百科上有关于 IP 多播的优秀文章。发送设备会发送多播流量,您需要设置希望多播流量通过的每个网络设备(路由器、交换机、防火墙等)。每个制造商的设备都会有所不同,因此我无法提供太多关于如何具体设置它的信息。

然后,您需要使用 Internet 组管理协议 (IGMP) 设置每个想要接收多播流量的客户端,该协议通常内置于您在客户端上运行的多播应用程序软件包中。IGMP 的作用是发送到其本地网络设备并通知它该客户端有兴趣从特定多播地址接收多播流量。因此,例如,您的发送设置为在 224.10.10.123 上发送,想要监听的客户端将设置 IGMP 以连接到其本地网络设备并请求任何通过 224.10.10.123 到达该设备的多播流量。

为了减少不必要的多播流量,您可能还需要研究协议独立多播 (PIM)。您在网络设备上设置 PIM。PIM 的作用是跟踪连接到该网络设备的任何人是否真正在监听多播,如果没有人监听,那么它将修剪流量。如果您有一个具有多个多播源的大型网络,您肯定会想要研究实施 PIM。

答案3

Windows Media Services 可以选择通过多播来广播实况事件。正如 Lloyd Baker 指出的那样,这最终会成为网络本地的事情。在我们的大学网络上,我们会多播诸如毕业典礼和校长演讲之类的内容,这样网络上的任何人都可以收看(可能有数千人),而无需费力地访问媒体服务器本身。校外的人只能通过单播来收看实况广播。

我们选择用于直播的 IP 是从多播范围中选择的,该范围由RFC3171。239/8 块用于“内部”使用,不通过互联网路由,类似于 RFC1918 地址。当您的网络专为多播而设计时,多播效果最佳。我们的情况是,因为我们依赖于服务定位协议很长一段时间以来,这是一个基于多播的协议。

一旦我们为广播选择了地址,我们就会为其分配一个 DNS 名称。此时发布广播就非常简单了,无论是全校电子邮件还是发布到我们网页的首页。

相关内容