RFC 4907

Architectural Implications of Link Indications

๐Ÿ“… published June 2007, from ietf

okay bestie, this is RFC 4907 ๐ŸŽ€ and it's giving informational energy. It was put out by the Network Working Group in June 2007 and it's Category: Informational, which means it shares info and doesn't specify any Internet standard โœจ. The authors are B. Aboba, Ed. (the "Ed." means he was the editor who wrangled everyone's input ๐Ÿ’…) from the Internet Architecture Board (IAB). Its header has no Obsoletes or Updates line, so it doesn't list any RFCs it replaces or changes ๐ŸŒธ.


Status of This Memo ๐Ÿ’Œ

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

Copyright (C) The IETF Trust (2007).

Abstract ๐Ÿงš

A link indication is basically the link layer spilling the tea to higher layers about what's going on with the link ๐Ÿซ–. This doc explains the role of link indications in the Internet architecture. Using them judiciously can give you performance perks, but using them inappropriately can wreck both robustness and performance ๐Ÿ˜ญ. The doc sums up current proposals, digs into the architectural issues, and gives examples of appropriate and inappropriate uses of link indications.

Table of Contents ๐Ÿ“š

1. Introduction ....................................................3
   1.1. Requirements ...............................................3
   1.2. Terminology ................................................3
   1.3. Overview ...................................................5
   1.4. Layered Indication Model ...................................7
2. Architectural Considerations ...................................14
   2.1. Model Validation ..........................................15
   2.2. Clear Definitions .........................................16
   2.3. Robustness ................................................17
   2.4. Congestion Control ........................................20
   2.5. Effectiveness .............................................21
   2.6. Interoperability ..........................................22
   2.7. Race Conditions ...........................................22
   2.8. Layer Compression .........................................25
   2.9. Transport of Link Indications .............................26
3. Future Work ....................................................27
4. Security Considerations ........................................28
   4.1. Spoofing ..................................................28
   4.2. Indication Validation .....................................29
   4.3. Denial of Service .........................................30
5. References .....................................................31
   5.1. Normative References ......................................31
   5.2. Informative References ....................................31
6. Acknowledgments ................................................40
Appendix A. Literature Review .....................................41
  A.1. Link Layer .................................................41
  A.2. Internet Layer .............................................53
  A.3. Transport Layer ............................................55
  A.4. Application Layer ..........................................60
Appendix B. IAB Members ...........................................60

1. Introduction โœจ

bestie, here's the big picture ๐ŸŒˆ. A link indication is info the link layer hands up to higher layers about the state of the link. Judicious use can give performance benefits, but inappropriate use can degrade both robustness and performance ๐Ÿ™ˆ.

This doc sums up how people currently understand the role of link indications in the Internet architecture, and it gives advice to document authors on using them well across the Internet, transport, and application layers ๐Ÿ’–.

Section 1 describes the history of link indication usage within the Internet architecture and provides a model for using link indications. Section 2 describes the architectural considerations and provides advice to document authors. Section 3 describes recommendations and future work. Appendix A summarizes the literature on link indications, focusing largely on wireless Local Area Networks (WLANs) ๐Ÿ“ก.

1.1. Requirements ๐Ÿซถ

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

1.2. Terminology ๐Ÿ“–

okay, the glossary moment ๐Ÿง . These are the terms the rest of the doc leans on, so let's get them down pat ๐Ÿ’….

Access Point (AP): a station that gives access to the fixed network (for example, an 802.11 Distribution System) through the wireless medium (WM) for its associated stations ๐Ÿ“ถ.

Asymmetric: a link is asymmetric when its transmission characteristics differ depending on the relative position or design of the transmitter and receiver. For instance, one transmitter might have way more range than another on the same medium ๐Ÿ”Š. Lowkey unfair, but it happens.

Beacon: a control message a station (usually an Access Point) broadcasts to tell nearby stations it's still around, possibly with extra status or configuration info ๐Ÿ”†.

Binding Update (BU): a message saying what a mobile node's current mobility binding is, especially its Care-of Address ๐Ÿ .

Correspondent Node: a peer node that a mobile node is communicating with. The correspondent node can be mobile or stationary ๐Ÿค.

Link: a communication facility or medium that nodes can communicate over at the link layer, meaning the layer immediately below the Internet Protocol (IP) ๐Ÿ”—.

Link Down: an event from the link layer that signals a state change where the interface is no longer able to communicate data frames. Brief periods of high frame loss don't count, so don't freak out over a little turbulence ๐Ÿ˜ค.

Link Indication: information the link layer gives higher layers about the state of the link โœจ.

Link Layer: the conceptual layer of control or processing logic that keeps control of the link. It's the interface between higher-layer logic and the link, and it sits immediately below IP ๐Ÿงฑ.

Link Up: an event from the link layer that signals a state change where the interface becomes able to communicate data frames ๐ŸŸข.

Maximum Segment Size (MSS): the maximum payload size available to the transport layer ๐Ÿ“ฆ.

Maximum Transmission Unit (MTU): the size in octets of the largest IP packet, including the IP header and payload, that can be sent on a link or path ๐Ÿ“.

Mobile Node: a node that can switch its point of attachment from one link to another and still be reachable through its home address ๐Ÿงณ.

Operable Address: a static or dynamically assigned address that hasn't been relinquished and hasn't expired โณ.

Point of Attachment: the endpoint on the link that the host is currently connected to ๐Ÿ“.

Routable Address: any IP address that routers will forward packets for. This includes private addresses from "Address Allocation for Private Internets" [RFC1918] ๐Ÿ—บ๏ธ.

Station (STA): any device that has an IEEE 802.11 conformant medium access control (MAC) and physical layer (PHY) interface to the wireless medium (WM) ๐Ÿ“ฑ.

Strong End System Model: this one puts the host/router distinction front and center and tends to model a multi-homed host as a set of logical hosts inside the same physical host ๐Ÿฐ. Addresses refer to an interface, not to the host they attach to. So packets sent out an outgoing interface have a source address configured on that interface, and incoming packets whose destination address doesn't match the physical interface they came in on are silently discarded ๐Ÿคซ.

Weak End System Model: in this model, addresses refer to a host ๐Ÿซ‚. Packets sent out an outgoing interface don't necessarily need a source address configured on that interface, and incoming packets whose destination address doesn't match the physical interface they came in on are accepted ๐ŸŒŠ.

to be continued... 1.3 Overview is up next, bestie ๐Ÿฆ‹๐Ÿ’œ

1.3. Overview โœจ

okay so link indications have a long history in the Internet architecture ๐Ÿฆ‹ Back in the ARPANET days, if you tried sending to a host that was offline, the link layer protocol gave you a "Destination Dead" indication, described in "Fault Isolation and Recovery" [RFC816]. ๐ŸŒธ The ARPANET packet radio experiment [PRNET] counted frame loss in its routing metrics, which was basically the ancestor of newer link-aware metrics like Expected Transmission Count (ETX), described in "A High-Throughput Path Metric for Multi-Hop Wireless Routing" [ETX]. Iconic behavior, honestly ๐Ÿ’…

"Routing Information Protocol" [RFC1058] defined RIP, which is descended from the Xerox Network Systems (XNS) Routing Information Protocol ๐Ÿงš "The OSPF Specification" [RFC1131] defined Open Shortest Path First, which uses Link State Advertisements (LSAs) to flood link status information within an OSPF area. [RFC2328] defines version 2 of OSPF. These routing protocols can use "Link Up" and "Link Down" indications from links that provide them, but they can also detect link loss by noticing when routing packets stop arriving. As noted in "Requirements for IP Version 4 Routers" [RFC1812]:

It is crucial that routers have workable mechanisms for determining that their network connections are functioning properly. Failure to detect link loss, or failure to take the proper actions when a problem is detected, can lead to black holes.

People have also tried defining link indications beyond "Link Up" and "Link Down" ๐ŸŒˆ "Dynamically Switched Link Control Protocol" [RFC1307] is an experimental protocol for controlling links, with "Down", "Coming Up", "Up", "Going Down", "Bring Down", and "Bring Up" states. Very dramatic, very kind of a lot ๐Ÿ’€

"A Generalized Model for Link Layer Triggers" [GenTrig] defines "generic triggers", including "Link Up", "Link Down", "Link Going Down", "Link Going Up", "Link Quality Crosses Threshold", "Trigger Rollback", and "Better Signal Quality AP Available" ๐Ÿ“ IEEE 802.21 [IEEE-802.21] defines a Media Independent Handover Event Service (MIH-ES) that reports events about link characteristics, link status, and link quality. Its events include "Link Down", "Link Up", "Link Going Down", "Link Signal Strength", and "Link Signal/Noise Ratio" โœจ

Under ideal conditions, links in the "up" state have low frame loss in both directions and are immediately ready to send and receive data frames. Links in the "down" state are unsuitable for sending and receiving data frames in either direction. Simple enough, right? ๐Ÿซถ

Unfortunately, links are not always ideal ๐Ÿ˜ญ Wired links may fail in half-duplex mode, or get partially impaired and show intermediate loss rates. Wireless links may be asymmetric, drop frames intermittently, or have throughput that changes rapidly due to interference or signal fading. In both wired and wireless links, the link state can rapidly flap between "up" and "down" ๐Ÿ™ˆ This real-world chaos makes it hard to integrate link indications with the Internet, transport, and application layers. Not me being stressed about it ๐Ÿ’œ

1.4. Layered Indication Model ๐ŸŽ€

A layered indication model is shown in Figure 1. It includes both internally generated link indications (such as link state and rate) and indications from external interactions, such as path change detection. In this model, the link layer is assumed to provide indications to higher layers primarily as abstract indications that are link-technology agnostic. Abstraction queen behavior ๐Ÿ‘‘

              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Application   |                                               |
Layer         |                                               |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                            ^     ^   ^
                                            !     !   !
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!-+-+-!-+-!-+-+-+-+
              |                             !     !   !       |
              |                             !     ^   ^       |
              |     Connection Management   !     ! Teardown  |
Transport     |                             !     !           |
Layer         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!-+-+-!-+-+-+-+-+-+
              |                             !     !           |
              |                             !     !           |
              |                             ^     !           |
              |  Transport Parameter Estimation   !           |
              |(MSS, RTT, RTO, cwnd, bw, ssthresh)!           |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!-+-+-+-+-+-+
                ^   ^           ^       ^   ^     !
                !   !           !       !   !     !
              +-!-+-!-+-+-+-+-+-!-+-+-+-!-+-!-+-+-!-+-+-+-+-+-+
              | !   ! Incoming  !MIP    !   !     !           |
              | !   ! Interface !BU     !   !     !           |
              | !   ! Change    !Receipt!   !     !           |
              | !   ^           ^       ^   !     ^           |
Internet      | !   ! Mobility  !       !   !     !           |
Layer         +-!-+-!-+-+-+-+-+-!-+-+-+-!-+-!-+-+-!-+-+-+-+-+-+
              | !   ! Outgoing  ! Path  !   !     !           |
              | !   ! Interface ! Change!   !     !           |
              | ^   ^ Change    ^       ^   !     ^           |
              | !                       !   !     !           |
              | !     Routing           !   !     !           |
              +-!-+-+-+-+-+-+-+-+-+-+-+-!-+-!-+-+-!-+-+-+-+-+-+
              | !                       !   v     ! IP        |
              | !                       !  Path   ! Address   |
              | !   IP Configuration    ^  Info   ^ Config/   |
              | !                       !  Cache    Changes   |
              +-!-+-+-+-+-+-+-+-+-+-+-+-!-+-+-+-+-+-+-+-+-+-+-+
                !                       !
                !                       !
              +-!-+-+-+-+-+-+-+-+-+-+-+-!-+-+-+-+-+-+-+-+-+-+-+
              | !                       !                     |
Link          | ^                       ^                     |
Layer         | Rate, FER,            Link                    |
              | Delay                 Up/Down                 |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Figure 1.  Layered Indication Model

1.4.1. Internet Layer ๐ŸŒท

One of the jobs of the Internet layer is to shield higher layers from the specifics of link behavior. So the Internet layer validates and filters link indications, and selects outgoing and incoming interfaces based on routing metrics. It's the bouncer, but make it aesthetic ๐Ÿงš

The Internet layer builds its routing table from information available on local interfaces, and potentially also from information provided by routers. This means the local routing table can reflect link conditions on both local and remote links. For example, prefixes to be added or removed from the routing table may be determined from Dynamic Host Configuration Protocol (DHCP) [RFC2131][RFC3315], Router Advertisements [RFC1256][RFC2461], redirect messages, or route updates that include information on the state of links multiple hops away. Main character energy across the whole network ๐Ÿ’–

As described in "Packetization Layer Path MTU Discovery" [RFC4821], the Internet layer may maintain a path information cache, which lets Path MTU information be shared between concurrent or later connections. The shared cache is accessed and updated by packetization protocols that implement packetization layer Path MTU Discovery ๐Ÿ“

The Internet layer also uses link indications to optimize parts of Internet Protocol (IP) configuration and mobility ๐Ÿฆ‹ After receiving a "Link Up" indication, hosts validate potential IP configurations by Detecting Network Attachment (DNA) [RFC4436]. Once the IP configuration is confirmed, it may turn out that an address change has occurred. However, "Link Up" indications do not necessarily result in a change to Internet layer configuration. Plot twist ๐Ÿ™ƒ

In "Detecting Network Attachment in IPv4" [RFC4436], after receiving a "Link Up" indication, potential IP configurations are validated using a bidirectional reachability test. In "Detecting Network Attachment in IPv6 Networks (DNAv6)" [DNAv6], IP configuration is validated using reachability detection and Router Solicitation/Advertisement ๐Ÿ”ฅ

The routing sub-layer may use link indications to respond more quickly to changes in link state and effective throughput. Link rate is often used when computing routing metrics. However, in wired networks the transmission rate may be negotiated in order to enhance energy efficiency [EfficientEthernet]. In wireless networks, the negotiated rate and Frame Error Rate (FER) may change with link conditions, so effective throughput may vary on a packet-by-packet basis. In situations like these, routing metrics may also vary rapidly โšก

Routing metrics that incorporate link indications, such as Link Up/Down and effective throughput, let routers take link conditions into account when selecting routes. If a link experiences decreased rate or high frame loss, the route metric increases for the prefixes it serves, which encourages use of alternate paths if they're available. When the link condition improves, the route metric decreases, which encourages use of the link again ๐ŸŒˆ

Within Weak End System implementations, changes in routing metrics and link state may result in a change of outgoing interface for one or more transport connections. Routes may also be added or withdrawn, which results in loss or gain of peer connectivity. However, link indications such as changes in transmission rate or frame loss do not necessarily result in a change of outgoing interface ๐Ÿ‘‘

