跳到主要内容

2. 协议概述 (Overview of the Protocol)

Multicast Listener Discovery (MLD) 协议由 IPv6 router 用来发现其直连链路上是否存在 multicast listener, 并具体发现这些相邻节点对哪些 multicast address 感兴趣. MLDv2 是一种非对称协议, 为 multicast listener (host 或 router) 和 multicast router 规定不同的行为.

2.1. 构建块

该协议建立在两类 message 之上:

  1. Multicast Listener Query (Query): 由 multicast router 发送, 用于查询相邻 interface 的 multicast reception state.
  2. Multicast Listener Report (Report): 由 multicast listener 发送, 用于报告其当前 multicast reception state.

2.2. 协议操作

MLDv2 的基本操作如下:

  • multicast router 使用 MLDv2 确定其连接链路上哪些 multicast address 拥有 listener.
  • multicast listener 使用 MLDv2 报告其对接收特定 multicast address 的 multicast packet 感兴趣.
  • router 为每个连接链路维护状态, 指示哪些 multicast address 拥有 listener, 并且对 MLDv2 而言, 指示哪些 source address 受到关注.
  • 当 router 从 listener 收到 Report 时, 它更新其状态.
  • 当 router 收到 multicast packet 时, 它将 packet 转发到所有对该 packet destination address (以及适用时的 source address) 拥有 listener 的链路.

2.3. MLDv2 改进

MLDv2 在 MLDv1 基础上增加了对 Source-Specific Multicast (SSM) 的支持. 在 MLDv1 中, listener 只能报告对 group address (G) 感兴趣. 在 MLDv2 中, listener 可以报告其对发送到 group (G) 的特定 source (S) 感兴趣, 表示为 (S,G). 这允许网络优化 multicast delivery tree, 并防止来自不需要 source 的 denial-of-service attack.