Association ================ .. contents:: :local: :depth: 3 Overview -------- After successful **authentication**, a station (STA) must perform **association** with an Access Point (AP) before transmitting or receiving data frames in an infrastructure Basic Service Set (BSS). The association establishes a logical connection between the STA and the AP, allocates an **Association ID (AID)**, and negotiates supported parameters such as rates and capabilities. In contrast, **IBSS (ad hoc)** networks do not use association; authenticated STAs can immediately exchange data. Association Workflow -------------------- Infrastructure BSS ~~~~~~~~~~~~~~~~~~ .. code-block:: none 1. STA authenticates with AP. 2. STA sends Association Request. 3. AP replies with Association Response (includes AID and status). 4. STA transitions to the “Associated” state. 5. Data frames may now be exchanged. IBSS (Ad Hoc) ~~~~~~~~~~~~~ - No association procedure. - Peers communicate directly once authenticated. Association State Machine ------------------------- | State | Name | Description | |--------|------|-------------| | 1 | Unauthenticated, Unassociated | Initial state after power-up | | 2 | Authenticated, Unassociated | After successful authentication | | 3 | Authenticated, Associated | After successful association | Only in **State 3** can a STA send or receive data frames via the AP. Frame Types ----------- Association Request Frame ~~~~~~~~~~~~~~~~~~~~~~~~~ | Field | Length | Description | |--------|---------|-------------| | Frame Control | 2 | Type = Mgmt, Subtype = Association Request | | Duration | 2 | NAV | | Destination Address (DA) | 6 | AP’s BSSID | | Source Address (SA) | 6 | STA’s MAC | | BSSID | 6 | Same as DA | | Sequence Control | 2 | Sequence number | | **Capability Information** | 2 | STA’s capabilities | | **Listen Interval** | 2 | Wake interval in beacon periods | | **SSID** | Variable | Network SSID | | **Supported Rates** | Variable | Supported data rates | Association Response Frame ~~~~~~~~~~~~~~~~~~~~~~~~~~ | Field | Length | Description | |--------|---------|-------------| | Frame Control | 2 | Type = Mgmt, Subtype = Association Response | | Duration | 2 | NAV | | Destination Address (DA) | 6 | STA’s MAC | | Source Address (SA) | 6 | AP’s MAC | | BSSID | 6 | AP’s BSSID | | Sequence Control | 2 | Sequence number | | **Capability Information** | 2 | AP’s capabilities | | **Status Code** | 2 | Result of association | | **Association ID (AID)** | 2 | Unique identifier for STA | | **Supported Rates** | Variable | Negotiated rates | Capability Information Field ---------------------------- | Bit | Name | Description | |------|------|-------------| | 0 | ESS | Infrastructure BSS | | 1 | IBSS | Ad hoc mode | | 4 | Privacy | WEP required | | 5 | Short Preamble | Supported | | 10 | Short Slot Time | Not used in 11b | Listen Interval --------------- - Expressed in **Time Units (TUs)** (1 TU = 1024 µs). - Indicates how often the STA wakes to receive beacons. - AP must buffer frames for the STA for at least this interval. Example: .. code-block:: none Listen Interval = 10 → STA wakes every 10 beacon intervals. Association ID (AID) -------------------- The **AID** is a 2-byte integer assigned by the AP upon successful association. | Parameter | Description | |------------|-------------| | Range | 1–2007 valid AIDs | | AID = 0 | Reserved for broadcast/multicast | | AID = 2008–2047 | Reserved | | Purpose | Index into the TIM bitmap in beacons | | Usage | Indicates STA’s position in AP’s buffer map | Example: If AID = 6, then bit 6 in the TIM element corresponds to this STA. Status Codes ------------ | Code | Meaning | |-------|----------| | 0 | Successful association | | 1 | Unspecified failure | | 10 | Cannot support all requested capabilities | | 11 | Association denied; AP full | | 12 | Unsupported authentication algorithm | | 17 | Association denied by AP policy | | 18 | Invalid AID | | 19 | Insufficient resources | Association Exchange Example ---------------------------- .. code-block:: none STA AP --- --- (Authenticated) (Ready) Association Request --------------->> <<--------------- Association Response (Status=0, AID=6) (Associated; AID=6) Reassociation Process --------------------- Used when an STA roams between APs within the same ESS. - STA sends **Reassociation Request** to the new AP. - Includes **Current AP Address** (so state can be transferred). - AP responds with **Reassociation Response** containing new AID. Purpose: - Enables faster roaming and session continuity. Reassociation Example ~~~~~~~~~~~~~~~~~~~~~ .. code-block:: none STA (connected to AP1) | |----> Detects stronger signal from AP2 | STA → AP2: Reassociation Request (Current AP=AP1) AP2 → AP1: Context transfer (optional) AP2 → STA: Reassociation Response (AID reassigned) | STA now associated with AP2 Disassociation -------------- Used to terminate an existing association. | Direction | Description | |------------|-------------| | STA → AP | STA leaving BSS voluntarily | | AP → STA | AP removes STA (timeout, policy, etc.) | Disassociation Frame ~~~~~~~~~~~~~~~~~~~~ - Type = Management - Subtype = Disassociation - Reason Code indicates cause (e.g., inactivity). After disassociation: - STA transitions to *Authenticated, Unassociated* state. Timing and Behavior ------------------- | Parameter | Typical Value | |------------|---------------| | Slot Time | 20 µs | | SIFS | 10 µs | | DIFS | 50 µs | | Association Timeout | ~1–2 s | | Listen Interval | 10–200 TUs | Typical Management Frame Exchange --------------------------------- .. code-block:: none 1. Probe Request / Response (Discovery) 2. Authentication Request / Response 3. Association Request / Response (AID assigned) 4. (Optional) Reassociation (Roaming) 5. Disassociation / Deauthentication (Leaving) Association Failure Reasons --------------------------- | Failure | Cause | |----------|--------| | AP full | No available AID slots (max 2007) | | Capability mismatch | Incompatible WEP/preamble | | Policy restriction | MAC filtering, VLAN rules | | Authentication invalid | Not yet authenticated | | AP resource limit | Buffer/memory exhaustion | Role of Association in Data Flow -------------------------------- Once associated: - STA can send **data**, **control**, and **management** frames. - AP maintains per-STA records: - AID mapping - Power-save buffer queue - Security key state (if applicable) The AID bit in the **TIM** element of beacons indicates buffered data. Example TIM Usage ----------------- If AID = 6, then: - Bit 6 in TIM = 1 → AP has buffered data for STA. - STA sends **PS-Poll** with AID=6 to request data. Sequence Diagram ---------------- .. code-block:: none STA AP --- --- (Authenticated) --------------------------------------> Association Request <--------------------------------- Association Response (AID=12, Status=0) (Now Associated) [Ready for data exchange] Reassociation Sequence ---------------------- .. code-block:: none STA (connected to AP1) | |--> Detects stronger AP2 | STA → AP2: Reassociation Request (Current AP=AP1) AP2 → AP1: Context transfer (optional) AP2 → STA: Reassociation Response (AID reassigned) STA now associated with AP2 Summary ------- | Concept | Description | |----------|-------------| | Association | Establishes logical connection between STA and AP | | AID | Unique ID for each STA (1–2007) | | Listen Interval | Beacon wake-up interval (TUs) | | Reassociation | Handoff between APs in same ESS | | Disassociation | Graceful termination of association | | Status Code | Indicates success or reason for failure | | TIM | Beacon bitmap tracking buffered unicast data | References ---------- - IEEE Std **802.11-2020**, Clause **9.3.3.7 (Association Frames)** - IEEE Std **802.11b-1999**, Clause **18.2.3.8 (Association Procedures)** - Gast, M. *802.11 Wireless Networks: The Definitive Guide*, O’Reilly - Tanenbaum & Wetherall, *Computer Networks*, 5th Edition - IEEE Std **802.11r-2008** (Fast BSS Transition) Figures ------- .. figure:: _static/association_sequence.svg :align: center :alt: Association sequence diagram Association and AID assignment sequence between STA and AP. .. figure:: _static/reassociation_sequence.svg :align: center :alt: Reassociation sequence diagram Example of STA handoff using reassociation between APs in the same ESS.