在java中的不同网络中进行多播

时间:2011-08-19 14:28:14

标签: java network-programming ip multicast tunnel

我正在编写一个代码来处理java中的套接字。我创建了一个组播组,任何人都可以在局域网上加入。但是局域网有许多不同的网络,由路由器操作,并且由代码创建的组播组在不同的网络中会有所不同,如果一个人组播到网络A中的组播组,它只会被加入的人接收。仅限该网络中的群组,而不是所有人在不同的网络中。

例如:

组播组就是224.0.0.1。局域网有两个不同的网络。

网络A = 172.22.28.0/255.255.254.0

网络B = 172.22.30.0/255.255.254.0

然后在两个不同的网络中将有两个不同的组播组,其地址与224.0.0.1相同。

我的问题是如何在这两个差异上进行多播。通过java在局域网上的网络?

当我在寻找解决方案时,我遇到了IP ENCAPSULATION的概念,我可以在其中为数据包添加外部IP地址,以便它可以通过不同的网络。我认为这应该可行,因为我可以将其他网络的地址封装在数据包发送上。

有人可以告诉我,这个(IP ENCAPSULATION)如何在java中实现?如果没有,是否可以采用其他方法。

任何帮助感谢。

1 个答案:

答案 0 :(得分:0)

首先,224.0.0.1是一个名为all-systems.mcast.net的保留组,即所有可访问的联网计算机,请参阅wikipedia

然后,你要找的东西是IGMPmulticast routing,也就是说,路径中的交换机必须配置为专门转发组播,路由器也需要知道转发附加网络之间的多播流量。