RFC3810 Multicast Listener Discovery Version 2 (MLDv2) for IPv6 A1015514李晉文 A1015534成柏緯 1
Multicast Multicast(多播):是指把訊息同時傳遞給一組目的地址。 在所有路由形式(e.g. 單播、多播、廣播…)中效率是最高的。 2
MLD Multicast Listener Discover:用於偵測網路設備的區域網路或與其直接連接的網段中的Multicast Listener。 Multicast Listener:為希望接收多播數據的主機節點。 路由器藉由MLD Protocol,可以了解直連的網段上是否有Multicast Listener,並存進一個列表,表中含有組成員的多播地址,以及該地址相對應的定時器。 3
Comparison MLD有兩個版本: MLDv1:由RFC 2710定義,源自於IPv4的IGMPv2 Version 1和Version 2的差別──來源過濾(source filter) 4
MLD in IPv6 由左圖可以發現: MLD屬於Network Layer。 圖片來源:http://note.tc.edu.tw/594.html
MLDv2 原理 一、查詢器選舉機制(Querier Election Mechanism) Step 1 所有MLD 路由器在初始時都認為自己是查詢器,並向區域網路內的所有主機和路由器發送MLD 一般組查詢(General Query)訊息。 Step 2 區域網路中的其它MLD 路由器在收到該訊息後,將訊息的來源IPv6 位址與自己的介面位址作比較,IPv6 位址最小的路由器將成為查詢器,其它路由器成為非查詢器(Non-Querier)。 5
MLDv2 原理 Step 3 所有Non-Querier上都會啟動一個計時器,在超時前,如果收到了來自查詢器的MLD查詢訊息,則重置該計時器(timer);否則,就認為原查詢器失效, 發起新的查詢器選舉過程。 6
MLDv2 原理 Querier Election Mechanism補充: Non-querier若沒有從Querier那收到消息(120秒),non-querier就會改變角色,成為Querier,重新開始選舉過程。 Local router每隔60秒會送出一個general querier到All host-224.0.0.1,以確保每個local的multicast group至少有一個host。
MLDv2 原理 二、對IPv6 多播來源的過濾 MLDv2 增加了針對IPv6 多播來源的過濾模式 ◎INCLUDE/ EXCLUDE : 只「接收/ 拒絕」 指定的IPv6 多播來源發送來的訊息。 7
MLDv2 原理 對IPv6 多播來源的過濾 補充: 每個multicast router會維護一個列表,以針對特定的地址做過濾;而列表的Include address和Exclude address是分別記錄在Include list和Exclude list。
MLDv2訊息類型格式 一、Multicast Listener Query Message (查詢訊息) MLD Querier通過發送 相鄰介面的多播偵聽 狀態。
Maximum Response Code If MRC < 32768, Maximum Response Delay = MRC MRC represents a floating-point value as follows: Maximum Response Delay = (mant | 0x1000) << (exp+3)
QQIC (Querier's Query Interval Code) If QQIC < 128, QQI = QQIC If QQIC >= 128, QQIC represents a floating-point value as follows: QQI = (mant | 0x10) << (exp + 3)
MLDv2訊息類型格式 二、Multicast Listener Report Message (回報訊息) 主機通過發送 MLD回報訊息 來回報當前的 多播偵聽狀態。
MLDv2訊息類型格式 多播地址記錄的訊息格式 (Multicast Address Record internal format)
紀錄類型 ( Record Type ) 當前狀態報告 值 名稱 作用 1 MODE_IS_INCLUDE 2 MODE_IS_EXCLUDE 指明當前的過濾模式為exclude。
紀錄類型 ( Record Type ) 過濾模式變化報告類型 值 名稱 作用 3 CHANGE_TO_INCLUDE_MODE 4 CHANGE_TO_EXCLUDE_MODE 指明當前的過濾模式變為exclude。
紀錄類型 ( Record Type ) 來源列表改變報告 值 名稱 作用 3 ALLOW_NEW_SOURCES 指明當前的來源位址列表需要增加新的來源。 4 BLOCK_OLD_SOURCES 指明當前的來源位址列表需要刪除舊的來源。
狀態改變類型 在舊的狀態變化報告傳送過程中,又有新的狀態變化發生,則此狀態變化會和舊的合併,組成新的狀態變化報告重新傳送。
MLDv2 相對於MLDv1的改進 1.引入source filter 2. Maximum Response Delay 增加到140分鐘 3.路由器除了Multicast Address列表外,還維護著每個 地址的過濾模式、source address列表等訊息 4.QRV和QQIC可以使同一區網內的MLDv2保持同步 5.主機可以定義要接收的Multicast source address
MLDv2 相對於MLDv1的改進 6.單一Listener report message可以包含多個針對不同多播地址的記錄 7.在查詢訊息中增加了S flag欄位 8.增加了Multicast Address和source的特定查詢
THE END