RFC 9119

Multicast Considerations over IEEE 802 Wireless Media

๐Ÿ“… published October 2021, from ietf

Title Block โœจ RFC 9119: Multicast Considerations over IEEE 802 Wireless Media ๐Ÿฆ‹

okay bestie, so this doc is from the IETF (the Internet Engineering Task Force, the crew that writes the rules for how the internet talks ๐ŸŒ). It's Request for Comments 9119 and it was published in October 2021 ๐Ÿ“. The lead author is C. Perkins at Lupin Lodge, with co-authors M. McBride (Futurewei), D. Stanley (HPE), W. Kumari (Google), and JC. Zรบรฑiga (SIGFOX) ๐Ÿ’œ. It's Informational, which means it's not a Standards Track spec, it's just here to share knowledge ๐Ÿงš. Nothing in this RFC obsoletes or updates any earlier RFCs, and it has ISSN 2070-1721 โญ.


Abstract ๐ŸŒธ

Multicast is the main character that keeps getting left on read ๐Ÿ˜ญ. Known multicast issues have stopped it from being deployed on 802.11 (Wi-Fi) and other local-area wireless networks ๐Ÿ™ˆ. This doc covers the known limitations of wireless Layer 2 multicast, mostly 802.11 ๐ŸŽ€. It also covers multicast enhancement features that the IETF and IEEE 802 have specified for wireless, plus some operational choices that can make the network run better โœจ. Last but not least, it gives some recommendations on how to use these features and choices together ๐Ÿซถ.

Status of This Memo ๐Ÿ’…

Okay, the vibe here is: this is not an Internet Standards Track spec, it's published for info only ๐Ÿ’–. It's still a product of the IETF and it reflects the consensus of the IETF community ๐Ÿ‘‘. It got public review and was approved by the Internet Engineering Steering Group (IESG) ๐Ÿ”ฅ. Not everything the IESG approves is up for any level of Internet Standard, so check Section 2 of RFC 7841 if you want the full tea ๐Ÿต. For the current status, errata, or to give feedback, head to https://www.rfc-editor.org/info/rfc9119 ๐Ÿฆ‹.

Copyright (c) 2021 IETF Trust and the document authors. All rights reserved ๐Ÿ’œ. This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stood on the publication date ๐Ÿ“œ. Please actually read those, they lay out your rights and restrictions ๐Ÿ™ˆ. Code components pulled out of this doc have to include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty ๐ŸŽ€.

Table of Contents ๐Ÿงš

1.  Introduction
2.  Terminology
3.  Identified Multicast Issues
  3.1.  Issues at Layer 2 and Below
    3.1.1.  Multicast Reliability
    3.1.2.  Lower and Variable Data Rate
    3.1.3.  Capacity and Impact on Interference
    3.1.4.  Power-Save Effects on Multicast
  3.2.  Issues at Layer 3 and Above
    3.2.1.  IPv4 Issues
    3.2.2.  IPv6 Issues
    3.2.3.  MLD Issues
    3.2.4.  Spurious Neighbor Discovery
4.  Multicast Protocol Optimizations
  4.1.  Proxy ARP in 802.11-2012
  4.2.  IPv6 Address Registration and Proxy Neighbor Discovery
  4.3.  Buffering to Improve Battery Life
  4.4.  Limiting Multicast Buffer Hardware Queue Depth
  4.5.  IPv6 Support in 802.11-2012
  4.6.  Using Unicast Instead of Multicast
    4.6.1.  Overview
    4.6.2.  Layer 2 Conversion to Unicast
    4.6.3.  Directed Multicast Service (DMS)
    4.6.4.  Automatic Multicast Tunneling (AMT)
  4.7.  GroupCast with Retries (GCR)
5.  Operational Optimizations
  5.1.  Mitigating Problems from Spurious Neighbor Discovery
  5.2.  Mitigating Spurious Service Discovery Messages
6.  Multicast Considerations for Other Wireless Media
7.  Recommendations
8.  Ongoing Discussion Items
9.  Security Considerations
10. IANA Considerations
11. Informative References
Acknowledgements
Authors' Addresses

1. Introduction โœจ

Okay so, multicast has big problems that have kept it from being deployed on 802.11 [dot11] and other local-area wireless networks, as [mc-props] and [mc-prob-stmt] describe ๐Ÿฅบ. People have noticed performance issues when multicast packets from IETF protocols go over IEEE 802 wireless media ๐Ÿ“‰. Both the IETF and IEEE 802 have designed enhancements for multicast, but the specs, implementations, and config choices still don't always play nice together ๐Ÿ™ˆ.

Lots of IETF protocols lean on multicast or broadcast to deliver control messages to many receivers at once ๐Ÿ’–. Multicast lets data reach several interested recipients without the source sending a copy to each one ๐Ÿฆ‹. Broadcast is different, because it goes to every device whether or not they care ๐Ÿ˜ญ. Multicast gets used for things like Neighbor Discovery, network flooding, and address resolution, and it saves medium time when the same data is meant for many receivers ๐ŸŒธ. Beyond protocol control traffic, apps are also sending multicast IP to end-user devices now, like Push To Talk in hospitals or video in enterprises, universities, and homes, and those devices are increasingly on Wi-Fi ๐Ÿ“กโœจ.

