问题标签 [igmp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1248 浏览

linux - 在 RedHat 5.1 (Tikanga) 中设置 IGMP 版本

我正在运行 RedHat 5.1 版(Tikanga)。uname -a 产生以下版本信息: [root@bar foo]# uname -a Linux bar 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686 i686 i386 GNU/Linux

我有四台如上所述配置的机器。我正在开发一个使用多播设施的应用程序,四台机器中的一台正在运行 IGMP 版本 3。其他机器正在运行 IGMP 版本 2。我想要的是 IGMP 版本 2。

我查看了所有“sysctl net.ipv4”选项,虽然有些与 IGMP 相关,但没有一个选项允许我设置 IGMP 版本。事实上,运行 IGMP 版本 3 的机器上“sysctl net.ipv4”的输出与其他三台机器的输出相同。

因此,似乎 sysctl 不是设置 IGMP 版本的方式。如果我错了,请纠正我。

知道的人会分享我如何配置我必须在 IGMP 版本 2 上运行的这台机器吗?谢谢!

0 投票
4 回答
3309 浏览

multicast - 加入 igmp_group 不在轻量级 IP (lwip) 中工作

我是 lwip 的新手,我想用 lwip 创建一个多播接收器。我的步骤如下: 1. 启用 LWIP_IGMP;2.在low_level_init()中设置NETIF_FLAG_IGMP;3.加入多播组,创建和绑定pcb;4. udp_connect 到remote_ip(或者多播IP地址?都试过了,都失败了)

加入组返回成功,程序执行时一切正常。但是多播接收器不起作用,没有多播数据进入网络接口。似乎我实际上并没有将我的接收器加入 igmp 组,尽管加入过程看起来不错。有谁知道我错过了什么?

我在 igmp_joingroup() 中找到了“netif->igmp_mac_filter != NULL”,但是这个回调被设置为 NULL 并且没有实现。我需要自己实现它来设置MAC过滤器还是可以将其保留为NULL?

非常感谢你的帮助!

瑞安

0 投票
1 回答
245 浏览

java - Netty 4 是否支持 IGMPv3 的 UDP 多播?

我一直无法在文档中找到对 Netty 4 的任何参考,该 Netty 4 支持使用 IGMPv3 的 UDP 多播。

谁能澄清这是否支持?

0 投票
0 回答
513 浏览

delphi - 带有 Indy 组播客户端的 IGMP 请求

我正在编写一个使用 Delphi XE5 的 Indy Multicast Client 的应用程序。

当我设置时Active:=true,我可以在 Wireshark 中看到多播组请求,并且我的托管交换机将多播转发到我的应用程序。但是这个请求只在启动时发送。几分钟后,交换机上的 IGMP 侦听超时,并将我的应用程序从其多播表中踢出。我还有连接到本地网络的硬件单元,它们会定期为自己发送这些组报告,因此它们会保留在交换机多播列表中。

如何使用 Indy 定期发送群组请求?

我试过了:

但这会给我一个异常(“错误#10022,无效参数”)。

0 投票
2 回答
47 浏览

udp - 路由器如何安排多播侦听器?

我想知道路由器如何安排多播侦听器。例如,如果 2 台主机连接到路由器,并且它们想监听同一个多播服务器,那么这 2 台主机中的哪一台首先获得多播数据包?

0 投票
0 回答
160 浏览

sockets - 列出主机上所有有效的 Ipv4Addr

我需要在主机上的所有可用地址上发送相同的多播 UDP 数据包。我需要发送到localhost/127.0.0.1239.255.0.1. Rust 的std库自 1.2 版以来已弃用多播行为,无论如何,为了获得我需要的特异性,我必须切换到更完整的net2.

net2API 有一堆提供我正在寻找的 API的UDP 扩展。我特别感兴趣

但我不知道如何处理 multiaddr vs interface。我以为我会给出 multiaddr127.0.0.1或者239.255.0.1但是如何找到interface参数的有效 IPv4?是否有一个 Rust 函数,在某个地方,可以提供一个Vec<Ipv4Addr>? 我需要解析的输出ifconfig吗?

这是一个独立程序,它发出我的公共接口(必须192.168.0.102手动找到该地址):

如果这有什么不同,我会在夜间进行编译。

0 投票
3 回答
36 浏览

sql - 返回运行 2 个特定协议的 IP 地址的 SQL 语句

我有一个 CSV 文件,该文件长约 50 万行,宽 10 列。

我需要取出具有两种特定协议(UDP 和 IGMP)的常见 IP 地址,并过滤掉只有一种关联协议的所有其他 IP 地址。这是我表中数据的示例:

在此处输入图像描述

因此,此查询将运行并输出:

在此处输入图像描述

它返回同时具有 UDP 和 IGMP 的 IP/服务器,而不是仅具有 UDP 的服务器。我怎样才能做到这一点?这需要针对 510,000 多条线路和大约 11,000 个唯一 IP 运行。

0 投票
0 回答
566 浏览

c - 如何收听 IGMPv3 帧

我需要为此获取 IGMPv3 帧,我正在使用如下套接字:

问题是我的程序正在过滤 IGMPv3 帧,我不知道为什么!尽管我在使用wireshark 时得到了IGMP 帧,但我没有得到它们。我也尝试使用:

但我只能获得 ICMP 帧而不是 IGMP 帧。PS:我在另一台机器上尝试了我的程序并且它有效,所以我认为问题出在我的内核上,有谁知道是否有任何与套接字有关的配置?

这是整个代码:

请注意,我正在初始化的地址 mac 是我从 wireshark 上的 IGMP 帧获得的地址。这段代码实际上只允许我检测 ICMP 帧。

使用时:

代替:

我什么也得不到!在wireshark上,我得到了我想要的所有帧,包括IGMP和ICMP!

0 投票
1 回答
5994 浏览

android - 为什么多播接收在某些 Android 设备上不起作用?

似乎多播接收在某些 Android 设备上不起作用。13 台测试设备中有 4 台无法接收多播。在这 4 台设备上,该应用似乎没有发送 IGMP 请求以加入多播组。

接收多播的代码如下所示:

该应用程序具有以下权限:

为了演示这个问题,我使用 GitHub 上的上述代码创建了一个小测试项目:MulticastTest

我的代码有问题吗?我错过了许可吗?

编辑 1:这个问题似乎与特定的 Android 版本无关。我可以在 Android 4.x、5.x 和 6.x 上重现该行为。

编辑 2:有一个相关的问题

0 投票
1 回答
101 浏览

c# - 如何让 System.ServiceModel.DiscoveryClient 使用 IGMP?

我有一个 D-Link DGS-1210-10P,带有两个 VLAN(10.104和 192.168 ...... 我在每个网络上都有一个摄像机,每个网络上的计算机上有两个 NIC。

在 D-Link 上关闭 IGMP 后,我可以使用 Microsoft DiscoveryClient 发现两个摄像头,以及一些允许我指定要发送多播消息的 NIC 的自定义端点。打开 IGMP 后,我只能看到 10.104 网络。

我确实在 Wireshark 中看到了 IGMP 消息(两个来源都是我的计算机,目标是正确的多播地址)

我的问题归结为:DiscoveryClient 是否会自动加入 IGMP 组并且应该正常工作?我怀疑我缺少一些基本的 IGMP 理解,或者一些 D-Link 路由器设置。