我对linux内核中的多播有一个疑问。当组播数据到达时 linux内核检查MFC,如果找不到匹配的条目,则内核会向用户空间提供conrol消息缓存未命中和标头。我的问题是数据会发生什么 包?假设我可能故意不想保留MFC中的条目,但我可能有一些 其他表有转发信息,我想用那个然后做什么?
此致 Bhavin。
答案 0 :(得分:0)
如果数据包到达且没有匹配的MFC条目,则数据包将被放入队列。它将保留在该队列中,直到添加了与该数据包匹配的MFC条目或超时到期(10秒),以先发生者为准。队列本身有10个条目的限制,一旦达到该限制,就不会有更多的数据包被放入队列。在这种情况下,未解析的数据包将被丢弃。
我认为Linux不支持拥有多个MFC表(但我可能错了)。作为替代方案,您可以使用在原始套接字上接收它们然后将它们转发出您喜欢的任何接口,在用户空间中路由这些多播数据包。事实上,许多IPv6多播路由守护进程在Linux上的IPv6多播支持成熟之前就使用了这样的方法。
答案 1 :(得分:-1)
您可以使用下面的命令
检查相关内核编译的多播支持grep -i "multicast" /boot/config-2.6.32-358.6.1.el6.x86_64
/UE