組播

組播簡介

作為一種與單播(Unicast)和廣播(Broadcast)并列的通信方式,組播(Multicast)技術能夠有效地解決單點發(fā)送、多點接收的問題,從而實現(xiàn)了網(wǎng)絡中點到多點的高效數(shù)據(jù)傳送,能夠節(jié)約大量網(wǎng)絡帶寬、降低網(wǎng)絡負載。

利用組播技術可以方便地提供一些新的增值業(yè)務,包括在線直播、網(wǎng)絡電視、遠程教育、遠程醫(yī)療、網(wǎng)絡電臺、實時視頻會議等對帶寬和數(shù)據(jù)交互的實時性要求較高的信息服務。

三種信息傳輸方式的比較

1. 單播方式的信息傳輸

如圖1所示,在IP網(wǎng)絡中若采用單播的方式,信息源(即Source)要為每個需要信息的主機(即Receiver)都發(fā)送一份獨立的信息拷貝。

image

圖1 單播方式的信息傳輸

假設Host B、Host D和Host E需要信息,則Source要與Host B、Host D和Host E分別建立一條獨立的信息傳輸通道。

采用單播方式時,網(wǎng)絡中傳輸?shù)男畔⒘颗c需要該信息的用戶量成正比,因此當需要該信息的用戶數(shù)量較大時,信息源需要將多份內(nèi)容相同的信息發(fā)送給不同的用戶,這對信息源以及網(wǎng)絡帶寬都將造成巨大的壓力。

從單播方式的信息傳播過程可以看出,該傳輸方式不利于信息的批量發(fā)送。

2. 廣播方式的信息傳輸

如圖2所示,在一個網(wǎng)段中若采用廣播的方式,信息源(即Source)將把信息傳送給該網(wǎng)段中的所有主機,而不管其是否需要該信息。

image

圖2 廣播方式的信息傳輸

假設只有Host B、Host D和Host E需要信息,若將該信息在網(wǎng)段中進行廣播,則原本不需要信息的Host A和Host C也將收到該信息,這樣不僅信息的安全性得不到保障,而且會造成同一網(wǎng)段中信息的泛濫。

因此,廣播方式不利于與特定對象進行數(shù)據(jù)交互,并且還浪費了大量的帶寬。

3. 組播方式的信息傳輸

綜上所述,傳統(tǒng)的單播和廣播的通信方式均不能以最小的網(wǎng)絡開銷實現(xiàn)單點發(fā)送、多點接收的問題,IP組播技術的出現(xiàn)及時解決了這個問題。

如圖3所示,當IP網(wǎng)絡中的某些主機(即Receiver)需要信息時,若采用組播的方式,組播源(即Source)僅需發(fā)送一份信息,借助組播路由協(xié)議建立組播分發(fā)樹,被傳遞的信息在距離組播源盡可能遠的網(wǎng)絡節(jié)點才開始復制和分發(fā)。

image

圖3 組播方式的信息傳輸

假設只有Host B、Host D和Host E需要信息,采用組播方式時,可以讓這些主機加入同一個組播組(Multicast group),組播源向該組播組只需發(fā)送一份信息,并由網(wǎng)絡中各路由器根據(jù)該組播組中各成員的分布情況對該信息進行復制和轉(zhuǎn)發(fā),最后該信息會準確地發(fā)送給Host B、Host D和Host E。

綜上所述,組播的優(yōu)勢歸納如下:

l 相比單播來說,組播的優(yōu)勢在于:由于被傳遞的信息在距信息源盡可能遠的網(wǎng)絡節(jié)點才開始被復制和分發(fā),所以用戶的增加不會導致信息源負載的加重以及網(wǎng)絡資源消耗的顯著增加。

l 相比廣播來說,組播的優(yōu)勢在于:由于被傳遞的信息只會發(fā)送給需要該信息的接收者,所以不會造成網(wǎng)絡資源的浪費,并能提高信息傳輸?shù)陌踩?;另外,廣播只能在同一網(wǎng)段中進行,而組播可以實現(xiàn)跨網(wǎng)段的傳輸。

PIM協(xié)議簡介

定義

PIM(Protocol Independent Multicast)稱為協(xié)議無關組播。這里的協(xié)議無關指的是與單播路由協(xié)議無關,即PIM不需要維護專門的單播路由信息。作為組播路由解決方案,它直接利用單播路由表的路由信息,對組播報文執(zhí)行RPF(Reverse Path Forwarding,逆向路徑轉(zhuǎn)發(fā))檢查,檢查通過后創(chuàng)建組播路由表項,從而轉(zhuǎn)發(fā)組播報文。

