什么叫组播地址(Multicast Address )?

来源:百度知道 编辑:UC知道 时间:2024/05/09 06:08:18
我在测试数据包发送的时候,客户端接受数据的程序报了一个异常:
Exception in thread "main" java.net.SocketException: Not a multicast address
at java.net.MulticastSocket.joinGroup(Unknown Source)
at src.MulticastClient.main(MulticastClient.java:16)

说我的ip不是组播地址(Multicast Address )
那,什么样的ip才是组播地址(Multicast Address )呢?
什么叫组播地址(Multicast Address )?
请高手指点,谢谢

组播的地址是保留的D类地址从224.0.0.0—239.255.255.255,而且一些地址有特定的用处如,224.0.0.0—244.0.0.255只能用于局域网中路由器是不会转发的,并且224.0.0.1是所有主机的地址,224.0.0.2所有路由器的地址,224.0.0.5所有ospf路由器的地址,224.0.13事PIMv2路由器的地址;239.0.0.0—239.255.255.255是私有地址(如192.168.x..x);224.0.1.0—238.255.255.255可以用与Internet上的。

2层的MAC地址是如何与3层的IP地址进行映射的呢?通过将MAC地址的前25位强行规定位0100.5e,而后23位对应IP地址的后23位,而组播IP地址的前4位均相同如:

IP地址: 1110yyyy.yxxxxxxx.xxxxxxx.xxxxxxxx

MAC地址: 00000001.00000000.01011110.0xxxxxxx.xxxxxxx.xxxxxxxx

显然有32个IP地址(有5个y可以不一样)对应一个MAC地址,所以要避免在同一网络中使用的多个组播IP地址对应一个MAC地址。

  组播地址
  组播报文的目的地址使用D类IP地址, D类地址不能出现在IP报文的源IP地址字段。单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用“逐跳”的原理在IP网络中传输。然而在ip组播环中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包。组播组中的成员是动态的,主机可以在任何时刻加入和离开组播组。