在internet上,多**業務諸如:流**,
伺服器必須為每乙個接收者提供乙個相同內容的ip報文拷貝,同時
網路上也重複地傳輸相同內容的報文,占用了大量資源。如圖1.1所示。雖然ip廣播允許乙個主機把乙個ip報文傳送給同乙個網路的所有主機,但是由於不是所有的主機都需要這些報文,因而浪費了網路資源。在這種情況下組播(multicast)應運而生,它的出現解決了乙個主機向特定的多個接收者傳送訊息的方法。2023年,ietf通過rfc1112,定義了internet上的組播方式。
圖1.1
1. ip組播
ip組播是指乙個ip報文向乙個「主機組」的傳送,這個包含零個或多個主機的主機組由乙個單獨的ip位址標識。主機組位址也稱為「組播位址」,或者d類位址。除了目的位址部分,組播報文與普通報文沒有區別,網路盡力傳送組播報文但是並不保證一定送達。
主機組的成員可以動態變化,主機有權選擇加入或者退出某個主機組。主機可以加入多個主機組,也可以向自己沒有加入的主機組傳送資料。主機組有兩種:永久組和臨時組。永久組的ip位址是周知的,由internet管理機構分配,是保留位址。臨時組的位址則使用除永久組位址外的非保留d類位址。
ip組播分組在網際網路上的**由支援組播的
路由器來處理。主機發出的ip組播分組在本子網內被所有主機組成員接收,同時與該子網直接相連的組播路由器會把組播報文**到所有包含該主機組成員的網路上。組播報文傳遞的範圍由報文的生存期值(ttl, time-to-live)決定,如果ttl值等於或者小於設定的路由器埠ttl門限值(ttl threshold),路由器將不再**該報文。
2. 組播位址
ip組播位址,或稱為主機組位址,由d類ip位址標記。d類ip位址的最高四位為「1110」,起範圍從224.0.0.0到239.255.255.255。如前所述,部分d類位址被保留,用作永久組的位址,這段位址從224.0.0.0-224.0.0.255。比較重要的位址有:
224.0.0.1 - 網段中所有支援組播的主機
224.0.0.2 - 網段中所有支援組播的路由器
224.0.0.4 - 網段中所有的dvmrp路由器
224.0.0.5 - 所有的ospf路由器
224.0.0.6 - 所有的ospf指派路由器
224.0.0.9 - 所有ripv2路由器
224.0.0.13 -所有pim路由器
臨時主機組的組播位址由網路管理員選擇,他需要保證這個位址在一定的範圍內沒有其他的主機組在使用這個組播位址。
第2層的組播位址(組播mac位址)可以從ip組播位址中衍生。計算方法是把ip位址的最後23位拷貝到mac位址的最後23位,然後把這23位前面的那一位置為0。mac位址的前24位必須為0x01-00-5e。例如:組播ip位址224.0.1.128,16進製表示為0xe0-00-01-10,最低的23位為0x00-01-10,計算得出的mac位址為:0x01-00-5e-00-01-10。
3.internet組管理協議(igmp)
igmp協議由主機成員關係協議發展而來,目前有兩個版本:igmpv1(rfc1112),igmpv2 (rfc2326)。主機使用igmp訊息通告本地的組播路由器它想接收組播流量的主機組位址。如果主機支援igmpv2,它還可以通告組播路由器它退出某主機組。組播路由器通過igmp協議為其每個埠都維護一張主機組成員表,並定期的探詢表中的主機組的成員,以確定該主機組是否存活。
igmp訊息被置於ip報文中傳送。igmpv1的報文如圖1.2所示。igmpv1中定義了兩種訊息型別:主機成員詢問和主機成員報告。當某主機想要介紹某個組播流量時,它向本地的組播路由器傳送"主機成員報告"訊息,告知欲接收的組播位址。組播路由器收到"主機成員報告"訊息後把該主機加入指定的主機組,並在設定的週期內向組播位址224.0.0.1(代表所有支援組播的主機) 傳送"主機成員詢問"訊息。主機如果還想繼續接收組播流量,必須傳送"主機成員報告"訊息。
igmpv2的報文如圖1.3所示。與igmpv1不同的是它將版本欄位和訊息型別字段融合,把未使用欄位作了"最大響應時間"字段。igmpv2報文的訊息型別字段定義了四種訊息型別:
圖1.3
0x11 - 成員詢問
0x12 - igmpv1 成員報告
0x16 - igmpv2 成員報告
0x17 - 退出主機組
igmpv2向前相容igmpv1協議, igmpv1的裝置可以接收處理igmpv2的訊息報文。 igmpv2中允許路由器對指定的主機組位址做"成員詢問",非該組的主機不必響應。如果某主機想退出,它可以主動向路由器傳送"推出主機組"訊息,而不必像igmpv1中那樣只能被動退出。
4. cgmp協議
在交換網路中,2層交換機可能即不了解哪個埠有哪些組播組,也不能在其源mac位址表中找到組播mac位址的表項。從而,交換機只能簡單地把組播報文向所有埠**,組播的優勢將大大削弱。因此,cisco提出cgmp協議,讓組播路由器來配置交換機的組播**表,從而徹底解決交換網路中的組播問題。
cgmp ( cisco group management protocol)全稱cisco組管理協議,採用cgmp的路由器將主機加入或者退出組播組的igmp訊息通知交換機,交換機則根據該訊息將該主機所在埠從組播**表中加入或者刪除。通過cgmp協議的使用,2層交換機可以掌握接收組播的主機的情況,從而提高整個網路的效能和利用率。
5. 分布樹(distribution tree)
在傳送組播分組時,指派路由器需要構造乙個連線所有組播組成員的樹。根據這個樹,路由器得出**分組的一條唯一路徑。這個樹就稱為分布樹。由於成員可以動態的加入和退出,分布樹也必須動態更新。
根據構造方法的不同,分布樹分為源分布樹(source distribution tree)和共享分布樹(shared distribution tree)。源分布樹以組播源為根節點構造到所有組播組成員的生成樹,通常也稱為最短路徑樹(spt)。共享分布樹,也稱為rp樹或基於核心的樹(cbt, core_based tree)。它的構造方法是以網路中的某乙個指定的路由器為根節點,該路由器稱為集合點或中心點,由此節點生成包含所有組成員的樹。使用共享分布樹時,組播源需要首先把組播分組傳送給集合點路由器,再由這個路由器**給其他的組成員。
6. 組播路由協議
組播路由協議的主要任務就是構造組播的分布樹,使組播分組能夠傳送到相應的組播組成員。根據對網路中的組播成員的分布和使用的不同,組播路由協議分為兩類:密集模式路由協議(dm)和稀疏模式路由協議(**)。
dm路由協議通常用於組播成員較為集中、數量較多-網路的大部分使用者、並且有足夠頻寬的網路環境,比如公司或園區的區域網。因此,dm路由協議用定期廣播組播報文的方法維護組播分布樹。dm協議只使用源分布樹(spt),組播流量被廣播到網路中所有的組播路由器。dm路由協議有:
dvmrp:距離向量組播路由協議。這是一種基於距離向量演算法的組播路由協議。目前已基本上被pim和mospf所取代。
mospf:組播ospf協議。
pim-dm:協議無關組播協議-密集模式。它不需要單獨的組播協議,利用路由器上單播路由協議的路由表作反向路徑**檢查,由此獲得組播分布樹。相比另兩種協議,pim-dm的開銷要小很多,它用於組播源和目的非常靠近、接收者數量大於傳送者數量並且組播流量比較大的環境中效果很好。
在網路中稀疏分布、網路也沒有充足頻寬的情況,如廣域網環境,可以使用**路由協議。因此,**路由協議採用選擇性的建立和維護分布樹的方式,由空樹開始,僅當成員顯式的請求加入分布樹才做出修改。**路由協議有:
cbt:基於中心的分布樹協議(rfc 2201)。協議由以乙個中心的路由器為根構造乙個共享分布樹,所有的組播流量都經由這個中心路由器**。
pim-**:協議無關組播協議-稀疏模式。工作原理與pim-dm類似,但專門針對稀疏環境優化。適用於組播組中接收者較少、間歇性組播流量的情況。不同於pim-dm的廣播方式,pim-**定義了乙個集合點(rp),所有的接收者在rp註冊,組播分組由rp**給接收者。
7.總結
單個資料流可以傳送到多個客戶端的組播能力已成為大多數多**應用的傳輸手段。組播技術利用乙個ip位址使ip資料報文傳送到使用者組。ip組播採用了特殊定義的目的ip位址和目的mac位址。igmp為客戶端提供加入和離開組播組的方式。cgmp使路由器為交換機配置組播**表,並告訴交換機當前的組播成員。指派路由器根據對網路中的組播成員的分布和使用的不同採用密集模式dm或稀疏模式**組播路由協議來構造組播的分布樹,而這個分布樹將在源子網和組播組之間確定一條唯一路徑以提高資料傳輸效率。
IP組播與組播協議
在internet上,多 業務諸如 圖1.1 1.ip組播 ip組播是指乙個ip報文向乙個 主機組 的傳送,這個包含零個或多個主機的主機組由乙個單獨的 ip位址標識。主機組位址也稱為 組播位址 或者d類位址。除了目的位址部分,組播報文與普通報文沒有區別,網路盡力傳送組播報文但是並不保證一定送達。主機...
IP組播與組播協議
1.ip組播 ip組播是指乙個ip報文向乙個 主機組 的傳送,這個包含零個或多個主機的主機組由乙個單獨的ip位址標識。主機組位址也稱為 組播位址 或者d類位址。除了目的位址部分,組播報文與普通報文沒有區別,網路盡力傳送組播報文但是並不保證一定送達。主機組的成員可以動態變化,主機有權選擇加入或者退出某...
IP組播 PIM協議
pim sm 組播源向組播組傳送資料報文,組播組內的所有裝置都會繼續向下 資料報文 擴散 當有路徑不需要該組播的資料,最後一跳路由器會向上傳送prune 上游裝置收到後,將不會再向這條下游裝置 該組的資料 剪枝 rpf檢查 當裝置從多個介面收到同乙份組播資料以後,會根據rib 本地路由表 檢查到達這...