IETF protocols usually count on network layering so higher-level protocols don't depend on the details of the MAC layer or the physical medium ๐Ÿงš. For multicast, higher-level protocols have traditionally been designed as if sending a packet to an IP address costs the same in interference and medium access, whether the destination is unicast, multicast, or broadcast ๐Ÿคทโ€โ™€๏ธ. That made sense for wired media like Ethernet ๐Ÿ”Œ. Sadly, for lots of wireless media the cost of accessing the medium can be super different ๐Ÿ’€. Multicast over Wi-Fi has often had such poor performance that it's been disallowed ๐Ÿ™…โ€โ™€๏ธ. Some IETF protocol enhancements assume wireless and are meant to work mainly over it, but they're usually only deployed in limited settings and aren't widespread on most wireless networks ๐Ÿฅ€.

IEEE 802 wireless protocols do have features built in to support multicast traffic ๐Ÿ’œ. For example, lower modulations are used for multicast frames so every station in the cell can receive them, no matter how far away they are or how much the signal has attenuated from the base station or Access Point (AP) ๐Ÿ“ถ. The catch is that these lower modulation transmissions hog the medium for longer, and they slow down efficient traffic to nearby stations using higher-order modulations ๐ŸŒ. For these reasons and others, IEEE 802 Working Groups like 802.11 have designed features to improve multicast performance at Layer 2 [ietf_802-11] ๐Ÿ› ๏ธ. Operational and config enhancements can also ease the network problems multicast traffic causes, as Section 5 explains ๐ŸŽ€.

There seems to be general agreement that these problems won't be fixed anytime soon, mostly because fixing them is expensive and because multicast is unreliable ๐Ÿ’ธ. Compared to unicast over Wi-Fi, multicast is often treated as a second-class citizen, even though plenty of protocols use it ๐Ÿ˜ค. Something needs to be provided to make multicast more reliable ๐Ÿซถ. IPv6 Neighbor Discovery saturating the Wi-Fi link is only part of the problem ๐Ÿ“‰. Wi-Fi traffic classes may help ๐Ÿคž. This doc is meant to help figure out which problems the IETF should solve and which ones the IEEE should solve (see Section 8) ๐Ÿง.

This doc details the problems caused by multicast over wireless networks, including high packet error rates, no acknowledgements, and low data rates ๐Ÿ’€. It also explains some enhancements the IETF and IEEE 802.11 have designed to soften the effects of the radio medium on multicast traffic ๐ŸŒˆ. Recommendations for implementors on how to use and combine these enhancements are included, plus some advice about operational choices ๐Ÿ“. This doc will probably also be relevant to designers of future IEEE wireless specs ๐Ÿ”ฎ.

2. Terminology ๐Ÿ“–

This doc uses these definitions:

  • ACK: the 802.11 Layer 2 acknowledgement ๐Ÿ’….
  • AES-CCMP: AES-Counter Mode CBC-MAC Protocol ๐Ÿ”.
  • AP: IEEE 802.11 Access Point ๐Ÿ“ก.
  • Basic rate: the slowest rate of all the connected devices at which multicast and broadcast traffic is generally transmitted ๐Ÿข.
  • DVB-H: Digital Video Broadcasting - Handheld ๐Ÿ“บ.
  • DVB-IPDC: Digital Video Broadcasting - Internet Protocol Datacasting ๐Ÿ“บ.
  • DTIM: Delivery Traffic Indication Map; an information element that advertises whether or not any associated stations have buffered multicast or broadcast frames ๐Ÿ“ฃ.
  • MCS: Modulation and Coding Scheme ๐ŸŽš๏ธ.
  • NOC: Network Operations Center ๐Ÿ–ฅ๏ธ.
  • PER: Packet Error Rate ๐Ÿ“‰.
  • STA: 802.11 station (e.g., handheld device) ๐Ÿ“ฑ.
  • TIM: Traffic Indication Map; an information element that advertises whether or not any associated stations have buffered unicast frames ๐Ÿ“ฌ.
  • TKIP: Temporal Key Integrity Protocol ๐Ÿ”‘.
  • WiMAX: Worldwide Interoperability for Microwave Access ๐Ÿ“ถ.
  • WPA: Wi-Fi Protected Access ๐Ÿ›ก๏ธ.

3. Identified Multicast Issues ๐Ÿšฉ

3.1. Issues at Layer 2 and Below ๐Ÿงฑ

In this section, we go over some of the problems with using multicast over IEEE 802 wireless tech ๐Ÿ’ซ.

3.1.1. Multicast Reliability ๐Ÿ˜ญ

Multicast traffic is usually way less reliable than unicast ๐Ÿ’”. Multicast is point-to-multipoint, so you'd need multiple acknowledgements to guarantee every recipient gets it ๐Ÿ™ƒ. But multicast packets have no ACKs, so the AP can't tell whether a retransmission is needed ๐Ÿคทโ€โ™€๏ธ. Even on the wired Internet this often causes undesirably high error rates ๐Ÿฅด. That's a big reason multicast apps have been slow to catch on, even though the protocols have been around forever ๐Ÿ•ฐ๏ธ. Wireless links are way worse and super sensitive to background traffic ๐Ÿ“ถ๐Ÿ’€. So there can be a high packet error rate (PER) because nothing retransmits and the sender never backs off ๐Ÿซ . PER is the percentage of packets the device didn't successfully receive ๐Ÿ“Š. It's not unusual to see a packet loss rate of 5% or more, which is especially rough for video and other stuff that needs high data rates and high reliability ๐ŸŽฌ๐Ÿ˜ฉ.


Part 1 of 6. Keep your seat, the rest of the RFC is coming next ๐Ÿ’œ๐ŸŽ€

3.1.2. Lower and Variable Data Rate ๐Ÿข

