久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

IP組播

 邸彥強(qiáng) 2021-08-08

1  IP組播基礎(chǔ)

IP組播技術(shù)有效地解決了單點(diǎn)發(fā)送、多點(diǎn)接收的問題,。組播源只發(fā)送一份數(shù)據(jù),,被傳遞的信息在距組播源盡可能遠(yuǎn)的網(wǎng)絡(luò)節(jié)點(diǎn)才開始被復(fù)制和分發(fā),并且只發(fā)送給需要該信息的接收者,。

 說明:

本章所涉及的交換機(jī)和交換機(jī)圖標(biāo),,是指使能了二層組播功能的路由器。

  • 1.1 IP組播簡介
    介紹IP組播的定義,、目的和受益,。
  • 1.2 原理描述
    介紹IP組播的基本概念、組播服務(wù)模型,、組播地址和組播協(xié)議,。
  • 1.3 應(yīng)用場景
    介紹IP組播的應(yīng)用場景。

1.1  IP組播簡介

介紹IP組播的定義,、目的和受益,。

定義

作為IP傳輸三種方式之一,IP組播通信指的是IP報(bào)文從一個(gè)源發(fā)出,,被轉(zhuǎn)發(fā)到一組特定的接收者。相較于傳統(tǒng)的單播和廣播,,IP組播可以有效地節(jié)約網(wǎng)絡(luò)帶寬,、降低網(wǎng)絡(luò)負(fù)載,所以被廣泛應(yīng)用于IPTV,、實(shí)時(shí)數(shù)據(jù)傳送和多媒體會(huì)議等網(wǎng)絡(luò)業(yè)務(wù)中,。

目的

傳統(tǒng)的IP通信有兩種方式:單播(Unicast)和廣播(Broadcast)。

  • 對于單播通信,,信息源為每個(gè)需要信息的主機(jī)都發(fā)送一份獨(dú)立的報(bào)文,。
  • 對于廣播通信,信息源將信息發(fā)送給該網(wǎng)段中的所有主機(jī),,而不管其是否需要該信息,。

如果要將數(shù)據(jù)從一臺(tái)主機(jī)發(fā)送給多個(gè)主機(jī)而非所有主機(jī),,可以采用廣播方式,也可以由源主機(jī)采用單播方式向網(wǎng)絡(luò)中的多臺(tái)目標(biāo)主機(jī)發(fā)送多份數(shù)據(jù),,如圖1-1所示,。

圖1-1  采用單播和廣播方式進(jìn)行點(diǎn)到多點(diǎn)傳輸數(shù)據(jù)示意圖 

  • 采用單播方式時(shí),網(wǎng)絡(luò)中傳輸?shù)男畔⒘颗c需要該信息的用戶量成正比,。當(dāng)需要該信息的用戶數(shù)量較大時(shí),,信息源需要將多份內(nèi)容相同的信息發(fā)送給不同的用戶,這對信息源以及網(wǎng)絡(luò)帶寬都將造成巨大的壓力,。因此,,該傳輸方式不利于信息的批量發(fā)送,只適用于用戶稀少的網(wǎng)絡(luò),。
  • 采用廣播方式時(shí),,不需要接收信息的主機(jī)也將收到該信息,這樣不僅信息的安全性得不到保障,,而且會(huì)造成同一網(wǎng)段中信息泛濫,。因此,該傳輸方式不利于與特定對象進(jìn)行數(shù)據(jù)交互,,同時(shí)會(huì)浪費(fèi)大量的帶寬,。

由上述可見,傳統(tǒng)的單播和廣播通信方式不能有效地解決單點(diǎn)發(fā)送,、多點(diǎn)接收的問題,。

組播(Multicast)可以很好的解決點(diǎn)到多點(diǎn)的數(shù)據(jù)傳輸,如圖1-2所示,,源只發(fā)送一份數(shù)據(jù),,網(wǎng)絡(luò)中只有需要該數(shù)據(jù)的主機(jī)(目標(biāo)主機(jī)HostA和HostC)可以接收該數(shù)據(jù),其他主機(jī)(HostB)不能收到該數(shù)據(jù),。

圖1-2  采用組播方式進(jìn)行點(diǎn)到多點(diǎn)傳輸數(shù)據(jù)示意圖 

組播相對單播和廣播有如下優(yōu)勢:
  • 相比單播,,由于被傳遞的信息在距信息源盡可能遠(yuǎn)的網(wǎng)絡(luò)節(jié)點(diǎn)才開始被復(fù)制和分發(fā),所以用戶的增加不會(huì)導(dǎo)致信息源負(fù)載的加重以及網(wǎng)絡(luò)資源消耗的顯著增加,。
  • 相比廣播,,由于被傳遞的信息只會(huì)發(fā)送給需要該信息的接收者,所以不會(huì)造成網(wǎng)絡(luò)資源的浪費(fèi),,并能提高信息傳輸?shù)陌踩浴?/li>

受益

組播適用于任何“點(diǎn)到多點(diǎn)”的數(shù)據(jù)發(fā)布,,主要包含以下幾方面:

  • 多媒體、流媒體的應(yīng)用,。
  • 培訓(xùn),、聯(lián)合作業(yè)場合的通信。
  • 數(shù)據(jù)倉庫,、金融應(yīng)用(股票),。

IP組播技術(shù)在ISP提供的互聯(lián)網(wǎng)信息服務(wù)中已經(jīng)得到了應(yīng)用,。例如:在線直播、網(wǎng)絡(luò)電視,、遠(yuǎn)程教育,、遠(yuǎn)程醫(yī)療、網(wǎng)絡(luò)電臺(tái)和實(shí)時(shí)視/音頻會(huì)議等,。

1.2  原理描述

介紹IP組播的基本概念,、組播服務(wù)模型、組播地址和組播協(xié)議,。

1.2.1  組播基本概念

組播傳輸?shù)奶攸c(diǎn)是單點(diǎn)發(fā)送,,多點(diǎn)接收。如圖1-3所示為組播的傳輸模型示意圖,,網(wǎng)絡(luò)中存在信息發(fā)送源Source,,感興趣的用戶HostA和HostC提出信息需求,Source發(fā)出的數(shù)據(jù)只有HostA和HostC會(huì)接收到,。

圖1-3  組播方式示意圖 

  • 組播組:用IP組播地址進(jìn)行標(biāo)識(shí)的一個(gè)集合,。任何用戶主機(jī)(或其他接收設(shè)備),加入一個(gè)組播組,,就成為了該組成員,,可以識(shí)別并接收發(fā)往該組播組的組播數(shù)據(jù)。
  • 組播源:信息的發(fā)送者稱為“組播源”,,如圖1-3中的Source,。一個(gè)組播源可以同時(shí)向多個(gè)組播組發(fā)送數(shù)據(jù),多個(gè)組播源也可以同時(shí)向一個(gè)組播組發(fā)送報(bào)文,。組播源通常不需要加入組播組,。
  • 組播組成員:所有加入某組播組的主機(jī)便成為該組播組的成員,如圖1-3中的HostA和HostC,。組播組中的成員是動(dòng)態(tài)的,,主機(jī)可以在任何時(shí)刻加入或離開組播組。組播組成員可以廣泛地分布在網(wǎng)絡(luò)中的任何地方,。
  • 組播路由器:支持三層組播功能的路由器或交換機(jī),,如圖1-3中的各個(gè)Router。組播路由器不僅能夠提供組播路由功能,,也能夠在與用戶連接的末梢網(wǎng)段上提供組播組成員的管理功能。

表1-1以收看某電視頻道的節(jié)目為例來類比IP組播中的概念,。

表1-1  組播信息傳輸與電視節(jié)目傳輸?shù)念惐?/span>

順序

電視節(jié)目傳輸過程

組播方式傳輸過程

1

電視臺(tái)向頻道內(nèi)發(fā)送數(shù)據(jù)

組播源向組播組發(fā)送數(shù)據(jù)

2

觀眾打開電視機(jī)選擇到這個(gè)頻道

接收者主機(jī)加入該組播組

3

電視機(jī)播放該頻道電視節(jié)目

主機(jī)接收到發(fā)送給這個(gè)組的數(shù)據(jù)

4

觀眾可以隨時(shí)控制電視機(jī)的開關(guān)和頻道間的切換

主機(jī)可以動(dòng)態(tài)加入或退出組播組

1.2.2  組播服務(wù)模型

組播服務(wù)模型的分類是針對接收者主機(jī)的,,對組播源沒有區(qū)別。組播源發(fā)出的組播數(shù)據(jù)中總是以組播源自己的IP地址為報(bào)文的源地址,,組播組地址為目的地址,。而接收者主機(jī)接收數(shù)據(jù)時(shí)可以對源進(jìn)行選擇,,因此產(chǎn)生了ASM(Any-Source Multicast)和SSM(Source-Specific Multicast)兩種服務(wù)模型。這兩種服務(wù)模型使用不同的組播組地址范圍,。

ASM模型

ASM模型僅針對組地址提供組播分發(fā),。一個(gè)組播組地址作為一個(gè)網(wǎng)絡(luò)服務(wù)的集合,任何源發(fā)布到該組地址的數(shù)據(jù)得到同樣的服務(wù),。接收者主機(jī)加入組播組以后可以接收到任意源發(fā)送到該組的數(shù)據(jù),。

為了提高安全性,可以在路由器上配置針對組播源的過濾策略,,允許或禁止來自某些組播源的報(bào)文通過,。最終從接收者角度看,數(shù)據(jù)是經(jīng)過篩選的,。

ASM模型要求組地址必須整個(gè)組播網(wǎng)絡(luò)中唯一,。“唯一”指的是同一時(shí)刻一個(gè)ASM地址只能被一種組播應(yīng)用使用,。如果有兩種不同的應(yīng)用程序使用了同一個(gè)ASM組地址發(fā)送數(shù)據(jù),,他們的接收者會(huì)同時(shí)收到來自兩個(gè)源的數(shù)據(jù)。這樣一方面會(huì)導(dǎo)致網(wǎng)絡(luò)流量擁塞,,另一方面也會(huì)給接收者主機(jī)造成困擾,。

SSM模型

SSM模型針對特定源和組的綁定數(shù)據(jù)流提供服務(wù),接收者主機(jī)在加入組播組時(shí),,可以指定只接收哪些源的數(shù)據(jù),。加入組播組以后,主機(jī)只會(huì)收到指定源發(fā)送到該組的數(shù)據(jù),。

SSM模型對組地址不再要求全網(wǎng)唯一,,只需要每個(gè)組播源保持唯一。這里的“唯一”指的是同一個(gè)源上不同的組播應(yīng)用必須使用不同的SSM地址來區(qū)分,。不同的源之間可以使用相同的組地址,,因?yàn)镾SM模型中針對每一個(gè)(源,組)信息都會(huì)生成表項(xiàng),。這樣一方面節(jié)省了組播組地址,,另一方面也不會(huì)造成網(wǎng)絡(luò)擁塞。

1.2.3  組播地址

為了使組播源和組播組成員進(jìn)行通信,,需要提供網(wǎng)絡(luò)層組播,,使用IP組播地址。同時(shí),,為了在本地物理網(wǎng)絡(luò)上實(shí)現(xiàn)組播信息的正確傳輸,,需要提供鏈路層組播,使用組播MAC地址。組播數(shù)據(jù)傳輸時(shí),,其目的地不是一個(gè)具體的接收者,,而是一個(gè)成員不確定的組,所以需要一種技術(shù)將IP組播地址映射為組播MAC地址,。

IPv4組播地址

IANA(Internet Assigned Numbers Authority,,互聯(lián)網(wǎng)編號(hào)分配委員會(huì))將D類地址空間分配給IPv4組播使用。IPv4地址一共32位,,D類地址最高4位為1110,,因此地址范圍從224.0.0.0到239.255.255.255,具體分類及含義見表1-2,。

表1-2  IPv4組播地址的范圍及含義

地址范圍

含義

224.0.0.0~224.0.0.255

永久組地址,。IANA為路由協(xié)議預(yù)留的IP地址(也稱為保留組地址),用于標(biāo)識(shí)一組特定的網(wǎng)絡(luò)設(shè)備,,供路由協(xié)議,、拓?fù)洳檎业仁褂茫挥糜诮M播轉(zhuǎn)發(fā),。常見的永久組地址如表1-3所示,。

224.0.1.0~231.255.255.255

233.0.0.0~238.255.255.255

ASM組播地址,全網(wǎng)范圍內(nèi)有效,。

說明:

其中,,224.0.1.39和224.0.1.40是保留地址,不建議使用,。

232.0.0.0~232.255.255.255

缺省情況下的SSM組播地址,,全網(wǎng)范圍內(nèi)有效。

239.0.0.0~239.255.255.255

