广播,多播(二)(Broadcasting, Multicasting)
多播(組播)
廣播的一個缺點就是,會影響到所有的子網內的計算機,即使對此廣播消息不感興趣的計算機。多播可以解決這個問題。
?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
多播采用推進技術(瀏覽網頁屬于拉拔技術,同樣屬于推進技術的有發送Email服務)。多播也叫組播,如果用戶加入某個多播組,那么,它就能夠收到發往這個組的數據。
?
組播應用D類IP地址(224.0.0.0-239.255.255.255),但不是說從每個組播的組接收數據的計算機要具有D類IP地址。組播的組需要D類IP地址來標示。D類IP地址分成幾斷,某些具有特殊用途。
?
組播有兩種應用模式。一種是一個組中的任意一個用戶發信息,其余用戶都能夠接收,各個用戶的地位是等價的。另一種是只一個用戶發信息,其余用戶只負責接收信息。
?
組播的拓撲結構是一個樹狀結構。
?
組播需要支持組播的硬件,支持組播的Tcp/ip協議棧,支持組播的軟件。加入離開一個組播組需要用到SGMP(Simple Group Management Protocol)協議。發送組播信息還有一個TTL(Time To Live)值,使組播信息不會穿過很多的子網邊界,默認TTL值是1,即只對本地子網有效。
?
C#對組播的支持
組播編程需要Udp,有兩個類支持組播網絡編程Socket,和UdpClient.一臺計算機要加入某一個組,接收發往某個組的信息。Socket類要調用SetSocketOption函數加入和離開某一個組。UdpClient類有直接的加入和離開某個組的成員函數可以調用。而向某個組發信息,則沒有什么特殊的,只需把發送數據的目的地址設為組播地址就可以了。
?
問題:
問:一個Udp Server加入某個組播組,然后綁定某個端口,開始接收數據,能接收到哪些數據?
答:可以接收到發往這個組播組這個端口的數據,可以接收到發往這個端口的廣播數據,可以接收到專門發往這個端口的單播數據。
?
問:(1)怎樣知道自己周圍組播的組的情況(D類IP地址被占用的情況)?(2)自己可否只是通過編程就建立一個組播組?(沒有找到資料)
答:(1)還不知道。(2)(不太明白詳細具體情況)。是可以的,一個Socket往一個固定的組播地址的端口發送數據,那么一個組播的組就建立起了,其余計算機可以加入此地址標示的組,接收信息。(當然,需要硬件軟件協議支持。另外對此組播地址的值也有限制,組播地址也有類似于192.168.0.0網絡地址的,只用于局域網,不路由的地址)
?
(對于多播了解還不是很透徹,為了接上一篇。只為記錄學習過程,可能有錯誤,歡迎討論)轉載于:https://www.cnblogs.com/xuhx/archive/2004/06/27/18960.html
總結
以上是生活随笔為你收集整理的广播,多播(二)(Broadcasting, Multicasting)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机系列 | JVM类加载机制
- 下一篇: 无奈