okay so multicast over wired is NOT the same vibe as multicast over wireless, bestie ๐Ÿ’… wired links usually run at a fixed rate, but Wi-Fi's transmission rate changes depending on how close the STA is to the AP ๐Ÿ“ถ. so when a device moves around, the throughput of video flows and the capacity of the whole Wi-Fi network shifts too ๐Ÿ˜ญ. that makes it hard for QoS solutions to reserve bandwidth and do admission control properly ๐Ÿ™ˆ.

For wireless stations that are authenticated and linked with an AP, the power needed for good reception can differ from station to station ๐Ÿ”‹. with unicast, the goal is to minimize power while maximizing the data rate to the destination โšก. with multicast it's a totally different energy: the goal is just to maximize the number of receivers that correctly get the multicast packet ๐Ÿซถ. so generally the AP has to use a much lower data rate, at a power level high enough for even the farthest station to receive the packet (this is briefly mentioned in Section 4 of [RFC5757], fyi ๐Ÿงš). which means the data rate of a video stream, for instance, gets constrained by the environmental considerations of the least-reliable receiver associated with the AP ๐Ÿ’€.

Because more robust modulation and coding schemes (MCSs) have a longer range but a lower data rate, multicast/broadcast traffic is generally sent at the slowest rate of all the connected devices. this is also called the basic rate ๐ŸŒ. how much extra interference that causes depends on the specific wireless technology ๐ŸŒˆ. and get this: backward compatibility and multi-stream implementations mean the maximum unicast rates are currently up to a few Gbps, so there can be more than 3 orders of magnitude difference in transmission rate between multicast/broadcast and optimal unicast forwarding ๐Ÿคฏ. some techniques used to boost spectral efficiency, like spatial multiplexing in Multiple Input Multiple Output (MIMO) systems, aren't available with more than one intended receiver ๐Ÿฆ‹. it is not the case that backwards compatibility is the only factor behind the lower multicast transmission rates, periodt ๐Ÿ’œ.

Wired multicast also affects wireless LANs when the AP extends the wired segment. in that case, multicast/broadcast frames on the wired LAN side are copied to the Wireless Local Area Network (WLAN). since broadcast messages go out at the most robust MCS, many large frames get sent at a slow rate over the air ๐Ÿฅฒ.

3.1.3. Capacity and Impact on Interference ๐Ÿ“‰

Transmissions at a lower rate need longer occupancy of the wireless medium ๐Ÿ˜ฉ, which takes airtime away from other communications and degrades the overall capacity. plus, transmitting at higher power (which is required to reach all multicast STAs associated with the AP) proportionately increases the area of interference with other consumers of the radio spectrum ๐Ÿ“ก๐Ÿ’ฅ.

3.1.4. Power-Save Effects on Multicast ๐Ÿ”‹๐Ÿ’ค

one of the characteristics of multicast transmission over Wi-Fi is that every station has to be configured to wake up to receive the multicast frame, even though the received packet may end up being discarded ๐Ÿ˜ค. this process can have a big effect on the power consumption of the multicast receiver station ๐Ÿชซ. that's why there are workarounds, like Directed Multicast Service (DMS) described in Section 4, to prevent stations from waking up unnecessarily ๐Ÿ™Œ.

Multicast (and unicast) can work poorly with the power-save mechanisms defined in IEEE 802.11e, for the following reasons ๐Ÿฅฒ:

  • Clients may be unable to stay in sleep mode due to multicast control packets frequently waking them up.
  • A unicast packet is delayed until an STA wakes up and requests it. Unicast traffic may also be delayed to improve power save and efficiency and to increase the probability of aggregation.
  • Multicast traffic is delayed in a wireless network if any of the STAs in that network are power savers. All STAs associated with the AP have to be awake at a known time to receive multicast traffic.
  • Packets can also be discarded due to buffer limitations in the AP and non-AP STA.

3.2. Issues at Layer 3 and Above ๐ŸŒ

This section identifies some representative IETF protocols and describes possible negative effects due to performance degradation when multicast transmissions are used for control messages ๐Ÿ•ต๏ธ. common uses of multicast include:

  • Control plane signaling
  • Neighbor Discovery
  • Address resolution
  • Service Discovery
  • Applications (video delivery, stock data, etc.)
  • On-demand routing
  • Backbone construction
  • Other Layer 3 protocols (non-IP)

User Datagram Protocol (UDP) is the most common transport-layer protocol for multicast applications ๐Ÿ“ฆ. by itself, UDP is not reliable -- messages may be lost or delivered out of order ๐Ÿ˜ฌ.

3.2.1. IPv4 Issues ๐Ÿงญ

The following list has some representative discovery protocols that use broadcast/multicast and are used with IPv4:

After initial configuration, ARP (described in more detail later), DHCP, and uPnP happen way less often, but service discovery can happen at any time ๐Ÿ”. some widely deployed service discovery protocols (e.g., for finding a printer) use mDNS (i.e., multicast), which is often dropped by operators ๐Ÿ–จ๏ธ. even if multicast snooping [RFC4541] is used (which saves bandwidth on the segments of the network where no node has expressed interest in receiving packets addressed to the group address ๐Ÿช„), many devices can register at once and cause serious network degradation ๐Ÿ’ฅ.

3.2.2. IPv6 Issues ๐Ÿš€

IPv6 makes extensive use of multicast, including the following:

IPv6 NDP Neighbor Solicitation (NS) messages used in Duplicate Address Detection (DAD) and address lookup make use of link-scope multicast. unlike IPv4, an IPv6 node will typically use multiple addresses and may change them often for privacy reasons ๐Ÿ•ถ๏ธ. this intensifies the impact of multicast messages that are associated with the mobility of a node ๐Ÿƒ. router advertisement (RA) messages are also periodically multicast over the link ๐Ÿ“ข.

Neighbors may be considered lost if several consecutive Neighbor Discovery packets fail ๐Ÿ‘ป.

3.2.3. MLD Issues ๐Ÿงฉ

Multicast Listener Discovery (MLD) [RFC4541] is used to identify members of a multicast group that are connected to the ports of a switch ๐Ÿ”Œ. forwarding multicast frames into a Wi-Fi-enabled area can use switch support for hardware forwarding state information. however, since IPv6 makes heavy use of multicast, each STA with an IPv6 address will require state on the switch for several and possibly many solicited-node multicast addresses ๐Ÿ˜ตโ€๐Ÿ’ซ. a solicited-node multicast address is an IPv6 multicast address used by NDP to verify whether an IPv6 address is already used by the local link ๐Ÿ”Ž. multicast addresses that do not have forwarding state installed (perhaps due to hardware memory limitations on the switch) cause frames to be flooded on all ports of the switch ๐ŸŒŠ. some switch vendors do not support MLD for link-scope multicast due to the increase it can cause in state ๐Ÿ™…โ€โ™€๏ธ.

3.2.4. Spurious Neighbor Discovery ๐Ÿ‘€

On the Internet, there is a "background radiation" of scanning traffic (people scanning for vulnerable machines) and backscatter (responses from spoofed traffic, etc.) ๐ŸŒŒ. this means routers very often receive packets destined for IPv4 addresses regardless of whether those IP addresses are in use ๐Ÿ™ƒ. in the cases where the IP is assigned to a host, the router broadcasts an ARP request, receives an ARP reply, and caches it; then, traffic can be delivered to the host ๐Ÿ“ฌ. when the IP address is not in use, the router broadcasts one (or more) ARP requests and never gets a reply. this means that it does not populate the ARP cache, and the next time there is traffic for that IP address, the router will rebroadcast the ARP requests ๐Ÿ”.

The rate of these ARP requests is proportional to the size of the subnets, the rate of scanning and backscatter, and how long the router keeps state on non-responding ARPs ๐Ÿ“ˆ. as it turns out, this rate is inversely proportional to how occupied the subnet is (valid ARPs end up in a cache, stopping the broadcasting; unused IPs never respond, and so cause more broadcasts) ๐Ÿค”. depending on the address space in use, the time of day, how occupied the subnet is, and other unknown factors, thousands of broadcasts per second have been observed. around 2,000 broadcasts per second have been observed at the IETF NOC during face-to-face meetings ๐Ÿคฏ.

With Neighbor Discovery for IPv6 [RFC4861], nodes accomplish address resolution by multicasting a Neighbor Solicitation that asks the target node to return its link-layer address ๐Ÿ™‹. Neighbor Solicitation messages are multicast to the solicited-node multicast address of the target address. the target returns its link-layer address in a unicast Neighbor Advertisement message ๐Ÿ’Œ. a single request-response pair of packets is sufficient for both the initiator and the target to resolve each other's link-layer addresses; the initiator includes its link-layer address in the Neighbor Solicitation ๐Ÿซ‚.

On a wired network, there is not a huge difference between unicast, multicast, and broadcast traffic ๐Ÿ”Œ. due to hardware filtering (see, e.g., [Deri-2010]), inadvertently flooded traffic (or excessive Ethernet multicast) on wired networks can be quite a bit less costly compared to wireless cases where sleeping devices have to wake up to process packets ๐Ÿ›๏ธ. wired Ethernets tend to be switched networks, further reducing interference from multicast ๐Ÿ”€. there is effectively no collision / scheduling problem except at extremely high port utilizations โœ….

This is not true in the wireless realm. wireless equipment is often unable to send high volumes of broadcast and multicast traffic, causing numerous broadcast and multicast packets to be dropped ๐Ÿซ . consequently, when a host connects, it is often not able to complete DHCP, and IPv6 RAs get dropped, leading to users being unable to use the network ๐Ÿ˜ญ.


4. Multicast Protocol Optimizations โœจ

This section lists some optimizations that have been specified in IEEE 802 and IETF that are aimed at reducing or eliminating the issues discussed in Section 3 ๐Ÿ’–.

4.1. Proxy ARP in 802.11-2012

okay so the AP knows the MAC address and IP address for every associated STA ๐Ÿ’… which makes it the central "manager" for all the 802.11 STAs in its Basic Service Set (BSS) ๐Ÿ‘‘. Proxy ARP is super easy to implement at the AP and it's giving multiple perks:

  • Reduced broadcast traffic (transmitted at low MCS) on the wireless medium.
  • STA benefits from extended power save in sleep mode, as ARP requests for STA's IP address are handled instead by the AP.
  • ARP frames are kept off the wireless medium.
  • No changes are needed to STA implementation.

here's the spec language from clause 10.23.13 of [dot11-proxyarp] ๐Ÿค“, quoted exactly because it's serious business:

"[...] the AP shall maintain a Hardware Address to Internet Address mapping for each associated station, and shall update the mapping when the Internet Address of the associated station changes. When the IPv4 address being resolved in the ARP request packet is used by a non-AP STA currently associated to the BSS, the proxy ARP service shall respond on behalf of the STA to an ARP request or an ARP Probe.

4.2. IPv6 Address Registration and Proxy Neighbor Discovery