本地管理組地址,,僅在本地管理域內(nèi)有效,。在不同的管理域內(nèi)重復(fù)使用相同的本地管理組地址不會(huì)導(dǎo)致沖突。

表1-3  常見的永久組地址列表

永久組地址

含義

224.0.0.0

不分配

224.0.0.1

網(wǎng)段內(nèi)所有主機(jī)和路由器(等效于廣播地址)

224.0.0.2

所有組播路由器

224.0.0.3

不分配

224.0.0.4

DVMRP(Distance Vector Multicast Routing Protocol,,距離矢量組播路由協(xié)議)路由器

224.0.0.5

OSPF(Open Shortest Path First,,開放最短路徑優(yōu)先)路由器

224.0.0.6

OSPF DR(Designated Router,指定路由器)

224.0.0.7

ST(Shared Tree,,共享樹)路由器

224.0.0.8

ST主機(jī)

224.0.0.9

RIP-2(Routing Information Protocol version 2,,路由信息協(xié)議版本2)路由器

224.0.0.11

移動(dòng)代理(Mobile-Agents)

224.0.0.12

DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議)服務(wù)器/中繼代理

224.0.0.13

所有PIM(Protocol Independent Multicast,,協(xié)議無關(guān)組播)路由器

224.0.0.14

RSVP(Resource Reservation Protocol,,資源預(yù)留協(xié)議)封裝

224.0.0.15

所有CBT(Core-Based Tree,有核樹)路由器

224.0.0.16

指定SBM(Subnetwork Bandwidth Management,,子網(wǎng)帶寬管理)

224.0.0.17

所有SBM

224.0.0.18

VRRP(Virtual Router Redundancy Protocol,,虛擬路由器冗余協(xié)議)

224.0.0.22

所有使能IGMPv3(Internet Group Management Protocol, Version 3,,因特網(wǎng)組管理協(xié)議)的路由器

224.0.0.19 ~ 224.0.0.21

224.0.0.23 ~ 224.0.0.255

未指定

IPv6組播地址

IPv6地址長度是128位,,在RFC4291中對組播地址的定義如圖1-4所示,。

圖1-4  IPv6組播地址的格式 

和IPv4組播地址相比,IPv6組播地址有了明確的Group ID字段用于標(biāo)識(shí)組播組,。

  • FF:最高8位為11111111,,標(biāo)識(shí)此地址為組播地址。即IPv6組播地址總是以FF開頭,。

  • Flags字段(4位),,用來標(biāo)識(shí)組播地址的狀態(tài)。其含義如下:

    表1-4  Flags取值及含義

    取值

    含義

    0

    表示是IANA指定的常用組播地址,,也叫保留組地址

    1

    表示是ASM范圍的組播地址

    2

    表示是ASM范圍的組播地址

    3

    表示是SSM范圍的組播地址

    其他

    未分配

  • Scope字段(4位):用來標(biāo)識(shí)組播組的應(yīng)用范圍,,例如是只包含同一本地網(wǎng)絡(luò)、同一站點(diǎn),、同一機(jī)構(gòu)中的節(jié)點(diǎn),,還是包含全球地址空間內(nèi)的任何節(jié)點(diǎn)。其含義如下:
    表1-5  Scope字段的取值及含義

    取值

    含義

    0,、3,、F

    保留

    1

    節(jié)點(diǎn)(或接口)本地范圍(node/interface-local scope)

    2

    鏈路本地范圍(link-local scope)

    4

    管理本地范圍(admin-local scope)

    5

    站點(diǎn)本地范圍(site-local scope)

    8

    機(jī)構(gòu)本地范圍(organization-local scope)

    E

    全球范圍(global scope)

    其他

    未分配

  • Group ID(112位):組播組標(biāo)識(shí)號(hào)。用來在由Scope字段所指定的范圍內(nèi)唯一標(biāo)識(shí)組播組,,該標(biāo)識(shí)可能是永久分配的或臨時(shí)的,,這由Flags字段的T位決定。

固定的IPv6組播地址的范圍及含義如表1-6,。

表1-6  IPv6組播地址的范圍及含義

范圍

含義

FF0x::/32

保留組地址,,具體請參見表1-7。

FF1x::/32(x不能是1或者2)

FF2x::/32(x不能是1或者2)

ASM組播地址,,全網(wǎng)范圍內(nèi)有效,。

FF3x::/32(x不能是1或者2)

缺省的SSM組地址范圍,全網(wǎng)范圍內(nèi)有效,。

表1-7  IPv6常用組播地址范圍及含義

范圍

IPv6組播地址

含義

節(jié)點(diǎn)(或接口)本地范圍

FF01::1

所有節(jié)點(diǎn)(接口)地址

FF01::2

所有路由器地址

鏈路本地范圍

FF02::1

所有節(jié)點(diǎn)地址

FF02::2

所有路由器地址

FF02::3

未定義的地址

FF02::4

DVMRP路由器

FF02::5

OSPF IGP Routers

FF02::6

OSPF IGP DR

FF02::7

ST路由器

FF02::8

ST主機(jī)

FF02::9

RIP路由器

FF02::A

EIGRP路由器

FF02::B

移動(dòng)代理

FF02::D

所有PIM路由器

FF02::E

RSVP封裝

FF02::1:1

Link Name

FF02::1:2

所有DHCP代理

FF02::1:FFXX:XXXX

Solicited-Node地址,,XX:XXXX表示節(jié)點(diǎn)IPv6地址的后24位

站點(diǎn)本地范圍

FF05::2

所有路由器地址

FF05::1:3

所有DHCP服務(wù)器

FF05::1:4

所有DHCP中繼

FF05::1:1000~FF05::1:13FF

服務(wù)位置

IPv4組播MAC地址

以太網(wǎng)傳輸IPv4單播報(bào)文的時(shí)候,目的MAC地址使用的是接收者的MAC地址,。但是在傳輸組播數(shù)據(jù)時(shí),,其目的地不再是一個(gè)具體的接收者,而是一個(gè)成員不確定的組,,所以要使用IPv4組播MAC地址,,即IPv4組播地址映射到鏈路層中的地址。

IANA規(guī)定,,IPv4組播MAC地址的高24位為0x01005e,,第25位為0,,低23位為IPv4組播地址的低23位,映射關(guān)系如圖1-5所示,。例如組播組地址224.0.1.1對應(yīng)的組播MAC地址為01-00-5e-00-01-01,。

圖1-5  IPv4組播地址與IPv4組播MAC地址的映射關(guān)系 

IPv4組播地址的前4位是固定的1110,對應(yīng)組播MAC地址的高25位,,后28位中只有23位被映射到MAC地址,,因此丟失了5位的地址信息,直接結(jié)果是有32個(gè)IPv4組播地址映射到同一MAC地址上,。例如IP地址為224.0.1.1,、224.128.1.1、225.0.1.1,、239.128.1.1等組播組的組播MAC地址都為01-00-5e-00-01-01,。網(wǎng)絡(luò)管理員在分配地址時(shí)必須考慮這種情況。

IPv6組播MAC地址

IPv6組播MAC地址的高16位為0x3333,,低32位為IPv6組播地址的低32位,。如圖1-6所示,是IPv6組播地址FF01::1111:1的MAC地址映射舉例,。

圖1-6  IPv6組播地址的MAC地址映射舉例 

可見IPv6中會(huì)有更多的組地址使用同一個(gè)MAC地址,。

1.2.4  IPv4組播協(xié)議

在IP組播傳輸模型中,發(fā)送者不關(guān)心接收者所處的位置,,只要將數(shù)據(jù)發(fā)送到約定的目的地址,,剩下的工作就交給網(wǎng)絡(luò)去完成。網(wǎng)絡(luò)中的組播設(shè)備必須收集接收者的信息,,并按照正確的路徑實(shí)現(xiàn)組播報(bào)文的轉(zhuǎn)發(fā)和復(fù)制,。在組播的發(fā)展過程中,形成了一套完整的協(xié)議來完成此任務(wù),。

IPv4網(wǎng)絡(luò)中使用的組播協(xié)議如表1-8所示,。

表1-8  IPv4組播協(xié)議

協(xié)議

功能

備注

組播組管理協(xié)議IGMP(Internet Group Management Protocol)

IGMP是負(fù)責(zé)IPv4組播成員管理的協(xié)議,運(yùn)行在組播網(wǎng)絡(luò)中的最后一段,,即三層網(wǎng)絡(luò)設(shè)備與用戶主機(jī)相連的網(wǎng)段內(nèi),。IGMP協(xié)議在主機(jī)端實(shí)現(xiàn)組播組成員加入與離開,在上游的三層設(shè)備中實(shí)現(xiàn)組成員關(guān)系的維護(hù)與管理,,同時(shí)支持與上層組播路由協(xié)議的信息交互,。

到目前為止,IGMP有三個(gè)版本:IGMPv1,、IGMPv2和IGMPv3,。

所有IGMP版本都支持ASM模型。IGMPv3可以直接應(yīng)用于SSM模型,,而IGMPv1和IGMPv2則需要SSM Mapping技術(shù)的支持,。

協(xié)議無關(guān)組播PIM(Protocol Independent Multicast)

PIM作為一種IPv4網(wǎng)絡(luò)中的組播路由協(xié)議,,主要用于將網(wǎng)絡(luò)中的組播數(shù)據(jù)流發(fā)送到有組播數(shù)據(jù)請求的組成員所連接的組播設(shè)備上,從而實(shí)現(xiàn)組播數(shù)據(jù)的路由查找與轉(zhuǎn)發(fā),。

PIM協(xié)議包括PIM-SM(Protocol Independent Multicast Sparse Mode)協(xié)議無關(guān)組播-稀疏模式和PIM-DM(Protocol Independent Multicast Dense Mode)協(xié)議無關(guān)組播-密集模式,。PIM-SM適合規(guī)模較大、組成員相對比較分散的網(wǎng)絡(luò),;PIM-DM適合規(guī)模較小,、組播組成員相對比較集中的網(wǎng)絡(luò)。

在PIM-DM模式下不需要區(qū)分ASM模型和SSM模型,。

在PIM-SM模式下根據(jù)數(shù)據(jù)和協(xié)議報(bào)文中的組播地址區(qū)分ASM模型和SSM模型:
  • 如果在SSM組播地址范圍內(nèi),則按照PIM-SM在SSM中的實(shí)現(xiàn)流程進(jìn)行處理,。PIM-SSM不但效率高,,而且簡化了組播地址分配流程,特別適用于對于特定組只有一個(gè)特定源的情況,。
  • 如果在ASM組播地址范圍內(nèi),,則按照PIM-SM在ASM中的實(shí)現(xiàn)流程進(jìn)行處理。

組播源發(fā)現(xiàn)協(xié)議MSDP(Multicast Source Discovery Protocol)

MSDP是為了解決多個(gè)PIM-SM域之間的互連的一種域間組播協(xié)議,,用來發(fā)現(xiàn)其他PIM-SM域內(nèi)的組播源信息,,將遠(yuǎn)端域內(nèi)的活動(dòng)信源信息傳遞給本地域內(nèi)的接收者,從而實(shí)現(xiàn)組播報(bào)文的跨域轉(zhuǎn)發(fā),。

只有PIM-SM使用ASM模型時(shí),,才需要使用MSDP。

組播邊界網(wǎng)關(guān)協(xié)議MBGP(MultiProtocol Border Gateway Protocol)

MBGP實(shí)現(xiàn)了跨AS域的組播轉(zhuǎn)發(fā),。適用于組播源與組播接收者在不同AS域的場景,。

-

IGMP Snooping

IGMP Snooping功能可以使路由器工作在二層時(shí),通過偵聽上游的三層設(shè)備和用戶主機(jī)之間發(fā)送的IGMP報(bào)文來建立組播數(shù)據(jù)報(bào)文的二層轉(zhuǎn)發(fā)表,,管理和控制組播數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),,進(jìn)而有效抑制組播數(shù)據(jù)在二層網(wǎng)絡(luò)中擴(kuò)散。

與IGMP對應(yīng),,IGMP Snooping就是IGMP協(xié)議在二層設(shè)備中的延伸協(xié)議,,可以通過配置IGMP Snooping的版本使路由器可以處理不同IGMP版本的報(bào)文。

1.2.5  IPv6組播協(xié)議

IPv6網(wǎng)絡(luò)中使用的組播協(xié)議如表1-9所示,。

表1-9  IPv6組播協(xié)議

協(xié)議

功能

備注

組播偵聽者發(fā)現(xiàn)協(xié)議MLD(Multicast Listener Discovery)

