MDL 組播監(jiān)聽者發(fā)現(xiàn)

2020-06-12 11:49 更新

一、簡介

1.作用

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

二、報(bào)文

1.通用報(bào)文

MLD消息是ICMPv6消息的一個(gè)子集,封裝在IPv6報(bào)文中。

IPv6報(bào)文頭的源地址字段為MLD消息發(fā)送者的IPv6本地鏈路地址。 IPv6報(bào)文頭的目的地址字段用來標(biāo)識MLD消息所屬的組播組。 IPv6報(bào)文頭的Hop Limit字段值為1,表示MLD消息只在本地網(wǎng)段傳播。 逐跳選項(xiàng)頭(Hop-by-Hop Option Header)。其中下一報(bào)頭(Next Header)字段值為58,表示該報(bào)文是ICMPv6消息;路由器告警選項(xiàng)(RTR-ALERT)的值是0x05020000,表明該報(bào)文是MLD消息。 不同版本的MLD協(xié)議,使用不同的消息格式,支持不同的消息類型。

2.MLDv1

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)為該組播地址在此鏈路上沒有組成員了。

3.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)變化情況。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號