2. IGMP Snooping 建议 (IGMP Snooping Recommendations)
以下章节描述 control 和 data packets 的 forwarding rules.
2.1. 转发规则 (Forwarding Rules)
switch 必须 snoop 所有 IGMP packets, 并为每个 port 维护 state table.
2.1.1. IGMP 成员关系报告 (IGMP Membership Reports)
- switch 必须将所有 IGMP Membership Reports 转发到所有被检测为 router ports 的 ports.
- switch 不应将 IGMP Membership Reports 转发到 non-router ports. 这可以防止其他 hosts 抑制自己的 reports (在 IGMPv1 和 IGMPv2 中).
2.1.2. IGMP 离开组 (IGMP Leave Group)
- switch 必须将 IGMP Leave Group messages 转发到所有 router ports.
- switch 应处理 Leave Group message, 以确定该 port 上是否还有该 group 的其他 members. 如果没有, 它应停止向该 port 转发该 group 的 multicast data.
- switch 应在其所有 non-router ports 上实现 membership timeout mechanism, 例如 IGMP and MLD specifications 中描述的 IGMP protocol 的 router-side functionality (IGMPv1-3 和 MLDv1-2 见 Normative Reference section). 该 timeout value 应可配置.
2.2. 数据转发规则 (Data Forwarding Rules)
- destination IP address 位于 224.0.0.X 之外且不是 IGMP 的 packets, 应根据 group-based port membership tables 转发.
- destination IP address 位于 224.0.0.X 范围内且不是 IGMP 的 packets, 必须在所有 ports 上转发.
- 基于 (G,S1,S2,...) 的 data forwarding tables 的实际实现不在本文档范围内. 不过, 一种可能做法是维护两个 (G,S) forwarding lists: 一个用于 INCLUDE filter, 其中必须匹配特定 (G,S) 才会发生转发; 另一个用于 EXCLUDE filter, 其中匹配特定 (G,S) 将导致不转发.