回答
你不用你的應用程序。
IGMP
是一個互聯網層協議,它甚至可能不會到達你的應用程序。
每當一個單元想要接收組播到某個地址,它就發送一個IGMP
請求加入一個組。路由器收到請求並記住該用戶想要屬於該組。
每當路由器收到一個指向該地址的組播包時,它會將其路由到所有組成員,可能會考慮一些訪問控制限制。
所有分組處理都由路由器執行。您只需將您的UDP
數據包發送到多播地址(即224/4
),並由路由器決定是否將其路由到訂戶。
如果你想限制你的多播數據包去的目的地,你可以在路由器上進行。
你應該理解雖然,上面的字「路由」表示路由器發出分組分成appripriate接口與IP
頭在Ethernet
報頭中的多播目的地地址和多播目的地地址。連接到接口的以太網交換機(如果有)將通過所有活動端口分發數據包。由於它對互聯網路由一無所知,因此它只會看到在Ethernet
標題中設置的廣播/多播位,並相應地採取行動。
雖然有一些link layer
設備(以太網交換機)誰偷看network layer
標題並限制多播到訂閱單位。這就是所謂的IGMP snooping
。其中一些也可以控制訪問。
除了Quassnoi關於多播如何工作的評論之外,我不得不懷疑......爲什麼要在將其添加到組之前限制多播成員身份和/或驗證接收者?
好的,有合理的需要控制誰可以加入多播組。我可以看到完成的唯一方法是過濾路由器接口上的入站IGMP數據包。如果「允許的用戶」列表足夠靜態,這將起作用,但如果有很多變化,它將很快變得站不住腳。如果(並且只有)一直存在管理控制一直到「客戶安置」的路由器,我懷疑可以在那裏完成某些工作,以限制設備具有可見性的組,但是這嚴重依賴於環境(在「來自單個提供商的寬帶和多播視頻」方案中,使用提供商管理的DSL路由器的合同要求是可能的)。
- 1. 有關多播的問題
- 2. 關於多態關聯的問題
- 3. 關於多關係的問題
- 4. UDP廣播或IP多播?
- 5. 關於多點觸摸的問題
- 6. 關於集合的多線程問題
- 7. 關於多線程和EntityManager的問題
- 8. 關於C++多重繼承的問題?
- 9. 關於多核CPU的x86 LOCK問題
- 10. Cakephp:關於saveall()與多選的問題
- 11. 更多關於JavaScript類的問題
- 12. 關於| =的問題#
- 13. 關於WatiN和IE9關於多個對話框的問題
- 14. 關於TCP/IP端口綁定的問題
- 15. 關於多對多關係的OO問題(爲NHibernate計劃)
- 16. 報告模型;關於多對多關係的問題
- 17. 問題關於多表查詢性能
- 18. 關於播放MPMoviePlayerViewController中的mov文件的iOS7問題
- 19. Android Wifi Direct多播問題
- 20. ASP.NET多播UdpClient問題
- 21. 關於sas形成問題的問題
- 22. 關於JqGrid的問題和問題
- 23. 關於C#中XPathNodeIterator問題的問題#
- 24. 關於CSS問題
- 25. 問題關於PHP
- 26. 問題關於CCMenuItemToggle
- 27. 問題關於ASP.NET
- 28. 關於DPI問題
- 29. 問題關於C++
- 30. 關於春季交易傳播的問題
有點不準確。路由器使用多播以太網報頭髮送多播,而不是廣播。有一個從IP多播地址到MAC多播地址的固定映射。通過這種方式,不是線路上的所有以太網接口都能接收到所有的多點傳送。 – 2009-03-05 17:43:19
這裏的廣播是指一個8位的數據包。非IGMP偵聽交換機將無論如何都將所有組播數據包分發到所有連接的端口,不是嗎? – Quassnoi 2009-03-05 19:01:08