networking - 关于 IP 多播的问题?

标签 networking udp

您好,我正在创建流媒体应用程序。因为我正在使用 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/

相关文章:

C++ 发送返回 SOCKET_ERROR

java - 获取应用程序的端口号

java - 从多个远程资源读取数据

java - 接收数据报包

python - 接收器的scapy?

sockets - 如何在 Rust 中发送源地址为 0.0.0.0 的 UDP 数据报?

c++ - 使用 epoll 边缘触发时套接字上的数据过多

c# - Flowcode传输UDP但服务器读取失败

java - 组播服务器接收与其发送的相同数据

c - UDP 应用程序中客户端或服务器宕机时如何处理