MLD(Multicast Listener Discovery)组播监听者发现协议。MLD和IPv4网络中的IGMP功能类似,用于IPv6路由器发现其直连网段上组播监听者(Multicast Listener)、建立、维护组成员关系。
现有MLDv1和MLDv2两个版本,MLDv2在MLDv1的基础上增加了对SSM模型的支持。
MLD消息是ICMPv6消息的一个子集,封装在IPv6报文中。
字段 | 长度 | 描述 |
---|---|---|
Type | 1字节 | MLDv1消息类型,有3种取值,如表2所示。 |
Code | 1字节 | 代码。发送时此字段设置为0,接收时不处理此字段。 |
Checksum | 2字节 | 标准的ICMPv6校验和,覆盖所有MLD消息以及IPv6首部区域中的伪首部。在计算校验和时,此字段以零计算。发送报文时必须计算校验和并将结果写入此字段。接收报文时首先验证校验和,然后才处理报文。 |
Maximum Response Delay | 2字节 | 最大响应时间。这个字段只有在查询消息中才有意义。在其他类型的消息中,发送时这个字段被清零,接收时不处理这个字段。 |
Reserved | 2字节 | 保留位。发送时此字段被清零,接收时不处理此字段。 |
Multicast Address | 16字节 | 组地址。 |
取值 | 消息类型 | 备注 |
---|---|---|
130 | MLDv1普遍组查询消息 | 普遍组查询消息是查询器定期向共享网段内所有主机以组播方式发送的查询消息,用于查询哪些组播组存在成员。封装该消息的IPv6报文头的目的地址字段为FF02::1。组地址字段为全0,表示不指定组播组。 |
MLDv1特定组查询消息 | 特定组查询消息是查询器向共享网段内特定组播组成员发送的消息,用于查询该组播组是否存在成员。封装该消息的IPv6报文头的目的地址字段为被查询的组播组的IP地址,网络中属于该组播组的成员才能识别并响应。组地址字段为被查询的IPv6组播组地址。 | |
131 | MLDv1的成员报告消息 | 成员报告消息是主机向组播路由器发送的报告消息,用于申请加入某个组播组或者应答查询消息。封装该消息的IPv6报文头的目的地址字段为主机要加入的IPv6组播组地址,只有网络中的组播路由器和该组成员才能识别并接收。组地址字段为主机要加入的IPv6组播组地址。 |
132 | MLDv1离开消息 | 离开消息是主机主动离开组播组时向组播路由器发送的消息,用于宣告自己离开了某个组播组。封装该消息的IPv6报文头的目的地址字段为FF02::2。组地址字段为主机要离开的IPv6组播组地址。 |
MLDv2有以下几种消息:
字段 | 长度 | 描述 |
---|---|---|
Type | 1字节 | 消息类型,该字段取值为130。 |
Code | 1字节 | 发送时此字段设置为0,接收时不处理此字段。 |
Checksum | 2字节 | 标准的ICMPv6校验和,覆盖所有MLD消息以及IPv6首部区域中的伪首部。在计算校验和时,此字段以零计算。发送报文时必须计算校验和并将结果写入此字段。接收报文时首先验证校验和,然后才处理报文。 |
Maximum Response Delay | 2字节 | 主机发送报告消息前允许的最长响应延迟。 |
Reserved | 2字节 | 保留字段。发送时此字段设置为0,接收时不处理此字段。 |
Multicast Address | 16字节 | 组地址。
|
Reserved | 4比特 | 保留字段。发送时此字段设置为0,接收时不处理此字段。 |
S(Suppress Router-Side Processing) | 1比特 | 标识位,表示路由器接收到查询消息后是否对定时器更新进行抑制。 |
QRV(Querier’s Robustness Variable) | 3比特 | 查询器健壮系数。 |
QQIC(Querier’s Query Interval Code) | 1字节 | 查询器查询间隔。 |
Number of Sources | 2字节 | 组播源个数。
|
Source Address( i ) | 16字节 | 组播源地址列表。
|
字段 | 长度 | 描述 |
---|---|---|
Type | 1字节 | 消息类型,该字段取值为143。 |
Reserved | 1字节 | 发送时此字段设置为0,接收时不处理此字段。 |
Checksum | 2字节 | 标准的ICMPv6校验和,覆盖所有MLD消息以及IPv6首部区域中的伪首部。在计算校验和时,此字段以零计算。发送报文时必须计算校验和并将结果写入此字段。接收报文时首先验证校验和,然后才处理报文。 |
Reserved | 2字节 | 保留字段。发送时此字段设置为0,接收时不处理此字段。 |
Number of Multicast Address Record | 2字节 | 组播地址记录的个数。 |
Multicast Address Record (i) | 变长 | 组播地址记录,表示主机在接口上侦听到的每个组播地址信息,包括记录类型、组播地址、源地址等。(i=1,2,…,m, m表示组播地址记录的个数) |
字段 | 长度 | 说明 |
---|---|---|
Record Type | 1字节 | 记录类型:
|
Aux Data Len | 1字节 | 在组播地址Record中附加Auxiliary Data的长度。 |
Number of Sources | 2字节 | 本记录中包含的源地址数量。 |
Multicast Address | 16字节 | 组地址。 |
Source Address | 16字节 | 组播源地址。 |
Auxiliary Data | 变长 | 组播地址Record的附加信息。 |
标准 | 描述 |
---|---|
RFC 2710 | Multicast Listener Discovery (MLD) for IPv6 |
RFC 3810 | Multicast Listener Discovery Version2(MLDv2) for IPv6 |