MLD是負(fù)責(zé)IPv6組播成員管理的協(xié)議,,運(yùn)行在組播網(wǎng)絡(luò)中的最后一段,即三層組播設(shè)備與用戶主機(jī)相連的網(wǎng)段內(nèi),。MLD協(xié)議在主機(jī)端實(shí)現(xiàn)組播組成員加入與離開,,在三層設(shè)備上實(shí)現(xiàn)組成員關(guān)系的維護(hù)與管理,同時(shí)支持與組播路由協(xié)議的信息交互,。

到目前為止,,MLD有兩個(gè)版本:MLDv1和MLDv2,。

MLDv2版本可以直接應(yīng)用于SSM模型,而MLDv1則需要通過使用SSM Mapping機(jī)制來支持SSM模型,。

MLD可以理解為IGMP的IPv6版本,。兩者的實(shí)現(xiàn)方式具有類比性,如MLDv1可以類比IGMPv2,,MLDv2可以類比IGMPv3,。

PIM(IPv6)

PIM(IPv6)作為一種IPv6網(wǎng)絡(luò)中的組播路由協(xié)議,主要用于將網(wǎng)絡(luò)中的組播數(shù)據(jù)流引入到有組播數(shù)據(jù)請求的組成員所連接的路由器上,,從而實(shí)現(xiàn)組播數(shù)據(jù)流的路由查找與轉(zhuǎn)發(fā),。

PIM(IPv6)協(xié)議包括PIM-SM(IPv6)和PIM-DM(IPv6)兩種模式。PIM-SM(IPv6)適合規(guī)模較大,、組成員相對比較分散的網(wǎng)絡(luò),;PIM-DM(IPv6)適合規(guī)模較小、組播組成員相對比較集中的網(wǎng)絡(luò),。

在PIM-DM(IPv6)模式下不需要區(qū)分ASM模型和SSM模型,。

在PIM-SM(IPv6)模式下根據(jù)數(shù)據(jù)和協(xié)議報(bào)文中的組播地址區(qū)分ASM模型和SSM模型:
  • 如果在SSM組播地址范圍內(nèi),則構(gòu)建PIM-SM在SSM中的實(shí)現(xiàn)模式,。PIM-SSM(IPv6)不但效率高,,而且簡化了組播地址分配流程,特別適用于對于特定組只有一個(gè)特定源的情況,。
  • 如果在ASM組播地址范圍內(nèi),,則按照PIM-SM(IPv6)在ASM中的實(shí)現(xiàn)流程進(jìn)行處理。

MLD Snooping

MLD Snooping功能可以使路由器工作在二層時(shí),,通過偵聽上游的三層設(shè)備和用戶主機(jī)之間發(fā)送的MLD報(bào)文來建立組播數(shù)據(jù)報(bào)文的IPv6二層轉(zhuǎn)發(fā)表,,管理和控制組播數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),進(jìn)而有效抑制組播數(shù)據(jù)在二層網(wǎng)絡(luò)中擴(kuò)散,。

MLD Snooping可以理解為IGMP Snooping的IPv6版本,。

1.3  應(yīng)用場景

介紹IP組播的應(yīng)用場景。

1.3.1  在IPv4網(wǎng)絡(luò)中部署組播

本節(jié)介紹IPv4網(wǎng)絡(luò)中幾個(gè)典型的組播業(yè)務(wù)場景以及組播協(xié)議和特性在這些場景中的應(yīng)用位置,。

 注意:

請務(wù)必根據(jù)網(wǎng)絡(luò)實(shí)際情況和具體的業(yè)務(wù)需求,,有針對性的定制配置方案。本節(jié)僅介紹基本業(yè)務(wù)功能的部署,。

 說明:

部署IPv4組播業(yè)務(wù)前,,首先確保網(wǎng)絡(luò)中IPv4單播路由正常。

單PIM域內(nèi)組播

在一個(gè)小型網(wǎng)絡(luò)中,,所有的設(shè)備和主機(jī)都在一個(gè)PIM組播域內(nèi),,此時(shí)的組播業(yè)務(wù)基本部署如圖1-7所示。

圖1-7  PIM域內(nèi)組播業(yè)務(wù)的基本部署示意圖 

表1-10  PIM域內(nèi)組播業(yè)務(wù)的部署

部署協(xié)議

應(yīng)用位置

目的

PIM

(必選)

組播域內(nèi)三層組播設(shè)備的所有接口,,包括RouterA,、RouterB,、RouterC的所有接口。

具體配置請參見4 PIM(IPv4)配置,。

將組播數(shù)據(jù)流從組播源Source發(fā)送到與有組播需求的用戶相連的RouterB和RouterC上,。

IGMP

(必選)

三層組播設(shè)備與用戶連接側(cè)接口,包括RouterB,、RouterC的用戶側(cè)接口,。

具體配置請參見2 IGMP配置。

實(shí)現(xiàn)組播組成員加入與離開組播組,,RouterB和RouterC維護(hù)與管理組成員,。

IGMP Snooping

(可選)

三層組播設(shè)備與用戶主機(jī)之間的SwitchA的VLAN內(nèi)。

具體配置請參見9 IGMP Snooping配置,。

IGMP Snooping通過偵聽RouterB和HostA之間發(fā)送的IGMP報(bào)文建立組播數(shù)據(jù)報(bào)文的二層轉(zhuǎn)發(fā)表,,從而管理和控制組播數(shù)據(jù)報(bào)文在二層網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)。

跨PIM-SM域組播

為了便于控制和管理組播資源(組播組,、組播源和組播成員),需要對組播資源在域間進(jìn)行隔離,,從而形成一個(gè)個(gè)隔離的PIM-SM域,。如果不同的PIM-SM域之間需要組播數(shù)據(jù)互通,就要部署MSDP協(xié)議,,如圖1-8所示,。

 說明:

PIM-SM模式在使用SSM模型的情況下不需要使用MSDP協(xié)議。

圖1-8  跨PIM-SM域組播業(yè)務(wù)的基本部署示意圖 

表1-11  跨PIM-SM域組播業(yè)務(wù)的部署

部署協(xié)議

應(yīng)用位置

目的

PIM-SM

(必選)

各PIM-SM域內(nèi)三層組播設(shè)備的所有接口,,包括RouterA~RouterF的所有接口,。

具體配置請參見4.7.2 配置PIM-SM(IPv4)。

將組播數(shù)據(jù)流從組播源Source1和Source2發(fā)送到與有組播需求的用戶相連的RouterF上,。PIM-SM采用接收者Host主動(dòng)加入組播組,、然后組播數(shù)據(jù)通過匯聚點(diǎn)RP發(fā)送信息到接收者的方式完成組播傳輸。

IGMP

(必選)

各PIM-SM域內(nèi)三層組播設(shè)備與用戶連接側(cè)接口,,即RouterF的用戶側(cè)接口,。

具體配置請參見2 IGMP配置。

實(shí)現(xiàn)組播組成員加入與離開組播組,,RouterF維護(hù)與管理組成員,。

MSDP

(必選)

需要互連的各個(gè)PIM-SM域中的匯聚點(diǎn)RP,包括RouterC和RouterD,。

具體配置請參見6 MSDP配置,。

實(shí)現(xiàn)組播源信息在PIM-SM1和PIM-SM2域間傳遞,PIM-SM2中的Host可以接收到Source1的數(shù)據(jù),。

IGMP Snooping

(可選)

三層組播設(shè)備與用戶主機(jī)之間的SwitchA的VLAN內(nèi),。

具體配置請參見9 IGMP Snooping配置,。

IGMP Snooping通過偵聽RouterF和Host之間發(fā)送的IGMP報(bào)文建立組播數(shù)據(jù)報(bào)文的二層轉(zhuǎn)發(fā)表,從而管理和控制組播數(shù)據(jù)報(bào)文在二層網(wǎng)絡(luò)中的轉(zhuǎn)發(fā),。

跨AS域組播

由于PIM協(xié)議依賴于單播路由表,,從而組播轉(zhuǎn)發(fā)路徑與單播轉(zhuǎn)發(fā)路徑是一致的。當(dāng)組播源與接收者分布在不同的AS中時(shí),,需要跨AS建立組播轉(zhuǎn)發(fā)樹,。此時(shí)可以部署MBGP協(xié)議,生成一張獨(dú)立于單播路由的組播路由表,,使組播數(shù)據(jù)通過組播路由表進(jìn)行傳輸,,如圖1-9所示。
 說明:

跨AS域部署MBGP協(xié)議前,,首先部署AS域間的BGP功能,。

圖1-9  跨AS域組播業(yè)務(wù)的基本部署示意圖 

表1-12  跨AS域組播業(yè)務(wù)的部署

部署協(xié)議

應(yīng)用位置

目的

PIM-SM

(必選)

各PIM-SM域內(nèi)三層組播設(shè)備的所有接口,包括RouterA~RouterH的所有接口,。

具體配置請參見4.7.2 配置PIM-SM(IPv4),。

將組播數(shù)據(jù)流從組播源Source1和Source2發(fā)送到與有組播需求的用戶相連的RouterB和RouterH上。PIM-SM采用接收者Host主動(dòng)加入組播組,、然后組播數(shù)據(jù)通過匯聚點(diǎn)RP發(fā)送信息到接收者的方式完成組播傳輸,。

IGMP

(必選)

各PIM-SM域內(nèi)三層組播設(shè)備與用戶連接側(cè)接口,包括RouterB和RouterH的用戶側(cè)接口,。

具體配置請參見2 IGMP配置,。

實(shí)現(xiàn)組播組成員加入與離開組播組,RouterB和RouterH維護(hù)與管理組成員,。

MBGP

(必選)

需要互聯(lián)的各個(gè)AS域中的邊緣組播設(shè)備,,包括RouterA和RouterF。

具體配置請參見配置MP-BGP,。

實(shí)現(xiàn)組播源Source1和Source2與組播接收者跨AS域通過獨(dú)立于單播路由表的組播路由表進(jìn)行數(shù)據(jù)傳輸,。

MSDP

(必選)

需要互連的各個(gè)PIM-SM域中的RP,包括RouterA,、RouterD,、RouterF。

具體配置請參見6 MSDP配置,。

實(shí)現(xiàn)組播源信息在PIM-SM1,、PIM-SM2和PIM-SM3域間傳遞。

1.3.2  在IPv6網(wǎng)絡(luò)中部署組播

本節(jié)介紹IPv6網(wǎng)絡(luò)中典型的組播業(yè)務(wù)場景以及組播協(xié)議的應(yīng)用位置,。

 注意:

請務(wù)必根據(jù)網(wǎng)絡(luò)實(shí)際情況和具體的業(yè)務(wù)需求,,有針對性的定制配置方案。本節(jié)僅介紹基本業(yè)務(wù)功能的部署。

 說明:

部署IPv6組播業(yè)務(wù)前,,首先確保網(wǎng)絡(luò)中IPv6單播路由正常,。

圖1-10  IPv6網(wǎng)絡(luò)中的基本部署 

表1-13  IPv6網(wǎng)絡(luò)中組播業(yè)務(wù)的部署

部署協(xié)議

應(yīng)用位置

目的

PIM(IPv6)

(必選)

在組播域內(nèi)三層組播設(shè)備的所有接口,包括RouterA,、RouterB,、RouterC的所有接口。

具體配置請參見5 PIM(IPv6)配置,。

將組播數(shù)據(jù)流從組播源Source發(fā)送到與有組播需求的用戶相連的RouterB和RouterC上,。

MLD

(必選)

在三層組播設(shè)備與用戶連接側(cè)的接口,包括RouterB和RouterC的用戶側(cè)接口,。

具體配置請參見3 MLD配置,。

實(shí)現(xiàn)組播組成員加入與離開組播組,RouterB和RouterC維護(hù)與管理組成員,。

MLD Snooping

(可選)

在三層組播設(shè)備和用戶主機(jī)之間的二層設(shè)備SwitchA上,。

具體配置請參見10 MLD Snooping配置。

MLD Snooping通過偵聽RouterB和HostA之間發(fā)送的MLD報(bào)文建立組播數(shù)據(jù)報(bào)文的二層轉(zhuǎn)發(fā)表,,從而管理和控制組播數(shù)據(jù)報(bào)文在二層網(wǎng)絡(luò)中的轉(zhuǎn)發(fā),。


1 IGMP 協(xié)議

      IGMP用來動(dòng)態(tài)的將各個(gè)主機(jī)注冊到特定局域網(wǎng)中的一個(gè)組播組中。主機(jī)向本地的組播路由器發(fā)送IGMP消息來表明自己所屬的組播組,。在IGMP協(xié)議中,,路由器偵聽IGMP消息并周期的發(fā)出查詢,以發(fā)現(xiàn)某個(gè)子網(wǎng)上哪些組是活動(dòng)的,,哪些是不活動(dòng)的。

      IGMP消息在IP數(shù)據(jù)報(bào)內(nèi)發(fā)送,,用IP協(xié)議號(hào)2來標(biāo)識(shí),。同時(shí),將IP存活時(shí)間(TTL)字段值設(shè)定為1,,因此IGMP信息處于本地范圍本子網(wǎng)內(nèi)傳送并且不會(huì)被路由器轉(zhuǎn)發(fā),。

