2011-08-19 13 views
0

我正在編寫一個代碼,以便通過java中的套接字工作。我創建了一個多播組,任何人都可以在局域網上加入。但是局域網有許多不同的網絡,由路由器操作,並且由代碼創建的多播組在不同的網絡中是不同的,並且如果一個人在網絡A中向多播組多播某些東西,它只會被加入的人接收只在該網絡中的組,而不是由不同網絡中的所有人組成。在java中的不同網絡中多播

例如:

多播組,比方說,224.0.0.1。而局域網有2個不同的網絡。

網絡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封裝)如何在Java中實現?如果沒有,是否還有其他方法可以應用。

任何幫助讚賞。

+0

我認爲你正在尋找IPSEC,這不是一個編程相關的問題。也許你應該把你的問題移到serverfault。 – SJuan76

+0

我同意,這是一個網絡配置問題。 – Guillaume

+0

同意並投票轉移到serverfault。 – Robin

回答

0

首先,224.0.0.1是被稱爲all-systems.mcast.net的保留組,即所有可聯網的機器,參見wikipedia

然後,你正在尋找的東西是IGMPmulticast routing,那就是,在路徑交換機必須配置專門轉發組播和路由器也需要知道轉發連接的網絡之間的數據流量。