• 沒有找到結果。

第三章 研究方法

第四節、 IPv6 MLD 通訊協定實驗

IPv6 Multicast 在協定方面與 IPv4 並無顯著差異。主要仍分為網路設備(Router) 端與使用者(Host)端。Router 端目前發展主要以 PIM(Protocol Independent Multicast)為 主;Host 端則以 MLD(Multicast Listener Discovery)為主。PIM 的功能在於與其他 Multicast Router 進行 Multicast 的訊息交換,取得所有與 Multicast 相關的訊息,如 (Sender, Group)及瞭解 Multicast 的整體架構。由於其可配合任何一種 IPv6 unicast routing 的運作,故稱為”Protocol Independent”;MLD 的功能則類似於 IPv4 的 IGMP,

主要的功能在於協助 Router 找出位於其區域網路中之參與 Multicast 主機(Host)或是 其他提供 IPv6 Multicast 功能的網路設備,並傳遞相關資訊予 Rendezvous Point(RP),

並產生 Rendezvous Point Tree(RPT)的架構以便後續 Multicast 的進行。

當區域網路中有使用者想要加入某場視訊會議或參與某個多媒體影音串流服 務時,必須先告知其連線路由器相關資訊,如想要加入的群組等,再由路由器協助 其參與。此一運作協定即由 MLD 完成。當使用者想要加入時,便會送出一個 report 訊息給其連線路由器。連線路由器便會將此一 report 訊息及欲參與之群組位址相關

資訊送予 RP,構成一個 IPv6 Multicast 傳送骨幹架構。當路由器收到來源端所傳送 的資料後,便會根據此 RPT 中包含之使用者的相關訊息傳送出去,完成 IPv6 Multicast 資訊的傳遞。網路上任何一位使用者都可以傳送資料到 Multicast 群組中,

但只有 Multicast 群組的成員(group member)才可以接收到此一群組資訊。

MLD 主要用於偵測網路設備其區域網路內特定 Multicast group 的 listener 及其鄰 近且直接連接的 Multicast 網路設備。Multicast group 的定義為接收來自同一傳送端 資料的所有網路設備及主機。因此,網路設備及主機可以分屬多個不同的 Multicast group。MLD 有兩個版本,一是 MLD version 1(RFC 2710[10]),對應到 IPv4 的 IGMP version 2;另一版本為 MLD version 2(RFC 3810[11]),對應到 IGMP version 3。目前,

MLD 1 與 MLD 2 是可以互相相容的,因此可以正常運作。

MLD 可偵測出網路設備在區域網路有那些存在的 Multicast Listener,且取得這 些 listener 欲加入的 group 資訊。也因如此,將可限制及有效管理 Multicast 流量,並 減少因執行 Multicast 對於一般使用者及網路設備的負擔。

在 MLD 協定中分為兩個訊息架構,一是為 querier,另一是 host:

 querier 定位為網路設備端,送出查詢(querier)訊息找出在區域網路中有那些 listener 及這些 listener 有興趣的 group。

 host 則為一般網路使用者或路由器,針對 querier 送出的查詢訊息送出報告 (report)訊息,協助 querier 架構同一 group 的成員。

接收終端主要利用 Multicast Listener Discovery(MLD)協定來與所介接的 IPv6 路由器交換各個 Multicast Group 的成員狀態資訊,讓 IPv6 路由器搜尋底下網段主機 所欲接收的群播串流的相關資訊。MLD 協定中所定義的訊息屬於 ICMPv6 封包,所 有 MLD 訊息所攜帶的 Source Address 為 Link Local Address,且 IPv6 Hop Limit 為 1,

且在 Hop-by-Hop Options header 中將會帶著 IPv6 Router Alert option。

MLD 有三種訊息格式:

 Query(Type = 130):主要由 IPv6 Multicast 路由器送往直接相連接收終端網段,

