IPv6Network - Group Membership Management Multicast on an old-fashioned shared medium Ethernet is simple: all Ethernet cards see all packets anyway, so all that’s needed is to ignore the uninteresting ones. Things get more complex when the multicasts have to traverse one or more routers or switches. In the case of multicast routing, the routers need to know which multicast groups are active on which subnet. They also need a whole battery of multicast routing mechanisms, but fortunately, that’s beyond the scope of this book.
In IPv4, multicast-aware routers periodically send out Internet Group Management Protocol (IGMP) queries. Hosts respond to these queries by telling the router which multicast groups they’re currently listening to. The protocol also provides join and leavemessages. An interesting aspect of IGMP is that although switches aren’t party to IGMP, the more intelligent ones implement “IGMP snooping.” In other words, they listen in on IGMP exchanges and enable or disable multicast forwarding on a per-address basis for each port. This way, IP multicast traffic is only forwarded to ports connecting to systems interested in those multicasts. Less sophisticated switches simply treat all multicasts as broadcasts and forward them to all ports. IPv6 Multicast Listener Discovery (MLD, RFC 2710) is very similar to IGMPv2. The differences are that MLD has room for IPv6 addresses and it is part of ICMPv6, rather than having its own protocol number.