so in this section, a Low-Power Wireless Personal Area Network (6LoWPAN) means a Low-Power and Lossy Network (LLN) that supports 6LoWPAN Header Compression (HC) [RFC6282] ๐Ÿฆ‹. A 6TiSCH network [RFC9030] is an example of a 6LoWPAN.

to control IPv6 multicast over 6LoWPANs, the 6LoWPAN Neighbor Discovery (6LoWPAN ND) [RFC6775] standard defines an address registration mechanism. It relies on a central registry to check address uniqueness, which is a substitute for the inefficient DAD mechanism in the mainstream IPv6 Neighbor Discovery Protocol (NDP) [RFC4861] [RFC4862]. the vibes are very "less chaos, more organization" ๐Ÿงš

The 6lo Working Group has specified an update to [RFC6775]. Wireless devices can register their address to a Backbone Router [RFC8929], which proxies for the registered addresses with the IPv6 NDP running on a high-speed aggregating backbone. The update also enables a proxy registration mechanism on behalf of the Registered Node, e.g., by a 6LoWPAN router to which the mobile node is attached ๐ŸŒธ.

the general idea behind the Backbone Router concept is that broadcast and multicast messaging should be tightly controlled in a variety of WLANs and Wireless Personal Area Networks (WPANs) ๐Ÿ’œ. Connectivity to a particular link that provides the subnet should be left to Layer 3. The model for the Backbone Router operation is represented in Figure 1.

                 |
               +-----+
               |     | Gateway (default) router
               |     |
               +-----+
                  |
                  |      Backbone Link
            +--------------------+------------------+
            |                    |                  |
         +-----+             +-----+             +-----+
         |     | Backbone    |     | Backbone    |     | Backbone
         |     | router 1    |     | router 2    |     | router 3
         +-----+             +-----+             +-----+
            o                o   o  o              o o
        o o   o  o       o o   o  o  o         o  o  o  o o
       o  o o  o o       o   o  o  o  o        o  o  o o o
       o   o  o  o          o    o  o           o  o   o
         o   o o               o  o                 o o

           LLN 1              LLN 2                LLN 3

                Figure 1: Backbone Link and Backbone Routers

LLN nodes can move freely from an LLN anchored at one IPv6 Backbone Router to an LLN anchored at another Backbone Router on the same backbone, keeping any of the IPv6 addresses they have configured ๐Ÿš—โœจ. The Backbone Routers maintain a Binding Table of their Registered Nodes, which serves as a distributed database of all the LLN nodes. An extension to the Neighbor Discovery Protocol is introduced to exchange Binding Table information across the Backbone Link as needed for the operation of IPv6 Neighbor Discovery.

[RFC6775] and follow-on work [RFC8505] address the needs of LLNs, and similar techniques are likely to be valuable on any type of link where sleeping devices are attached or where the use of broadcast and multicast operations should be limited ๐Ÿฅบ.

4.3. Buffering to Improve Battery Life

okay battery life is a whole vibe ๐Ÿ”‹. Methods have been developed to help save it; for example, a device might not wake up when the AP receives a multicast packet. The AP acts on behalf of STAs in various ways. To enable use of the power-saving feature for STAs in its BSS, the AP buffers frames for delivery to the STA at the time when the STA is scheduled for reception. If an AP, for instance, expresses a Delivery Traffic Indication Message (DTIM) of 3, then the AP will send a multicast packet every 3 packets. In fact, when any single wireless STA associated with an AP has 802.11 power-save mode enabled, the AP buffers all multicast frames and sends them only after the next DTIM beacon.

in practice, most APs will send a multicast every 30 packets ๐Ÿ™ˆ. For unicast, the AP could send a Traffic Indication Message (TIM), but, for multicast, the AP sends a broadcast to everyone. DTIM does power management, but STAs can choose whether to wake up and whether to drop the packet. Unfortunately, without proper administrative control, such STAs may be unable to determine why their multicast operations do not work. the plot twist nobody asked for ๐Ÿ’€

4.4. Limiting Multicast Buffer Hardware Queue Depth

the Content after Beacon (CAB) queue is used for beacon-triggered transmission of buffered multicast frames. If lots of multicast frames were buffered and this queue fills up, it drowns out all regular traffic ๐Ÿ˜ญ. To limit the damage that buffered traffic can do, some drivers limit the amount of queued multicast data to a fraction of the beacon_interval. An example of this is [CAB] ๐Ÿ›ก๏ธ.

4.5. IPv6 Support in 802.11-2012

IPv6 uses NDP instead of ARP. Every IPv6 node subscribes to a special multicast address for this purpose ๐ŸŽ€.

here's the spec language from clause 10.23.13 of [dot11-proxyarp], again, because it matters:

"When an IPv6 address is being resolved, the Proxy Neighbor Discovery service shall respond with a Neighbor Advertisement message [...] on behalf of an associated STA to an [ICMPv6] Neighbor Solicitation message [...]. When MAC address mappings change, the AP may send unsolicited Neighbor Advertisement Messages on behalf of a STA.

NDP may be used to request additional information using the following methods, among others:

  • Maximum Transmission Unit
  • Router Solicitation
  • Router Advertisement

NDP messages are sent as group-addressed (broadcast) frames in 802.11. Using the proxy operation helps to keep NDP messages off the wireless medium ๐Ÿ“.

4.6. Using Unicast Instead of Multicast

it is often possible to transmit multicast control and data messages by using unicast transmissions to each station individually ๐Ÿ’–.

4.6.1. Overview

