?什么是單播、多播和廣播
“單播”(Unicast)、“多播”(Multicast)和“廣播”(Broadcast)這三個術語都是用來描述網絡節點之間通訊方式的術語。那么這些術語究竟是什么意思?區別何在?且聽下文分解。
——★單 播★——
網絡節點之間的通信就好像是人們之間的對話一樣。如果一個人對另外一個人說話,那么用網絡技術的術語來描述就是“單播”,此時信息的接收和傳遞只在兩個節點之間進行,參見圖1。
圖1 單播:一對一
單播在網絡中得到了廣泛的應用,網絡上絕大部分的數據都是以單播的形式傳輸的,只是一般網絡用戶不知道而已。例如,你在收發電子郵件、瀏覽網頁時,必須與郵件服務器、Web服務器建立連接,此時使用的就是單播數據傳輸方式。但是通常使用“點對點通信”(Point to Point)代替“單播”,因為“單播”一般與“多播”和“廣播”相對應使用。
——★多 播★——
“多播”可以理解為一個人向多個人(但不是在場的所有人)說話,這樣能夠提高通話的效率。如果你要通知特定的某些人同一件事情,但是又不想讓其他人知道,使用電話一個一個地通知就非常麻煩,而使用日常生活的大喇叭進行廣播通知,就達不到只通知個別人的目的了,此時使用“多播”來實現就會非常方便快捷,但是現實生活中多播設備非常少。多播如圖2所示。
圖2 多播:一對多
“多播”也可以稱為“組播”,在網絡技術的應用并不是很多,網上視頻會議、網上視頻點播特別適合采用多播方式。因為如果采用單播方式,逐個節點傳輸,有多少個目標節點,就會有多少次傳送過程,這種方式顯然效率極低,是不可取的;如果采用不區分目標、全部發送的廣播方式,雖然一次可以傳送完數據,但是顯然達不到區分特定數據接收對象的目的。采用多播方式,既可以實現一次傳送所有目標節點的數據,也可以達到只對特定對象傳送數據的目的。
IP網絡的多播一般通過多播IP地址來實現。多播IP地址就是D類IP地址,即224.0.0.0至239.255.255.255之間的IP地址。Windows 2000中的DHCP管理器支持多播IP地址的自動分配。
——★廣 播★——
“廣播”可以理解為一個人通過廣播喇叭對在場的全體說話,這樣做的好處是通話效率高,信息一下子就可以傳遞到全體,如圖3所示。
“廣播”在網絡中的應用較多,如客戶機通過DHCP自動獲得IP地址的過程就是通過廣播來實現的。但是同單播和多播相比,廣播幾乎占用了子網內網絡的所有帶寬。拿開會打一個比方吧,在會場上只能有一個人發言,想象一下如果所有的人同時都用麥克風發言,那會場上就會亂成一鍋粥。
在網絡中不能長時間出現大量的廣播包,否則就會出現所謂的“廣播風暴”。廣播風暴就是網絡長時間被大量的廣播數據包所占用,正常的點對點通信無法正常進行,外在表現為網絡速度奇慢無比。出現廣播風暴的原因有很多,一塊有故障的網卡,就可能長時間向網絡上發送廣播包而導致廣播風暴。
圖3 廣播:一對全體
集線器由于其工作原理決定了不可能過濾廣播風暴,一般的交換機也沒有這一功能,不過現在有的網絡交換機(如全向的QS系列交換機)也有過濾廣播風暴功能了,路由器本身就有隔離廣播風暴的作用。
廣播風暴不能完全杜絕,但是只能在同一子網內傳播,就好像喇叭的聲音只能在同一會場內傳播一樣,因此在由幾百臺甚至上千臺電腦構成的大中型局域網中,一般進行子網劃分,就像將一個大廳用墻壁隔離成許多小廳一樣,以達到隔離廣播風暴的目的。
在IP網絡中,廣播地址用IP地址“255.255.255.255”來表示,這個IP地址代表同一子網內所有的IP地址。
單播、多播和廣播是網絡技術的基礎性知識,對網絡技術感興趣的讀者一定要搞懂喲!
?
單播”(Unicast)、“多播”(Multicast)和“廣播”(Broadcast)這三個術語都是用來描述網絡節點之間通訊方式的術語。那么這些術語究竟是什么意思?區別何在?.
1.單播:網絡節點之間的通信就好像是人們之間的對話一樣。如果一個人對另外一個人說話,那么用網絡技術的術語來描述就是“單播”,此時信息的接收和傳遞只在兩個節點之間進行。單播在網絡中得到了廣泛的應用,網絡上絕大部分的數據都是以單播的形式傳輸的,只是一般網絡用戶不知道而已。例如,你在收發電子郵件、瀏覽網頁時,必須與郵件服務器、Web服務器建立連接,此時使用的就是單播數據傳輸方式。但是通常使用“點對點通信”(Point to Point)代替“單播”,因為“單播”一般與“多播”和“廣播”相對應使用。
2.多播:“多播”也可以稱為“組播”,在網絡技術的應用并不是很多,網上視頻會議、網上視頻點播特別適合采用多播方式。因為如果采用單播方式,逐個節點傳輸,有多少個目標節點,就會有多少次傳送過程,這種方式顯然效率極低,是不可取的;如果采用不區分目標、全部發送的廣播方式,雖然一次可以傳送完數據,但是顯然達不到區分特定數據接收對象的目的。采用多播方式,既可以實現一次傳送所有目標節點的數據,也可以達到只對特定對象傳送數據的目的。 IP網絡的多播一般通過多播IP地址來實現。多播IP地址就是D類IP地址,即224.0.0.0至239.255.255.255之間的IP地址。Windows 2000中的DHCP管理器支持多播IP地址的自動分配。
3.廣播:“廣播”在網絡中的應用較多,如客戶機通過DHCP自動獲得IP地址的過程就是通過廣播來實現的。但是同單播和多播相比,廣播幾乎占用了子網內網絡的所有帶寬。拿開會打一個比方吧,在會場上只能有一個人發言,想象一下如果所有的人同時都用麥克風發言,那會場上就會亂成一鍋粥。集線器由于其工作原理決定了不可能過濾廣播風暴,一般的交換機也沒有這一功能,不過現在有的網絡交換機(如全向的QS系列交換機)也有過濾廣播風暴功能了,路由器本身就有隔離廣播風暴的作用。 廣播風暴不能完全杜絕,但是只能在同一子網內傳播,就好像喇叭的聲音只能在同一會場內傳播一樣,因此在由幾百臺甚至上千臺電腦構成的大中型局域網中,一般進行子網劃分,就像將一個大廳用墻壁隔離成許多小廳一樣,以達到隔離廣播風暴的目的。 在IP網絡中,廣播地址用IP地址“255.255.255.255”來表示,這個IP地址代表同一子網內所有的IP地址。
?
當前的網絡中有三種通訊模式:單播、廣播、組播(多播),其中的組播出現時間最晚但同時具備單播和廣播的優點,最具有發展前景。
一、單播:
主機之間“一對一”的通訊模式,網絡中的交換機和路由器對數據只進行轉發不進行復制。如果10個客戶機需要相同的數據,則服務器需要逐一傳送,重復10次相同的工作。但由于其能夠針對每個客戶的及時響應,所以現在的網頁瀏覽全部都是采用IP單播協議。網絡中的路由器和交換機根據其目標地址選擇傳輸路徑,將 IP單播數據傳送到其指定的目的地。
單播的優點:
1. 服務器及時響應客戶機的請求
2. 服務器針對每個客戶不通的請求發送不通的數據,容易實現個性化服務。
單播的缺點:
1. 服務器針對每個客戶機發送數據流,服務器流量=客戶機數量×客戶機流量;在客戶數量大、每個客戶機流量大的流媒體應用中服務器不堪重負。
2. 現有的網絡帶寬是金字塔結構,城際省際主干帶寬僅僅相當于其所有用戶帶寬之和的5%。如果全部使用單播協議,將造成網絡主干不堪重負。現在的P2P應用就已經使主干經常阻塞,只要有5%的客戶在全速使用網絡,其他人就不要玩了。而將主干擴展20倍幾乎是不可能。
二、 廣播:
主機之間“一對所有”的通訊模式,網絡對其中每一臺主機發出的信號都進行無條件復制并轉發,所有主機都可以接收到所有信息(不管你是否需要),由于其不用路徑選擇,所以其網絡成本可以很低廉。有線電視網就是典型的廣播型網絡,我們的電視機實際上是接受到所有頻道的信號,但只將一個頻道的信號還原成畫面。在數據網絡中也允許廣播的存在,但其被限制在二層交換機的局域網范圍內,禁止廣播數據穿過路由器,防止廣播數據影響大面積的主機。
廣播的優點:
1. 網絡設備簡單,維護簡單,布網成本低廉
2. 由于服務器不用向每個客戶機單獨發送數據,所以服務器流量負載極低。
廣播的缺點:
1.無法針對每個客戶的要求和時間及時提供個性化服務。
2. 網絡允許服務器提供數據的帶寬有限,客戶端的最大帶寬=服務總帶寬。例如有線電視的客戶端的線路支持100個頻道(如果采用數字壓縮技術,理論上可以提供 500個頻道),即使服務商有更大的財力配置更多的發送設備、改成光纖主干,也無法超過此極限。也就是說無法向眾多客戶提供更多樣化、更加個性化的服務。
3. 廣播禁止在Internet寬帶網上傳輸。
三、組播:
主機之間“一對一組”的通訊模式,也就是加入了同一個組的主機可以接受到此組內的所有數據,網絡中的交換機和路由器只向有需求者復制并轉發其所需數據。主機可以向路由器請求加入或退出某個組,網絡中的路由器和交換機有選擇的復制并傳輸數據,即只將組內數據傳輸給那些加入組的主機。這樣既能一次將數據傳輸給多個有需要(加入組)的主機,又能保證不影響其他不需要(未加入組)的主機的其他通訊。
組播的優點:
1. 需要相同數據流的客戶端加入相同的組共享一條數據流,節省了服務器的負載。具備廣播所具備的優點。
2. 由于組播協議是根據接受者的需要對數據流進行復制轉發,所以服務端的服務總帶寬不受客戶接入端帶寬的限制。IP協議允許有2億6千多萬個(268435456)組播,所以其提供的服務可以非常豐富。
3. 此協議和單播協議一樣允許在Internet寬帶網上傳輸。
組播的缺點:
1.與單播協議相比沒有糾錯機制,發生丟包錯包后難以彌補,但可以通過一定的容錯機制和QOS加以彌補。
2.現行網絡雖然都支持組播的傳輸,但在客戶認證、QOS等方面還需要完善,這些缺點在理論上都有成熟的解決方案,只是需要逐步推廣應用到現存網絡當中
?
??????? 二層交換機是數據鏈路層的設備,它能夠讀取數據包中的MAC地址信息并根據MAC地址來進行交換。交換機內部有一個地址表,這個地址表標明了MAC地址和交換機端口的對應關系.二層交換機對廣播包是不做限制的,把廣播包復制到所有端口上。
???? 廣播分二層廣播和三層廣播,二層廣播是FFFF.FFFF.FFFF(MAC地址),二層交換機遇到這種包就會泛洪到所有同VLAN的端口,不會過濾掉,因為如果二層交換機過濾這種包,arp廣播怎么正常工作呢?沒有arp,同網段的PC如何通信呢?路由器可以過濾二層廣播是因為路由器是三層設備,如果路由器不過濾這種包,任何人發起的二層廣播包就會到達Internet的整個范圍,這樣還要路由器做什么呢?路由器就是為了劃分廣播域用的阿。
???? 對于三層廣播還有本地廣播255.255.255.255和特定子網廣播比如192.168.1.255/24之分,255.255.255.255這種本地廣播是肯定沒發跨越路由器的,因為一旦這種廣播能跨越路由器的話,同樣任何人發起的這種廣播就會跑到Internet的任何角落。然而對于特定子網的廣播是可以配置為允許跨路由器或者不允許跨路由器的,如果允許的話,我就可以跨越路由器對特定的子網發起三層廣播。通常不要允許這類廣播,因為你一旦允許了很容易造成icmp sumrf攻擊的。
?? 交換機或是路由器的復制功能猜想是:首先接收到數據,進行處理,再進行相應接口的轉發,(存儲一份轉發多份即為復制)
?
三層交換機接收到數據的處理流程:
?
? 使用IP的設備A------------------------三層交換機------------------------使用IP的設備B
比如A要給B發送數據,已知目的IP,那么A就用子網掩碼取得網絡地址,判斷目的IP是否與自己在同一網段。
如果在同一網段,但不知道轉發數據所需的MAC地址,A就發送一個ARP請求,B返回其MAC地址,A用此MAC封裝數據包并發送給交換機,交換機起用二層交換模塊,查找MAC地址表,將數據包轉發到相應的端口。
如果目的IP地址顯示不是同一網段的,那么A要實現和B的通訊,在流緩存條目中沒有對應MAC地址條目,就將第一個正常數據包發送向一個缺省網關,這個缺省網關一般在操作系統中已經設好,對應第三層路由模塊,所以可見對于不是同一子網的數據,最先在MAC表中放的是缺省網關的MAC地址;然后就由三層模塊接收到此數據包,查詢路由表以確定到達B的路由,將構造一個新的幀頭,其中以缺省網關的MAC地址為源MAC地址,以主機B的MAC地址為目的MAC地址。通過一定的識別觸發機制,確立主機A與B的MAC地址及轉發端口的對應關系,并記錄進流緩存條目表,以后的A到B的數據,就直接交由二層交換模塊完成。這就通常所說的一次路由多次轉發。
表面上看,第三層交換機是第二層交換器與路由器的合二而一,然而這種結合并非簡單的物理結合,而是各取所長的邏輯結合。其重要表現是,當某一信息源的第一個數據流進行第三層交換后,其中的路由系統將會產生一個MAC地址與IP地址的映射表,并將該表存儲起來,當同一信息源的后續數據流再次進入交換環境時,交換機將根據第一次產生并保存的地址映射表,直接從第二層由源地址傳輸到目的地址,不再經過第三路由系統處理,從而消除了路由選擇時造成的網絡延遲,提高了數據包的轉發效率,解決了網間傳輸信息時路由產生的速率瓶頸。所以說,第三層交換機既可完成第二層交換機的端口交換功能,又可完成部分路由器的路由功能。即第三層交換機的交換機方案,實際上是一個能夠支持多層次動態集成的解決方案,雖然這種多層次動態集成功能在某些程度上也能由傳統路由器和第二層交換機搭載完成,但這種搭載方案與采用三層交換機相比,不僅需要更多的設備配置、占用更大的空間、設計更多的布線和花費更高的成本,而且數據傳輸性能也要差得多,因為在海量數據傳輸中,搭載方案中的路由器無法克服路由傳輸速率瓶頸。
?
????? ?主機開機組播接收程序時,會向TCP/IP協議注冊一個組播IP地址,所以當收到目的IP地址是這個組播組的地址時,主機就會接收。??同時它又向工作在數據鏈路層的網卡也注冊了一個二層MAC地址,這樣的話,當主機接收到一個組播報文的時候,就可以
?直接現在網卡上判斷是否是自己所需要的組播報文。
?IGMP:Internet組管理協議,用于主機與路由器之間交互信息的一種協議。所有要加入組播組的主機和所有連接到有組播主機的子網中?的路由器都必須使用IGMP。IGMP消息不能被路由轉發,只能限制在本地網段內部。IGMP的TTL參數永遠是1,保證了IGMP的使用
?范圍。
????? 組播路由協議的主要功能是將組播數據從一臺路由器跨越一個網絡傳送到另外一臺路由器上。
?組播路由協議分為域內組播路由協議及域間組播路由協議。
????? http://wenku.baidu.com/view/b30740553c1ec5da50e27015.html
?
?
組播的轉發技術:
在單播里面,數據轉發的依據是數據包的目的地址,這個目的地址明確表示了一個主機的位置,但是組播數據包并不是基于ip數據包的目的地址的,它沒有唯一性,因此它需要采用一種叫RTF(Reverse Path Forwarding逆向路徑轉發)的方式來轉發數據包,它是針對轉發的時候做檢查,這個檢查會決定是否轉發還是丟棄輸入的信息包,那么它的檢查過程是什么樣的呢?
首先要了解的是,RPF跟單播協議密切相關,所謂的逆向路徑轉發是基于察看有關組播源在什么地方,組播源是一個IP的單播地址,因此呢,路由器檢查到達的數據包的源地址,然后查看路由表,看這個源地址可以通過哪個接口可達,如果信息包是在可返回原站點的接口上到達,那就說明這個組播數據流是從正確的方向過來的,則RPF檢查成功,信息包被轉發,但如果說這個數據包的原地址不是從這個接口到達的,那就說明這個組播數據包不是從最佳路經過來的,應該丟棄該數據包。
因為RPF是要結合單播路由表的,因此在構件組播之前應該事先完成有關IP單播路由表的實現。
無組播功能交換機轉發組播數據包:
對一些網橋,一些二層設備,他沒辦法實現路由,也沒辦法實現RPF,對于一個不能識別組播數據流的二層交換機來說,它收到一個組播數據包會按照廣播數據包得處理方法處理。
二層交換機的組播功能實現:
因為無組播功能的交換機在轉發組播數據包的時候是跟廣播一樣,這樣就達不到組播的目的了。因此,現在很多二層交換機增加了組播功能,增加了組播功能后就可以識別組播流,并且可以針對組播流來建立有關組播地址和端口的映射。
能識別組播的交換機在它的轉發表里面,都會增加一項MAC地址是組播地址,然后端口包含以希望接收組播數據的主機所相連的所有端口。