The Internet layer may also become aware of path changes through other mechanisms, such as receiving updates from a routing protocol, receiving a Router Advertisement, dead gateway detection [RFC816] or network unreachability detection [RFC2461], ICMP redirects, or a change in the IPv4 TTL (Time to Live)/IPv6 Hop Limit of received packets. A change in the outgoing interface may in turn influence the mobility sub-layer, causing a change in the incoming interface. The mobility sub-layer may also become aware of a change in the incoming interface of a peer (via receipt of a Mobile IP Binding Update [RFC3775]) ๐Ÿซถ

1.4.2. Transport Layer โœจ

okay so the transport layer looks at link indications in two totally different ways ๐Ÿ’… one for figuring out how the path is performing, and one for managing the connection itself. layering is the vibe here ๐ŸŽ€

For parameter estimation, the transport layer mostly cares about path properties that affect performance. If a link indication seems relevant to those properties, it can be used directly ๐Ÿฆ‹ Things like "Link Up"/"Link Down" or changes in rate, delay, and frame loss may be relevant. but it's not always the case! if the bottleneck bandwidth on the end-to-end path is already way lower than the transmission rate, a rate increase might not change the path properties at all ๐Ÿ™ˆ As described in Appendix A.3, the algorithms for using link layer indications to improve transport parameter estimates are still under development ๐Ÿ› ๏ธ

strict layering doesn't apply to transport path parameter estimation. this lets the transport layer use all the info it can get ๐ŸŒˆ For example, the transport layer may figure out that a link indication came from a link that's part of the path for one or more connections. in that case, it may use a "Link Down" indication followed by a later "Link Up" indication to infer that non-congestive packet loss might have happened in between. this can happen even if the IP configuration doesn't change, so no Internet layer indication gets sent ๐Ÿงš

the transport layer may also find Internet layer indications helpful for parameter estimation. for example, path change indications can be used as a signal to reset path parameter estimates ๐Ÿ”„ If there's no default route, loss of segments sent to a destination that doesn't have a prefix in the local routing table may be assumed to be caused by something other than congestion. this holds regardless of why the route was removed, whether local link conditions removed it or a remote router withdrew it ๐Ÿ’€

now for connection management, where layering really matters ๐Ÿซถ The transport layer may tear down a connection based on Internet layer indications (such as endpoint address changes), but it does not take link indications into account. just like a "Link Up" event may not cause a configuration change, and a configuration change may not cause connection teardown, the transport layer does not tear down connections when it receives a "Link Down" indication, no matter the cause ๐Ÿ˜ญ When the "Link Down" indication comes from frame loss rather than an explicit exchange, it may be transient and soon followed by a "Link Up" indication โœจ

even when the "Link Down" indication comes from an explicit exchange, like receipt of a Point-to-Point Protocol (PPP) Link Control Protocol (LCP)-Terminate or an IEEE 802.11 Disassociate or Deauthenticate frame, an alternative point of attachment may be available. that means connectivity can be restored quickly ๐ŸŒธ So robustness is best achieved by letting connections stay up until an endpoint address changes, or until the connection is torn down because of a lack of response to repeated retransmission attempts ๐Ÿ‘‘

for connection management, the transport layer is also careful about how it uses Internet layer indications ๐Ÿง Changes in the routing table are not relevant for connection management, because connections should stay up during temporary routing flaps ๐Ÿฆ‹ Still, the transport layer may tear down transport connections when a connection endpoint IP address gets invalidated. If the connection was set up using a Mobile IP home address, a change in the Care-of Address doesn't need to cause teardown. the configuration change is hidden by the mobility functionality in the Internet layer, so the transport layer never sees it ๐ŸŽ€

"Requirements for Internet Hosts -- Communication Layers" [RFC1122], Section 2.4, requires Destination Unreachable, Source Quench, Echo Reply, Timestamp Reply, and Time Exceeded ICMP messages to be passed up to the transport layer ๐Ÿ“ฌ [RFC1122], Section 4.2.3.9, requires Transmission Control Protocol (TCP) to react to an Internet Control Message Protocol (ICMP) Source Quench by slowing transmission ๐Ÿข