in many situations, it's a good choice to use unicast instead of multicast over the Wi-Fi link ๐Ÿซถ. This avoids most of the problems specific to multicast over Wi-Fi, since the individual frames are then acknowledged and buffered for power-save clients in the way that unicast traffic normally operates.

this approach comes with the trade-off of sometimes sending the same packet multiple times over the Wi-Fi link. However, in many cases, such as video into a residential home network, this can be a good trade-off, since the Wi-Fi link may have enough capacity for the unicast traffic to be transmitted to each subscribed STA, even though multicast addressing may have been necessary for the upstream access network โœจ.

Several technologies exist that can be used to arrange unicast transport over the Wi-Fi link, outlined in the subsections below.

4.6.2. Layer 2 Conversion to Unicast

it is often possible to transmit multicast control and data messages by using unicast transmissions to each station individually (yes, I'm repeating it, it's that important ๐Ÿ˜ค).

Although there is not yet a standardized method of conversion, at least one widely available implementation exists in the Linux bridging code [bridge-mc-2-uc]. Other proprietary implementations are available from various vendors. In general, these implementations perform a straightforward mapping for groups or channels, discovered by IGMP or MLD snooping, to the corresponding unicast MAC addresses ๐ŸŒˆ.

4.6.3. Directed Multicast Service (DMS)

DMS enables an STA to request that the AP transmit multicast group-addressed frames destined to the requesting STAs as individually addressed frames (i.e., convert multicast to unicast). Here are some characteristics of DMS:

  • Requires 802.11n Aggregate MAC Service Data Units (A-MSDUs).
  • Individually addressed frames are acknowledged and are buffered for power-save STAs.
  • The requesting STA may specify traffic characteristics for DMS traffic.
  • DMS was defined in IEEE Std 802.11v-2011 [v2011].
  • DMS requires changes to both AP and STA implementation.

DMS is not currently implemented in products. See [Tramarin2017] and [Oliva2013] for more information ๐Ÿ“š.

4.6.4. Automatic Multicast Tunneling (AMT)

AMT [RFC7450] provides a method to tunnel multicast IP packets inside unicast IP packets over network links that only support unicast. When an operating system or application running on an STA has an AMT gateway capability integrated, it's possible to use unicast to traverse the Wi-Fi link by deploying an AMT relay in the non-Wi-Fi portion of the network connected to the AP ๐Ÿฆ‹.

it is recommended that multicast-enabled networks deploying AMT relays for this purpose make the relays locally discoverable with the following methods, as described in [RFC8777]:

  • DNS-based Service Discovery (DNS-SD) [RFC6763]
  • The well-known IP addresses from Section 7 of [RFC7450]

An AMT gateway that implements multiple standard discovery methods is more likely to discover the local multicast-capable network instead of forming a connection to a nonlocal AMT relay further upstream. that's the main character move, bestie ๐Ÿ‘‘๐Ÿ’…

4.7. GroupCast with Retries (GCR) โœจ

Okay bestie, GCR (defined in [dot11aa]) is giving reliability ๐Ÿ’–. It offers either unsolicited retries or a block acknowledgement mechanism, and it boosts the odds that a broadcast frame gets received successfully. It still doesn't guarantee success though ๐Ÿฅบ.

For the block acknowledgement mechanism, the AP sends each group-addressed frame as a conventional group-addressed transmission. The retransmissions are also group addressed, but they're hidden from non-11aa STAs ๐Ÿ™ˆ. A directed block acknowledgement scheme harvests reception status from the receivers, and the retransmissions are based on those responses.

GCR is suitable for all group sizes, including medium to large groups ๐Ÿซถ. As the group gets bigger, GCR can send block acknowledgement requests to only a small subset of the group. Just know that GCR does require changes to both AP and STA implementations ๐Ÿ› ๏ธ.

GCR may introduce unacceptable latency ๐Ÿ˜ญ. After sending a group of data frames to the group, the AP has to do the following:

  • Unicast a Block Ack Request (BAR) to a subset of members.
  • Wait for the corresponding Block Ack (BA).
  • Retransmit any missed frames.
  • Resume other operations that may have been delayed.

This latency may not be acceptable for some traffic ๐Ÿ’€.

There are ongoing extensions in 802.11 to improve GCR performance ๐Ÿ”ฅ:

  • BAR is sent using downlink Multi-User MIMO.
  • BA is sent using uplink MU-MIMO (uplink MU-MIMO is an IEEE 801.11ax-2021 feature).
  • Latency may also be reduced by simultaneously receiving BA information from multiple STAs.

5. Operational Optimizations ๐ŸŒธ

Okay so this section is all about operational optimizations you can actually put in place when you're deploying wireless IEEE 802 networks. The goal is to mitigate some of the issues we talked about in Section 3 ๐Ÿฆ‹.

5.1. Mitigating Problems from Spurious Neighbor Discovery ๐Ÿ•ต๏ธโ€โ™€๏ธ

ARP Sponges

An ARP Sponge sits on a network and learns which IP addresses are actually in use. It also listens for ARP requests, and if it sees an ARP for an IP address it believes is not used, it replies with its own MAC address. This means the router now has an IP-to-MAC mapping, which it caches ๐Ÿงฝ. If that IP is later assigned to a machine (for example, using DHCP), the ARP Sponge sees this and stops replying for that address. Gratuitous ARPs (or the machine ARPing for its gateway) replace the sponged address in the router ARP table.

