作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有几台嵌入式机器监听 rtp 音频数据并将其流式传输到多播组。它们连接到一个智能托管交换机 (Netgear GS108Ev2),该交换机在其端口上执行基本的 igmp 监听和多播过滤,这样我的 (W)LAN 的其余部分就不会被淹没。
开始时一切正常,大约持续 500-520 秒。之后,他们不会再收到任何数据,直到他们离开并再次加入群组。我猜交换机在超时后“忘记”了连接。
有什么方法可以刷新组成员,即让交换机知道还有人在监听,而不会丢失数据包?
系统信息:
Arch: blackfin
# cat /proc/version
Linux version 2.6.28.10-ADI-2009R1-uCBF54x-EMM
(gcc version 4.3.3 (ADI) ) #158 PREEMPT Tue Jun 5 20:05:42 CEST 2012
最佳答案
这就是多播/IGMP 协议(protocol)的工作方式。客户端必须通过发送成员报告 定期加入组,否则将假定他在短暂的超时后离开了组。但是,这些报告通常仅在从本地多播路由器接收到成员资格查询时才发送。您的客户要么没有收到查询,要么没有回复报告。
尝试使用像 wireshark 这样的工具来查看哪些 IGMP 数据包通过您的网络发送。
关于c - 刷新组播组成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10913509/
我是一名优秀的程序员,十分优秀!