1989年,IGMP版本1(RFClll2)第一次詳細(xì)定義了IGMP規(guī)范,。后來施樂公司對最早的IGMP版本1進(jìn)行了大幅更新,,產(chǎn)生了IGMP版本2(RFC2236)。到目前為止IGMP版本3規(guī)范己經(jīng)稱為IETF正式標(biāo)準(zhǔn)(RFC3376),,通用的是IGMPv2,。IGMPvl實(shí)現(xiàn)簡單,但是有離開延遲過大和選擇查詢路由器需要依賴組播路由協(xié)議的缺點(diǎn),,IGMPv2對此進(jìn)行了改進(jìn),。IGMPv3協(xié)議的主要目的是支持源特定組播,并進(jìn)一步對IGMPv2進(jìn)行完善,。

1.1 IGMPv1協(xié)議

1.1.1 IGMPv1的工作原理

在IGMPvl中定義了基本規(guī)則,、組成員查詢機(jī)制和報(bào)告機(jī)制,。當(dāng)某接收主機(jī)希望接收到某個(gè)組播組的數(shù)據(jù)時(shí),它會(huì)向本地鏈路上的查詢路由器發(fā)送加入消息,,通知查詢路由器本機(jī)希望申請加入的組播組;查詢路由器收到加入消息之后,,把這條消息加入到查詢路由器所維護(hù)的狀態(tài)列表,同時(shí)向源發(fā)起建立組播分發(fā)樹的請求;查詢路由器在設(shè)定的周期內(nèi)發(fā)起組成員查詢消息;接收主機(jī)收到查詢消息之后,,會(huì)向查詢路由器發(fā)送報(bào)告消息來應(yīng)答查詢,,否則查詢路由器會(huì)認(rèn)為不存在接受主機(jī);主機(jī)如果想離開某個(gè)組播組,就對路由器的查詢保持沉默,,經(jīng)過一定時(shí)間,,路由器便知道子網(wǎng)內(nèi)沒有組成員了。

1.1.2 IGMPv1報(bào)文格式

IGMPvl報(bào)文格式如圖2-4所示,,

圖2-4 IGMPv1報(bào)文格式

      其主要內(nèi)容包括:

(1)    版本字段表示IGMP協(xié)議的版本號(hào),,在IGMP中置為1.

(2)    類型字段,在IGMPv1中,,只有兩個(gè)值:

取值為0x11,,表示該報(bào)文為成員關(guān)系查詢(Membership Query),主要是由路由器使用,。

取值為0x12,,表示該報(bào)文為成員關(guān)系報(bào)告(Membership Report),主要是主機(jī)使用,。

(3)    校驗(yàn)和字段用于數(shù)據(jù)報(bào)文的校驗(yàn),。

(4)    組地址字段。當(dāng)用于成員關(guān)系查詢時(shí),,本字段置為0,,并被主機(jī)忽略;當(dāng)用于成員關(guān)系報(bào)告時(shí),本字段包含組播組地址,。

IGMPv1報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-5:

圖2-5 在網(wǎng)絡(luò)中傳輸?shù)腎GMPv1報(bào)文

1.1.3 IGMPv1工作過程

在IGMPv1中,,路由器利用查詢一響應(yīng)過程來確定在本地子網(wǎng)中是否有加入某個(gè)組播組的主機(jī)存在,如果有,,則這臺(tái)路由器就要完成向本子網(wǎng)組播數(shù)據(jù)包的功能;如果沒有,,則這臺(tái)路由器就不必向此子網(wǎng)轉(zhuǎn)發(fā)組播包。路由器周期性地向子網(wǎng)上的所有主機(jī)發(fā)送組播成員關(guān)系查詢報(bào)文,,希望加入某個(gè)組播組的主機(jī)就響應(yīng)該查詢,,發(fā)送一個(gè)組播成員關(guān)系報(bào)告報(bào)文到子網(wǎng)上,在IGMP報(bào)文的組地址地段中加入想要加入的組播組的地址,。路由器接收到來自主機(jī)的成員關(guān)系報(bào)告報(bào)文后,,就知道了在該子網(wǎng)上有主機(jī)要加入組播組,組播組地址在報(bào)文中可以獲得,接下來,,路由器就會(huì)根據(jù)所使用的路由協(xié)議建立起相應(yīng)的轉(zhuǎn)發(fā)狀態(tài),。

當(dāng)一個(gè)子網(wǎng)上有多臺(tái)主機(jī)想加入同一個(gè)組播組時(shí),就可以利用報(bào)告響應(yīng)抑制功能,,來減少子網(wǎng)中的重復(fù)信息傳遞,。處理流程如下:

主機(jī)接收到IGMP成員關(guān)系查詢報(bào)文后,對加入的每個(gè)組播組啟動(dòng)一個(gè)倒數(shù)計(jì)時(shí)器,。當(dāng)計(jì)時(shí)器的值為0時(shí),,主機(jī)發(fā)送IGMP成員關(guān)系報(bào)告報(bào)文,通知路由器子網(wǎng)內(nèi)仍有處于活動(dòng)狀態(tài)的組播接收者,。當(dāng)計(jì)時(shí)器到達(dá)0之前,,若主機(jī)接收到來自其他主機(jī)發(fā)送的同一組成員關(guān)系報(bào)告報(bào)文,那么它就停止與該計(jì)時(shí)器得到的數(shù),,重新計(jì)時(shí),,這樣,就避免了發(fā)送同一個(gè)成員關(guān)系報(bào)告報(bào)文給路由器,。

如果在一個(gè)子網(wǎng)中有多個(gè)組播路由器,,那么多個(gè)路由器都發(fā)送IGMP查詢報(bào)文是一種浪費(fèi),所以應(yīng)當(dāng)確定一個(gè)路由器作為查詢路由器就可以了,。但是在IGMPv1中,,沒有提供選舉查詢路由器的機(jī)制,而是把這一任務(wù)留給了組播路由協(xié)議,。由于不同的協(xié)議使用不同的選舉機(jī)制,,會(huì)造成在一個(gè)子網(wǎng)中出現(xiàn)多個(gè)查詢路由器,這也是IGMPv1的缺點(diǎn)之一,。

但是IGMPv1的另一個(gè)缺點(diǎn)是缺乏顯式的離開方式,。當(dāng)一臺(tái)主機(jī)想要離開一個(gè)組播組時(shí),并不顯式地表示出來,,而只是不再對路由器的查詢報(bào)文進(jìn)行響應(yīng)。當(dāng)一個(gè)網(wǎng)段內(nèi)某個(gè)組播組的最后一個(gè)成員退出后,,路由器還會(huì)繼續(xù)組播這個(gè)組的數(shù)據(jù),,直到一段時(shí)間內(nèi)路由器接收不到任何來自該組的成員響應(yīng),才會(huì)知道該組已經(jīng)沒有接收者了,,然后停止轉(zhuǎn)發(fā)該組的組播數(shù)據(jù)報(bào)文,。因此,路由器中需要為子網(wǎng)中的每一個(gè)組維護(hù)一個(gè)計(jì)時(shí)器,。當(dāng)路由器接收到某臺(tái)主機(jī)發(fā)送的報(bào)告報(bào)文時(shí),,就會(huì)將該組的計(jì)時(shí)器清零;當(dāng)某個(gè)組的計(jì)時(shí)器超時(shí)后,就說明在本網(wǎng)段上已經(jīng)沒有接收者,于是停止轉(zhuǎn)發(fā)該組報(bào)文,。

下面是工作過程圖解:

1)     組成員加入

圖2-6 IGMPv1組成員加入

2)     查詢與響應(yīng)

圖2-7 IGMPv1組成員查詢

3)     響應(yīng)抑制機(jī)制

圖2-8 IGMPv1響應(yīng)抑制機(jī)制

4)     組成員離開

圖2-9 IGMPv1組成員離開

1.2 IGMPv2協(xié)議

1.2.1 IGMPv2的工作原理

IGMPv1的主要缺點(diǎn)是離開延遲過大和選擇查詢路由器需要依賴組播路由協(xié)議進(jìn)行,。針對這些缺點(diǎn),IGMPv2做了相關(guān)的改進(jìn),。在IGMPv2中,,增加了離開組的報(bào)文格式,當(dāng)主機(jī)想要離開某個(gè)組播組時(shí),,不必等待路由器發(fā)出查詢報(bào)文,,而是可以直接向路由器發(fā)送成員關(guān)系報(bào)告報(bào)文,這樣可以有效地縮短離開延遲,。另外在IGMPv2中,,還明確了查詢路由器的選舉機(jī)制。除此之外,,IGMPv2的工作原理與IGMPv1基本一致

1.2.2 IGMPv2的報(bào)文格式

IGMPv2的報(bào)文格式如圖2-10所示:

圖2-10 IGMPv2報(bào)文格式

它在IGMPvl的基礎(chǔ)上,,進(jìn)行了兩處改動(dòng):一個(gè)是將v1的版本字段和類型字段進(jìn)行了合并;另一個(gè)是增加了最大響應(yīng)時(shí)間字段  (MaxResponseTime)。其主要內(nèi)容如下:

(1)類型字段,,在兼容IGMPv1的基礎(chǔ)上,,IGMPv2中新增了兩種報(bào)文類型。

·0xll:成員關(guān)系查詢,。與IGMPv1不同,,IGMPv2的查詢分為兩種類型:①通用查詢 (GeneralQuery),組地址字段置為全0,,對所有的組進(jìn)行組成員查詢;②特定組查詢 (GrouPpecificQuery),,針對特定組進(jìn)行組成員查詢,組地址字段置為特定組的地址,。

·0x12:IGMPv1成員關(guān)系報(bào)告(為了向后兼容IGMPv1),。

·0x16:IGMPv2成員關(guān)系報(bào)告。

·0xl7:離開組,。

(2)最大響應(yīng)時(shí)間字段,,只有在成員關(guān)系查詢報(bào)文中有效,主機(jī)必須在最大響應(yīng)時(shí)間到達(dá)之前發(fā)出成員關(guān)系報(bào)告報(bào)文,。通過該值,,路由器可以調(diào)節(jié)組成員的離開延遲。

(3)校驗(yàn)和字段,,與IGMPv1中的一樣,。

(4)組地址地段,與IGMPv1中的基本一樣,,當(dāng)采用特定組查詢時(shí),,該字段存放要查詢的組播組的地址,。

IGMPv2報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-11:

圖2-11 在網(wǎng)絡(luò)中傳輸?shù)腎GMPv2報(bào)文格式

1.2.3 IGMPv2工作過程

查詢一響應(yīng)過程與IGMPv1基本相同,但是有兩點(diǎn)改進(jìn):①增加了特定組查詢,,特定組查詢的目的是為了讓路由器知道一個(gè)特定組在子網(wǎng)內(nèi)是否還有組成員,,以便判斷是否還需要轉(zhuǎn)發(fā)該組的數(shù)據(jù)報(bào)文;②IGMPv2的成員關(guān)系報(bào)告的類型代碼不一樣。

IGMPv2的組成員加入與 IGMPv1中的完全一樣,。IGMPv2離開過程與IGMPv1相比有了較大的改進(jìn),。主機(jī)離開一個(gè)組時(shí),需要顯式地發(fā)送一個(gè)離開報(bào)文給路由器,。其過程如下:

要離開的主機(jī)發(fā)送一個(gè)離開報(bào)文給子網(wǎng)上所有路由器(目的地址224.0.0.2),,查詢路由器接收到離開報(bào)文后,會(huì)立即發(fā)送一個(gè)特定組查詢到子網(wǎng)上,。如果子網(wǎng)上還有該組的成員,,則會(huì)發(fā)回一個(gè)響應(yīng)報(bào)文;如果子網(wǎng)上己經(jīng)沒有該組的成員,則沒有主機(jī)回應(yīng),,于是路由器就知道己經(jīng)沒有該組成員了,,就停止轉(zhuǎn)發(fā)該組的數(shù)據(jù)。

在IGMPv1中,,選擇查詢路由器依賴于組播路由協(xié)議,;而在IGMPv2中,明確了選擇查詢路由器的機(jī)制,。其過程如下:

開始時(shí),,子網(wǎng)上的每個(gè)路由器都假定自己就是查詢路由器,發(fā)送一個(gè)通用查詢報(bào)文給所有主機(jī)(目的地址224.0.0.1),。每個(gè)路由器都可以接收到來自其他路由器的報(bào)文,,然后進(jìn)行IP地址的比較,具有最低IP地址的路由器就成為查詢路由器;非查詢路由器啟動(dòng)一個(gè)計(jì)時(shí)器,,無論何時(shí)接收到來自當(dāng)選的查詢路由器的通用查詢報(bào)文,,就將計(jì)時(shí)器復(fù)位。如果計(jì)時(shí)器超時(shí),,就認(rèn)為當(dāng)選的查詢路由器發(fā)生故障,,轉(zhuǎn)向開始重新選擇。計(jì)時(shí)器的取值一般為查詢間隔的2倍

圖解工作過程如下:

1)組成員加入

圖2-12 IGMPv2組成員加入

2)查詢與響應(yīng)

圖2-13 IGMPv2組成員查詢與響應(yīng)

3)查詢器選舉

圖2-14 IGMPv2查詢路由器選擇

4)成員離開

圖2-15 IGMPv2組成員離開

1.3 IGMPv3協(xié)議

1.3.1 IGMPv3的工作原理

IGMPv3的提出,,主要是為了配合源特定組播的實(shí)現(xiàn),,即組播組成員可以指定接收或指定不接收某些組播源的報(bào)文。這樣主機(jī)就可以有選擇性接收來自某個(gè)特定組播源的數(shù)據(jù)包,,而不是被動(dòng)接收該組中所有組播源的數(shù)據(jù)包。IGMPv3的這一特性,,可以實(shí)現(xiàn)源特定組播SSM技術(shù),。源特定組播(Source Specific Multicast,,SSM)是一種區(qū)別于傳統(tǒng)組播的新的業(yè)務(wù)模型,SSM保留了傳統(tǒng)PIM-SM模式中的主機(jī)顯式加入組播組的高效性,,但是跳過了PIM-SM模式中的共享樹和RP規(guī)程,。SSM直接建立由(S,G)標(biāo)志的一個(gè)組播最短路徑樹,。SSM的一個(gè)(S,,G)對也被稱為一個(gè)頻道(Channel)。PIM-SSM是對傳統(tǒng)PIM協(xié)議的擴(kuò)展,,使用SSM,,用戶能直接從組播源接收組播報(bào)文,需要匯聚點(diǎn)(RP)的幫助,。

IGMPv3在IGMPvl/v2的基礎(chǔ)上提供了額外的源過濾組播功能(Source FilteredMulticast,,SFM)。在IGMPvl/v2中,,主機(jī)只根據(jù)組地址來決定加入某個(gè)組,,并從任何一個(gè)源接收發(fā)給該組地址的報(bào)文。具有源過濾組播功能(SFM)的主機(jī)使用IGMPv3來表示主機(jī)所希望加入的組播組,,同時(shí)還表示該主機(jī)所希望接收的組播源的地址,。主機(jī)可以使用一個(gè)包括列表(Inclusion List)或一個(gè)排除列表 (Exclusion List)來表示對源地址的限制。即組播組成員可以指定接收或指定不接收某些組播源的報(bào)文,。這樣主機(jī)就可以有選擇性接收來自某個(gè)特定組播源的數(shù)據(jù)包,,而不是被動(dòng)接收該組中所有組播源的數(shù)據(jù)包。

1.3.2 IGMPv3的報(bào)文格式

IGMPv3的報(bào)文類型有以下幾種:

0xll:成員關(guān)系查詢報(bào)文 (MembershipQeury),。

0x22:版本3成員關(guān)系報(bào)告報(bào)文(version 3 Membership Report)

0x12:版本1成員關(guān)系報(bào)告報(bào)文(version 1 Membership Report)

0x16:版本2成員關(guān)系報(bào)告報(bào)文 (version 2 Membership Report)

0x17:版本2離開報(bào)文 (version 2 LeaveGroup),。

報(bào)文類型的值填寫在報(bào)文中的類型字段。在IGMPv3中,,查詢報(bào)文和報(bào)告報(bào)文格式有較大差異,,需要分別描述。圖2-16為查詢報(bào)文的格式

圖2-16 IGMPv3查詢信息格式

(1)類型字段,,設(shè)置為0xll,,代表該報(bào)文為查詢報(bào)文。

(2)最大響應(yīng)時(shí)間字段,,指明了主機(jī)發(fā)出響應(yīng)的最長時(shí)間,。

(3)組地址字段,功能與IGMPv2一樣,,可以用于通用查詢和組特定查詢,。

(4)s字段,置為1時(shí),,其他路由器不對該報(bào)文進(jìn)行處理,。

(5)QRV字段,,查詢路由器的健壯值(Querier’s RobustnessVariable),該值影響計(jì)時(shí)器和重試次數(shù)的取值,。

(6)QQIC字段,,查詢路由器的查詢間隔碼(Querier’s QueryIntervalCode),該值影響查詢路由器的查詢間隔時(shí)間,,非查詢路由器按照此值更新自己的缺省值,。

(7)源地址數(shù)目字段,該值表在這個(gè)報(bào)文中包含了多少個(gè)源地址,。當(dāng)進(jìn)行通用查詢(GeneraQuery)或者組特定查詢 (GroupSpecific Query)時(shí),,該值置為0;當(dāng)進(jìn)行特定組和源查詢 (Group Source pecific Query,用于PIM一SSM)時(shí),,該值為源特定地址的數(shù)目,。雖然該值最大可為65536,但是實(shí)際上受限于數(shù)據(jù)鏈路層的MTU,,例如在以太網(wǎng)上,,1P數(shù)據(jù)報(bào)最長為1500字節(jié),除去IP報(bào)頭的24字節(jié)和IGMP報(bào)頭的12字節(jié),,剩余1464字節(jié),,所以最多包含366(1464/4)個(gè)源地址。

(8)源地址地段,。

IGMPv3查詢信息報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-17:

圖2-17 在網(wǎng)絡(luò)中傳輸?shù)腎GMPv3查詢報(bào)文格式

IGMPv3報(bào)告報(bào)文的格式較為復(fù)雜,,如圖2-18所示。

圖2-18 IGMPv3偵聽者報(bào)告格式

(1)類型字段,,置為0x22,,表示該報(bào)文為IGMPv3報(bào)告報(bào)文。

(2)組記錄數(shù)目字段,,表示此報(bào)文中包含的組記錄數(shù)目,。

(3)組記錄字段。包含若干個(gè)組記錄,,每個(gè)組記錄長度不固定,,其內(nèi)容如圖2-19:

圖2-19 IGMPv3組記錄格式

①組記錄類型字段,表示該組記錄中包含的數(shù)據(jù)的類型,,目前定義了六種類

型,,分別是:

·MODE IS INCLUDE。表示該主機(jī)的過濾模式為INCLUDE.也就是說,,后面列出的地址都是主機(jī)想要接收的組播源地址,。

·MODE IS EXCLUDE。表示該主機(jī)的過濾模式為EXCLUDE,,也就是說,,后面列

出的地址都是主機(jī)想要拒絕的組播源地址,。

·CHANGE TO INCLUDEMODE。表示該主機(jī)的過濾模式從EXCLUDE切換為INCLUDE模式,。

·CHANGE TO EXCLUDEMODE。表示該主機(jī)的過濾模式從INCLUDE切換為EXCLUDE模式,。

·ALLOW NEW SOURCES,。表示該主機(jī)中新增的想要接收的源地址。

·BLOCK OLD SOURCES,。表示從該主機(jī)中刪除的不想接收的源地址,。

②輔助數(shù)據(jù)長度字段,在組記錄的最后,,可以增加以4字節(jié)為單位的輔助數(shù)據(jù),,如果沒有輔助數(shù)據(jù),則置為0,。

③源地址數(shù)目字段,,表示該記錄中包含了多少個(gè)組播源地址。

④組地址字段,,與源地址共同表示特定源組播,。

⑤源地址字段,每個(gè)長度為32bits,。標(biāo)志源地址,,數(shù)目由源地址數(shù)目字段表示。

⑥輔助數(shù)據(jù)字段,。為將來的應(yīng)用預(yù)留,,在IGMPv3中并不需要。一臺(tái)主機(jī)在發(fā)送報(bào)告報(bào)文的時(shí)候,,應(yīng)當(dāng)把自己的源IP地址包含在IP數(shù)據(jù)報(bào)中,,當(dāng)主機(jī)還沒有獲得IP地址的時(shí)候,可以使用0.0.0.0作為源IP地址,,支持IGMPv3的路由器必須接收來自0.0.0.0的數(shù)據(jù)報(bào),。主機(jī)的IGMP報(bào)文的目的地址標(biāo)志為224.0.0.22,代表子網(wǎng)中所有支持IGMPv3的路由器,。

1.3.3 IGMPv3的主要改進(jìn)

IGMPv3除了支持原特定組播外,,其工作原理與IGMPv2相比,并沒有本質(zhì)的改變,,只是在某些地方做了改進(jìn)和優(yōu)化,。以下列出了IGMPv3的主要特點(diǎn)和改進(jìn):

①支持源特定組播SSM;

②向后兼容IGMPvl和IGMPv2;

③主機(jī)可以定義要接收的組播源地址;

④非查詢路由器可以與查詢路由器保持參數(shù)值同步;

⑤最大響應(yīng)時(shí)問從25.5s增加到53min,適合于較大的網(wǎng)絡(luò);

⑥輔助數(shù)據(jù)字段為將來的應(yīng)用預(yù)留了空間;

⑦關(guān)系成員報(bào)告報(bào)文發(fā)送給目的地址224.0.0.22,,可以幫助二層交換機(jī)更有效地實(shí)現(xiàn)IGMP監(jiān)聽 (IGMPSnooping)功能;

⑧報(bào)告報(bào)文中可以包含多個(gè)組記錄,,可以有效地減少網(wǎng)絡(luò)通信量;

⑨在IGMPv3中,,取消了前面版本中的響應(yīng)抑制功能,主要原因是:

第一,,使用響應(yīng)抑制時(shí),,路由器只知道子網(wǎng)上是否有組成員,而不知道有幾個(gè)組成員,,以及成員是哪些主機(jī):取消響應(yīng)抑制,,路由器就可以記錄每一個(gè)組成員的信息,可以開發(fā)一記賬等增值服務(wù)功能,。

第二,,許多網(wǎng)橋或者二層/三層交換機(jī)在實(shí)現(xiàn)IGMP監(jiān)聽功能時(shí),為了避免響應(yīng)抑制,,一般不轉(zhuǎn)發(fā)網(wǎng)段問的IGMP報(bào)文,。取消了響應(yīng)抑制后,可以簡化這些設(shè)備的設(shè)計(jì),。

第三,,取消響應(yīng)抑制后,主機(jī)不必處理來自其他主機(jī)的報(bào)文,,簡化了主機(jī)的實(shí)現(xiàn),。在查詢報(bào)文中,增加S標(biāo)志位,,可以提高系統(tǒng)的健壯性,。

IGMPv3報(bào)告報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-20:

圖2-20 在網(wǎng)絡(luò)中傳輸?shù)腎GMPv3報(bào)告報(bào)文

2 MLD協(xié)議

IPv6的組管理協(xié)議被稱為MLD(組播監(jiān)聽者發(fā)現(xiàn))。1999年,,MLD版本l(RFC2710)被IETF發(fā)布,。2004年,MLD版本2(RFC3810)標(biāo)準(zhǔn)出臺(tái),,后一個(gè)版本可以向前一個(gè)兼容,。MLD協(xié)議是專門針對基于IPv6的組播組管理協(xié)議。因?yàn)镸LD使用全新的ICMPv6的報(bào)文格式,,所以MLD協(xié)議就是ICMPv6協(xié)議的一個(gè)子集,。MLD消息使用鏈路本地IPv6源地址發(fā)送,其跳數(shù)被限制為1,。MLD消息的封裝格式如圖2-21所示:

圖2-21 MLD消息封裝格式

以下分別描述MLD協(xié)議的兩個(gè)版本以及MLDSnooping,,其中對于MLDSnooping的詳細(xì)描述見第三章。

2.1 MLDv1協(xié)議

2.1.1 MLDv1的工作原理

MLDvl協(xié)議是從IGMPv2協(xié)議中派生出來的,,其運(yùn)行機(jī)制和IGMPv2協(xié)議相同,,專門用于IPv6組播群組的管理,其主要是應(yīng)用于ASM模式組播路由協(xié)議的組管理工作。