This technique is quite effective โœจ. Unfortunately, the ARP Sponge daemons weren't really designed for this use. One of the most widely deployed ARP Sponges [arpsponge] was built to deal with participants disappearing from an Internet Exchange Point (IXP), so it isn't optimized for this purpose ๐Ÿ˜ฌ. One daemon is needed per subnet, and the tuning is tricky (the scanning rate versus the population rate versus retries, etc.). Sometimes the daemons just stop, which requires restarting the daemon, and that restart causes disruption.

Router mitigations

Some routers (often those based on Linux) implement a "negative ARP cache" daemon. If the router doesn't see a reply to an ARP, it can be configured to cache this information for some interval ๐Ÿ™Œ. Unfortunately, the core routers in use often don't support this. Instead, when a host connects to a network and gets an IP address, it ARPs for its default gateway (the router). The router then updates its cache with the IP-to-host MAC mapping learned from that request (passive ARP learning) ๐Ÿ“ฅ.

Firewall unused space

The distribution of users on wireless networks and subnets may change in various use cases, such as conference venues. For example, Service Set Identifiers (SSIDs) get renamed, and some SSIDs lose favor ๐ŸŽช. This makes utilization for particular SSIDs difficult to predict ahead of time, but usage can be monitored as attendees use the different networks ๐Ÿ‘€.

Configuring multiple DHCP pools per subnet and enabling them sequentially can create a large subnet from which only addresses in the lower portions are assigned ๐Ÿงฉ. Therefore, input IP access lists can be applied, which deny traffic to the upper, unused portions. Then the router doesn't attempt to forward packets to the unused portions of the subnets, and so it doesn't ARP for them. This method has proven to be very effective, but it's somewhat of a blunt axe ๐Ÿช“, it's fairly labor intensive, and it requires coordination.

Disabling/Filtering ARP requests

In general, the router doesn't need to ARP for hosts. When a host connects, the router can learn the IP-to-MAC mapping from the ARP request sent by that host. Consequently, it should be possible to disable and/or filter ARP requests from the router ๐Ÿค”. Unfortunately, ARP is a very low-level, fundamental part of the IP stack, and it's often offloaded from the normal control plane. While many routers can filter Layer 2 traffic, this is usually implemented as an input filter and/or has limited ability to filter output broadcast traffic. This means the seemingly simple and obvious solution to "just disable ARP or filter it outbound" gets made difficult or awkward in practice by implementations and/or architectural issues ๐Ÿ˜ค.

NAT

Broadcasts can often be caused by outside Wi-Fi scanning and backscatter traffic ๐Ÿ“ก. To reduce the impact of broadcasts, NAT can be used on the entire network (or a large portion of it). This would eliminate NAT translation entries for unused addresses, and the router would never ARP for them. There are, however, many reasons to avoid using NAT in such a blanket fashion ๐Ÿšซ.

Stateful firewalls

Another obvious solution would be to put a stateful firewall between the wireless network and the Internet. This firewall would block incoming traffic not associated with an outbound request. But this conflicts with the need and desire of some organizations to keep the network as open as possible and to honor the end-to-end principle ๐Ÿ•Š๏ธ. An attendee on a meeting network should be an Internet host and should be able to receive unsolicited requests. Unfortunately, keeping the network working and stable is the first priority, and a stateful firewall may be required in order to achieve this ๐Ÿ’œ.

5.2. Mitigating Spurious Service Discovery Messages ๐Ÿ“ฃ

In networks that must support hundreds of STAs, operators have observed network degradation due to many devices simultaneously registering with mDNS ๐Ÿ˜ตโ€๐Ÿ’ซ. In a network with many clients, it is recommended to ensure that mDNS packets designed to discover services in smaller home networks are constrained, so they don't disrupt other traffic ๐Ÿง˜โ€โ™€๏ธ.


6. Multicast Considerations for Other Wireless Media ๐ŸŒˆ

Many of the causes of performance degradation described in earlier sections are also observable for wireless media other than 802.11 ๐Ÿซ .

For instance, problems with power save, excess media occupancy, and poor reliability will also affect 802.15.3 and 802.15.4. Unfortunately, 802.15 media specifications don't yet include mechanisms similar to those developed for 802.11 ๐Ÿ˜ฉ. In fact, the design philosophy for 802.15 is oriented towards minimality, with the result that many such functions are relegated to operation within higher-layer protocols. This leads to a patchwork of non-interoperable and vendor-specific solutions ๐Ÿงต. See [uli] for additional discussion and a proposal for a task group to resolve similar issues, in which the multicast problems might be considered for mitigation.

Similar considerations hold for most other wireless media. A brief introduction is provided in [RFC5757] for the following:

  • 802.16 WiMAX
  • 3GPP/3GPP2
  • DVB-H/DVB-IPDC
  • TV Broadcast and Satellite Networks

7. Recommendations ๐Ÿ’…

This section provides some recommendations about the usage and combinations of some of the multicast enhancements described in Sections 4 and 5 ๐Ÿ“.

Future protocol documents utilizing multicast signaling should be carefully scrutinized if the protocol is likely to be used over wireless media ๐Ÿ”.

The use of proxy methods should be encouraged to conserve network bandwidth and power utilization by low-power devices ๐Ÿ”‹. The device can send a unicast message to its proxy, and then the proxy can take care of any needed multicast operations ๐Ÿงš.

Multicast signaling for wireless devices should be done in a way that is compatible with low duty-cycle operation ๐ŸŒ™.


8. Ongoing Discussion Items ๐Ÿง 

This section suggests two discussion items for further resolution ๐Ÿ’ญ.

