2009-02-03 30 views
2

嗨,我正在創建流應用程序。因爲我使用IP多播。關於IP多播的問題?

告訴我如何在添加到組中之前驗證客戶端。

是我用IGMP所做的任何事情嗎?

回答

9

你不用你的應用程序。

IGMP是一個互聯網層協議,它甚至可能不會到達你的應用程序。

每當一個單元想要接收組播到某個地址,它就發送一個IGMP請求加入一個組。路由器收到請求並記住該用戶想要屬於該組。

每當路由器收到一個指向該地址的組播包時,它會將其路由到所有組成員,可能會考慮一些訪問控制限制。

所有分組處理都由路由器執行。您只需將您的UDP數據包發送到多播地址(即224/4),並由路由器決定是否將其路由到訂戶。

如果你想限制你的多播數據包去的目的地,你可以在路由器上進行。

你應該理解雖然,上面的字「路由」表示路由器發出分組分成appripriate接口與IP頭在Ethernet報頭中的多播目的地地址和多播目的地地址。連接到接口的以太網交換機(如果有)將通過所有活動端口分發數據包。由於它對互聯網路由一無所知,因此它只會看到在Ethernet標題中設置的廣播/多播位,並相應地採取行動。

雖然有一些link layer設備(以太網交換機)誰偷看network layer標題並限制多播到訂閱單位。這就是所謂的IGMP snooping。其中一些也可以控制訪問。

+0

有點不準確。路由器使用多播以太網報頭髮送多播,而不是廣播。有一個從IP多播地址到MAC多播地址的固定映射。通過這種方式,不是線路上的所有以太網接口都能接收到所有的多點傳送。 – 2009-03-05 17:43:19

+1

這裏的廣播是指一個8位的數據包。非IGMP偵聽交換機將無論如何都將所有組播數據包分發到所有連接的端口,不是嗎? – Quassnoi 2009-03-05 19:01:08

0

除了Quassnoi關於多播如何工作的評論之外,我不得不懷疑......爲什麼要在將其添加到組之前限制多播成員身份和/或驗證接收者?

1

好的,有合理的需要控制誰可以加入多播組。我可以看到完成的唯一方法是過濾路由器接口上的入站IGMP數據包。如果「允許的用戶」列表足夠靜態,這將起作用,但如果有很多變化,它將很快變得站不住腳。如果(並且只有)一直存在管理控制一直到「客戶安置」的路由器,我懷疑可以在那裏完成某些工作,以限制設備具有可見性的組,但是這嚴重依賴於環境(在「來自單個提供商的寬帶和多播視頻」方案中,使用提供商管理的DSL路由器的合同要求是可能的)。