對于運(yùn)行MLD協(xié)議的路由器,,其接口要監(jiān)聽由IPv6組播地址產(chǎn)生的所有鏈路組播地址,。路由器為它所在的每一條鏈路維護(hù)一個(gè)列表。表項(xiàng)有此鏈路中存在的組成員的組播地址,,以及該地址相應(yīng)的定時(shí)器,。路由器周期性地發(fā)送通用請求 (general query),以查詢該鏈路上是否存在某組播地址的組成員,。節(jié)點(diǎn)收到路由器發(fā)送的常規(guī)請求后,,經(jīng)過隨機(jī)時(shí)延后發(fā)出組播監(jiān)聽報(bào)告。這樣是為了防止所有的節(jié)點(diǎn)都在同一時(shí)間發(fā)出報(bào)告分組,,從而造成網(wǎng)絡(luò)的突發(fā)性阻塞。當(dāng)路由器收到鏈路上的報(bào)告分組時(shí),,如果報(bào)告地址不在路由器的列表上,,則加入該項(xiàng),否則計(jì)時(shí)器重新置位,。如果某個(gè)地址的計(jì)時(shí)器過期,,則從列表中刪除。當(dāng)節(jié)點(diǎn)要加入一個(gè)組播組時(shí),,主動(dòng)發(fā)送組播監(jiān)聽報(bào)告,,向路由器報(bào)告組成員的存在。節(jié)點(diǎn)退出組播組時(shí),,發(fā)送完成分組,,刪除有關(guān)路徑。當(dāng)請求狀態(tài)的路由器從鏈路上接收到一個(gè)完成消息,,如果消息中的組播地址在路由器的列表上,,路由器發(fā)送一個(gè)特定組播地址查詢。如果一段時(shí)延后沒有報(bào)告分組,,則認(rèn)為該組播地址在此鏈路上沒有組成員了,。

2.1.2 MLDv1報(bào)文格式

MLDv1的報(bào)文格式如圖2-22所示:

圖2-22 MLDv1報(bào)文格式

(1)類型字段,MLDvl有如下三種報(bào)文類型:

·組播偵聽查詢消息(Type=130),,分為兩種類型:①通用查詢(GeneralQuery),,組地址字段置為全0,對所有的組進(jìn)行組成員查詢;②特定組查詢(Group Pecific Query),,用于判斷一個(gè)特定的組播地址在本地鏈路上是否有組播偵聽者,。

·組播偵聽報(bào)告消息(Type = 131)

·組播偵聽完成消息(Type = 132)

(2)編碼字段,初始值為0,。

(3)校驗(yàn)和字段,。

(4)最大響應(yīng)時(shí)間字段,只有在組播監(jiān)聽者查詢報(bào)文中有效,主機(jī)必須在最大響應(yīng)時(shí)間到達(dá)之前發(fā)出成員關(guān)系報(bào)告報(bào)文,。通過該值,,路由器可以調(diào)節(jié)組成員的離開延遲。

(5)組地址字段,,在通用組查詢中,,置為0;在特定組查詢時(shí),該字段存放要查詢的組播組的地址,。在報(bào)告和完成報(bào)文中,,分別用于存放主機(jī)要加入和離開的組地址。

MLDv1報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-23:

圖2-23 在網(wǎng)絡(luò)中傳輸?shù)腗LDv1報(bào)文

以上這些查詢消息和應(yīng)答消息報(bào)文有三種不同的報(bào)文交互方式:

第一種交互方式是由路由器發(fā)起的,。路由器作為詢問者向與其相連接的所有主機(jī)發(fā)送一個(gè)一般查詢消息報(bào)文,。其目的地址是FF02::1。主機(jī)收到此消息后,,應(yīng)答一個(gè)包含當(dāng)前組播地址狀態(tài)記錄的報(bào)文消息,,此報(bào)文告訴路由器此主機(jī)希望接收哪個(gè)組播組或者哪些源發(fā)來的數(shù)據(jù)。

第二種交互方式是由主機(jī)發(fā)起的,。當(dāng)一個(gè)主機(jī)離開一個(gè)組播組時(shí),,它就要向路由器發(fā)送組播偵聽者完成消息,該消息包括一個(gè)狀態(tài)改變一記錄,。路由器收到此消息后,,向其相連的鏈路上發(fā)送一個(gè)特定組播地址查詢,詢問是否還有主機(jī)加人了此特定的組,。

第三種交互方式是由路由器發(fā)起的,。如果在路由器的組播地址表中某一個(gè)組播地址的相關(guān)定時(shí)器超時(shí)后,仍然沒有收到主機(jī)發(fā)來的包含狀態(tài)變化記錄的組播偵聽者報(bào)告消息,,路由器則向所有主機(jī)發(fā)送一個(gè)特定組查詢消息,,確認(rèn)該組播組是否還有組播偵聽者。

2.1.3 MLDv1工作流程

當(dāng)一個(gè)網(wǎng)段內(nèi)連接有多臺(tái)路由器運(yùn)行MLDvl協(xié)議時(shí),,必須選舉一臺(tái)路由器作為查詢路由器,,其余的自然成為非查詢路由器。選舉的機(jī)制是:地址最小的路由器當(dāng)選,。非查詢路由器中有一個(gè)其他查詢路由器存在計(jì)時(shí)器,,當(dāng)該計(jì)時(shí)器到期仍沒有收到來自查詢路由器的報(bào)文,則認(rèn)為該查詢路由器失效,,重新開始新的選舉,。

路由器定期向子網(wǎng)內(nèi)所有的主機(jī)廣播查詢報(bào)文(目的地址為FF02::1),目的是獲得主機(jī)的報(bào)告報(bào)文,。在路由器剛開始工作時(shí),,會(huì)快速連續(xù)地發(fā)送查詢報(bào)文,,以便盡快搜集到子網(wǎng)內(nèi)的組成員信息。

當(dāng)主機(jī)接收到一個(gè)查詢報(bào)文后,,就為每一個(gè)要接收的組地址啟動(dòng)一個(gè)延遲定時(shí)器,。定時(shí)器的值在[0,最大響應(yīng)時(shí)間]之間取一個(gè)隨機(jī)數(shù),。如果查詢報(bào)文中的最大響應(yīng)時(shí)間字段被置為0,,則定時(shí)器立刻到期。定時(shí)器到期后,,主機(jī)會(huì)發(fā)送一個(gè)報(bào)告報(bào)文給路由器,,通知路由器主機(jī)想接收的組播組地址。

如果一臺(tái)主機(jī)在定時(shí)器還未到期時(shí),,就收到其它主機(jī)通告路由器的報(bào)告報(bào)文,,則讀取該報(bào)文的組地址,,如果和自己需要通告的組地址相同,,則立刻停止相應(yīng)的定時(shí)器,,并不再發(fā)送關(guān)于該組地址的報(bào)告報(bào)文,這樣就可以避免多臺(tái)主機(jī)發(fā)送相同內(nèi)容的報(bào)告報(bào)文給路由器,,這種機(jī)制稱為“響應(yīng)抑制”。路由器收到來自主機(jī)的報(bào)告報(bào)文后,,查看其中的組地址,,如果該地址未在路由器的組地址列表中,則將其添加到組地址列表中,,同時(shí)為其啟動(dòng)一個(gè)相應(yīng)的定時(shí)器,;如果該地址已經(jīng)在路由器的組地址列表中,則將相應(yīng)的定時(shí)器恢復(fù)最大值,。如果一個(gè)組地址的定時(shí)器到期了,,則說明該組地址在子網(wǎng)內(nèi)已經(jīng)沒有接收者了,路由器會(huì)將此組地址從列表中刪除,。

當(dāng)一臺(tái)主機(jī)想要加入某個(gè)組播組時(shí),,可以不必等待路由器的查詢報(bào)文,而是直接向路由器發(fā)送報(bào)告報(bào)文,。為了保障該報(bào)文的可靠性,,一般會(huì)進(jìn)行重傳。當(dāng)一臺(tái)主機(jī)想要離開某個(gè)組播組時(shí),,必須發(fā)送一個(gè)離開報(bào)文給子網(wǎng)內(nèi)的路由器,。路由器收到離開報(bào)文后,會(huì)首先查看該組地址是否在組地址列表中,,如果在,,則發(fā)送一個(gè)特定組地址查詢給子網(wǎng)內(nèi)的所有主機(jī)。在一定的時(shí)間內(nèi),路由器收不到來自主機(jī)的應(yīng)答,,則會(huì)認(rèn)為該組已經(jīng)沒有接收者,,于是將該組地址從列表中刪除。非查詢路由器會(huì)忽略所有的離開報(bào)文,。

2.2 MLDv2協(xié)議

MLDv2從IGMPv3中發(fā)展過來,,和MLDvl相比,增加了IGMPv3所具有的源過濾功能,,不僅能夠支持ASM模式組播路由協(xié)議,,而且還能夠支持基于IPv6的SSM模式組播路由協(xié)議。

MLDv2在MLDv1的基礎(chǔ)上添加了源組播 (Source Specific Multieast)的概念,,主機(jī)可以組播源報(bào)告(Group-Source Report)報(bào)告感興趣的源,,路由器則只轉(zhuǎn)發(fā)該鏈路上所有組成員感興趣的源所發(fā)送的報(bào)文。當(dāng)主機(jī)想退出某組播源時(shí),,主機(jī)發(fā)送離開組播源報(bào)告(Group-Source Leave),,查詢者在接收到該報(bào)告后可以發(fā)送指定組播源請求,確認(rèn)是否仍有組成員關(guān)心該組播源,。MLDv2支持源過濾 (SourceFiltering),,因此比MLDvl具備更高的可管理性和安全性。此外MLDv2還可以與MLDvl兼容,。

2.2.1 工作原理

MLD協(xié)議的目的是使每一個(gè)組播路由器知道在本地鏈路上監(jiān)聽者對哪些組播地址和源地址感興趣,。被MLD收集到的信息提供給在路由器上運(yùn)行的任何組播路由協(xié)議,來保證組播數(shù)據(jù)包被傳遞到組播組成員,。組播路由器只需要知道在一個(gè)鏈路上,,至少有一個(gè)節(jié)點(diǎn)正在監(jiān)聽從一個(gè)特定的源發(fā)給一個(gè)特定組播地址的數(shù)據(jù)包,它不需要知道有多少個(gè)這樣的節(jié)點(diǎn),。

MLDv2是一個(gè)不對稱的協(xié)議,,它包括分離的兩部分:針對組播地址偵聽者部分(監(jiān)聽組播數(shù)據(jù)包的主機(jī)或者路由器)和組播路由器部分。它為組播地址偵聽者和組播路由器定義了不同的行為,。當(dāng)執(zhí)行“組播路由器”功能時(shí),,收集組播路由協(xié)議所需要的組播偵聽者信息;當(dāng)執(zhí)行“組播地址偵聽者”功能時(shí),通知本身和其他鄰居組播路由器他的偵聽狀態(tài),。需要注意的是,,一個(gè)組播路由器可以本身是一個(gè)或者多個(gè)組播地址的偵聽者,執(zhí)行“組播路由器”和“組播地址偵聽者”雙重功能,。

組播地址監(jiān)聽者在所有的支持組播的接口上執(zhí)行MLDv2協(xié)議的“組播地址監(jiān)聽者”功能,。

組播路由器在它的每一個(gè)接口上執(zhí)行MLDv2協(xié)議的“組播路由器”功能。如果在同一個(gè)子網(wǎng)上具有不止一個(gè)組播路由器,,組播路由器將運(yùn)行查詢者選舉機(jī)制來選擇一個(gè)組播路由器來充當(dāng)查詢路由器,。在這個(gè)子網(wǎng)上的所有的組播路由器都在監(jiān)聽由組播地址監(jiān)聽者發(fā)送的消息,,并且維護(hù)相同的組播監(jiān)聽信息狀態(tài),以便于當(dāng)目前的查詢路由器不能工作時(shí),,接替查詢路由器的工作,,但是只有查詢路由器在子網(wǎng)上能夠發(fā)送周期的消息和被觸發(fā)的查詢消息。

2.2.2 MLDv2報(bào)文格式

為了支持以上的功能,,MLDv2除了兼容支持MLDvl所有的三種報(bào)文:組播偵聽查詢(MLD消息類型值為130),,包括一般查詢和特定組播地址查詢:組播偵聽報(bào)告(MLD消息類型值為131);組播偵聽完成(MLD消息類型值為 132)外,還增加了MLDv2查詢消息(一般的查詢,、特定組播地址查詢,,特定組播地址和源查詢)和“偵聽者報(bào)告”報(bào)文?!皞陕犝邎?bào)告”報(bào)文是向鄰居路由器報(bào)告當(dāng)前的組播偵聽狀態(tài),,或者聲明偵聽狀態(tài)變化情況。

綜上,,MLDv2消息中的所有消息如下:

n  兩種類型的MLDv2消息:

l  組播偵聽查詢(類型值=130)

l  Version 2組播偵聽報(bào)告(類型值=143)

n  為保證和MLDvl的兼容,,MLDv2還要支持以下兩種消息:

