MDL 组播监听者发现

2020-06-12 11:49 更新

一、简介

1.作用

IPv6的组管理协议被称为MLD(组播监听者发现)。1999年,MLD版本l(RFC2710)被IETF发布。2004年,MLD版本2(RFC3810)标准出台,后一个版本可以向前一个兼容。MLD协议是专门针对基于IPv6的组播组管理协议。因为MLD使用全新的ICMPv6的报文格式,所以MLD协议就是ICMPv6协议的一个子集。MLD消息使用链路本地IPv6源地址发送,其跳数被限制为1。MLD消息的封装格式

二、报文

1.通用报文

MLD消息是ICMPv6消息的一个子集,封装在IPv6报文中。

IPv6报文头的源地址字段为MLD消息发送者的IPv6本地链路地址。 IPv6报文头的目的地址字段用来标识MLD消息所属的组播组。 IPv6报文头的Hop Limit字段值为1,表示MLD消息只在本地网段传播。 逐跳选项头(Hop-by-Hop Option Header)。其中下一报头(Next Header)字段值为58,表示该报文是ICMPv6消息;路由器告警选项(RTR-ALERT)的值是0x05020000,表明该报文是MLD消息。 不同版本的MLD协议,使用不同的消息格式,支持不同的消息类型。

2.MLDv1

MLDv1的工作原理MLDvl协议是从IGMPv2协议中派生出来的,其运行机制和IGMPv2协议相同,专门用于IPv6组播群组的管理,其主要是应用于ASM模式组播路由协议的组管理工作。对于运行MLD协议的路由器,其接口要监听由IPv6组播地址产生的所有链路组播地址。路由器为它所在的每一条链路维护一个列表。表项有此链路中存在的组成员的组播地址,以及该地址相应的定时器。 路由器周期性地发送通用请求(general query),以查询该链路上是否存在某组播地址的组成员。节点收到路由器发送的常规请求后,经过随机时延后发出组播监听报告。这样是为了防止所有的节点都在同一时间发出报告分组,从而造成网络的突发性阻塞。当路由器收到链路上的报告分组时,如果报告地址不在路由器的列表上,则加入该项,否则计时器重新置位。如果某个地址的计时器过期,则从列表中删除。 当节点要加入一个组播组时,主动发送组播监听报告,向路由器报告组成员的存在。节点退出组播组时,发送完成分组,删除有关路径。当请求状态的路由器从链路上接收到一个完成消息,如果消息中的组播地址在路由器的列表上,路由器发送一个特定组播地址查询。 如果一段时延后没有报告分组,则认为该组播地址在此链路上没有组成员了。

3.MLDv2

除了兼容支持MLDvl所有的三种报文:组播侦听查询(MLD消息类型值为130),包括一般查询和特定组播地址查询:组播侦听报告(MLD消息类型值为131);组播侦听完成(MLD消息类型值为 132)外,还增加了MLDv2查询消息(一般的查询、特定组播地址查询,特定组播地址和源查询)和“侦听者报告”报文。“侦听者报告”报文是向邻居路由器报告当前的组播侦听状态,或者声明侦听状态变化情况。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号