当前位置: 技术问答>linux和unix
Ubuntu8.04收不到组播
来源: 互联网 发布时间:2016-07-13
本文导语: 硬件完全一样的,我有个收组播的程序把系统装成Ubuntu9.04可以收得到,由于9.04不能用Ghost拷贝,我又了个Ubuntu8.04但是这个收组播的程序就完全收不到,程序肯定不会有问题,我在想是不是需要设置什么地方,难道Ubun...
硬件完全一样的,我有个收组播的程序把系统装成Ubuntu9.04可以收得到,由于9.04不能用Ghost拷贝,我又了个Ubuntu8.04但是这个收组播的程序就完全收不到,程序肯定不会有问题,我在想是不是需要设置什么地方,难道Ubuntu8.04默认的屏蔽了组播???????????
|
组播的协议是这样规定的,组播的MAC地址有规定的。但是现在大部分低端交换机设备并不支持组播转发(不支持IGMP),因此交换机上面的设备为了保证能全网组播,把组播当广播来处理,也就是说,直接把组播报文的目的MAC填写成了广播MAC,保证每个机器都能收到。这样的处理方式会导致部分安全性高的操作系统丢弃组播包,因为这样不合理--失去了组播的本身设计上的初衷。
你可以想办法查查,被丢弃的组播报文是不是目的MAC是广播的MAC。如果是这个问题,可能是操作系统的配置方面的原因:
可能是操作系统禁止一些特殊的广播报文(ARP是广播包,因为也不会单纯禁止广播包),具体怎么修改我就不太清楚了。
第2层的组播地址(组播MAC地址)可以从IP组播地址中衍生。计算方法是把IP地址的最后23位拷贝到MAC地址的最后23位,然后把这23位前面的那一位置为0。MAC地址的前24位必须为0x01-00-5E。例如:组播IP地址224.0.1.128,16进制表示为0xE0-00-01-10,最低的23位为0x00-01-10,计算得出的MAC地址为:0x01-00-5E-00-01-10。
你可以想办法查查,被丢弃的组播报文是不是目的MAC是广播的MAC。如果是这个问题,可能是操作系统的配置方面的原因:
可能是操作系统禁止一些特殊的广播报文(ARP是广播包,因为也不会单纯禁止广播包),具体怎么修改我就不太清楚了。
第2层的组播地址(组播MAC地址)可以从IP组播地址中衍生。计算方法是把IP地址的最后23位拷贝到MAC地址的最后23位,然后把这23位前面的那一位置为0。MAC地址的前24位必须为0x01-00-5E。例如:组播IP地址224.0.1.128,16进制表示为0xE0-00-01-10,最低的23位为0x00-01-10,计算得出的MAC地址为:0x01-00-5E-00-01-10。