您好我正在创建流媒体应用程序。因为我正在使用IP多播。
告诉我如何验证客户端,然后再将其添加到组中。
是否与IGMP有关?
答案 0 :(得分:9)
您不能使用您的应用程序。
IGMP
是一种互联网层协议,它甚至可能无法访问您的应用程序。
每当一个单元想要接收到某个地址的多播时,它就会发送一个IGMP
请求加入一个组。路由器接收请求并记住该用户想要属于该组。
每当路由器收到一个发往该地址的多播包时,它就会将其路由到所有组成员,可能会考虑一些访问控制限制。
所有组操作都由路由器执行。您只需将UDP
数据包发送到多播地址(即224/4
),路由器就会决定是否将其路由到用户。
如果要限制多播数据包的目的地,请在路由器上进行。
您应该理解,上面的“路由”一词意味着路由器将数据包发送到appripriate接口,其中Ethernet
标头中的多播目标地址和{中的多播目标地址{1}}标题。连接到接口的以太网交换机(如果有)将通过所有活动端口分发数据包。由于它对互联网路由一无所知,因此只会看到IP
标头中设置的广播/多播位并采取相应措施。
但是,有些Ethernet
设备(以太网交换机)会查看link layer
标头并限制多播到订阅单元。这称为network layer
。其中一些人也可以控制访问。
答案 1 :(得分:1)
好的,有合理的需要来控制谁可以加入多播组。我能看到完成的唯一方法是在路由器接口上过滤入站的IGMP数据包。如果“允许的订阅者”列表足够静态,这将起作用,但如果有很多变化,它将很快变得站不住脚。
如果(并且仅当)有管理控制一直到“客户放置”路由器,我怀疑可以在那里做一些事情,以限制设备可见的组,但这严重依赖于环境(在“来自单一提供商的宽带和多播视频”场景中,可能会出现使用提供商管理的DSL路由器的合同要求。)
答案 2 :(得分:0)
除了Quassnoi关于多播如何工作的评论之外,我不得不怀疑...为什么要在将收件人添加到组之前限制多播成员身份和/或验证收件人?