用來搜尋接收終端主機所欲參與的群播群組之相關資訊,此訊息所攜帶的 Destination Address 為 link-scope all-nodes multicast address (FF02::1)。若是在一 個網段裡,同時存在好幾個 IPv6 路由器,這幾臺路由器會自動選擇出一個 Querier 路由器,負責定期傳送 Query 訊息,調查該網段下欲加入的 Multicast Groups,此時其他路由器則處於 Non-Querier 的狀態。此處定義的 Query 訊 息又分為 General Query 以及 Multicast-Address-Specific Query 兩種不同的訊息,

主要的差別在於 IPv6 路由器所送出的詢問封包中是否有指定要詢問的 Multicast Group Address,接收終端所接收到的 General Query 訊息封包中 Multicast Address 欄位值為 0。

 Report(Type = 131):接收終端主機主動加入 Multicast Group 或回應 IPv6 路由 器的 Query 訊息時所送出的訊息,主要用來告知 IPv6 路由器本身所欲加入 的 Multicast Group Address。接收終端回應 IPv6 路由器的 General Query 訊息 時送出 Report 封包。當接收終端主動點選欲收看影片後,也就是開始 Listen 某個 Multicast Group Address 之後,接收終端主機必須主動送出 Multicast Listener Report 訊息,該封包的 Multicast Address 欄位所攜帶的資料正是所點 選影片所屬的 Multicast Group Address。

 Done(Type = 132):接收終端要離開 Multicast Group,且確定為該網段中最後 一個成員時,必須送給 IPv6 路由器的訊息。訊息中必須攜帶所欲離開的 Multicast Group Address 的相關資訊。當 IPv6 路由器收到接收終端送來的 Multicast Listener Done 訊 息 , 將 會 送 出 Multicast Listener Multicast-Address-Specific Query 訊息,來詢問網段下是否有其他用戶還想繼 續接收該 Multicast Group 的資料串流。經過 Maximum Response Delay 的等待 時間之後,若沒有任何接收終端主機回應,則該 IPv6 路由器將會認為該網 段下已經沒有用戶需要此 Multicast Group 的資料了。

本實驗主要驗證目前設備已經支援最新 IPv6 MLDv2 通訊協定,可應用於未來 IPv6 IPTV 多播網路中,測試架構如圖 17 所示 。

圖 17::::IPv6 MLD 測試架構

測試實驗方法九如下:

支援 MLDv2 的主機擔任 Listener1 與 Listener2 的角色,高效能路由器擔任 Router1 的 角 色 , 並 設 定 四 組 Multicast 群 組 , 分 別 為 Group M1 (FF3E:40:2001:238:100::1001) 、 Group M2 (FF3E:40:2001:238:200::2002) 、 Group M3 (FF3E:40:2001:238:300::3003)及 Group M4 (FF3E:40:2001:238:400::4004)。

1. Router1 傳送 MLD 群播封包詢問是否有主機願意加入群組 M1 和 M2,

Listener1 回應 MLD 群播封包表示有意願加入,並從 Router1 與 Listener1 的命令提示字元中,查驗 Listener1 加入群播群組為 M1 和 M2 之訊息。

2. Router1 傳送 MLD 群播封包詢問是否有主機願意加入群組 M3 和 M4,

Listener2 回應 MLD 群播封包表示有意願加入,並從 Router1 與 Listener2 的命令提示字元中,查驗 Listener2 加入群播群組為 M3 和 M4 之訊息。

3. Listener1 傳送 MLD 群播封包表示有願意離開群組 M1,Router1 回應 MLD 群播封包得知此訊息,並從 Router1 的命令提示字元中,查驗 Listener1 已 經離開群播群組為 M1 之訊息。

4. Listener2 傳送 MLD 群播封包表示有願意離開群組 M3,Router1 回應 MLD 群播封包得知此訊息,並從 Router1 的命令提示字元中,查驗 Listener2 已 經離開群播群組為 M3 之訊息。

測試結果如表 14 所示,所有驗證以檢查 Listerner 1、Listerner 2 及 Router 1 之控 制台呈現訊息為主。

表 14:IPv6 MLD 測試結果

IPv6 MLD 測試項目 結果

Listerner 1 加入 M1 和 M2 OK Listerner 2 加入 M3 和 M4 OK Listerner 1 退出 M1 OK Listerner 2 退出 M3 OK