近年來,隨著Internet的迅速普及和爆炸性發展,在Internet上產生了許多新的應用,其中不少是高帶寬的多媒體應用,譬如網絡視頻會議、網絡音頻/視頻廣播、股市行情發布、多媒體遠程教育、大規模協同計算等。這就帶來了帶寬的急劇消耗和網絡擁擠問題。為了緩解網絡瓶頸,人們提出各種方案,其中一種是采用IP Multicast(組播、多播或多路廣播)技術,它是一種能最大限度利用現有帶寬的技術。比較而言,IP組播技術有其獨特的優越性,在組播網絡中,即使用戶數量成倍增長,主干帶寬不需要隨之增加。
一、IP組播發展簡史
20世紀80年代中期,斯坦福大學實施了第一次多目的通話,博士生S. E. Deering發表Host group: A multicast extension to the Internet Protocol (RFC0966) 和Host extensions for IP Multicasting (RFC0988) 兩篇論文。提出了IP組播的可能性。
1988年,D. Waltzman, C. Portridge, S. E. Deering發表題為《距離向量組播路由協議》的文章(RFC1075),它是組播路由協議的首次實踐;
1991年12月,S. E. Deering發表了他的博士論文《數據報互連網絡中的組播路由》(RFC1112)。它奠定了組播網絡體系結構和路由協議的基礎。該文也成為Internet組管理協議(IGMP)的原型;
1994年3月,形成了OSPF協議的擴展協議MOSPF(RFC1584);
1995年,Cisco公司開始銷售支持組播的路由器和交換機
1997年11月,組管理協議IGMPv2得到IETF的批準,成為標準(RFC2336);
1998年6月,評估可靠組播傳輸協議RMTP的IETF標準出臺(RFC2357);
1998年7月,在制定IPv6地址體系標準時,確定IPv6組播地址分配方案(RFC2373),這為組播技術在下一代Internet上的應用做出了必要的準備;
2000年底2001年初,人們著手制定各種組播MIB庫,這標志組播技術正向可管理、可控制方向發展。
二、組播網絡的體系結構
組播網絡體系結構包括:組播的基本工作原理、實現組播的條件、組播的地址分配方案及與MAC地址映射、Internet組管理協議。
1、組播的工作原理
組播是一種允許一個或多個發送者(組播源)發送單一的數據包到多個接收者(一次的,同時的)的網絡技術。組播源把數據包發送到特定組播組,而只有屬于該組播組的地址才能接收到數據包。簡單地說,
主機通過使用INTERNET組管理協議加入野火所個組中,并且可以動態離開組,即成員關系常有變化,路由器跟蹤這種關系并試圖形成一條到達組播成員的無回路路徑。組播路有些已用于得到正在使用的組播組的路徑上那些路由器,以及到達這些組播組的最佳路徑信息。一旦報文到達目標LAN,該報文就有可能泛洪或轉發到主機。三種傳輸方式比較如下:
單播(Unicast)傳輸:在發送者和每一接收者之間需要單獨的數據信道。如果一臺主機同時給很少量的接收者傳輸數據,一般沒有什么問題。但如果有大量主機希望獲得數據包的同一份拷貝時卻很難實現。這將導致發送者負擔沉重、延遲長、網絡擁塞。為保證一定的服務質量需增加硬件和帶寬。
組播(Multicast)傳輸:它提高了數據傳送效率。減少了主干網出現擁塞的可能性。組播組中的主機可以是在同一個物理網絡,也可以來自不同的物理網絡。
廣播(Broadcast)傳輸:是指在IP子網內廣播數據包,所有在子網內部的主機都將收到這些數據包。廣播意味著網絡向子網主機都投遞一份數據包,不論這些主機是否樂于接收該數據包。廣播的使用范圍非常小,只在本地子網內有效,因為路由器會隔離廣播通信。廣播傳輸增加非接收者的開銷。
2、實現IP組播的前提條件
實現IP組播傳輸,組播源和接收者以及兩者之間的下層網絡都必須支持組播。即主機的TCP/IP實現支持發送和接收IP組播;主機的網絡接口支持組播;有一套用于加入、離開、查詢的組管理協議,即IGMP(v1,v2);有一套IP地址分配策略,并能將第三層IP組播地址映射到第二層MAC地址;支持IP組播的應用軟件;所有介于組播源和接收者之間的路由器、交換機均需支持組播;Cisco的路由器不僅支持DVMRP、PIM路由協議、IGMP組管理協議,而且支持Cisco專有Cisco組管理協議CGMP,對于不支持IP組播傳輸的中間路由器采用IP隧道(Tunneling)技術作為過渡方案。
三、組播的實現
在IP組播技術中有四個方面的問題:首先是發送給誰的問題、其次是接收方如何接收組播信息、第三是用戶主機如何通知路由器對某個組不再感興趣、第四是路由器如何轉發組播信息。
1、組播地址分配與MAC地址
在組播通信中,我們需要兩種地址:一個IP組播地址和一個Ethernet組播地址。其中,IP組播地址標識一個組播組。由于所有IP數據包都封裝在Ethernet幀中,所以還需要一個組播Ethernet地址。為使組播正常工作,主機應能同時接收單播和組播數據,這意味著主機需要多個IP和Ethernet地址。IP地址方案專門為組播劃出一個地址范圍,在IPv4中為D類地址,范圍是224.0.0.0到239.255.255.255,并將D類地址劃分為局部鏈接組播地址、預留組播地址、管理權限組播地址。
局部鏈接地址:224.0.0.0~224.0.0.255,用于局域網,路由器不轉發屬于此范圍的IP包;
預留組播地址:224.0.1.0~238.255.255.255,用于全球范圍或網絡協議;
管理權限地址:239.0.0.0~239.255.255.255,組織內部使用,用于限制組播范圍;
以太網組播MAC地址映射方法: IP組播幀都使用以0X0100.5EXX.XXXX的24位前綴開始的MAC層地址,但只有其中的一半MAC地址可以被IP組播使用,剩下的MAC地址空間的23位作為第三層IP組播地址進入第二層MAC地址的映射使用。由于第三層IP組播的28位地址不能映射到只有23位的可用MAC地址空間,造成有32:1的地址不明確,所以主機CPU必須對收到的每一個組播數據包做出判斷。這增加了主機CPU的開銷。此外,還產生抑制第二層局域網交換的組播擴散問題。
2、組管理協議IGMP
主機使用IGMP通知子網組播路由器,希望加入組播組;路由器使用IGMP查詢本地子網中是否有屬于某個組播組的主機。
1)加入組播組
當某個主機加入某一個組播組時,它通過“成員資格報告”消息通知它所在的IP子網的組播路由器,同時將自己的IP模塊做相應的準備,以便開始接收來自該組播組傳來的數據。如果這臺主機是它所在的IP子網中第一臺加入該組播組的主機,通過路由信息的交換,組播路由器加入組播分布樹。
加入之后,接收方主機的網絡接口卡開始偵聽與組播組地址相關的組播MAC地址,路由器把發送方的信息包一跳一跳地發送到有接受者的網段上去,局域網路由器根據信息包中的組地址轉換成與之相關的MAC地址,接收方偵聽到這個地址,收到信息包后,將IP層的組播數據包取出傳向上層。
2)退出組播組
在IGMP v1中,當主機離開某一個組播組時,它將自行退出。組播路由器定時使用“成員資格查詢” 消息向IP子網中的所有主機的組地址(224.0.0.1)查詢,如果某一組播組在IP子網中已經沒有任何成員,那么組播路由器在確認這一事件后,將不再在子網中轉發該組播組的數據。與此同時,通過路由信息交換,從特定的組播組分布樹中刪除相應的組播路由器。這種不通知任何人而悄悄離開的方法,使得組播路由器知道IP子網中已經沒有任何成員的事件延時了一段時間,在IGMP v2.0中,當每一個主機離開某一個組播組時,需要通知子網組播路由器,組播路由器立即向IP子網中的所有組播組詢問,從而減少了系統處理停止組播的延時。
3、組播轉發
1)逆向路徑轉發(Reverse Path Forward: RPF)
當組播數據包到達路由器時,路由器作RPF檢查,以決定是否轉發或拋棄該數據包,若成功則轉發,否則拋棄。RPF檢查過程如下:
檢查數據包的源地址,以確定該數據包經過的接口,是否在從源到此的路徑上;
若數據包是從可返回源主機的接口上到達,則RPF檢查成功,轉發該數據包到輸出接口表上的所有接口,否則RPF檢查失敗,拋棄該數據包。
2)組播轉發緩存
對于每一個輸入組播數據包進行RPF檢查會導致較大的路由器性能損失。因此,建立組播轉發緩存時,通常由組播路由確定RPF接口。然后將RPF接口變成組播轉發緩存項的輸入接口。一旦RPF檢查程序使用的路由表發生變化,必須重新計算RPF接口;并更新組播轉發緩存項。
3)TTL閾值
每當路由器轉發組播數據包,IP包中的TTL(Time To Live)值都減1。若數據包的TTL減少到0,則路由器將拋棄該數據包。TTL閾值可用于組播路由器的各個接口,以防止在該接口上轉發低于TTL閾值的組播數據包。這樣可對組播的范圍加以控制。
4)管理權限邊界
除TTL閾值外,組播提供另一種稱為管理權限的地址機制作為邊界,以限制組播信息轉發到域外。管理權限的組播地址是從239.0.0.0到239.255.255.255,這段地址被認為是本地分配(類似于單播中的192.168.xx.xx),不能用于Internet。這種機制使得在Intranet內部可重復使用組播地址,提高組播地址空間的利用率。
4、組播樹
在單播模型中,數據包通過網絡沿著單一路徑從源主機向目標主機傳遞,但在組播模型中,組播源向某一組地址傳遞數據包,而這一地址卻代表一個主機組。為了向所有接收者傳遞數據,一般采用組播分布樹描述IP組播在網絡里經過的路徑。
組播分布樹有兩種基本類型 有源樹和共享樹。
1)有源樹
有源樹也稱為基于信源的樹或最短路徑樹(Shortest Path Tree:SPT)。它是以組播源為根構造的從根到所有接收者路徑都最短的分布樹。如果組中有多個組播源,則必須為每個組播源構造一棵組播樹。由于不同組播源發出的數據包被分散到各自分離的組播樹上,因此采用SPT有利于網絡中數據流量的均衡。同時,因為從組播源到每個接收者的路徑最短,所以端到端(end-to-end)的時延性能較好,有利于流量大、時延性能要求較高的實時媒體應用。SPT的缺點是:要為每個組播源構造各自的分布樹,當數據流量不大時,構造SPT的開銷相對較大。
2)共享樹
共享樹也稱RP樹(RPT),是指為每個組播組選定一個共用根(匯合點RP或核心),以RP為根建立的組播樹。同一組播組的組播源將所要組播的數據單播到RP,再由RP向其它成員轉發。目前,討論最多同時也是最具代表性的兩種共享樹是Steiner樹和有核樹(CBT)。
共享樹在路由器所需存儲的狀態信息的數量和路由樹的總代價兩個方面具有較好的性能。當組的規模較大,而每個成員的數據發送率較低時,使用共享樹比較適合。但當通信量大時,使用共享樹將導致流量集中及根(RP)附近的瓶頸。
組播,多播說的是一個東西。他跟廣播類似,但是,只有感興趣的主機才會收到,不敢興趣的直接被網卡過濾掉了,而廣播不一樣,廣播報總是能到達網絡協議層的。另外,組播能夠卡網段,到達任何網絡,而廣播不行。
做播地址有一定的范圍。
電子發燒友App










評論