您好,我正在创建流媒体应用程序。因为我正在使用 IP 多播。
告诉我如何在将客户端添加到组之前验证它。
我和 IGMP 有什么关系吗?
最佳答案
您不会对您的应用程序执行此操作。
IGMP
是互联网层协议(protocol),它甚至可能无法到达您的应用程序。
每当一个单元想要接收到某个地址的多播时,它就会发送一个IGMP
请求加入一个组。路由器收到请求并记住该用户希望属于该组。
每当路由器接收到发往该地址的多播打包时,它会将其路由到所有组成员,可能会考虑一些访问控制限制。
所有组操作都由路由器执行。您只需将 UDP
数据包发送到多播地址(即 224/4
),然后路由器决定是否将其路由到订阅者。
如果您想限制多播数据包的目的地,可以在路由器上进行。
不过你应该明白,上面的单词“routes” 意味着路由器将数据包发送到适当的接口(interface),并在Ethernet
header 和多播目标中包含多播目标地址IP
header 中的地址。连接到接口(interface)的以太网交换机(如果有)会将数据包分发到所有 事件端口。由于它对 Internet 路由一无所知,它只会看到 Ethernet
header 中设置的广播/多播位并相应地采取行动。
不过,有些链路层
设备(以太网交换机)会窥视网络层
header 并将多播限制到订阅的单元。这称为 IGMP 监听
。其中一些还可以控制访问。
关于networking - 关于 IP 多播的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/506879/