Networking 关于IP多播的问题?

Networking 关于IP多播的问题?,networking,udp,Networking,Udp,嗨,我正在创建流媒体应用程序。因为我使用的是IP多播 告诉我如何在将客户端添加到组中之前验证它 这与IGMP有什么关系吗?您的应用程序不需要这样做 IGMP是一种internet层协议,它甚至可能无法到达您的应用程序 每当一个单元想要接收到某个地址的多播时,它就会发送一个IGMP请求加入一个组。路由器收到请求并记住该用户希望属于该组 每当路由器接收到一个目的地为该地址的多播包时,它就会将其路由到所有组成员,可能会考虑一些访问控制限制 所有组操作均由路由器执行。您只需将您的UDP数据包发送到多播地

嗨,我正在创建流媒体应用程序。因为我使用的是IP多播

告诉我如何在将客户端添加到组中之前验证它


这与IGMP有什么关系吗?

您的应用程序不需要这样做

IGMP
是一种internet层协议,它甚至可能无法到达您的应用程序

每当一个单元想要接收到某个地址的多播时,它就会发送一个
IGMP
请求加入一个组。路由器收到请求并记住该用户希望属于该组

每当路由器接收到一个目的地为该地址的多播包时,它就会将其路由到所有组成员,可能会考虑一些访问控制限制

所有组操作均由路由器执行。您只需将您的
UDP
数据包发送到多播地址(即
224/4
),路由器决定是否将其路由到订户

如果您想限制多播数据包的目的地,可以在路由器上进行

不过,您应该理解,上面的单词“routes”意味着路由器将数据包发送到适当的接口中,该接口具有
以太网
报头中的多播目的地地址和
IP
报头中的多播目的地地址。连接到接口的以太网交换机(如果有)将在所有活动端口上分发数据包。由于它对internet路由一无所知,因此只会看到在
以太网
报头中设置的广播/多播位,并相应地采取行动


不过,有些
链路层
设备(以太网交换机)窥视
网络层
头并将多播限制在订阅的单元上。这被称为
IGMP窥探
。其中一些还可以控制访问。

除了Quassnoi关于多播如何工作的评论外,我还想知道。。。为什么要在将收件人添加到组之前限制多播成员身份和/或验证收件人?

好的,需要控制谁可以加入多播组。我能看到的唯一方法是过滤路由器接口上的入站IGMP数据包。如果“允许的订阅者”的列表足够静态,这将起作用,但是如果有很多变化,它将很快变得无法维持


如果(且仅当)有管理控制一直到“客户放置”路由器,我怀疑可以在那里做些什么,限制设备可视的组,但这严重依赖于环境(在“单一提供商的宽带和多播视频”中)在这种情况下,使用提供商管理的DSL路由器的合同要求是可能的。)

好吧,这是一个完全合法的愿望(例如,从流媒体视频中删除未付费的客户)。事实上,尽管可能有其他方法来实现这一点。一种是为媒体流提供带外加密密钥,从而控制多播数据的有用性。另一个(虽然taht可能需要控制终端路由器)是在目的地过滤IGMP。我也做过一次这项任务,用于校园局域网,实时在线分发讲座。加密密钥对于大型卫星提供商来说是好的,但是对于一个流和100个接收器来说,它是一个相当大的杀伤力。毕竟,如果一些人渣免费看电影,那么,他真可耻,反正没什么大不了的。是的,我应该在将客户端(接收主机)添加到组中之前验证它。因为只允许经过身份验证的用户。如果不这样做,任何主机都可以加入到该多播地址并调用UDP数据包。这有点不准确。路由器使用多播以太网报头而不是广播来发送多播。从IP多播地址到MAC多播地址有一个固定的映射。通过这种方式,并非线路上的所有以太网接口都将通过广播接收所有多播,我指的是设置了位8的数据包。非IGMP窥探交换机无论如何都会将所有多播数据包分发到所有连接的端口,不是吗?