l  Versionl組播偵聽報(bào)告(類型值=131)[RFC2710]

l  versionl組播偵聽完成(類型值=132)[RFC2710]

以下詳細(xì)介紹兩種類型的MLDv2消息內(nèi)容。

a)       MLDv2偵聽查詢消息

組播偵聽查詢消息是在請求狀態(tài)的路由器發(fā)出來的,,它用來查詢鄰居接口的偵聽狀態(tài),。它的消息格式如圖2-24所示:

圖2-24 MLDv2偵聽查詢消息

(1)編碼

被發(fā)送者初始化為0,接收者被忽略,。

(2)校驗(yàn)和

標(biāo)準(zhǔn)的ICMPv6校驗(yàn)和;算它,,它需要計(jì)算整個(gè)消息,包括IPv6的偽造報(bào)頭,。為了計(jì)算它,首先把它設(shè)置為0,。收到包后,,要先驗(yàn)證后處理。

(3)最大響應(yīng)延遲

最大響應(yīng)延遲編碼域指定了在發(fā)送響應(yīng)報(bào)告的允許的最大延遲,。實(shí)際時(shí)間叫做最大響應(yīng)延遲,,單位為毫秒。它們之間編碼方式如下:

l  如果最大響應(yīng)延遲編碼<32768,,則最大響應(yīng)延遲=最大響應(yīng)延遲編碼,。

l  如果最大響應(yīng)延遲編碼>=32768,則最大響應(yīng)延遲編碼構(gòu)成如圖2-25所示:

圖2-25 最大響應(yīng)延遲編碼構(gòu)成圖

而且最大響應(yīng)延遲=(mant| 0x1000) << (exp+3),。

值比較小的最大響應(yīng)延遲允許MLDv2路由器調(diào)整“離開潛伏期”(鏈路上最后一個(gè)節(jié)點(diǎn)停止偵聽某個(gè)特定的組播地址到路由協(xié)議認(rèn)為對于這個(gè)地址沒有偵聽者的時(shí)間),。值比較大的最大響應(yīng)延遲,尤其是編碼的那些,,是用來調(diào)整在鏈路上的爆炸性的MLD消息的傳輸,。

(4)預(yù)留

被發(fā)送者初始化為0,,被接收者忽略。

(5)組播地址

對于一般的查詢消息,,組播地址為0,。對于特定組地址或者特定組地址和源的查詢消息來說,組播地址被設(shè)置成需要查詢的地址,。

     (6)S Flag(抑制路由器端的處理)

如果設(shè)置成1,,則表示對于所有接收在收到查詢消息時(shí)抑制計(jì)時(shí)器更新。不過,,并不抑制選舉查詢者和主機(jī)端對一類查詢消息的處理,,這類查詢是路由器請求實(shí)現(xiàn)組播偵聽者的功能。

(7)QRV(查詢者活躍變量)

如果非0,,那么查詢者活躍變量域包含查詢者使用的活躍變量值,。如果活躍變量大于7(查詢者活躍變量域的最大值),查詢者活躍變量域被設(shè)置為0,。

路由器把近期收到的查詢消息中的查詢者活躍變量值設(shè)置為自己的活躍變量值,,除非近期收到的查詢消息中多數(shù)的查詢者活躍變量值都為0。在多數(shù)的查詢者活躍變量值都為0的清況時(shí),,就使用缺省值,,或者靜態(tài)配置特定的值。

(8)QQIC(查詢者查詢間隔編碼)

查詢者查詢間隔編碼域指定了查詢者使用的查詢間隔,。實(shí)際間隔被叫作查詢者查詢間隔(QQI),,它是以秒為單位的。它們之間的轉(zhuǎn)換如下:

l  如果QQIC<128,,那么QQI=QQIC,。

l  如果QQIC>=128,則查詢者查詢間隔編碼構(gòu)成如圖2-26所示:

圖2-26 查詢者查詢間隔編碼構(gòu)成圖

      而且QQI = (mant | 0x10) << (exp+ 3),。

不是當(dāng)前查詢者的組播路由器把最新收到的查詢消息中的QQI值作為自己的查詢間隔時(shí)間,,除非近期收到的查詢消息中多數(shù)的QQI值都為0。在都為0情況時(shí),,就使用缺省值

(9)源個(gè)數(shù)(N)

源個(gè)數(shù)(N)指出在當(dāng)前處在查詢的源地址的個(gè)數(shù),。在一般查詢消息或者特定組播地址的查詢消息中源個(gè)數(shù)都為0,在特定源和組地址的查詢消息中不為0,。源個(gè)數(shù)的大小由鏈路上可傳輸?shù)淖畲髨?bào)文決定,。例如,在Ethernet上,,可傳輸?shù)淖畲髨?bào)文是1500字節(jié),,攜帶路由警報(bào)選項(xiàng)的8字節(jié)的Hop-By-Hop擴(kuò)展頭和40字節(jié)的IPv6頭一共48字節(jié);源個(gè)數(shù)域前的MLD頭共28字節(jié),這樣留給源個(gè)數(shù)域的有1424字節(jié),,所以源個(gè)數(shù)最大為89(1424/16),。

(10)源地址[i]

源地址[i]域是指向n的單播地址,,n既是源個(gè)數(shù)域中的值。

(11)附加數(shù)據(jù)區(qū)

如果收到的查詢消息中的IPv6頭的負(fù)載長度域指定了需要有附加數(shù)據(jù)存在時(shí),,執(zhí)行MLDv2時(shí)必須包含附加字節(jié),,用來確認(rèn)收到MLD消息的校驗(yàn)和,否則就忽略附加字節(jié),。當(dāng)發(fā)送查詢消息時(shí),,一定不含附加消息。

(12)查詢變量

查詢消息中有三類查詢變量:

l  “一般查詢消息”是查詢路由器發(fā)出的,,用來查詢相連的鏈路上哪個(gè)組播地址有偵聽者,。組播地址和源個(gè)數(shù)都為0。

l  “特定組地址查詢消息”是查詢路由器發(fā)出的,,用來查詢相連的鏈路上某個(gè)特定的組播地址是否有偵聽者,。在特定組地址查詢消息中,包括希望查詢的組地址,,源個(gè)數(shù)為0,。

l  “特定組地址和源查詢消息”是查詢路由器發(fā)出的,用來查詢相連的鏈路上某個(gè)特定的組播地址并且是來自特定的源的消息是否有偵聽者,。在特定組地址和源查詢消息中,,包括希望查詢的組地址,源地址列表包含關(guān)注的源地址,。

(13)查詢消息源地址

所有MLDv2的查詢消息的源地址為可用的IPv6鏈路本地地址,。如果節(jié)點(diǎn)(路由器或主機(jī))收到的來自不明的地址的查詢消息,或者不是可用的IPv6鏈路本地地址時(shí),,它就丟棄這個(gè)消息,,同時(shí)記錄警報(bào)。

(14)查詢消息目的地址

在MLDv2協(xié)議中,,一般查詢消息是發(fā)給鏈路內(nèi)所有節(jié)點(diǎn)的地址的(FF02::1),。特定組地址查詢消息和特定組地址和源查詢消息都發(fā)給希望查詢的組地址。同時(shí)節(jié)點(diǎn)必須接收和處理所有的IP目的地址是任意的單播或組播地址的查詢消息,,這樣有利于調(diào)試,。

MLDv2偵聽查詢報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-27:

圖2-27 在網(wǎng)絡(luò)中傳輸?shù)腗LDv2偵聽查詢報(bào)文

b)       MLDv2組播偵聽報(bào)告

MLDv2組播偵聽報(bào)告是IP節(jié)點(diǎn)發(fā)送的,,它可以用來向鄰居報(bào)告當(dāng)前的偵聽狀態(tài)和以身改變接口上的組播偵聽狀態(tài),。消息格式如圖2-28所示:

圖2-28MLDv2組播偵聽報(bào)告報(bào)文

      組地址記錄的消息格式如圖2-29所示:

圖2-29 組地址記錄的消息格式

(1)   類型字段,在MLDv2偵聽報(bào)告置為143,。

(2)   預(yù)留,,被發(fā)送者初始化為0,被接收者忽略,。

(3)   校驗(yàn)和

標(biāo)準(zhǔn)的ICMPv6校驗(yàn)和;它需要計(jì)算整個(gè)消息,,包括IPv6的偽造報(bào)頭,。為了計(jì)算它,首先把它設(shè)置為0,。收到包后,,要先驗(yàn)證后處理。

(4)   組播地址記錄個(gè)數(shù)(M)

組播地址記錄個(gè)數(shù)(M)指出在當(dāng)前偵聽報(bào)告中的組播地址一記錄的個(gè)數(shù),。

(5)   組播地址記錄

組播地址記錄是由來自報(bào)告發(fā)送的接口的發(fā)送者偵聽每個(gè)組播地址的信息組成,。具體記錄如下:

①   記錄類型

當(dāng)前狀態(tài)報(bào)告是用來在收到查詢消息的接口上節(jié)點(diǎn)發(fā)出的消息。它報(bào)告接口對于每一個(gè)組地址的當(dāng)前的偵聽狀態(tài),。以下兩類,,如表2-2所示

表2-2 當(dāng)前狀態(tài)報(bào)告類型

名字

作用

1

包括模式

指明在當(dāng)前的接口上對于特定的組地址的過濾模式是包括模式的。相應(yīng)的源地址域是對于特定的組地址的列表必須為非空,。

2

排除模式

指明在當(dāng)前的接口上對于特定的組地址的過濾模式是排除模式的,。如果組地址列表為非空,則組地址域包含接口的對于特定組地址的源列表,。

過濾模式變化報(bào)告是接點(diǎn)在本地的接口層對于特殊的組地址狀態(tài)變化時(shí)引起的IPv6 Multicast Listen請求而發(fā)出的報(bào)告,,這種報(bào)告無論源地址是否發(fā)生變化都要發(fā)送。只有狀態(tài)變化的接口才發(fā)送這類的報(bào)告,。以下兩類,,如表2-3所示:

表2-3 過濾模式變化報(bào)告

名字

作用

3

變?yōu)榘J?/p>

指明在當(dāng)前的接口上對于特定的組地址的過濾模式轉(zhuǎn)變?yōu)榘J降摹H绻M地址列表為非空,,則組地址域包含接口的對于特定組地址的新的源列表,。

4

變?yōu)榕懦J?/p>

  指明在當(dāng)前的接口上對于特定的組地址的過濾模式轉(zhuǎn)變?yōu)榕懦J降摹H绻M地址列表為非空,,則組地址域包含接口的對于特定組地址的新的源列表,。

源列表改變報(bào)告是節(jié)點(diǎn)發(fā)出的,當(dāng)源列表改變,,過濾模式和組地址不改變時(shí)會(huì)觸發(fā)發(fā)送此消息,。以下兩類,如表2-4示

表2-4 源列表改變報(bào)告

名字

作用

5

允許新的源

 指明在當(dāng)前組地址記錄中的源地址域需要增加新的源,。若是在包含模式下,,則把這些源加入到列表中。若是在排除模式下,,則把這些源從列表中刪除,。

6

阻止舊的源

指明在當(dāng)前組地址記錄中的源地址域需要?jiǎng)h除舊的源。若是在包含模式下,,則把這些源刪除到列表中,。若是在排除模式下,則把這些源從列表中刪除加入,。

②   附加數(shù)據(jù)長度

附加數(shù)據(jù)長度域包含在當(dāng)前在偵聽報(bào)告中的附加數(shù)據(jù)長度,,單位是字(32bits),。如果為0,則表示沒有附加數(shù)據(jù),。

③   源個(gè)數(shù)(N)

源個(gè)數(shù)(N)指出在當(dāng)前在偵聽報(bào)告中的源地址記錄的個(gè)數(shù),。

④   組播地址

組播地址域包含組播偵聽報(bào)告中有的組播地址。

⑤   源地址[i]

源地址[i]域是指向n的單播地址,,n既是源個(gè)數(shù)域中的值,。

⑥   輔助數(shù)據(jù)區(qū)

如果存在輔助數(shù)據(jù)區(qū),那么它是用來補(bǔ)充說明組播地址報(bào)告的,。在MLDv2協(xié)議中沒有定義間接尋址數(shù)據(jù),,所以不需要包括輔助數(shù)據(jù)區(qū)。因此設(shè)置輔助數(shù)據(jù)區(qū)為0,,收到時(shí)也忽略,。留出這樣一部分輔助數(shù)據(jù)區(qū)是為了以后能夠擴(kuò)展MLD。

MLDv2組播偵聽報(bào)告報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-30:

圖2-30 在網(wǎng)絡(luò)中傳輸?shù)腗LDv2組播偵聽報(bào)告報(bào)文