[RFC1122], Section 4.2.3.9, separates ICMP messages that indicate soft error conditions, which must not cause TCP to abort a connection, from hard error conditions, which should cause an abort ๐Ÿง  ICMP messages indicating soft error conditions include Destination Unreachable codes 0 (Net), 1 (Host), and 5 (Source Route Failed), which may come from routing transients. They also include Time Exceeded and Parameter Problem ๐ŸŒ€ ICMP messages indicating hard error conditions include Destination Unreachable codes 2 (Protocol Unreachable), 3 (Port Unreachable), and 4 (Fragmentation Needed and Don't Fragment Was Set) ๐Ÿ’ฅ Hosts implementing classical ICMP-based Path MTU Discovery [RFC1191] use Destination Unreachable code 4, so they don't treat it as a hard error condition ๐Ÿ™ƒ Hosts implementing "Path MTU Discovery for IP version 6" [RFC1981] use ICMPv6 Packet Too Big messages ๐Ÿ“ฆ

as "TCP Problems with Path MTU Discovery" [RFC2923] points out, classical Path MTU Discovery can fail if ICMP messages aren't delivered or processed ๐Ÿ˜ฌ To fix this, "Packetization Layer Path MTU Discovery" [RFC4821] does depend on ICMP messages being delivered ๐Ÿ›Ÿ

"Fault Isolation and Recovery" [RFC816], Section 6, says:

It is not obvious, when error messages such as ICMP Destination Unreachable arrive, whether TCP should abandon the connection. The reason that error messages are difficult to interpret is that, as discussed above, after a failure of a gateway or network, there is a transient period during which the gateways may have incorrect information, so that irrelevant or incorrect error messages may sometimes return. An isolated ICMP Destination Unreachable may arrive at a host, for example, if a packet is sent during the period when the gateways are trying to find a new route. To abandon a TCP connection based on such a message arriving would be to ignore the valuable feature of the Internet that for many internal failures it reconstructs its function without any disruption of the end points.

"Requirements for IP Version 4 Routers" [RFC1812], Section 4.3.3.3, states that "Research seems to suggest that Source Quench consumes network bandwidth but is an ineffective (and unfair) antidote to congestion", which means routers should not originate them ๐Ÿ™…โ€โ™€๏ธ In general, the transport layer can work out a suitable (and conservative) response to congestion based on packet loss or explicit congestion notification. so ICMP Source Quench indications aren't needed, and sending extra Source Quench packets during congestion may actually make things worse ๐Ÿ˜ค

"ICMP attacks against TCP" [Gont] argues that accepting ICMP messages based only on a correct four-tuple, without extra security checks, is ill-advised ๐Ÿšจ For example, an attacker who forges an ICMP hard error message can make one or more transport connections abort ๐Ÿ˜ฑ The authors discuss several precautions, including mechanisms for validating ICMP messages and ignoring or delaying responses to hard error messages under various conditions ๐Ÿ” They also recommend that hosts ignore ICMP Source Quench messages ๐Ÿ™ˆ

the transport layer may also give information to the link layer ๐Ÿงต For example, the transport layer may want to control the maximum number of times a link layer frame can be retransmitted, so the link layer doesn't keep retransmitting after a transport layer timeout ๐Ÿ” In IEEE 802.11, this can be done by adjusting the Management Information Base (MIB) [IEEE-802.11] variables dot11ShortRetryLimit (default: 7) and dot11LongRetryLimit (default: 4). These control the maximum number of retries for frames shorter and longer than dot11RTSThreshold, respectively ๐Ÿ“Š However, since these variables control link behavior as a whole, they can't be used to adjust behavior separately for each transport connection ๐Ÿ™…โ€โ™€๏ธ When the link layer retransmission timeout is about the same order of magnitude as the path round-trip timeout, link layer control may not be possible at all ๐Ÿซ 


1.4.3. Application Layer ๐ŸŒท

the transport layer gives indications to the application layer by passing along Internet layer indications (such as IP address configuration and changes), and by providing its own indications, like connection teardown ๐Ÿ“ฃ

applications can usually get the info they need more reliably from the Internet and transport layers, so they typically don't need to use link indications ๐Ÿงšโ€โ™€๏ธ A "Link Up" indication means the link can carry IP packets, but it does not mean the link has been configured. applications should use an Internet layer "IP Address Configured" event instead ๐ŸŽฏ "Link Down" indications are typically not useful to applications, since they can be quickly followed by a "Link Up" indication. applications should respond to transport layer teardown indications instead ๐Ÿ”— Similarly, changes in the transmission rate may not matter to applications if the bottleneck bandwidth on the path doesn't change, and the transport layer is best placed to figure that out ๐Ÿ“ˆ So Figure 1 does not show link indications being given directly to applications ๐Ÿ–ผ๏ธ

2. Architectural Considerations โœจ

okay so this part is where the architecture stuff gets real ๐Ÿ’… link indications are super useful, but they're also kinda tricky to use well, so the doc gives us some principles to keep us out of trouble ๐Ÿซถ here they are, and each one gets its own section below:

  1. Proposals should avoid use of simplified link models in circumstances where they do not apply (Section 2.1).
  2. Link indications should be clearly defined, so that it is understood when they are generated on different link layers (Section 2.2).
  3. Proposals must demonstrate robustness against spurious link indications (Section 2.3).
  4. Upper layers should utilize a timely recovery step so as to limit the potential damage from link indications determined to be invalid after they have been acted on (Section 2.3.2).
  5. Proposals must demonstrate that effective congestion control is maintained (Section 2.4).
  6. Proposals must demonstrate the effectiveness of proposed optimizations (Section 2.5).
  7. Link indications should not be required by upper layers, in order to maintain link independence (Section 2.6).
  8. Proposals should avoid race conditions, which can occur where link indications are utilized directly by multiple layers of the stack (Section 2.7).
  9. Proposals should avoid inconsistencies between link and routing layer metrics (Section 2.7.3).
  10. Overhead reduction schemes must avoid compromising interoperability and introducing link layer dependencies into the Internet and transport layers (Section 2.8).
  11. Proposals for transport of link indications beyond the local host need to carefully consider the layering, security, and transport implications (Section 2.9).

2.1. Model Validation

okay this one is my fave ๐Ÿ”ฅ the big idea is don't pretend your link model fits every situation when it doesn't. proposals should avoid using link models in circumstances where they don't apply ๐Ÿ’€

"The mistaken axioms of wireless-network research" [Kotz] is the paper that says wrong assumptions about link behavior can lead to protocols that just don't work in practice ๐Ÿ˜ญ one example: wireless propagation is three-dimensional, so the signal strength can change a LOT over a short distance. that means link indications like rate, frame loss, and signal strength can swing really fast. so chaotic ๐Ÿ™ˆ

"Modeling Wireless Links for Transport Protocols" [GurtovFloyd] goes through modeling mistakes and shows how to model link characteristics better. the authors also made simulation scenarios in ns-2 to go with it ๐Ÿงš

so to dodge the traps in [Kotz] [GurtovFloyd], any doc describing capabilities that depend on link indications should explicitly spell out the assumptions of its link model and say when those assumptions apply. no vibes-based modeling allowed ๐Ÿ’…

generic "trigger" models can hide implicit assumptions that may turn out to be invalid in outdoor or mesh wireless LAN deployments โœจ for example, two-state Markov models assume the link is either in a state with low frame loss ("up") or a state where few frames get through ("down"). those models also usually assume symmetry, so the link is "up" in both directions or "down" in both directions. but when you're dealing with intermediate loss rates, those assumptions may not hold ๐Ÿ˜ฉ

as noted in "Hybrid Rate Control for IEEE 802.11" [Haratcherev], signal strength data is noisy and sometimes inconsistent, so it needs filtering to avoid erratic results ๐ŸŒธ that means link indications based on raw signal strength may be unreliable. the fix is to combine signal strength data with other techniques. for example, if you're developing a "Going Down" indication for use with [IEEE-802.21], it would be advisable to validate filtered signal strength measurements with other indications of link loss, such as lack of Beacon reception ๐Ÿซถ

2.2. Clear Definitions

link indications should be clearly defined, so it's understood when they get generated on different link layers ๐Ÿ’– like, a lot of work went into coming up with the definitions of "Link Up" and "Link Down" and figuring out when those indications get sent on the various link layers. it's a whole thing ๐Ÿ˜ญ

so here's the advice for link indication definitions:

  1. Do not assume symmetric link performance or frame loss that is either low ("up") or high ("down").

in wired networks, links in the "up" state typically have low frame loss in both directions and are ready to send and receive data frames ๐Ÿฆ‹ links in the "down" state are unsuitable for sending and receiving data frames in either direction. so a link giving a "Link Up" indication will typically have low frame loss both ways, and high frame loss in any direction can only show up after the link gives a "Link Down" indication. BUT these assumptions may not hold for wireless LAN networks ๐Ÿ’€ asymmetry is typically less of a problem for cellular networks, where propagation happens over longer distances, multi-path effects may be less severe, and the base station can transmit at much higher power than mobile stations while using a more sensitive antenna ๐Ÿ“ก

specs using a "Link Up" indication should not assume that getting it means the link has symmetric conditions or low frame loss in either direction ๐Ÿ™…โ€โ™€๏ธ in general, a "Link Up" event should not be sent because of transient changes in link conditions, only because of a change in link layer state. it's best to assume a "Link Up" event may not be sent in a timely way. large handoff latencies can delay the "Link Up" event, since movement to an alternative point of attachment gets delayed too ๐Ÿข

  1. Consider how sensitive link indications are to transient link conditions ๐Ÿ‘€ because of stuff like multi-path interference, signal strength and signal to noise ratio (SNR) can change rapidly over a short distance. that can make link indications based on unfiltered measurements act erratically ๐ŸŒ€ as noted in [Haratcherev], signal strength may be most useful when combined with other measurements, like frame loss.
  2. Where possible, design link indications with built-in damping ๐Ÿงธ by design, the "Link Up" and "Link Down" events are about changes in the link layer state that make it able or unable to communicate IP packets. those changes come from the link layer state machine based on link layer exchanges (for example, completing the IEEE 802.11i four-way handshake for "Link Up", or receiving a PPP LCP-Terminate for "Link Down"), or from protracted frame loss, so the link layer concludes the link is no longer usable. so these indications are typically less sensitive to transient link conditions โœจ
  3. Do not assume that a "Link Down" event will be sent at all, or that, if it is sent, it will be received in a timely way ๐Ÿ˜ฌ a good link layer implementation will rapidly detect connectivity failure (such as by tracking missing Beacons) while only sending a "Link Down" event when it concludes the link is unusable, not because of transient frame loss ๐ŸŽ€

however, existing wireless LAN implementations often don't do a great job detecting link failure ๐Ÿ˜ค during a lengthy detection phase, no "Link Down" event is sent by the link layer, even though IP packets can't be sent or received on the link. starting a scan may get delayed, so the station can't find another point of attachment. this can lead to inappropriate backoff of retransmission timers in the transport layer, among other problems ๐Ÿ’” this isn't as big a deal for cellular networks that use transmit power adjustment ๐Ÿ“ถ

2.3. Robustness

link indication proposals must demonstrate robustness against misleading indications ๐Ÿ›ก๏ธ things to think about include:

  • Implementation variation
  • Recovery from invalid indications
  • Damping and hysteresis

2.3.1. Implementation Variation

okay bestie, link layer implementations are NOT all the same ๐Ÿ˜ญ and that can seriously change how link indications behave ๐Ÿ’… so when you're judging a proposal, you have to account for it. radio propagation and implementation differences can totally mess with how reliable link indications are ๐Ÿ“ก

in "Link-level Measurements from an 802.11b Mesh Network" [Aguayo], the authors investigated why frames were getting lost in a 38-node urban multi-hop IEEE 802.11 ad-hoc network ๐ŸŒ† mostly, links that are super bad in one direction are also bad in the other direction, and links that are super good one way are good the other way too ๐Ÿซถ but ngl, 30 percent of links had loss rates that were wildly different in each direction ๐Ÿ™ˆ asymmetry is real, bestie.

as [Aguayo] describes, wireless LAN links often have loss rates somewhere in between "up" (low loss) and "down" (high loss) ๐ŸŒˆ and they can be very asymmetric too. so receiving a "Link Up" indication may not actually mean bidirectional reachability ๐Ÿ˜ฌ it could have been generated after only small frames got exchanged at low rates, and that doesn't guarantee the link can handle large frames exchanged at higher rates ๐Ÿ’€

where there's multi-path interference or hidden nodes, signal strength can swing a lot over a short distance ๐Ÿ“ถ there are a few techniques to reduce the mess ๐Ÿงน multiple transmitting and receiving antennas can reduce multi-path effects, transmission rate adaptation can help find a more satisfactory transmission rate, transmit power adjustment can improve signal quality and reduce interference, and Request-to-Send/Clear-to-Send (RTS/CTS) signaling can reduce hidden node problems ๐Ÿฆ‹ but these techniques may not be completely effective, so high frame loss can still happen, and the link can keep cycling between "up" and "down" states ๐ŸŽข

to make things more robust against spurious link indications, it is recommended that upper layers treat the indication as a "hint" (advisory in nature) rather than a "trigger" that dictates a particular action โœจ that way, upper layers can go validate the hint first ๐Ÿ” the vibe is literally "verify before you act" ๐Ÿ’–

in [RFC4436], "Link Up" indications are rate limited, and the IP configuration gets confirmed with bidirectional reachability tests that run at the same time as a DHCP configuration request ๐ŸŽ€ so bidirectional reachability is confirmed before an IP configuration gets activated ๐Ÿ‘‘ however, if a link has an intermediate loss rate, showing bidirectional reachability may still not mean the link is suitable for carrying IP data packets ๐Ÿ˜…

another validation example is IPv4 Link-Local address configuration [RFC3927] ๐Ÿ  before configuring an IPv4 Link-Local address, a claim-and-defend protocol has to be run ๐ŸฅŠ a host needs to be present to defend its address against another claimant, and address conflicts are relatively likely. so a host returning from sleep mode, or one that receives a "Link Up" indication, could run into an address conflict if it used a formerly configured IPv4 Link-Local address without rerunning claim and defend ๐Ÿ’€ no thank you ๐Ÿ™…โ€โ™€๏ธ

2.3.2. Recovery from Invalid Indications

okay so, improper use of link indications can cause operational malfunctions ๐Ÿ˜ฉ so it is recommended that upper layers use a timely recovery step to limit the potential damage from link indications that turn out to be invalid after they've already been acted on ๐Ÿ›Ÿ

in Detecting Network Attachment in IPv4 (DNAv4) [RFC4436], reachability tests run at the same time as a DHCP configuration request ๐Ÿค so if the bidirectional reachability test times out, the host can still obtain an IP configuration via DHCP. and if that fails, the host can still keep using an existing valid address if it has one ๐ŸŒธ that's a solid safety net, honestly ๐Ÿงš

where a proposal involves recovery at the transport layer, the recovered transport parameters should be demonstrated to remain valid ๐Ÿ“Š the examples here are the Maximum Segment Size (MSS), RoundTrip Time (RTT), Retransmission TimeOut (RTO), Bandwidth (bw), congestion window (cwnd), and so on ๐Ÿงฎ congestion window validation is discussed in "TCP Congestion Window Validation" [RFC2861] ๐ŸŒŠ

if timely recovery isn't supported, unexpected consequences can happen ๐Ÿšจ as [RFC3927] describes, early IPv4 Link-Local implementations would wait five minutes before trying to obtain a routable address after assigning an IPv4 Link-Local address โณ one implementation was observed where mobile hosts changed their point of attachment more often than every five minutes, and they never got a routable address ๐Ÿ˜ญ the problem was an invalid link indication (signaling "Link Up" before link layer authentication was complete), which caused an initial failure to obtain a routable address using DHCP ๐Ÿ’” because of this, [RFC3927] recommends against modifying the maximum retransmission timeout (64 seconds) provided in [RFC2131] ๐Ÿ™…โ€โ™€๏ธ

2.3.3. Damping and Hysteresis

damping and hysteresis can be used to limit the damage from unstable link indications ๐ŸŒ€ this can include damping unstable indications, or putting constraints on how often link indication-induced actions can happen within a time period โฑ๏ธ basically, chill out, bestie ๐Ÿง˜โ€โ™€๏ธ

while [Aguayo] found that frame loss was relatively stable for stationary stations, obstacles to radio propagation and multi-path interference can cause rapid changes in signal strength for a mobile station ๐Ÿƒโ€โ™€๏ธ๐Ÿ’จ so mobile stations can run into rapid changes in link characteristics, like changes in transmission rate, throughput, frame loss, and even "Link Up"/"Link Down" indications ๐ŸŽข

where link-aware routing metrics are implemented, this can cause rapid metric changes ๐Ÿ“‰ which could lead to frequent changes in the outgoing interface for Weak End System implementations ๐Ÿ” so it may be necessary to introduce route flap dampening ๐Ÿ›‘

BUT the benefits of damping have to be weighed against the additional latency it can introduce โš–๏ธ for example, to filter out spurious "Link Down" indications, those indications may be delayed until it can be determined that a "Link Up" indication won't follow shortly after ๐Ÿ™ƒ however, when multiple Beacons are missed, that delay may not be needed, since there's no evidence of a suitable point of attachment nearby ๐Ÿ“ก

in some cases, it's desirable to ignore link indications entirely ๐Ÿ™ˆ since a host can move from an ad-hoc network to a network with centralized address management, a host that gets a "Link Up" indication can't automatically conclude it should configure an IPv4 Link-Local address ๐Ÿ  before figuring out whether a DHCP server is available [RFC3927] or whether an operable configuration is valid [RFC4436] ๐Ÿซถ

as noted in Section 1.4, the transport layer does not use "Link Up" and "Link Down" indications for connection management ๐ŸŒท

2.4. Congestion Control

okay this part is SO important ๐Ÿ”ฅ link indication proposals must demonstrate that effective congestion control is maintained [RFC2914] ๐Ÿ’ช one or more of the following techniques may be used:

  • Rate limiting. packets generated from link indications can be rate limited (for example, a limit of one packet per end-to-end path RTO) โฒ๏ธ
  • Utilization of upper-layer indications. applications should depend on upper-layer indications, like IP address configuration/change notification, instead of using link indications such as "Link Up" ๐Ÿง 
  • Keepalives. to improve robustness against spurious link indications, an application keepalive or transport layer indication (like connection teardown) can be used instead of consuming "Link Down" indications ๐Ÿ’Œ
  • Conservation of resources. proposals must demonstrate that they are not vulnerable to congestive collapse ๐Ÿ›ก๏ธ

as noted in "Robust Rate Adaptation for 802.11 Wireless Networks" [Robust], decreasing transmission rate in response to frame loss increases contention, which can lead to congestive collapse ๐Ÿ˜ฑ to avoid this, the link layer needs to tell apart frame loss caused by congestion from loss caused by channel conditions ๐Ÿงฉ only frame loss from a deterioration in channel conditions can be used as a basis for decreasing transmission rate ๐Ÿ“‰

consider a proposal where a host uses a "Link Up" indication to trigger retransmission of the last packet it sent, so it can receive an ACK before its retransmission timer expires ๐Ÿค” on a rapidly moving mobile node where "Link Up" indications come in quick succession, this could cause a burst of retransmitted packets, which violates the principle of "conservation of packets" ๐Ÿ’ฅ not it ๐Ÿ™…โ€โ™€๏ธ

at the application layer, link indications have been used by applications like Presence [RFC2778] to optimize registration and user interface update operations ๐Ÿ’œ for example, implementations may attempt presence registration on receipt of a "Link Up" indication, and presence de-registration by a surrogate on receipt of a "Link Down" indication ๐Ÿ“ฒ but presence implementations doing this violate the principle of "conservation of packets", since link indications can be generated on a time scale shorter than the end-to-end path RTO ๐Ÿซ  it gets even worse, because each presence update can be delivered to many watchers ๐Ÿซฃ also, using "Link Up" this way is just unwise, since the interface may not yet have an operable Internet layer configuration ๐Ÿ™ƒ instead, an "IP address configured" indication may be used ๐ŸŽ€

2.5. Effectiveness

proposals must demonstrate the effectiveness of their proposed optimizations ๐Ÿ“ˆ optimizations typically add complexity, so a substantial performance improvement is required to make a compelling case ๐Ÿ’…

when link indications are unreliable, effectiveness may depend on the penalty for false positives and false negatives ๐ŸŽฏ in the case of DNAv4 [RFC4436], the benefits of a successful optimization are modest, but being unable to confirm an operable configuration costs a lengthy timeout โŒ› so the recommended strategy is to test multiple potential configurations in parallel, in addition to attempting configuration via DHCP ๐Ÿงช this virtually guarantees that DNAv4 will always perform equal to or better than DHCP alone ๐Ÿ† slay ๐Ÿ‘‘

2.6. Interoperability

while link indications can be used where they're available, they should not be required by upper layers, so that link layer independence is maintained ๐Ÿฆ‹ for example, if information on supported prefixes is provided at the link layer, hosts that don't understand those hints must still be able to obtain an IP address ๐ŸŒˆ

where link indications are proposed to optimize Internet layer configuration, proposals must demonstrate that they don't compromise robustness by interfering with address assignment or routing protocol behavior, making address collisions more likely, or compromising Duplicate Address Detection (DAD) [RFC4429] ๐Ÿ›ก๏ธ no messing with the safety stuff, periodt ๐Ÿ’…

finally, to avoid compromising interoperability while chasing performance, proposals must demonstrate that interoperability remains possible (potentially with degraded performance) even if one or more participants don't implement the proposal ๐Ÿซถ everyone deserves to be in the group chat ๐Ÿ’–

2.7. Race Conditions โœจ

okay bestie, link indication proposals should avoid race conditions ๐Ÿ™ˆ These happen when link indications get used directly by multiple layers of the stack at once, and it gets messy fast ๐Ÿ’€

Link indications are super useful for optimizing Internet Protocol layer addressing and configuration, and for routing too ๐Ÿฆ‹ "The BU-trigger method for improving TCP performance over Mobile IPv6" [Kim] describes situations where link indications get processed by the Internet Protocol layer (e.g., MIPv6) before the transport layer uses them for parameter estimation. But for those parameter estimation purposes, it may also be desirable for the transport layer to use link indications directly ๐ŸŽ€

In situations where the Weak End System model is implemented, a change of outgoing interface may happen at the same time the transport layer is modifying transport parameters based on other link indications ๐Ÿ˜ญ So transport behavior may differ depending on the order the link indications are processed in. not ideal!!

Where a multi-homed host sees increasing frame loss or decreased rate on one of its interfaces, a routing metric that takes these effects into account will go up, potentially causing a change in the outgoing interface for one or more transport connections. This may trigger Mobile IP signaling so the incoming path changes too ๐ŸŒˆ As a result, the transport parameters estimated for the original outgoing and incoming paths (congestion state, Maximum Segment Size (MSS) derived from the link maximum transmission unit (MTU) or Path MTU) may no longer be valid for the new outgoing and incoming paths ๐Ÿ’”

To avoid race conditions, the following measures are recommended:

  • Path change re-estimation
  • Layering
  • Metric consistency

2.7.1. Path Change Re-estimation

When the Internet layer detects a path change, things like a major change in transmission rate, a change in the outgoing or incoming interface of the host or the incoming interface of a peer, or even a substantial change in the IPv4 TTL/IPv6 Hop Limit of received packets, it may be worth considering whether to reset transport parameters (RTT, RTO, cwnd, bw, MSS) to their initial values so they can be re-estimated โœจ That way, estimates based on the former path don't stick around after they've gone stale ๐Ÿงš Appendix A.3 summarizes the research on this topic ๐Ÿ“š

2.7.2. Layering

Another technique for avoiding race conditions is to rely on layering to damp transient link indications and give you greater link layer independence ๐ŸŒธ

The Internet layer handles routing, IP configuration, and mobility, and it gives higher layers an abstraction that doesn't depend on the link layer technology underneath ๐Ÿ‘‘

In general, it is advisable for applications to use indications from the Internet or transport layers rather than consuming link indications directly ๐Ÿ’…

2.7.3. Metric Consistency

Proposals should avoid inconsistencies between link and routing layer metrics ๐Ÿซถ Without careful design, differences between the link indications used in routing and the ones used in roaming and/or link enablement can cause instability, especially in multi-homed hosts ๐Ÿ˜ตโ€๐Ÿ’ซ

Once a link is in the "up" state, how effective it is at transmitting data packets can be used to pick an appropriate routing metric. When transmission time makes up a big chunk of the total transit time, minimizing total transmission time is equivalent to maximizing effective throughput ๐Ÿ”ฅ "A High-Throughput Path Metric for Multi-Hop Wireless Routing" [ETX] describes a proposed routing metric based on the Expected Transmission Count (ETX). The authors show that ETX, based on link layer frame loss rates (prior to retransmission), lets you select routes that maximize effective throughput ๐Ÿ™Œ When the transmission rate is constant, the expected transmission time is proportional to ETX, so minimizing ETX also minimizes expected transmission time ๐Ÿ’–

But where the transmission rate can vary, ETX may not be a good estimate of the transmission time ๐Ÿค” In "Routing in multi-radio, multi-hop wireless mesh networks" [ETX-Rate], the authors define a new metric called Expected Transmission Time (ETT). It's described as a "bandwidth adjusted ETX", since ETT = ETX * S/B, where S is the size of the probe packet and B is the bandwidth of the link as measured by a packet pair [Morgan]. Here's the catch though: ETT assumes that the loss fraction of small probe frames sent at a 1 Mbps data rate reflects the loss fraction of larger data frames at higher rates. That tends to underestimate ETT at higher rates, where frame loss typically goes up ๐Ÿ˜ฌ In "A Radio Aware Routing Protocol for Wireless Mesh Networks" [ETX-Radio], the authors refine ETT further by estimating the loss fraction as a function of transmission rate ๐Ÿฆ‹

Prior to sending data packets over the link, though, the right routing metric may not be easy to predict ๐Ÿ”ฎ As noted in [Shortest], a link that can successfully transmit the short frames used for control, management, or routing may not necessarily be able to reliably transport larger data packets ๐Ÿ“ฆ

So it may be necessary to use alternative metrics (such as signal strength or Access Point load) to help with attachment/handoff decisions ๐ŸŽ€ Still, unless the new interface is the preferred route for one or more destination prefixes, a Weak End System implementation will not use the new interface for outgoing traffic. And where "idle timeout" functionality is implemented, the unused interface will be brought down, and only brought back up by the link enablement algorithm ๐Ÿ’ค

Within the link layer, metrics like signal strength and frame loss may be used to determine the transmission rate, and to decide when to pick a different point of attachment ๐Ÿ“ก To let stations roam before they hit packet loss, studies such as "An experimental study of IEEE 802.11b handover performance and its effect on voice traffic" [Vatn] have suggested using signal strength to detect loss of connectivity more quickly, rather than frame loss as suggested in "Techniques to Reduce IEEE 802.11b MAC Layer Handover Time" [Velayos] ๐Ÿƒโ€โ™€๏ธ

[Aguayo] notes that signal strength and distance aren't good predictors of frame loss or throughput, because of the potential effects of multi-path interference ๐ŸŒ€ So a link brought up because of good signal strength may then show significant frame loss and low throughput ๐Ÿ˜ฉ Similarly, an Access Point (AP) with low utilization may not be the best choice, since low utilization can be caused by hardware or software problems ๐Ÿ™ƒ "OSPF Optimized Multipath (OSPF-OMP)" [Villamizar] notes that link-utilization-based routing metrics have a history of instability ๐Ÿ“‰

2.8. Layer Compression

In many situations, the exchanges a host needs to complete a handoff and reestablish connectivity are pretty considerable ๐Ÿ˜ฎโ€๐Ÿ’จ That's why there are proposals to combine exchanges across multiple layers to cut down on overhead. Reducing overhead is a laudable goal, but proposals need to avoid compromising interoperability and introducing link layer dependencies into the Internet and transport layers ๐Ÿซถ

Exchanges required for handoff and connectivity reestablishment may include link layer scanning, authentication, and association establishment; Internet layer configuration, routing, and mobility exchanges; transport layer retransmission and recovery; security association reestablishment; application protocol re-authentication and re-registration exchanges, etc. ๐Ÿ—‚๏ธ It's a whole lot, bestie!

Several proposals involve combining exchanges within the link layer ๐Ÿงฉ For example, in [EAPIKEv2], a link layer Extensible Authentication Protocol (EAP) [RFC3748] exchange may be used for IP address assignment, potentially bypassing Internet layer configuration. Within [PEAP], it is proposed that a link layer EAP exchange be used to carry Mobile IPv6 Binding Updates. And [MIPEAP] proposes that EAP exchanges be used for configuration of Mobile IPv6 ๐ŸŒˆ When link, Internet, or transport layer mechanisms get combined like this, hosts need to maintain backward compatibility so they can still operate on networks where those compression schemes aren't available ๐Ÿ”„

Layer compression schemes can also negatively impact robustness ๐Ÿ’€ For example, to optimize IP address assignment, it has been proposed that prefixes be advertised at the link layer, such as within the 802.11 Beacon and Probe Response frames. However, [IEEE-802.1X] lets the Virtual LAN Identifier (VLANID) be assigned dynamically. So the prefix(es) advertised within the Beacon and/or Probe Response may not match the prefix(es) configured by the Internet layer after the host completes link layer authentication ๐Ÿ™ˆ If the host handled IP configuration at the link layer instead of within the Internet layer, it might be unable to communicate because it got assigned the wrong IP address ๐Ÿ˜ญ

okay so proposals for sending link indications between hosts need to think super carefully about layering, security, and transport implications ๐Ÿซถ

the transport layer can look at the local routing table to make its transport parameter estimates better โœจ absence of positive feedback that the path is sending data end-to-end must be heeded, but when a route that used to be absent comes back, that can be used to trigger congestion control probing ๐ŸŒธ it's giving very "we can do this, but still be careful." transported link indications that change the local routing table can improve those estimates, but security and interoperability issues for routing protocols still apply ๐Ÿ”ฅ

any proposal that involves transporting link indications needs to show all of the following ๐Ÿ’…

  • (a) Superiority to implicit signals. generally, implicit signals are preferred over explicit transport of link indications, bc they don't need anyone to take part in the routing mesh, they add no new packets when the network is already in distress, they work more reliably with middle boxes like NA(P)Ts, they're more likely to be backward compatible, and they're less likely to cause security vulnerabilities ๐Ÿ˜ญ so explicit signaling proposals have to prove that implicit signals are inadequate ๐Ÿ™ˆ
  • (b) Mitigation of security vulnerabilities. transported link indications should not introduce new security vulnerabilities ๐Ÿ’€ when link indications change the local routing table, they count as a routing protocol, so the vulnerabilities of unsecured routing protocols apply, including spoofing by off-link attackers. "SEcure Neighbor Discovery (SEND)" [RFC3971] may help with authentication and integrity protection of router-originated messages, and protect against forgery of transported link indications, but those mechanisms aren't widely deployed yet ๐Ÿฅบ
  • (c) Validation of transported indications. even if a transported link indication is integrity protected and authenticated, if the sender is a host off the local link, it might not be clear that the sender is on the actual path in use, or which transport connection(s) the indication is about ๐Ÿงš proposals need to describe how the receiving host can validate the transported link indication โœจ
  • (d) Mapping of Identifiers. when link indications get transported, it's usually to share information about Internet, transport, or application layer operations at a remote element ๐ŸŒˆ but application layer sessions or transport connections might not be visible to that remote element because of things like load sharing between links, or use of IPsec, tunneling protocols, or nested headers ๐Ÿ‘€ so proposals need to show how the link indication can be mapped to the relevant higher-layer state. for example, the transport layer, on receiving a link indication, will need to figure out the set of transport sessions (source address, destination address, source port, destination port, transport) that are affected. and if a presence server gets remote "Link Up"/"Link Down" status for a particular Media Access Control (MAC) address, it'll need to connect that MAC address to the user (pres:user@example.com) that the link status change is relevant to ๐Ÿ’–

3. Future Work โœจ

okay so we still need more research on how link indications can be used by the Internet, transport, and application layers ๐Ÿ”

we also need to understand the connection between link indications and routing metrics ๐Ÿง  for example, block ACKs (supported in [IEEE-802.11e]) make the relationship between effective throughput and frame loss way messier, which might mean we need revised routing metrics for ad-hoc networks ๐Ÿ˜ฉ it's also needed to reconcile handoff metrics (e.g., signal strength and link utilization) with routing metrics based on link indications (e.g., frame error rate and negotiated rate) ๐ŸŽ€

we need a much better understanding of how physical and link layer metrics get used in rate negotiation ๐Ÿ’… for example, recent work [Robust][CARA] has suggested that frame loss due to contention (which would be made worse by rate reduction) can be told apart from loss due to channel conditions (which may be improved by rate reduction) ๐Ÿคฏ

at the transport layer, we need more work to figure out the right reaction to Internet layer indications, like routing table and path changes ๐Ÿ›ฃ๏ธ we also need more work on using link layer indications in transport parameter estimation, including rate changes, "Link Up"/"Link Down" indications, link layer retransmissions, and frame loss of various types (due to contention or channel conditions) ๐ŸŒธ

and we need to know how link layers might use information from the transport layer ๐Ÿฆ‹ for example, it's not great for a link layer to retransmit so aggressively that its round-trip time gets close to that of the end-to-end transport connection ๐Ÿ˜ฌ instead, it might make sense to do downward rate adjustment to decrease frame loss and improve latency โœจ also, sometimes the transport layer doesn't need heroic efforts to avoid frame loss, and timely delivery might be preferred instead โญ

4. Security Considerations ๐Ÿ”

proposals for using link indications might introduce new security vulnerabilities ๐Ÿ˜ฑ these include:

  • Spoofing
  • Indication validation
  • Denial of service

4.1. Spoofing ๐Ÿฅท

when link layer control frames aren't protected, an attacker can spoof them ๐Ÿ™ˆ for example, PPP doesn't protect LCP frames like LCP-Terminate, and [IEEE-802.11] doesn't protect management frames like Associate/Reassociate, Disassociate, or Deauthenticate ๐Ÿ’€

spoofing link layer control traffic can let attackers exploit weaknesses in link indication proposals ๐Ÿ˜ˆ for example, proposals that don't implement congestion avoidance can let attackers mount denial-of-service attacks ๐Ÿšจ

even where the link layer has security built in, attacks can still happen if the security model isn't consistent ๐Ÿ‘€

for example, wireless LANs implementing [IEEE-802.11i] don't let stations send or receive IP packets on the link until an authenticated key exchange protocol called the "4-way handshake" is done ๐Ÿค so a link implementing [IEEE-802.11i] can't be treated as usable at the Internet layer ("Link Up") until that authenticated key exchange finishes โœจ

but while [IEEE-802.11i] requires authenticated frames to get a "Link Up" indication, it doesn't support management frame authentication ๐Ÿ˜ญ attackers can use that weakness to launch denial-of-service attacks on stations attached to distant Access Points (APs) ๐Ÿ’”

in [IEEE-802.11F], "Link Up" is considered to happen when an AP sends a Reassociation Response ๐Ÿ›œ at that point, the AP sends a spoofed frame with the station's source address to a multicast address, which makes switches inside the Distribution System (DS) learn the station's MAC address ๐Ÿงฉ this lets frames get forwarded to the station at its new point of attachment, but it also lets an attacker disassociate a station anywhere within the ESS by sending an unauthenticated Reassociation Request frame ๐Ÿซฃ

4.2. Indication Validation ๐Ÿ›ก๏ธ

"Fault Isolation and Recovery" [RFC816], Section 3, explains how hosts work with routers for fault recovery ๐Ÿงš the basic idea is that gateways always try to keep a consistent, correct model of the internetwork topology, so the host's fault recovery strategy is very simple ๐Ÿ’– whenever a host thinks something's wrong, it asks the gateway for advice, and if the advice comes back, the host believes it completely ๐Ÿซถ the advice is only wrong during the short negotiation period right after an outage, and otherwise it's reliably correct โœจ

the host doesn't even have to ask, because the gateway gives advice when it's appropriate ๐Ÿ‘‘ when a host sends a datagram to a distant net, it should be ready to receive either of two advisory messages the gateway might send ๐Ÿ“จ the ICMP "redirect" message says the gateway the host sent the datagram to is no longer the best gateway for that net ๐Ÿ—บ๏ธ the gateway will already have forwarded the datagram, but the host should update its routing table to use a different immediate address for that net ๐Ÿ”„ the ICMP "destination unreachable" message says that, because of an outage, the addressed net or host can't currently be reached in any way ๐Ÿšง when a host gets that message, it can either drop the connection right away without retransmitting, or resend slowly to see whether the fault gets fixed in a reasonable time โณ

given today's security environment, it's inadvisable for hosts to act on indications from routers without careful thought โš ๏ธ

as "ICMP attacks against TCP" [Gont] points out, existing ICMP error messages can be exploited by attackers to abort connections in progress, stop new connections from being set up, or reduce the throughput of ongoing connections ๐Ÿ˜ญ similar attacks can also target the Internet layer by forging ICMP redirects ๐Ÿฅ€

proposals for transported link indications need to show they won't add a new set of similar vulnerabilities ๐Ÿ” since transported link indications are typically unauthenticated, hosts receiving them may not be able to tell whether they're authentic, or even plausible ๐Ÿคทโ€โ™€๏ธ

when link indication proposals respond to unauthenticated link layer frames, they should use upper-layer security mechanisms where possible ๐Ÿง for example, even though a host might use an unauthenticated link layer control frame to conclude that a link has become operational, it can use SEND [RFC3971] or authenticated DHCP [RFC3118] to get secure Internet layer configuration ๐ŸŽ€

4.3. Denial of Service ๐Ÿ’ฅ

okay so this one is the big scary one, bestie ๐Ÿ˜ญ link indication proposals need to be super careful not to hand attackers a way to cause denial of service from far away ๐Ÿšจ wireless links are already kinda vulnerable to interference, but to mess with one you have to be able to get radio contact with the target network ๐Ÿ“ก the real problem is attacks from a distance, either from an attacker on another point of attachment inside the same network, or from an off-link attacker. that's a much bigger vulnerability, not me being dramatic ๐Ÿ’€

the transport of link indications can make things worse ๐Ÿ™ˆ it could let vulnerabilities that only a local-link attacker can exploit get pulled across the Internet ๐ŸŒ also, when link indications get integrated with upper layers, a spoofed link layer frame might be able to use up more of the host's resources than it normally would ๐Ÿ˜ฌ so upper layers absolutely need to validate link indications ๐Ÿซถ but they REALLY shouldn't spend a ton of resources doing it ๐Ÿงš

and here's the plot twist ๐ŸŒˆ congestion control isn't only a transport issue, it's a security issue too ๐Ÿ”ฅ so to avoid giving an attacker any leverage, one forged link layer frame should not get a magnified response from one or more hosts. that means no multiple responses, and no single response that's bigger than it should be ๐Ÿšซ for example, proposals should not let multiple hosts respond to a frame sent to a multicast destination address ๐Ÿ’…


5. References ๐Ÿ“š

okay bestie, here's the reference list, copied exactly so nothing gets mangled ๐ŸŽ€ the normative one comes first, then the informative ones ๐Ÿ’–

5.1. Normative References โญ

[RFC2119]      Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

5.2. Informative References ๐Ÿฆ‹

[RFC816]       Clark, D., "Fault Isolation and Recovery", RFC 816,
               July 1982.

[RFC1058]      Hedrick, C., "Routing Information Protocol", RFC 1058,
               June 1988.

[RFC1122]      Braden, R., "Requirements for Internet Hosts --
               Communication Layers", STD 3, RFC 1122, October 1989.

[RFC1131]      Moy, J., "The OSPF Specification", RFC 1131, October
               1989.

[RFC1191]      Mogul, J. and S. Deering, "Path MTU discovery", RFC
               1191, November 1990.

[RFC1256]      Deering, S., "ICMP Router Discovery Messages", RFC
               1256, September 1991.

[RFC1305]      Mills, D., "Network Time Protocol (Version 3)
               Specification, Implementation and Analysis", RFC 1305,
               March 1992.

[RFC1307]      Young, J. and A. Nicholson, "Dynamically Switched Link
               Control Protocol", RFC 1307, March 1992.

[RFC1661]      Simpson, W., "The Point-to-Point Protocol (PPP)", STD
               51, RFC 1661, July 1994.

[RFC1812]      Baker, F., "Requirements for IP Version 4 Routers",
               RFC 1812, June 1995.

[RFC1918]      Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot,
               D., and E. Lear, "Address Allocation for Private
               Internets", BCP 5, RFC 1918, February 1996.

[RFC1981]      McCann, J., Deering, S. and J. Mogul, "Path MTU
               Discovery for IP version 6", RFC 1981, June 1996.

[RFC2131]      Droms, R., "Dynamic Host Configuration Protocol", RFC
               2131, March 1997.

[RFC2328]      Moy, J., "OSPF Version 2", STD 54, RFC 2328, April
               1998.

[RFC2461]      Narten, T., Nordmark, E., and W. Simpson, "Neighbor
               Discovery for IP Version 6 (IPv6)", RFC 2461, December
               1998.

[RFC2778]      Day, M., Rosenberg, J., and H. Sugano, "A Model for
               Presence and Instant Messaging", RFC 2778, February
               2000.

[RFC2861]      Handley, M., Padhye, J., and S. Floyd, "TCP Congestion
               Window Validation", RFC 2861, June 2000.

[RFC2914]      Floyd, S., "Congestion Control Principles", RFC 2914,
               BCP 41, September 2000.

[RFC2923]      Lahey, K., "TCP Problems with Path MTU Discovery", RFC
               2923, September 2000.

[RFC2960]      Stewart, R., Xie, Q., Morneault, K., Sharp, C.,
               Schwarzbauer, H. Taylor, T., Rytina, I., Kalla, M.,
               Zhang, L., and V. Paxson, "Stream Control Transmission
               Protocol" RFC 2960, October 2000.

[RFC3118]      Droms, R. and B. Arbaugh, "Authentication for DHCP
               Messages", RFC 3118, June 2001.

[RFC3315]      Droms, R., Bound, J., Volz, B., Lemon, T., Perkins,
               C., and M. Carney, "Dynamic Host Configuration
               Protocol for IPv6 (DHCPv6)", RFC 3315, July 2003.

[RFC3366]      Fairhurst, G. and L. Wood, "Advice to link designers
               on link Automatic Repeat reQuest (ARQ)", BCP 62, RFC
               3366, August 2002.

[RFC3428]      Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema,
               C., and D. Gurle, "Session Initiation Protocol (SIP)
               Extension for Instant Messaging", RFC 3428, December
               2002.

[RFC3748]      Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and
               H. Levkowetz, "Extensible Authentication Protocol
               (EAP)", RFC 3748, June 2004.

[RFC3775]      Johnson, D., Perkins, C., and J. Arkko, "Mobility
               Support in IPv6", RFC 3775, June 2004.

[RFC3921]      Saint-Andre, P., "Extensible Messaging and Presence
               protocol (XMPP):  Instant Messaging and Presence", RFC
               3921, October 2004.

[RFC3927]      Cheshire, S., Aboba, B., and E. Guttman, "Dynamic
               Configuration of Link-Local IPv4 Addresses", RFC 3927,
               May 2005.

[RFC3971]      Arkko, J., Kempf, J., Zill, B., and P. Nikander,
               "SEcure Neighbor Discovery (SEND)", RFC 3971, March
               2005.

[RFC4340]      Kohler, E., Handley, M., and S. Floyd, "Datagram
               Congestion Control Protocol (DCCP)", RFC 4340, March
               2006.

[RFC4423]      Moskowitz, R. and P. Nikander, "Host Identity Protocol
               (HIP) Architecture", RFC 4423, May 2006.

[RFC4429]      Moore, N., "Optimistic Duplicate Address Detection
               (DAD) for IPv6", RFC 4429, April 2006.

[RFC4436]      Aboba, B., Carlson, J., and S. Cheshire, "Detecting
               Network Attachment in IPv4 (DNAv4)", RFC 4436, March
               2006.

[RFC4821]      Mathis, M. and J. Heffner, "Packetization Layer Path
               MTU Discovery", RFC 4821, March 2007.

[Alimian]      Alimian, A., "Roaming Interval Measurements",
               11-04-0378-00-roaming-intervals-measurements.ppt, IEEE
               802.11 submission (work in progress), March 2004.

[Aguayo]       Aguayo, D., Bicket, J., Biswas, S., Judd, G., and R.
               Morris, "Link-level Measurements from an 802.11b Mesh
               Network", SIGCOMM '04, September 2004, Portland,
               Oregon.

[Bakshi]       Bakshi, B., Krishna, P., Vadiya, N., and D.Pradhan,
               "Improving Performance of TCP over Wireless Networks",
               Proceedings of the 1997 International Conference on
               Distributed Computer Systems, Baltimore, May 1997.

[BFD]          Katz, D. and D. Ward, "Bidirectional Forwarding
               Detection", Work in Progress, March 2007.

[Biaz]         Biaz, S. and N. Vaidya, "Discriminating Congestion
               Losses from Wireless Losses Using Interarrival Times
               at the Receiver", Proceedings of the IEEE Symposium on
               Application-Specific Systems and Software Engineering
               and Technology, Richardson, TX, Mar 1999.

[CARA]         Kim, J., Kim, S., and S. Choi, "CARA: Collision-Aware
               Rate Adaptation for IEEE 802.11 WLANs", Korean
               Institute of Communication Sciences (KICS) Journal,
               Feb. 2006

[Chandran]     Chandran, K., Raghunathan, S., Venkatesan, S., and R.
               Prakash, "A Feedback-Based Scheme for Improving TCP
               Performance in Ad-Hoc Wireless Networks", Proceedings
               of the 18th International Conference on Distributed
               Computing Systems (ICDCS), Amsterdam, May 1998.

[DNAv6]        Narayanan, S., "Detecting Network Attachment in IPv6
               (DNAv6)", Work in Progress, March 2007.

[E2ELinkup]    Dawkins, S. and C. Williams, "End-to-end, Implicit
               'Link-Up' Notification", Work in Progress, October
               2003.

[EAPIKEv2]     Tschofenig, H., Kroeselberg, D., Pashalidis, A., Ohba,
               Y., and F. Bersani, "EAP IKEv2 Method", Work in
               Progress, March 2007.

[Eckhardt]     Eckhardt, D. and P. Steenkiste, "Measurement and
               Analysis of the Error Characteristics of an In-
               Building Wireless Network", SIGCOMM '96, August 1996,
               Stanford, CA.

[Eddy]         Eddy, W. and Y. Swami, "Adapting End Host Congestion
               Control for Mobility", Technical Report CR-2005-
               213838, NASA Glenn Research Center, July 2005.

[EfficientEthernet]
               Gunaratne, C. and K. Christensen, "Ethernet Adaptive
               Link Rate: System Design and Performance Evaluation",
               Proceedings of the IEEE Conference on Local Computer
               Networks, pp. 28-35, November 2006.

[Eggert]       Eggert, L., Schuetz, S., and S. Schmid, "TCP
               Extensions for Immediate Retransmissions", Work in
               Progress, June 2005.

[Eggert2]      Eggert, L. and W. Eddy, "Towards More Expressive
               Transport-Layer Interfaces", MobiArch '06, San
               Francisco, CA.

[ETX]          Douglas S. J. De Couto, Daniel Aguayo, John Bicket,
               and Robert Morris, "A High-Throughput Path Metric for
               Multi-Hop Wireless Routing", Proceedings of the 9th
               ACM International Conference on Mobile Computing and
               Networking (MobiCom '03), San Diego, California,
               September 2003.

[ETX-Rate]     Padhye, J., Draves, R. and B. Zill, "Routing in
               multi-radio, multi-hop wireless mesh networks",
               Proceedings of ACM MobiCom Conference, September 2003.

[ETX-Radio]    Kulkarni, G., Nandan, A., Gerla, M., and M.
               Srivastava, "A Radio Aware Routing Protocol for
               Wireless Mesh Networks", UCLA Computer Science
               Department, Los Angeles, CA.

[GenTrig]      Gupta, V. and D. Johnston, "A Generalized Model for
               Link Layer Triggers", submission to IEEE 802.21 (work
               in progress), March 2004, available at:
               <http://www.ieee802.org/handoff/march04_meeting_docs/
               Generalized_triggers-02.pdf>.

[Goel]         Goel, S. and D. Sanghi, "Improving TCP Performance
               over Wireless Links", Proceedings of TENCON'98, pages
               332-335.  IEEE, December 1998.

[Gont]         Gont, F., "ICMP attacks against TCP", Work in
               Progress, October 2006.

[Gurtov]       Gurtov, A. and J. Korhonen, "Effect of Vertical
               Handovers on Performance of TCP-Friendly Rate
               Control", to appear in ACM MCCR, 2004.

[GurtovFloyd]  Gurtov, A. and S. Floyd, "Modeling Wireless Links for
               Transport Protocols", Computer Communications Review
               (CCR) 34, 2 (2003).
  • [Haratcherev] Haratcherev, I., Lagendijk, R., Langendoen, K., and H. Sips, "Hybrid Rate Control for IEEE 802.11", MobiWac '04, October 1, 2004, Philadelphia, Pennsylvania, USA. ๐ŸŽ€
  • [Haratcherev2] Haratcherev, I., "Application-oriented Link Adaptation for IEEE 802.11", Ph.D. Thesis, Technical University of Delft, Netherlands, ISBN-10:90-9020513-6, ISBN-13:978-90-9020513-7, March 2006. ๐Ÿ“š
  • [HMP] Lee, S., Cho, J., and A. Campbell, "Hotspot Mitigation Protocol (HMP)", Work in Progress, October 2003.
  • [Holland] Holland, G. and N. Vaidya, "Analysis of TCP Performance over Mobile Ad Hoc Networks", Proceedings of the Fifth International Conference on Mobile Computing and Networking, pages 219-230. ACM/IEEE, Seattle, August 1999. ๐ŸŒธ
  • [Iannaccone] Iannaccone, G., Chuah, C., Mortier, R., Bhattacharyya, S., and C. Diot, "Analysis of link failures in an IP backbone", Proc. of ACM Sigcomm Internet Measurement Workshop, November, 2002.
  • [IEEE-802.1X] Institute of Electrical and Electronics Engineers, "Local and Metropolitan Area Networks: Port-Based Network Access Control", IEEE Standard 802.1X, December 2004.
  • [IEEE-802.11] Institute of Electrical and Electronics Engineers, "Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications", IEEE Standard 802.11, 2003.
  • [IEEE-802.11e] Institute of Electrical and Electronics Engineers, "Standard for Telecommunications and Information Exchange Between Systems - LAN/MAN Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 8: Medium Access Control (MAC) Quality of Service Enhancements", IEEE 802.11e, November 2005. โœจ
  • [IEEE-802.11F] Institute of Electrical and Electronics Engineers, "IEEE Trial-Use Recommended Practice for Multi-Vendor Access Point Interoperability via an Inter-Access Point Protocol Across Distribution Systems Supporting IEEE 802.11 Operation", IEEE 802.11F, June 2003 (now deprecated). ๐Ÿฅ€
  • [IEEE-802.11i] Institute of Electrical and Electronics Engineers, "Supplement to Standard for Telecommunications and Information Exchange Between Systems - LAN/MAN Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Specification for Enhanced Security", IEEE 802.11i, July 2004. ๐Ÿ”
  • [IEEE-802.11k] Institute of Electrical and Electronics Engineers, "Draft Amendment to Telecommunications and Information Exchange Between Systems - LAN/MAN Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 7: Radio Resource Management", IEEE 802.11k/D7.0, January 2007.
  • [IEEE-802.21] Institute of Electrical and Electronics Engineers, "Draft Standard for Telecommunications and Information Exchange Between Systems - LAN/MAN Specific Requirements - Part 21: Media Independent Handover", IEEE 802.21D0, June 2005.
  • [Kamerman] Kamerman, A. and L. Monteban, "WaveLAN II: A High-Performance Wireless LAN for the Unlicensed Band", Bell Labs Technical Journal, Summer 1997.
  • [Kim] Kim, K., Park, Y., Suh, K., and Y. Park, "The BU-trigger method for improving TCP performance over Mobile IPv6", Work in Progress, August 2004.
  • [Kotz] Kotz, D., Newport, C., and C. Elliot, "The mistaken axioms of wireless-network research", Dartmouth College Computer Science Technical Report TR2003-467, July 2003. ๐Ÿ™ˆ
  • [Krishnan] Krishnan, R., Sterbenz, J., Eddy, W., Partridge, C., and M. Allman, "Explicit Transport Error Notification (ETEN) for Error-Prone Wireless and Satellite Networks", Computer Networks, 46 (3), October 2004.
  • [Lacage] Lacage, M., Manshaei, M., and T. Turletti, "IEEE 802.11 Rate Adaptation: A Practical Approach", MSWiM '04, October 4-6, 2004, Venezia, Italy.
  • [Lee] Park, S., Lee, M., and J. Korhonen, "Link Characteristics Information for Mobile IP", Work in Progress, January 2007.
  • [Ludwig] Ludwig, R. and B. Rathonyi, "Link-layer Enhancements for TCP/IP over GSM", Proceedings of IEEE Infocom '99, March 1999.
  • [MIPEAP] Giaretta, C., Guardini, I., Demaria, E., Bournelle, J., and M. Laurent-Maknavicius, "MIPv6 Authorization and Configuration based on EAP", Work in Progress, October 2006.
  • [Mishra] Mitra, A., Shin, M., and W. Arbaugh, "An Empirical Analysis of the IEEE 802.11 MAC Layer Handoff Process", CS-TR-4395, University of Maryland Department of Computer Science, September 2002.
  • [Morgan] Morgan, S. and S. Keshav, "Packet-Pair Rate Control - Buffer Requirements and Overload Performance", Technical Memorandum, AT&T Bell Laboratories, October 1994.
  • [Mun] Mun, Y. and J. Park, "Layer 2 Handoff for Mobile-IPv4 with 802.11", Work in Progress, March 2004.
  • [ONOE] Onoe Rate Control, <http://madwifi.org/browser/trunk/ath_rate/onoe>.
  • [Park] Park, S., Njedjou, E., and N. Montavont, "L2 Triggers Optimized Mobile IPv6 Vertical Handover: The 802.11/GPRS Example", Work in Progress, July 2004.
  • [Pavon] Pavon, J. and S. Choi, "Link adaptation strategy for IEEE802.11 WLAN via received signal strength measurement", IEEE International Conference on Communications, 2003 (ICC '03), volume 2, pages 1108-1113, Anchorage, Alaska, USA, May 2003.
  • [PEAP] Palekar, A., Simon, D., Salowey, J., Zhou, H., Zorn, G., and S. Josefsson, "Protected EAP Protocol (PEAP) Version 2", Work in Progress, October 2004.
  • [PRNET] Jubin, J. and J. Tornow, "The DARPA packet radio network protocols", Proceedings of the IEEE, 75(1), January 1987.
  • [Qiao] Qiao D., Choi, S., Jain, A., and Kang G. Shin, "MiSer: An Optimal Low-Energy Transmission Strategy for IEEE 802.11 a/h", in Proc. ACM MobiCom'03, San Diego, CA, September 2003.
  • [RBAR] Holland, G., Vaidya, N., and P. Bahl, "A Rate-Adaptive MAC Protocol for Multi-Hop Wireless Networks", Proceedings ACM MOBICOM, July 2001.
  • [Ramani] Ramani, I. and S. Savage, "SyncScan: Practical Fast Handoff for 802.11 Infrastructure Networks", Proceedings of the IEEE InfoCon 2005, March 2005.
  • [Robust] Wong, S., Yang, H., Lu, S., and V. Bharghavan, "Robust Rate Adaptation for 802.11 Wireless Networks", ACM MobiCom'06, Los Angeles, CA, September 2006.
  • [SampleRate] Bicket, J., "Bit-rate Selection in Wireless networks", MIT Master's Thesis, 2005.
  • [Scott] Scott, J., Mapp, G., "Link Layer Based TCP Optimisation for Disconnecting Networks", ACM SIGCOMM Computer Communication Review, 33(5), October 2003.
  • [Schuetz] Schutz, S., Eggert, L., Schmid, S., and M. Brunner, "Protocol Enhancements for Intermittently Connected Hosts", ACM SIGCOMM Computer Communications Review, Volume 35, Number 2, July 2005.
  • [Shortest] Douglas S. J. De Couto, Daniel Aguayo, Benjamin A. Chambers and Robert Morris, "Performance of Multihop Wireless Networks: Shortest Path is Not Enough", Proceedings of the First Workshop on Hot Topics in Networking (HotNets-I), Princeton, New Jersey, October 2002.
  • [TRIGTRAN] Dawkins, S., Williams, C., and A. Yegin, "Framework and Requirements for TRIGTRAN", Work in Progress, August 2003.
  • [Vatn] Vatn, J., "An experimental study of IEEE 802.11b handover performance and its effect on voice traffic", TRITA-IMIT-TSLAB R 03:01, KTH Royal Institute of Technology, Stockholm, Sweden, July 2003.
  • [Velayos] Velayos, H. and G. Karlsson, "Techniques to Reduce IEEE 802.11b MAC Layer Handover Time", TRITA-IMIT-LCN R 03:02, KTH Royal Institute of Technology, Stockholm, Sweden, April 2003.
  • [Vertical] Zhang, Q., Guo, C., Guo, Z., and W. Zhu, "Efficient Mobility Management for Vertical Handoff between WWAN and WLAN", IEEE Communications Magazine, November 2003.
  • [Villamizar] Villamizar, C., "OSPF Optimized Multipath (OSPF-OMP)", Work in Progress, February 1999.
  • [Xylomenos] Xylomenos, G., "Multi Service Link Layers: An Approach to Enhancing Internet Performance over Wireless Links", Ph.D. thesis, University of California at San Diego, 1999.
  • [Yegin] Yegin, A., "Link-layer Triggers Protocol", Work in Progress, June 2002.

6. Acknowledgments ๐Ÿซถ

The authors want to give a massive shoutout to James Kempf, Phil Roberts, Gorry Fairhurst, John Wroclawski, Aaron Falk, Sally Floyd, Pekka Savola, Pekka Nikander, Dave Thaler, Yogesh Swami, Wesley Eddy, and Janne Peisa for their contributions to this document. The real MVPs ๐Ÿ‘‘๐Ÿ’–

Appendix A. Literature Review ๐Ÿ“š

This appendix is a roundup of the literature on link indications over wireless local area networks. Lots of research to dig through, bestie ๐Ÿงšโœจ

okay so wireless links are literally so inconsistent, and it depends SO much on where you are ๐ŸŒˆ the characteristics vary a lot from environment to environment, and that's the big vibe here ๐Ÿ’…

In "Performance of Multihop Wireless Networks: Shortest Path is Not Enough" [Shortest], the authors looked at how an indoor mesh network and an outdoor mesh network performed ๐ŸŒธ they measured throughput between nodes to figure out the best path, then compared that with the path you'd get from the shortest hop count. the shortest-hop path was way slower than the best path in almost every case ๐Ÿ˜ญ

the authors also noticed that links weren't just "up" (low loss rate) or "down" (high loss rate) like a light switch ๐Ÿ’ก a lot of links sat in the middle, and asymmetry was super common too. about 30 percent of links had really different loss rates in each direction ๐Ÿ™ˆ which means measured throughput can be way off from the negotiated rate because of retransmissions. and just because routing packets get delivered doesn't mean the link is good enough for data, bestie ๐Ÿซถ

In "Measurement and Analysis of the Error Characteristics of an In-Building Wireless Network" [Eckhardt], the authors checked out an AT&T Wavelan 2 Mbps in-building WLAN running in Infrastructure mode on the Carnegie Mellon campus ๐ŸŽ“ frame loss was super low in that study, so links could basically be assumed to work either very well or not at all โœจ

In "Link-level Measurements from an 802.11b Mesh Network" [Aguayo], the authors dug into why frames get lost in a 38-node urban multi-hop 802.11 ad-hoc network ๐Ÿ™๏ธ most of the time, a link that's really bad one way is bad both ways, and a link that's really good one way is good both ways. but again, 30 percent of links had loss rates that were noticeably different in each direction ๐Ÿ‘€

signal to noise ratio (SNR) and distance were not great at predicting loss rates, honestly ๐Ÿ™ƒ instead of a clean step between "up" (low loss) and "down" (high loss), inter-node loss rates were all over the place, pretty much evenly spread across the lower rates. the authors blamed multi-path fading, not attenuation or interference ๐ŸŒŠ

so [Eckhardt] and [Aguayo] together show just how different link conditions can be in the real world ๐Ÿฆ‹ indoor infrastructure networks can get closer to ideal with site surveys and careful measurement, but in ad-hoc and mesh networks, node mobility and stuff like weather are hard to control. it's giving unpredictable, and that's the point ๐ŸŒฆ๏ธ

โš ๏ธ implementation effects are a whole other chaos wave too. the difference between devices can be wild, bestie ๐Ÿ˜ญ

"Techniques to reduce IEEE 802.11b MAC layer handover time" [Velayos] measured handover times for a stationary STA after the AP got turned off ๐Ÿ”Œ they split handover into three phases: detection (figuring out you've been disconnected from your current point of attachment), search (finding alternative attachment points), and execution (connecting to an alternative point of attachment) ๐Ÿงฉ the detection phase was the biggest chunk of handoff delay, and it was set by how many non-acknowledged frames it took to trigger the search phase, plus delays from things like RTS/CTS and rate adaptation ๐Ÿ•ฐ๏ธ

detection behavior was all over the place between implementations ๐Ÿ’€ for example, network interface cards (NICs) built for desktops kept retransmitting more before triggering search than laptop designs did. the desktop ones assumed the AP was always in range, no matter whether the Beacon was received ๐Ÿ–ฅ๏ธ

the study recommends shortening the detection phase by starting the search phase as soon as collisions can be ruled out as the cause of the non-acknowledged transmissions ๐ŸŽฏ the authors recommend three consecutive transmission failures as the cutoff. honestly this approach is both quicker and more immune to multi-path interference than watching the SNR ๐Ÿ‘‘ when a STA isn't sending or receiving frames, it's recommended to track Beacon reception so it can detect disconnection, and to reduce Beacon spacing to 60 ms so detection is faster โฑ๏ธ to make up for triggering the search phase more often, the authors recommend wait time reduction algorithms, plus interleaving search and data frame transmission ๐Ÿง

"An Empirical Analysis of the IEEE 802.11 MAC Layer Handoff Process" [Mishra] looked at handoff latencies across three mobile STA implementations talking to two APs ๐Ÿ“ถ the big takeaway was that handoff latency varies a LOT between STA and AP implementations, and they use different message sequences too. one STA sent a Reassociation Request before authentication, which got it a Deauthenticate message back ๐Ÿ˜‚ the study split handoff latency into discovery, authentication, and reassociation exchanges, and discovery was the dominant part of handoff delay. the detection phase wasn't investigated at all ๐Ÿ™ˆ

"SyncScan: Practical Fast Handoff for 802.11 Infrastructure Networks" [Ramani] weighs the pros and cons of active versus passive scanning โš–๏ธ the authors love the advantages of timed Beacon reception, which had already been added to [IEEE-802.11k] ๐Ÿ’œ timed Beacon reception lets the station stay up to date on the signal to noise ratio of neighboring APs, so handoff can happen earlier ๐Ÿš€ the station doesn't have to wait around for initial and subsequent responses to a broadcast Probe Response (MinChannelTime and MaxChannelTime, respectively), so performance is comparable to what you'd get with 802.11k Neighbor Reports and unicast Probe Requests ๐Ÿ“

the authors measured channel switching delay, which is how long it takes to switch to a new frequency and start receiving frames ๐Ÿ”„ it ranged from 5 ms to 19 ms per channel. where timed Beacon reception or interleaved active scanning is used, switching time adds a big chunk to overall handoff latency ๐Ÿง  the authors propose deploying APs with Beacons synchronized via Network Time Protocol (NTP) [RFC1305], so a driver implementing SyncScan can work with legacy APs without needing any new protocols ๐ŸŽ€ they also measured the distribution of inter-arrival times for stations implementing SyncScan, and the results were excellent ๐ŸŒŸ

"Roaming Interval Measurements" [Alimian] shares data on how stationary STAs behave after the AP signal has been shut off ๐Ÿ“ด this study highlighted implementation differences in rate adaptation, as well as in detection, scanning, and handoff. just like [Velayos], performance varied widely between implementations: about half an order of magnitude of variation in rate adaptation, an order of magnitude difference in detection times, two orders of magnitude in scanning, and one and a half orders of magnitude in handoff times ๐Ÿ“Š that's a LOT of range, periodt ๐Ÿ’…

"An experimental study of IEEE 802.11b handoff performance and its effect on voice traffic" [Vatn] describes the handover behavior observed when the signal from the AP is gradually attenuated ๐ŸŒ… the authors say this is more representative of field experience than the shutoff techniques used in [Velayos] ๐Ÿ™Œ stations were set up to start handover when signal strength dropped below a threshold, instead of relying purely on frame loss, so they could begin handover while still connected to the current AP ๐Ÿช„ it was also noted that stations kept receiving data frames during the search phase โœจ and station-initiated Disassociation and pre-authentication were not observed in this study ๐Ÿฆ‹

Okay so, within a link layer, what "Link Up" and "Link Down" actually mean can change depending on the deployment scenario ๐Ÿ’… For example, in PPP [RFC1661], either peer can send an LCP-Terminate frame to shut down the PPP link layer ๐Ÿ”Œ, and a link only counts as usable for sending network protocol packets once Network Control Protocol (NCP) negotiation has finished for that protocol โœจ

Unlike PPP, IEEE 802 doesn't come with any facilities for network layer configuration ๐Ÿ™ˆ So the definition of "Link Up" and "Link Down" varies from implementation to implementation. Empirical evidence suggests it can depend on whether the station is mobile or stationary, whether infrastructure or ad-hoc mode is being used, and whether security and Inter-Access Point Protocol (IAPP) is implemented. It's giving "it depends" energy, fr fr ๐ŸŒˆ

Here's a tea moment โ˜• If a STA runs into a series of consecutive non-acknowledged frames while it has missed one or more Beacons, the most likely cause is that the station has wandered out of range of the AP ๐Ÿšถโ€โ™€๏ธ So [Velayos] recommends that the station start the search phase once collisions can be ruled out. Since this approach doesn't take rate adaptation into account, it might be a bit aggressive ๐Ÿ˜ฌ Only when no alternative workable rate or point of attachment is found does a "Link Down" indication get returned.

In a stationary point-to-point installation, the most likely cause of an outage is that the link has become impaired, and alternative points of attachment may not be available ๐Ÿงฑ So implementations set up to operate in this mode tend to be more persistent ๐Ÿ’ช For example, within 802.11 the short interframe space (SIFS) interval may be increased, and the MIB variables for timeouts (like dot11AuthenticationResponseTimeout, dot11AssociationResponseTimeout, dot11ShortRetryLimit, and dot11LongRetryLimit) may be set to larger values โณ Also, a "Link Down" indication may be returned later on, which is very patient of it ๐Ÿฆ‹

In IEEE 802.11 ad-hoc mode with no security, reception of data frames is enabled in State 1 ("Unauthenticated" and "Unassociated"). So reception of data frames is enabled at any time, and there's no explicit "Link Up" indication at all ๐Ÿ‘€

In Infrastructure mode, IEEE 802.11-2003 only enables reception of data frames in State 3 ("Authenticated" and "Associated") ๐ŸŽ€ That means a transition to State 3 (like completing a successful Association or Reassociation exchange) enables sending and receiving of network protocol packets. A transition from State 3 to State 2 (on receipt of a "Disassociate" frame) or to State 1 (on receipt of a "Deauthenticate" frame) disables sending and receiving of network protocol packets. So IEEE 802.11 stations typically signal "Link Up" when they get a successful Association/Reassociation Response ๐Ÿซถ

Now the spoofing drama ๐Ÿ˜ญ As described within [IEEE-802.11F], after sending a Reassociation Response, an Access Point will send a frame with the station's source address to a multicast destination. This makes the switches inside the Distribution System (DS) update their learning tables, so the DS is ready to forward frames to the station at its new point of attachment ๐Ÿ” If the AP didn't send this "spoofed" frame, the station's location wouldn't get updated within the distribution system until it sends its first frame from the new location. So the whole point of spoofing is to even out uplink and downlink handover times โš–๏ธ BUT here's the catch: this lets an attacker deny service to authenticated and associated stations by spoofing a Reassociation Request using the victim's MAC address, from anywhere within the ESS ๐Ÿ’€ Without spoofing, that attack could only disassociate stations on the AP the Reassociation Request was sent to. Not it, hacker ๐Ÿ™…โ€โ™€๏ธ

Signaling "Link Down" is honestly way more complicated ๐ŸŒ€ Even though a transition to State 2 or State 1 means the station can't send or receive IP packets, that doesn't automatically mean the transition should count as a "Link Down" indication. In an infrastructure network, a station might have a choice of multiple Access Points offering a connection to the same network ๐Ÿ—บ๏ธ In that situation, a station that can't reach State 3 with one Access Point might just choose to attach to another one instead. So rather than registering a "Link Down" indication with each move, the station may register a series of "Link Up" indications instead โœจ

In [IEEE-802.11i], forwarding frames from the station to the distribution system is only feasible after the 4-way handshake and group-key handshake have completed, so entering State 3 is no longer sufficient ๐Ÿ” This has caused several observed problems. For example, when a "Link Up" indication gets triggered on the station by receipt of an Association/Reassociation Response, DHCP [RFC2131] or Router Solicitation/Router Advertisement (RS/RA) may kick off before the link is actually usable by the Internet layer ๐Ÿ˜ฉ That leads to configuration delays or failures. Similarly, transport layer connections will run into packet loss, which results in back-off of retransmission timers. Ugh, so relatable ๐Ÿ’œ

Okay, so in order to improve link layer performance, several studies have looked into "smart link layer" proposals ๐Ÿง โœจ

"Advice to link designers on link Automatic Repeat reQuest (ARQ)" [RFC3366] gives advice to designers of digital communication equipment and link-layer protocols that use link-layer Automatic Repeat reQuest (ARQ) techniques for IP ๐Ÿ› ๏ธ It talks about the use of ARQ, timers, persistency in retransmission, and the challenges that come up from sharing links between multiple flows and from different transport requirements. Very thorough, very iconic ๐Ÿ“š

In "Link-layer Enhancements for TCP/IP over GSM" [Ludwig], the authors describe how the Global System for Mobile Communications (GSM) reliable and unreliable link layer modes can be used at the same time without any higher layer control ๐Ÿ“ฑ When a reliable link layer protocol is needed (where reliable transports such as TCP and Stream Control Transmission Protocol (SCTP) [RFC2960] are used), the Radio Link Protocol (RLP) can be engaged. For delay-sensitive applications, like those based on UDP, the transparent mode (no RLP) can be used ๐Ÿฆ‹ The authors also describe how PPP negotiation can be optimized over high-latency GSM links using "Quickstart-PPP" ๐Ÿš€

In "Link Layer Based TCP Optimisation for Disconnecting Networks" [Scott], the authors describe performance problems that happen with reliable transport protocols when they face periodic network disconnections, like the ones caused by signal fading or handoff ๐Ÿ“‰ They define a disconnection as a period of connectivity loss that exceeds a retransmission timeout but is shorter than the connection lifetime. One issue is that link-unaware senders keep backing off during periods of disconnection ๐Ÿ˜ค The authors suggest that a link-aware reliable transport implementation halt retransmission after receiving a "Link Down" indication. Another issue is that, on reconnection, the lengthened retransmission times cause delays in using the link ๐Ÿข

To make things faster, a "smart link layer" is proposed. It stores the first packet that wasn't successfully transmitted on a connection, then retransmits it when it gets a "Link Up" indication ๐Ÿ”„ Since a disconnection can leave hosts facing different network conditions on reconnection, the authors don't advocate bypassing slow start or trying to raise the congestion window ๐Ÿ™…โ€โ™€๏ธ Where IPsec is used and connections can't be told apart because transport headers aren't visible, the first untransmitted packet for a given sender and destination IP address can be retransmitted instead. Beyond retransmitting a single packet per connection, the authors also looked at other schemes, like retransmitting multiple packets and simulated duplicate reception of single or multiple packets (known as rereception) ๐Ÿงฉ

In general, retransmission schemes beat rereception schemes, since rereception can't stimulate fast retransmit after a timeout ๐Ÿ† Retransmitting multiple packets didn't really improve performance over retransmitting a single packet. And because the research focused on disconnection rather than just lossy channels, a two-state Markov model was used, with the "up" state representing no loss and the "down" state representing 100 percent loss ๐Ÿ“Š

In "Multi Service Link Layers: An Approach to Enhancing Internet Performance over Wireless Links" [Xylomenos], the authors use ns-2 to simulate the performance of various link layer recovery schemes. These are: raw link without retransmission, go back N, XOR-based FEC, selective repeat, Karn's RLP, out-of-sequence RLP, and Berkeley Snoop. They tested them in stand-alone file transfer, Web browsing, and continuous media distribution ๐ŸŽฌ Selective repeat and Karn's RLP gave the highest throughput for file transfer and Web browsing, but continuous media distribution needs a combo of low delay and low loss, and out-of-sequence RLP performed best there ๐ŸŽต Since no single link layer recovery scheme is optimal for every application, the authors propose that the link layer implement multiple recovery schemes ๐ŸŒˆ Their simulations showed that pairing a low-error rate recovery scheme for TCP (like Karn's RLP) with a low-delay scheme for UDP traffic (like out-of-sequence RLP) performs well in all scenarios ๐Ÿ‘‘ The authors then describe how a multi-service link layer can be integrated with Differentiated Services ๐Ÿ’–

In "WaveLAN-II: A High-Performance Wireless LAN for the Unlicensed Band" [Kamerman], the authors propose an open-loop rate adaptation algorithm known as Automatic Rate Fallback (ARF) ๐Ÿ“ถ In ARF, the sender adjusts the rate upwards after a fixed number of successful transmissions, and adjusts it downwards after one or two consecutive failures. If the transmission fails right after an upwards rate adjustment, the rate is immediately readjusted downwards ๐Ÿ“‰

In "A Rate-Adaptive MAC Protocol for Multi-Hop Wireless Networks" [RBAR], the authors propose a closed-loop rate adaptation approach that requires incompatible changes to the IEEE 802.11 MAC ๐Ÿ”ง To help the sender pick the transmission rate better, the receiver determines the packet length and signal to noise ratio (SNR) of a received RTS frame, then calculates the corresponding rate based on a theoretical channel model, rather than on channel usage statistics ๐Ÿงฎ The recommended rate is sent back in the CTS frame. This lets the rate (and potentially the transmit power) get optimized on each transmission, albeit at the cost of needing RTS/CTS for every frame transmission. Big commitment, bestie ๐Ÿ’…

In "MiSer: An Optimal Low-Energy Transmission Strategy for IEEE 802.11 a/h" [Qiao], the authors propose a scheme for optimizing transmit power โšก The proposal mandates the use of RTS/CTS to deal with hidden nodes, and requires that CTS and ACK frames be sent at full power. The authors use a theoretical channel model rather than one based on channel usage statistics ๐ŸŒธ

okay so in "IEEE 802.11 Rate Adaptation: A Practical Approach" [Lacage] ๐ŸŽ€ the authors split things into two camps: low-latency implementations, which can make rate decisions per packet, and high-latency ones, which can't. the low-latency crew usually has dedicated CPUs in the design so it can hit real-time requirements ๐Ÿ’…. the high-latency crew is usually highly integrated, with the upper MAC running on the host, so because of OS latencies the info needed for a per-packet rate decision might not show up in time ๐Ÿ˜ญ

for the low-latency side they propose an Adaptive ARF (AARF) algorithm โœจ. when an ACK doesn't come back, it drops the rate fast, but it wants more successful transmissions before it'll go back up. so it's super stable when channel properties change slowly, but slow to adapt upwards when conditions get better ๐Ÿ™ˆ. to test it they used ns-2 simulations and also built a version for a high-latency chipset, the AR 5212 ๐Ÿงš. the Multiband Atheros Driver for WiFi (MadWiFi) driver lets you queue a fixed schedule of rates and retries when a frame is ready to go. the adapted version, the Adaptive Multi Rate Retry (AMRR), asks for just one transmission at each of three rates, and the last one is the minimum available rate ๐Ÿ”ฅ. that means it can adjust to short-term channel fluctuations with minimal latency, and the AMRR algorithm performs considerably better than the existing MadWifi driver ๐Ÿ‘‘.

in "Link Adaptation Strategy for IEEE 802.11 WLAN via Received Signal Strength Measurement" [Pavon] ๐ŸŒธ, the authors propose an algorithm where a STA adjusts its transmission rate by comparing the received signal strength (RSS) from the AP against dynamically estimated threshold values for each rate. when a frame comes in, the STA updates its average RSS, and when it transmits, it picks a rate and adjusts the RSS threshold values depending on whether the transmission worked ๐Ÿ’œ. to validate it they ran an OPNET simulation with no interference, and they assumed an ideal bit error rate (BER) vs. signal to noise ratio (SNR) curve. not surprisingly ๐Ÿ’…, the simulation results closely matched the maximum throughput achievable for a given SNR, based on that ideal BER vs. SNR curve.

in "Hybrid Rate Control for IEEE 802.11" [Haratcherev] ๐Ÿฆ‹, the authors describe a hybrid technique that uses Signal Strength Indication (SSI) data to constrain the rates that statistics-based automatic rate control can pick. okay so statistics-based rate control techniques come in a few flavors:

Maximum Throughput: this one was picked as the statistics-based part of the hybrid scheme. it sends a fraction of data at adjacent rates to figure out which rate gives the maximum throughput. accurate throughput estimates need a minimum number of frames at each rate, and only a fraction of frames get used for this, so it adapts more slowly at lower rates. with 802.11b rates, the adaptation time scale is typically on the order of a second ๐Ÿ˜ญ. depending on how many rates get tested, it can adapt beyond adjacent rates. but where the maximum rate and low frame loss are already being hit, this technique ends up with lower throughput.

Frame Error Rate (FER) Control: this one estimates the FER and tries to keep it between a lower limit (if FER drops below it, increase the rate) and an upper limit (if FER goes above it, decrease the rate) ๐ŸŒˆ. since it can use all the transmitted data, it can react faster than the maximum throughput techniques. the catch is a tradeoff between reaction time and FER estimation accuracy: at lower rates, either reactions slow down or the FER estimate gets worse. and since it only measures FER at the current rate, it can only adapt to adjacent rates.

Retry-based: this one tweaks FER control by allowing rapid downward rate adaptation after a number (5-10) of unsuccessful retransmissions โญ. fewer packets are needed, so the sensitivity of reaction time to rate goes down. but upward adaptation is slower, since it's based on a collection of FER data. it's also limited to adjacent rates, and it has the downside of potentially making frame loss worse due to contention ๐Ÿ’€.

while statistics-based techniques are robust against short-lived link quality changes, they don't respond quickly to long-lived changes ๐Ÿซถ. by constraining the rate that statistics-based techniques can select, based on ACK SSI versus rate data (not theoretical curves), the authors got faster link adaptation. to keep adaptation quick during rapidly varying conditions, the rate constraints get tightened when the SSI values are changing rapidly, which encourages rate transitions โœจ. the authors validated their algorithms by implementing a driver for the Atheros AR5000 chipset and then testing how it responded to being inserted into and removed from a microwave oven acting as a Faraday cage ๐Ÿ™ˆ. the hybrid algorithm dropped many fewer packets than the maximum throughput technique by itself.

to estimate the SSI of data at the receiver, they used the ACK SSI. this means the receiver doesn't have to tell the sender the received power, so it can be implemented without changing the IEEE 802.11 MAC ๐Ÿ”ฅ. calibrating the rate versus ACK SSI curves doesn't require a symmetric channel, but it does require that channel properties in both directions vary in a proportional way and that the ACK transmit power stays constant. the authors checked the proportionality assumption and found that the SSI of received data correlated highly (74%) with the SSI of received ACKs. low pass filtering and monotonicity constraints were applied to remove noise from the rate versus SSI curves. the resulting hybrid rate adaptation algorithm could respond to rapid deterioration (and improvement) in channel properties, since it isn't restricted to moving to adjacent rates ๐Ÿ‘‘.

in "CARA: Collision-Aware Rate Adaptation for IEEE 802.11 WLANs" [CARA] ๐Ÿ’–, the authors propose Collision-Aware Rate Adaptation (CARA). it uses Clear Channel Assessment (CCA), along with adapting the Request-to-Send/Clear-to-Send (RTS/CTS) mechanism, to tell apart losses caused by frame collisions from losses caused by channel conditions. rather than decreasing the rate because of frame loss from collisions (which just leads to even more contention), CARA selectively enables RTS/CTS (for example, after a frame loss), which reduces the likelihood of frame loss due to hidden stations ๐Ÿฆ‹. CARA can also use CCA to figure out whether a collision happened after a transmission. however, since CCA may not detect a significant fraction of all collisions (particularly when transmitting at a low rate), its use is optional ๐Ÿคทโ€โ™€๏ธ. compared with ARF, the authors' simulations show large improvements in aggregate throughput from adaptive RTS/CTS, with additional modest improvements when CCA helps too ๐ŸŒˆ.

in "Robust Rate Adaptation for 802.11 Wireless Networks" [Robust] ๐Ÿงš, the authors implemented the ARF, AARF, and SampleRate [SampleRate] algorithms on a programmable Access Point platform. they experimentally examined how these algorithms performed, along with the ONOE [ONOE] algorithm implemented in MadWiFi. based on those experiments, the authors critically examine the assumptions underlying existing rate negotiation algorithms, and honestly the takes are so good ๐Ÿ˜ญ:

Decrease transmission rate upon severe frame loss: where severe frame loss comes from channel conditions, rate reduction can improve throughput. but where frame loss is due to contention (such as from hidden stations), reducing the rate increases congestion, lowers throughput, and could lead to congestive collapse ๐Ÿ’€. instead, the authors propose adaptively enabling RTS/CTS to reduce contention from hidden stations. once RTS/CTS is on, the remaining losses are more likely to be due to channel conditions, which gives more reliable guidance on whether to raise or lower the rate.

Use probe frames to assess possible new rates: probe frames reliably estimate frame loss at a given rate only if the sample size is sufficient and the probe frames are about the same length as data frames. the authors argue that rate adaptation schemes like SampleRate are too sensitive to losing probe packets. to meet sample size constraints, you'd need a significant number of probe frames, which can increase frame loss if the probed rate is too high, and can lower throughput if the probed rate is too low ๐Ÿ˜ฌ. instead, the authors propose assessing channel condition by tracking the frame loss ratio within a window of 5 to 40 frames โœจ.

Use consecutive transmission successes/losses to increase/decrease rate: the authors argue that consecutive successes or losses aren't a reliable basis for rate increases or decreases. a greater sample size is needed ๐Ÿ™ˆ.

Use PHY metrics like SNR to infer new transmission rate: the authors argue that received signal to noise ratio (SNR) routinely varies 5 dB per packet, and variations of 10-14 dB are common ๐ŸŒŠ. as a result, rate decisions based on SNR or signal strength can make the transmission rate vary rapidly. the authors question the value of that rapid variation, since studies such as [Aguayo] show little correlation between SNR and frame loss probability. so the authors argue that neither received signal strength indication (RSSI) nor background energy level can be used to tell losses due to contention apart from those due to channel conditions. multi-path interference can cause high signal strength and frame loss at the same time, but the relationship between low signal strength and high frame loss is stronger ๐Ÿ’…. therefore, transmission rate decreases due to low received signal strength probably do reflect sudden worsening of channel conditions, although sudden increases may not necessarily mean channel conditions have improved ๐Ÿซถ.

Long-term smoothened operation produces best average performance: the authors present evidence that frame losses more than 150 ms apart are uncorrelated. so collecting statistical data over intervals of 1 second or greater reduces responsiveness without improving the quality of transmission rate decisions ๐Ÿ˜ญ. instead, the authors argue that a sampling period of 100 ms gives the best average performance. such small sampling periods also argue against using probes, since probe packets can only represent a fraction of all data frames, and probes collected more than 150 ms apart may not provide reliable information on channel conditions ๐ŸŽ€.

okay so the authors looked at all those flaws and said "bestie, we can do better" ๐Ÿ’… and built the Robust Rate Adaptation Algorithm (RRAA) โœจ. The big glow-up is that RRAA only looks at the frame loss ratio at the current transmission rate to decide whether to go up or down. No PHY layer info, no probe packets, just vibes and loss numbers ๐Ÿฆ‹. Each transmission rate gets its own estimation window, a maximum tolerable loss threshold (MTL), and an opportunistic rate increase threshold (ORI) ๐ŸŽ€. If the loss ratio is bigger than the MTL, the rate drops. If it's smaller than the ORI, the rate goes up. If it's in between, the rate just stays put ๐ŸŒธ. The thresholds are picked to maximize throughput ๐Ÿ‘‘. RRAA only moves between adjacent transmission rates, but it doesn't wait for a full estimation window before changing anything. If more data wouldn't change the decision, it switches right away โšก. No waiting around, iconic ๐Ÿ’–.

The authors tested RRAA with experiments and field trials, and it came out on top ๐Ÿ”ฅ. Without adaptive RTS/CTS, it beat ARF, AARF, and Sample Rate. Why? It's not as shook by transient frame loss and it doesn't do probing, so it can hang out at higher transmission rates more often ๐Ÿงš. Where there are no hidden stations, turning adaptive RTS/CTS on only costs a few percent at most ๐Ÿ™ˆ. But where hidden stations are causing a lot of contention, adaptive RTS/CTS gives huge gains, because fewer frames get lost and that lets you pick a higher transmission rate ๐Ÿ’œ.

In "Efficient Mobility Management for Vertical Handoff between WWAN and WLAN" [Vertical], the authors use signal strength and link utilization to make vertical handoff smoother ๐ŸŒˆ. WLAN to WWAN handoff is driven by SSI decay. When IEEE 802.11 SSI drops below a threshold (S1), they run Fast Fourier Transform (FFT)-based decay detection to see if the signal is likely to keep sliding ๐Ÿ“‰. If it is, the handoff to the WWAN starts once the signal falls below the minimum acceptable level (S2) โœจ. WWAN to WLAN handoff is driven by both PHY and MAC characteristics of the IEEE 802.11 target network ๐Ÿฆ‹. At the PHY layer, things like SSI get checked to see if the signal strength is greater than a minimum value (S3) ๐Ÿ“ถ. At the MAC layer, they look at the IEEE 802.11 Network Allocation Vector (NAV) occupation to estimate the maximum available bandwidth and mean access delay ๐Ÿ“. Note that depending on the value of S3, the negotiated rate can end up lower than the available bandwidth ๐Ÿ‘€. To stop premature handoff between WLAN and WWAN, S1 and S2 are separated by 6 dB ๐ŸŽ€. To stop the device from oscillating between WLAN and WWAN media, S3 needs to be greater than S1 by an appropriate margin ๐Ÿ’….

A.2. Internet Layer โœจ

Up in the Internet layer, people have proposed using link indications to optimize IP configuration, to make routing metrics more useful, and to tune parts of Mobile IP handoff ๐ŸŒธ.

In "Analysis of link failures in an IP backbone" [Iannaccone], the authors dig into link failures in Sprint's IP backbone ๐Ÿ”. They figure out what causes convergence delay, including delays in detecting whether an interface is down or up ๐Ÿ˜ญ. It's fastest for a router to use link indications when they're available, but sometimes it has to rely on losing routing packets to figure out what the link is doing ๐Ÿซถ. Once the link state is known, the routing protocol might add a delay to dampen link flaps ๐ŸŒŠ. And then there can be another delay when propagating the link state change, which rate limits link state advertisements and guards against instability ๐Ÿ›ก๏ธ.

"Bidirectional Forwarding Detection" [BFD] points out that link layers may only give limited failure indications, and that routing protocols use relatively slow "Hello" mechanisms to detect failures when no link layer indications are available ๐Ÿข. That means failure detection times on the order of a second, which is way too long for some applications ๐Ÿ’€. The authors describe a mechanism for liveness detection over any media, so failures in the path between adjacent forwarding engines can be detected rapidly โšก. A path is declared operational once bidirectional reachability has been confirmed ๐Ÿ’œ.

In "Detecting Network Attachment (DNA) in IPv4" [RFC4436], a host that has moved to a new point of attachment runs a bidirectional reachability test in parallel with DHCP [RFC2131]. This lets it quickly reconfirm a working configuration ๐Ÿงš.

In "L2 Triggers Optimized Mobile IPv6 Vertical Handover: The 802.11/GPRS Example" [Park], the authors suggest that the mobile node sends a router solicitation when it gets a "Link Up" indication ๐ŸŽ€. That gives lower handoff latency than generic movement detection [RFC3775] can manage ๐Ÿš€. The authors also suggest immediately invalidating the Care-of Address (CoA) when a "Link Down" indication arrives ๐Ÿ™ˆ. But that's problematic when a "Link Down" indication can be followed by a "Link Up" indication without any resulting change in IP configuration, as described in [RFC4436] ๐Ÿ˜ฌ.

In "Layer 2 Handoff for Mobile-IPv4 with 802.11" [Mun], the authors suggest carrying MIPv4 Registration messages inside Information Elements of IEEE 802.11 Association/Reassociation frames, to cut down on handoff delays ๐Ÿ’ซ. This needs changes to the mobile node as well as the 802.11 APs ๐Ÿ› ๏ธ. But before a node has detected network attachment, it's hard for it to tell whether the new point of attachment is actually a change of network ๐Ÿค”. For example, even when a station stays within the same ESS, the network can still change ๐Ÿ˜ณ. If no change of network happens, sending a MIPv4 Registration message with each Association/Reassociation is unnecessary ๐Ÿ™…โ€โ™€๏ธ. If a change of network does happen, the mobile node usually can't predict its new CoA at Association/Reassociation. A DHCP server might assign a CoA that was never given to the mobile node before ๐ŸŽฒ. And when dynamic VLAN assignment is used, the VLAN isn't even determined until IEEE 802.1X authentication finishes, which happens after Association/Reassociation in [IEEE-802.11i] ๐Ÿ“‹.

In "Link Characteristics Information for Mobile IP" [Lee], link characteristics go along in the registration/Binding Update messages the mobile node sends to the home agent and correspondent node ๐Ÿ“จ. When the mobile node is acting as a receiver, this lets the correspondent node adjust its transport parameters window faster than it otherwise could ๐Ÿƒโ€โ™€๏ธ. Link characteristics that can be communicated include the link type (e.g., 802.11b, CDMA (Code Division Multiple Access), GPRS (General Packet Radio Service), etc.) and link bandwidth ๐Ÿ“ก. The document suggests the correspondent node should adjust its sending rate based on the advertised link bandwidth, but that might not be wise in some situations ๐Ÿคจ. For example, if the mobile node's link isn't the bottleneck, adjusting the sending rate based on the link bandwidth could cause congestion ๐Ÿšง. Also, if the transmission rate changes often, sending registration messages on every change could eat up a lot of bandwidth by itself ๐Ÿ’ธ. Even when the advertised link characteristics suggest a smaller congestion window is needed, it can be non-trivial to adjust the sending rates of individual connections when there are several open between a mobile node and correspondent node ๐Ÿงฉ. A more conservative approach would be to trigger parameter re-estimation and slow start based on receiving a registration message or Binding Update ๐ŸŒ.

In "Hotspot Mitigation Protocol (HMP)" [HMP], it's noted that Mobile Ad-hoc NETwork (MANET) routing protocols have a tendency to concentrate traffic, since they use shortest-path metrics and let nodes answer route queries with cached routes ๐ŸŒ‹. The authors propose that nodes in an ad-hoc wireless mesh monitor local conditions like MAC delay, buffer consumption, and packet loss ๐Ÿ‘€. When congestion is detected, it gets communicated to neighboring nodes through an IP option ๐Ÿ“ฃ. In response to moderate congestion, nodes suppress route requests. When major congestion is detected, nodes rate control the transport connections flowing through them ๐Ÿšฆ. The authors argue that for ad-hoc networks, throttling by intermediate nodes works better than end-to-end congestion control mechanisms ๐Ÿซถ.

A.3. Transport Layer ๐Ÿฆ‹

In the transport layer, proposals have focused on countering handoff-induced packet loss and non-congestive loss caused by lossy wireless links ๐ŸŒง๏ธ.

When a mobile host moves to a new network, the transport parameters (including the RTT, RTO, and congestion window) may no longer be valid ๐Ÿ˜ต. If the path change happens on the sender (e.g., a change in outgoing or incoming interface), the sender can reset its congestion window and parameter estimates โœ…. But if it happens on the receiver, the sender may not even know the path changed ๐Ÿ‘ป.

In "The BU-trigger method for improving TCP performance over Mobile IPv6" [Kim], the authors note that the transport layer reads handoff-related packet loss as congestion ๐Ÿšจ. When the correspondent node is sending to the mobile node, they propose that receiving a Binding Update at the correspondent node be used as a signal to the transport layer to adjust cwnd and ssthresh values, which may have been reduced because of handoff-induced packet loss ๐Ÿ’ซ. The authors recommend recovering cwnd and ssthresh to pre-timeout values, whether or not the link parameters have changed ๐Ÿ”„. The paper doesn't discuss what a mobile node does when it's sending a Binding Update while it's sending to the correspondent node ๐Ÿคทโ€โ™€๏ธ.

In "Effect of Vertical Handovers on Performance of TCP-Friendly Rate Control" [Gurtov], the authors look at how explicit handover notifications affect TCP-friendly rate control (TFRC) ๐Ÿ“Š. When an explicit handover notification includes information on the loss rate and throughput of the new link, it can be used to change the sender's transmission rate instantly โšก. The authors also found that resetting the TFRC receiver state after handover lets parameter estimates adjust more quickly ๐Ÿ.

A.4. Application Layer โœจ

okay so the application layer has its own little drama too ๐ŸŽ€ A team looked at [Haratcherev2] and it's giving smart coupling. Rate info from a link layer that uses improved rate adaptation algorithms gets passed up to a video app, and the app uses it to adapt its codec ๐ŸŽฌ Linking the link and application layers led to major wins in Peak Signal to Noise Ratio (PSNR) ๐Ÿ“ˆ ngl that's iconic, BUT there's a catch ๐Ÿ™ˆ this approach assumes the link is the path's bottleneck bandwidth, so it isn't universally applicable over the Internet ๐ŸŒ

Next up, presence systems! ๐Ÿ’œ Someone proposed using "Link Down" indications to make them better. Here's the tea: client devices keep refreshing their presence state using application layer protocols like SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) [RFC3428] or Extensible Messaging and Presence Protocol (XMPP) [RFC3921] ๐Ÿ’ฌ If a client gets disconnected, nobody notices its unavailability until the presence status times out, and that can take many minutes ๐Ÿ˜ญ That's literally so long, bestie.

BUT if the link goes down and a disconnect indication can be sent to the presence server (presumably by the Access Point, which stays connected ๐Ÿงš), the user's status can update nearly instantaneously โšก Main character energy for the status bar, fr fr ๐Ÿ’…โœจ

Appendix B. IAB Members at the Time of This Writing โœจ

Okay so bestie, this is the little roll call at the end of the doc ๐ŸŽ€ It's the IAB members who were around when this got written. Iconic lineup, no cap ๐Ÿ‘‘

  • Bernard Aboba
  • Loa Andersson
  • Brian Carpenter
  • Leslie Daigle
  • Elwyn Davies
  • Kevin Fall
  • Olaf Kolkman
  • Kurtis Lindqvist
  • David Meyer
  • David Oran
  • Eric Rescorla
  • Dave Thaler
  • Lixia Zhang

Author's Address ๐Ÿ’Œ

Bernard Aboba, Ed. is the one listed as the author, and he's at Microsoft Corporation, One Microsoft Way, Redmond, WA 98052 ๐ŸŒธ

EMail: bernarda@microsoft.com Phone: +1 425 706 6605 Fax: +1 425 936 7329

There's also an IAB contact entry, reachable at:

EMail: iab@iab.org URI: http://www.iab.org/


Copyright (C) The IETF Trust (2007). ๐Ÿฆ‹

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐Ÿ’…


Intellectual Property ๐Ÿงš

The IETF takes no position on whether any Intellectual Property Rights might be claimed over the technology in this document, or how much license might be available under those rights. It also doesn't claim it has done any independent search for such rights. Info on how rights work for RFC documents is in BCP 78 and BCP 79 ๐Ÿ“š

Copies of IPR disclosures sent to the IETF Secretariat, plus any assurances of licenses, or the results of an attempt to get a general license or permission for implementers or users, can be found in the IETF's online IPR repository at http://www.ietf.org/ipr. ๐Ÿ”ฅ

The IETF invites anyone to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. Send that to ietf-ipr@ietf.org ๐Ÿ’œ


Acknowledgement ๐Ÿ“

Funding for the RFC Editor function is currently provided by the Internet Society. Thank you, Internet Society ๐Ÿซถ

๐Ÿ“ฆ where this page comes from