PIM-DM

基本原理

PIM-DM使用“推(Push)模式”轉(zhuǎn)發(fā)組播報文,一般應用于組播組成員規(guī)模相對較小、相對密集的網(wǎng)絡。在實現(xiàn)過程中,它會假設網(wǎng)絡中的組成員分布非常稠密,每個網(wǎng)段都可能存在組成員。當有活躍的組播源出現(xiàn)時,PIM-DM會將組播源發(fā)來的組播報文擴散到整個網(wǎng)絡的PIM路由器上,再裁剪掉不存在組成員的分支。PIM-DM通過周期性的進行“擴散(Flooding)—剪枝(Prune)”,來構建并維護一棵連接組播源和組成員的單向無環(huán)SPT(Source Specific Shortest Path Tree)。如果在下一次“擴散-剪枝”進行前,被裁剪掉的分支由于其葉子路由器上有新的組成員加入而希望提前恢復轉(zhuǎn)發(fā)狀態(tài),也可通過嫁接(Graft)機制主動恢復其對組播報文的轉(zhuǎn)發(fā)。

PIM-DM的關鍵工作機制包括鄰居發(fā)現(xiàn)、擴散、剪枝、嫁接、斷言和狀態(tài)刷新。其中,擴散、剪枝、嫁接是構建SPT的主要方法。

PIM-SM(ASM模型)

基本原理

在ASM(Any-Source Multicast)模型中,PIM-SM使用“拉(Pull)模式”轉(zhuǎn)發(fā)組播報文,一般應用于組播組成員規(guī)模相對較大、相對稀疏的網(wǎng)絡?;谶@一種稀疏的網(wǎng)絡模型,它的實現(xiàn)方法是:

?在網(wǎng)絡中維護一臺重要的PIM路由器:匯聚點RP(Rendezvous Point),可以為隨時出現(xiàn)的組成員或組播源服務。網(wǎng)絡中所有PIM路由器都知道RP的位置。

?當網(wǎng)絡中出現(xiàn)組成員(用戶主機通過IGMP加入某組播組G)時,最后一跳路由器向RP發(fā)送Join報文,逐跳創(chuàng)建(*,G)表項,生成一棵以RP為根的RPT。

?當網(wǎng)絡中出現(xiàn)活躍的組播源(組播源向某組播組G發(fā)送第一個組播數(shù)據(jù))時,第一跳路由器將組播數(shù)據(jù)封裝在Register報文中單播發(fā)往RP,在RP上創(chuàng)建(S,G)表項,注冊源信息。

在ASM模型中,PIM-SM的關鍵機制包括鄰居發(fā)現(xiàn)、DR競選、RP發(fā)現(xiàn)、RPT構建、組播源注冊、SPT切換、斷言;同時也可通過配置BSR(Bootstrap Router)管理域來實現(xiàn)單個PIM-SM域的精細化管理。

配置PIM-DM基本功能的組網(wǎng)圖

image.png

操作步驟

  1. 配置各交換機接口的IP地址和單播路由協(xié)議。-

    按照圖1

#### 操作步驟

