一个组播的问题
请教各位高手:
我开发了一个基于UDP组播的应用,具体使用场景大致如下:
A机器和B机器加入同一个组播地址。A和B通过组播进行组内的信息同步
C机器和A,B进行普通的UDP的通信。其中A和B主机都明确指定了发送组播数据的网络接口,使其在多网卡主机上也能正常工作。同时,为使配置简单化,我们也要求客户必须将A和B接在同一交换机上。
这种使用,一直以来都很正常,但是最近有一家客户处使用时发生如下现象:
起动A和B后,两个主机能很快通过组播完成组内信息的同步,此时所有通信都很正常,但是,开启C主机,和A进行一段时间通信后,我发现A主机再也不能接收到B主机所发送的组播数据。但是此时A主机可以正常接收C主机的普通UDP数据报。
在我的程序内部,我只开了一个UDP套接字,接收组播数据和其他的普通UDP数据,采用select模式(linux平台),我感到很奇怪,为什么A主机可以接收其他的UDP数据,而接收不到组播数据?我确信B主机发送肯定没有问题。
是linux内核的bug?还是网络设备的因素?
请高手指点,在线等待,谢谢