First, standards (and private) organizations should develop guidelines to help clarify when multicast packets would be better served by being sent wired rather than wireless ๐Ÿ”Œ. For example, 802.1ak [IEEE802.1ak] works on both Ethernet and Wi-Fi, and organizations could help with deployment decision making by developing guidelines for multicast over Wi-Fi, including options for when traffic should be sent wired.

Second, reliable registration to Layer 2 multicast groups and a reliable multicast operation at Layer 2 might provide a good multicast over Wi-Fi solution ๐Ÿฅฐ. There shouldn't be a need to support 2^24 groups to get solicited node multicast working. It is possible to simply select a number of bits that make sense for a given network size, which limits the number of unwanted deliveries to reasonable levels. The IEEE 802.1, 802.11, and 802.15 Working Groups should be encouraged to revisit Layer 2 multicast issues and provide workable solutions ๐ŸŽ€.

9. Security Considerations ๐Ÿ”โœจ

Okay bestie, this section is serious, so let's be serious for a sec ๐Ÿ’…. This document does not add or change any security mechanisms ๐Ÿ™…โ€โ™€๏ธ. That said, multicast on wired or wireless networks (the stuff this whole doc is about) can be made more secure in a bunch of ways ๐Ÿ”’. For example, [RFC4601] says you can use IPsec to authenticate the link-local messages in the Protocol Independent Multicast - Sparse Mode (PIM-SM) routing protocol ๐Ÿ›ก๏ธ. And [RFC5796] lays out ways to authenticate those PIM-SM link-local messages using the IP security (IPsec) Encapsulating Security Payload (ESP) or, optionally, the Authentication Header (AH) ๐Ÿซถ.

Now the spicy part ๐ŸŒถ๏ธ๐Ÿ˜ญ. When you use mechanisms that turn multicast traffic into unicast traffic so it can cross radio links, the AP (or whatever other entity is doing it) is forced to explicitly keep track of which subscribers care about which multicast traffic ๐Ÿ“‹๐Ÿ‘€. Honestly, this is usually a reasonable trade-off ๐Ÿคทโ€โ™€๏ธ. But it does mean there's another entity keeping tabs on who subscribes to what ๐Ÿ•ต๏ธโ€โ™€๏ธ. That info is already tracked elsewhere (it has to be, by necessity), but this still expands the attack surface for information that could be privacy-sensitive ๐Ÿ™ˆ. Not okay, not okay ๐Ÿ’€.

Next, [group_key] points out that multicast over wireless media is unreliable, and that can cause sneaky problems with multicast group key management and updates ๐Ÿ”‘๐Ÿ˜ฌ. According to [group_key], when TKIP (WPA, now deprecated) or AES-CCMP (WPA2/WPA3) encryption is in use, AP-to-client (FromDS) multicasts have to be encrypted with a separate encryption key that every client knows. This is called the Group Key ๐Ÿ—๏ธโœจ. And the website goes on to say, "... most clients are able to get connected and surf the web, check email, etc. even when FromDS multicasts are broken. So a lot of people don't realize they have multicast problems on their network..." ๐Ÿ˜ญ Which is so relatable and so scary at the same time ๐Ÿ’€.

This document encourages using proxy methods to save network bandwidth and power on low-power devices ๐Ÿ”‹๐ŸŒธ. The thing is, proxy methods generally come with security considerations, because the proxy has to be trusted to not misbehave ๐Ÿšจ. One proxy method this doc lists is an ARP Sponge. It listens for ARP requests, and if it sees an ARP for an IP address it believes isn't used, it replies with its own MAC address ๐Ÿงš. Yikes. ARP poisoning and false advertising could potentially undermine this approach (and other proxy approaches too), for example through DoS ๐Ÿ’ฅ๐Ÿ˜ฑ. Protect your proxies, babes ๐Ÿ‘‘.


10. IANA Considerations ๐Ÿ“š๐ŸŽ€

This document has no IANA actions ๐ŸŒท. Nothing to register, nothing to update, nothing for IANA to do here, so we're chillin' ๐Ÿ˜Œ๐Ÿฆ‹.

11. Informative References โœจ

okay bestie, this is the reading list the authors used to back up everything above ๐Ÿ“š every entry is still here, word for word, so you can go find the originals yourself ๐Ÿ”


Acknowledgements ๐Ÿซถ

big thank-yous to the people who talked this through with the authors ๐Ÿ’œ (listed in alphabetical order, obviously): Mikael Abrahamsson, Bill Atwood, Stuart Cheshire, Donald Eastlake 3rd, Toerless Eckert, Jake Holland, Joel Jaeggli, Jan Komissar, David Lamparter, Morten Pedersen, Pascal Thubert, and Jeffrey (Zhaohui) Zhang. literal legends ๐Ÿ‘‘


Authors' Addresses ๐Ÿฆ‹

Here are the authors' contact details, exactly as written:

Charles E. Perkins
Lupin Lodge

Phone: +1 408 255 9223
Email: charliep@lupinlodge.com
Mike McBride
Futurewei Technologies Inc.
2330 Central Expressway
Santa Clara, CA 95055
United States of America

Email: michael.mcbride@futurewei.com
Dorothy Stanley
Hewlett Packard Enterprise
6280 America Center Dr.
San Jose, CA 95002
United States of America

Phone: +1 630 363 1389
Email: dorothy.stanley@hpe.com
Warren Kumari
Google
1600 Amphitheatre Parkway
Mountain View, CA 94043
United States of America

Email: warren@kumari.net
Juan Carlos Zรบรฑiga
SIGFOX
Montreal
Canada

Email: j.c.zuniga@ieee.org
๐Ÿ“ฆ where this page comes from