1.  配置各交換機接口的IP地址和單播路由協(xié)議。-

    按照[圖1](mk:@MSITStore:D:\項目\同盾\運維\文檔\CloudEngine_8800&7800&6800&5800系列交換機_V100R006C00_產(chǎn)品文檔(chm)\CloudEngine%208800&7800&6800&5800系列交換機%20V100R006C00%20產(chǎn)品文檔.chm::/dc/dc_cfg_pim-dm_ipv4_0041.html#dc_cfg_pim-dm_ipv4_0041__fig_01)配置各交換機接口的IP地址和掩碼,并配置各交換機之間采用OSPF進行互連,確保網(wǎng)絡中各交換機間能夠在網(wǎng)絡層互通,并且保證它們之間能夠借助單播路由協(xié)議實現(xiàn)動態(tài)路由更新。

    # 配置SwitchA的接口加入VLAN。SwitchB、SwitchC、SwitchD和SwitchE的配置與SwitchA相似,配置過程略。

    <pre class="screen"><HUAWEI> **system-view**
    [~HUAWEI] **sysname SwitchA**
    [*HUAWEI] **commit**
    [~SwitchA] **vlan batch 10 20 30**
    [*SwitchA] **interface 10ge 1/0/1**
    [*SwitchA-10GE1/0/1] **port link-type trunk**
    [*SwitchA-10GE1/0/1] **port trunk allow-pass vlan 10**
    [*SwitchA-10GE1/0/1] **quit**
    [*SwitchA] **interface 10ge 1/0/2**
    [*SwitchA-10GE1/0/2] **port default vlan 20**
    [*SwitchA-10GE1/0/2] **quit**
    [*SwitchA] **interface 10ge 1/0/3**
    [*SwitchA-10GE1/0/3] **port link-type trunk**
    [*SwitchA-10GE1/0/3] **port trunk allow-pass vlan 30**
    [*SwitchA-10GE1/0/3] **quit**
    [*SwitchA] **commit**
    </pre>

    # 配置SwitchA上VLANIF接口的IP地址。SwitchB、SwitchC、SwitchD和SwitchE的配置與SwitchA相似,配置過程略。

    <pre class="screen">[~SwitchA] **interface vlanif 10**
    [*SwitchA-Vlanif10] **ip address 192.168.5.1 24**
    [*SwitchA-Vlanif10] **quit**
    [*SwitchA] **interface vlanif 20**
    [*SwitchA-Vlanif20] **ip address 10.110.1.1 24**
    [*SwitchA-Vlanif20] **quit**
    [*SwitchA] **interface vlanif 30**
    [*SwitchA-Vlanif30] **ip address 192.168.1.1 24**
    [*SwitchA-Vlanif30] **quit**
    [*SwitchA] **commit**</pre>

    # 配置SwitchA上的路由協(xié)議。本例中采用OSPF協(xié)議。SwitchB、SwitchC、SwitchD和SwitchE的配置與SwitchA相似,配置過程略。

    <pre class="screen">[~SwitchA] **ospf**
    [*SwitchA-ospf-1] **area 0**
    [*SwitchA-ospf-1-area-0.0.0.0] **network 10.110.1.0 0.0.0.255**
    [*SwitchA-ospf-1-area-0.0.0.0] **network 192.168.1.0 0.0.0.255**
    [*SwitchA-ospf-1-area-0.0.0.0] **network 192.168.5.0 0.0.0.255**
    [*SwitchA-ospf-1-area-0.0.0.0] **commit**
    [~SwitchA-ospf-1-area-0.0.0.0] **quit**
    [~SwitchA-ospf-1] **quit**</pre>

2.  使能組播路由功能,在各接口上使能PIM-DM功能。-

    # 在所有交換機上使能組播路由功能,在各接口上使能PIM-DM功能。SwitchB、SwitchC、SwitchD和SwitchE的配置與SwitchA相似,配置過程略。

    <pre class="screen">[~SwitchA] **multicast routing-enable**
    [*SwitchA] **interface vlanif 10**
    [*SwitchA-Vlanif10] **pim dm**
    [*SwitchA-Vlanif10] **quit**
    [*SwitchA] **interface vlanif 20**
    [*SwitchA-Vlanif20] **pim dm**
    [*SwitchA-Vlanif20] **quit**
    [*SwitchA] **interface vlanif 30**
    [*SwitchA-Vlanif30] **pim dm**
    [*SwitchA-Vlanif30] **quit**
    [*SwitchA] **commit**</pre>

3.  在連接用戶主機的接口上使能IGMP功能。-

    # 在SwitchA連接用戶主機的接口上使能IGMP功能。SwitchB和SwitchC的配置與SwitchA相似,配置過程略。

    <pre class="screen">[~SwitchA] **interface vlanif 20**
    [~SwitchA-Vlanif20] **igmp enable**
    [*SwitchA-Vlanif20] **quit**
    [*SwitchA] **commit**
    </pre>

4.  驗證配置結果。-

    # 使用命令**display pim interface**命令查看接口上PIM的配置和運行情況。例如SwitchC上PIM的顯示信息如下。State字段顯示為**up**,表明接口上的PIM協(xié)議已經(jīng)運行,PIM鄰居已經(jīng)成功建立。

    <pre class="screen">[~SwitchC] **display pim interface**
     VPN-Instance: public net
     Interface           State NbrCnt HelloInt     DR-Pri     DR-Address      
     Vlanif40            up         1       30          1     10.110.2.2 (local) 
     Vlanif50            up         1       30          1     192.168.3.2
    </pre>

    # 使用命令**display pim routing-table**查看PIM協(xié)議組播路由表。組播源(10.110.3.100/24)向組播組(225.1.1.1/24)發(fā)送信息,HostA、HostB都加入了組播組(225.1.1.1/24)。顯示信息如下:

    <pre class="screen">[~SwitchA] **display pim routing-table**
     VPN-Instance: public net
     Total 1 (*, G) entry; 1 (S, G) entry

     (*, 225.1.1.1)
         Protocol: pim-dm, Flag: WC
         UpTime: 00:00:29
         Upstream interface: NULL
             Upstream neighbor: NULL
             RPF prime neighbor: NULL
         Downstream interface(s) information:
         Total number of downstreams: 1
             1: Vlanif20
                 Protocol: igmp, UpTime: 00:00:29, Expires: never

     **(10.110.3.100, 225.1.1.1)**
         Protocol: **pim-dm**, Flag: ACT
         UpTime: 00:00:29
         Upstream interface: Vlanif30
             Upstream neighbor: 192.168.1.2
             RPF prime neighbor: 192.168.1.2
         Downstream interface(s) information:
         Total number of downstreams: 1
             1: Vlanif20
                 Protocol: **pim-dm**, UpTime: 00:00:29, Expires: -
    </pre>

    <pre class="screen">[~SwitchB] **display pim routing-table**
     VPN-Instance: public net
     Total 1 (*, G) entry; 1 (S, G) entry

     (*, 225.1.1.1)
         Protocol: pim-dm, Flag: WC
         UpTime: 00:00:29
         Upstream interface: NULL
             Upstream neighbor: NULL
             RPF prime neighbor: NULL
         Downstream interface(s) information:
         Total number of downstreams: 1
             1: Vlanif40
                 Protocol: igmp, UpTime: 00:00:29, Expires: never

     **(10.110.3.100, 225.1.1.1)**
         Protocol: **pim-dm**, Flag: ACT
         UpTime: 00:00:29
         Upstream interface: Vlanif80
             Upstream neighbor: 192.168.2.2
             RPF prime neighbor: 192.168.2.2
         Downstream interface(s) information:
         Total number of downstreams: None
    </pre>

    <pre class="screen">[~SwitchC] **display pim routing-table**
     VPN-Instance: public net
     Total 1 (*, G) entry; 1 (S, G) entry

     (*, 225.1.1.1)
         Protocol: pim-dm, Flag: WC
         UpTime: 00:00:29
         Upstream interface: NULL
             Upstream neighbor: NULL
             RPF prime neighbor: NULL
         Downstream interface(s) information:
         Total number of downstreams: 1
             1: Vlanif40
                 Protocol: igmp, UpTime: 00:00:29, Expires: never

     **(10.110.3.100, 225.1.1.1)**
         Protocol: **pim-dm**, Flag: ACT
         UpTime: 00:01:25
         Upstream interface: Vlanif50
             Upstream neighbor: 192.168.3.2
             RPF prime neighbor: 192.168.3.2
         Downstream interface(s) information:
         Total number of downstreams: 1
             1: Vlanif40
                 Protocol: **pim-dm**, UpTime: 00:01:25, Expires: -
    </pre>

    <pre class="screen">[~SwitchD] **display pim routing-table**
     VPN-Instance: public net
     Total 0 (*, G) entry; 1 (S, G) entry

     **(10.110.3.100, 225.1.1.1)**
         Protocol: **pim-dm**, Flag: LOC ACT
         UpTime: 00:00:29
         Upstream interface: Vlanif70
             Upstream neighbor: NULL
             RPF prime neighbor: NULL
         Downstream interface(s) information:
         Total number of downstreams: 2
             1: Vlanif30
                 Protocol: **pim-dm**, UpTime: 00:00:29, Expires: never
             2: Vlanif60
                 Protocol: **pim-dm**, UpTime: 00:00:26, Expires: never
    </pre>

    <pre class="screen">[~SwitchE] **display pim routing-table**
     VPN-Instance: public net
     Total 0 (*, G) entry; 1 (S, G) entry

     **(10.110.3.100, 225.1.1.1)**
         Protocol: **pim-dm**, Flag: ACT
         UpTime: 00:01:22
         Upstream interface: Vlanif60
             Upstream neighbor: 192.168.4.1
             RPF prime neighbor: 192.168.4.1
         Downstream interface(s) information:
         Total number of downstreams: 1
             1: Vlanif50
                 Protocol: **pim-dm**, UpTime: 00:01:22, Expires: never
    </pre>

文章內(nèi)容,來自H3C,HUAWEI官方文檔

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容