我正在编写一个代码来处理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中实现?如果没有,是否可以采用其他方法。
任何帮助感谢。
答案 0 :(得分:0)
首先,224.0.0.1
是一个名为all-systems.mcast.net
的保留组,即所有可访问的联网计算机,请参阅wikipedia。
然后,你要找的东西是IGMP和multicast routing,也就是说,路径中的交换机必须配置为专门转发组播,路由器也需要知道转发附加网络之间的多播流量。