2.2.3 MLDv2工作過程

MLDv2的工作過程可以分成三部分:一是偵聽者端建立“組播偵聽狀態(tài)”,;二是偵聽者端和路由器端之間交換各種報(bào)文,;三是路由器端建立偵聽者狀態(tài)列表。

a)       建立偵聽狀態(tài)

偵聽者根據(jù)自身的需要指定它所感興趣的組播組和組的源地址,,建立自身的偵聽狀態(tài),,即加入列表或排除列表,然后主動(dòng)或被動(dòng)通知鄰居組播路由器它的偵聽狀態(tài),。

偵聽者執(zhí)行MLDv2協(xié)議的“偵聽部分”的功能,。無論節(jié)點(diǎn)上的接口是否在同一鏈路上.每個(gè)接口上都會(huì)執(zhí)行偵聽者功能。運(yùn)行在偵聽節(jié)點(diǎn)上層的協(xié)議或者應(yīng)用通過“套接字組播狀態(tài)”函數(shù)IPv6 Multicast Listen告知接口啟用或禁用組播功能,。

IPv6MuhieastListen的格式如下:

IPv6MulticastListen(套接口,,接口,IPv6組播地址,,過濾模式,,源列表)

套接口:用來區(qū)分節(jié)點(diǎn)內(nèi)不同的組播請求實(shí)體(如進(jìn)程用程序等)。

接口:表示一個(gè)本地網(wǎng)絡(luò)接口.通過該接口可以啟用或禁用組播功能,。

IPv6組播地址:表示請求加入的組播地址,。如果一個(gè)接口接收多于一個(gè)組播的分組,IPv6Multicast Listen就會(huì)被每個(gè)組播單獨(dú)調(diào)用,。

過濾模式:過濾模式分為“INCLUDEMODE”(包含模式)和“EXCLUDEMODE”(排除模式)兩種,。

源列表:一個(gè)無序的地址列表,可以為空,。

除了“套接字組播狀態(tài)”之外,,節(jié)點(diǎn)必須維護(hù)或計(jì)算出每個(gè)接口的組播偵聽狀態(tài),,稱為“接口組播狀態(tài)”,,表示為(IPv6組播地址,,過濾模式,源列表),?!敖涌诮M播狀態(tài)”從“套接字組播狀態(tài)”推導(dǎo)出來。從“套接字組播狀態(tài)”導(dǎo)出“接口組播狀態(tài)”的一般規(guī)律如下:根據(jù)具有相同接口(IPv6組播地址)的“套接字組播狀態(tài)”記錄,,推導(dǎo)出一個(gè)“接口組播狀態(tài)”,。

(1)若有“套接字組播狀態(tài)”記錄處于排除模式,那么“接口組播狀態(tài)”的過濾模式就是“排除模式”,,且“源地址列表”等于所有“排除模式”“套接字組播狀態(tài)”記錄中的源地址列表的交集,,減去所有“包含模式”“套接字組播狀態(tài)”記錄中的源地址列表。

(2)若所有“套接字組播狀態(tài)”記錄都是“包含模式”,,那么“接口組播狀態(tài)”就是“包含模式”,,且“源地址列表”等于所有“套接字組播狀態(tài)”記錄中源地址列表的并集。

偵聽者通過上述算法可以建立起自己的“接口組播狀態(tài)”,。當(dāng)接口收到組播分組之后,,就會(huì)根據(jù)應(yīng)用或者進(jìn)程的“套接字組播狀態(tài)”判斷是否將數(shù)據(jù)分組傳給上層。MLDv2報(bào)文不受源地址過濾影響,,能夠被所有的主機(jī)或路由器處理,。

b)       交換各種報(bào)文

偵聽者端和路由器端之間交換各種報(bào)文是協(xié)議的重要部分,在此過程中計(jì)時(shí)器會(huì)保持各個(gè)功能實(shí)體的可用性,,若計(jì)時(shí)器到期會(huì)重新選舉新的偵聽者和查詢器,。

同一子網(wǎng)內(nèi)的運(yùn)行MLDv2協(xié)議的路由器首先通過1P地址最小的接口為查詢接口的“查詢器選舉機(jī)制”選舉出一臺(tái)“查詢器”(Querierrouter),其余的路由自然成為非查詢路由器(Non-Querier router),。被當(dāng)選為“查詢器”的接口周期性的在子網(wǎng)內(nèi)發(fā)布一般查詢報(bào)文,,觸發(fā)性地發(fā)布特定組播地址查詢報(bào)文和特定組播地址和源查詢報(bào)文,查詢鄰居接口的組播偵聽者發(fā)出的組播偵聽狀態(tài)路由器周期性地發(fā)送一般查詢報(bào)文,,以查詢該鏈路上是否存在某組播地址的組成員,。

在接收到收到路由器發(fā)送的一般查詢報(bào)文后,節(jié)點(diǎn)經(jīng)過[0,,最大響應(yīng)時(shí)間〕之間的隨機(jī)時(shí)延后發(fā)出組播偵聽報(bào)告,,通過“當(dāng)前狀態(tài)報(bào)告”報(bào)告自己的“接口組播狀態(tài)”。經(jīng)過隨機(jī)時(shí)延是為了防止所有的節(jié)點(diǎn)都在同一時(shí)間發(fā)出報(bào)告分組,,從而避免網(wǎng)絡(luò)的突發(fā)性阻塞,。當(dāng)偵聽者端改變自己的接口組播狀態(tài)時(shí),如想要加入某個(gè)組播組時(shí)或改變對某個(gè)源的接收狀態(tài),,就可以不必等待路由器的查詢報(bào)文,,而是直接向路由器發(fā)送報(bào)告報(bào)文。如果節(jié)點(diǎn)狀態(tài)發(fā)生變化,會(huì)立刻發(fā)送并重傳“狀態(tài)變化報(bào)告”,。在舊的“狀態(tài)變化報(bào)告”重傳過程中.如果又有新的狀態(tài)變化發(fā)生,,這個(gè)新的狀態(tài)變化就會(huì)和原來的狀態(tài)變化合并,然后組成新的“狀態(tài)變化報(bào)告”重新發(fā)送,,同時(shí)重置“重傳次數(shù)”,。節(jié)點(diǎn)新舊狀態(tài)的變化引起的狀態(tài)變化報(bào)告算法表如表2-5所示:

表2-5狀態(tài)變化報(bào)告算法表

舊狀態(tài)

新狀態(tài)

狀態(tài)改變報(bào)告

包含(A)

包含(B)

允許(B-A),阻止(A-B)

排除(A)

排除(B)

允許(A-B),,阻止(B-A)

包含(A)

排除(B)

變成排除(B)

排除(A)

包含(B)

變成包含(B)

在表中A和B為源地址列表,,“包含”和“排除”指的是接口過濾模式,“允許”的意思是希望偵聽的新增的源地址列表,,“阻止”的意思是希望不再偵聽的舊的源地址列表,。

路由器收到偵聽者針對某組播的“狀態(tài)變化報(bào)告”后,查詢器會(huì)發(fā)送“組播地址指定查詢”或者“組播地址和源地址指定查詢”,,以確定鏈路上是否還有其他偵聽者,,如果在“查詢超時(shí)時(shí)鐘”超時(shí)之前,收到其他偵聽者的“當(dāng)前狀態(tài)報(bào)告”,,則重置計(jì)時(shí)器,。否則將修改相應(yīng)的“組播偵聽者狀態(tài)”。

c)       建立偵聽狀態(tài)列表

通過偵聽來自偵聽者的報(bào)告報(bào)文,,子網(wǎng)內(nèi)所有路由器維持相同的“組播偵聽狀態(tài)”,。當(dāng)路由器收到鏈路上的報(bào)告分組時(shí),如果報(bào)告地址不在路由器的列表上,,則加入該項(xiàng),,否則計(jì)時(shí)器重新置位。路由器為它所在的每一條鏈路維護(hù)一個(gè)列表,,除了組播地址列表外,,還維護(hù)著每個(gè)組播地址相關(guān)的過濾模式、源地址列表,、該地址相應(yīng)的源計(jì)時(shí)器等信息,。如果某個(gè)計(jì)時(shí)器過期,則把相應(yīng)的表項(xiàng)從列表中刪除,。

通過收到的偵聽者報(bào)告,,路由器(包括查詢器和非查詢器)可以在其接口上建立自己的“組播偵聽者狀態(tài)”信息表。與偵聽者不同,,如果路由器有多個(gè)接口處于同一子網(wǎng)內(nèi),,則只在其中一個(gè)接口建立“偵聽者狀態(tài)”信息?!皞陕犝郀顟B(tài)”由過濾模式,、過濾時(shí)鐘和源地址列表三部分組成,。如果鏈路上某一組播的所有偵聽者都是“包含模式”。則接口處于該組播的“包含模式”,,用INCLUDE(A)表示,。其中A表示源地址列表,INCLUDE(A)稱為“包含列表”,。如果“包含模式”偵聽者發(fā)送了包含特定源地址的“當(dāng)前狀態(tài)報(bào)告”或者“狀態(tài)變化報(bào)告”,該源地址就會(huì)被加入到“包含列表”中,?!鞍斜怼敝忻恳粋€(gè)源地址都有“源地址時(shí)鐘”,一旦“包含模式”偵聽者發(fā)送報(bào)告證實(shí)自己在偵聽著某一特定源地址.“源地址時(shí)鐘”就會(huì)被更新,。如果“包含列表”中的“源地址時(shí)鐘”由于長時(shí)間得不到更新而到期,,該源地址就會(huì)從“包含列表”中刪除。這稱為“軟離開”機(jī)制,。

除了“軟離開”之外,,還有一種“快速離開”機(jī)制。當(dāng)“包含模式”偵聽者通過“狀態(tài)變化報(bào)告”聲明不再偵聽特定源地址時(shí),,鏈路上所有的路由器就會(huì)降低該源地址的“源地址時(shí)鐘”,。隨后查詢器會(huì)發(fā)出“組播地址和源地址指定查詢”,用以驗(yàn)證該鏈路是否還有該源地址的偵聽者,。如果“源地址時(shí)鐘”到期,,該源地址就會(huì)從“包含列表”中刪除。

如果鏈路上存在處于“排除模式”的偵聽者,,則接口處于該組播的“排除模式”,。收到第一個(gè)“排除模式”偵聽者的報(bào)文時(shí)起,路由器就設(shè)定該組播的“過濾時(shí)鐘”,。每當(dāng)“排除模式”偵聽者通過“當(dāng)前狀態(tài)報(bào)告”證實(shí)自己的偵聽狀態(tài)時(shí),,“過濾時(shí)鐘”被更新。當(dāng)一個(gè)“包含模式”偵聽者,,通過“狀態(tài)變化報(bào)告”聲明自己變?yōu)椤芭懦J健睍r(shí),,該“過濾時(shí)鐘”也會(huì)被更新。如果“過濾時(shí)鐘”過期,,路由器便將偵聽者狀態(tài)切換成“包含模式”,。處于“排除模式”的路由器接口。偵聽者狀態(tài)由符號(hào)Exclude(X,,Y)表示,,其中X表示“請求列表”,Y表示“排除列表”,。除了“排除列表”之外所有的源地址發(fā)出的組播分組,,都會(huì)被路由器轉(zhuǎn)發(fā),。雖然“請求列表”對于轉(zhuǎn)發(fā)分組沒有任何影響,但是路由器必須保持“請求列表”,。原因如下:

(1)為了標(biāo)明“包含模式”偵聽者所偵聽的源地址,。當(dāng)鏈路中沒有“排除模式”偵聽者時(shí),能及時(shí)將路由器轉(zhuǎn)換成“包含模式”,。這種轉(zhuǎn)換不應(yīng)該中斷向該組播“包含模式”偵聽者傳輸?shù)臄?shù)據(jù)流,。當(dāng)路由器切換成“包含模式”時(shí)?!罢埱罅斜怼敝械脑吹刂繁晦D(zhuǎn)移到“包含列表”中,,“排除列表”被刪除。

(2)用來對原來沒有“排除”的源地址進(jìn)行快速的“排除”,。如果路由器接收到一個(gè)特定源地址請求的報(bào)告,。源地址就會(huì)被加入到“請求列表”,源地址時(shí)鐘被賦值.隨后查詢器發(fā)出“組播地址和源地址指定查詢”,。用以檢測該鏈路上是否還有對這些源地址感興趣的節(jié)點(diǎn),。如果源地址的時(shí)鐘就會(huì)到期時(shí)。仍沒有偵聽者響應(yīng),。這時(shí),,這些源地址就會(huì)從“請求列表”移到“排除列表”。從這時(shí)起,,該源地址就會(huì)被路由器阻斷[15],。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多