wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows

Version 64 (modified by murphpo, 10 years ago) (diff)

--

Investigating Physical Carrier Sensing in the DCF with Multiple Traffic Flows

This application note presents results from a simple experiment using the Mango 802.11 Reference Design and its experiments framework. We use three WARP v3 nodes to build a basic 802.11 network, with one AP and two stations (STA). All three nodes contend for medium access with backlogged traffic flows. The experiments framework enables a detailed study of the performance of each traffic flow, providing insight into the low-level behavior of the 802.11 MAC Distributed Coordination Function (DCF). As the independent variable in our experiments we modify the state of physical carrier sensing at each node.

The primary purpose of this app note is to demonstrate the 802.11 Reference Design and its experiments framework, and to highlight the variety of experimental data which can be computed from the Tx/Rx log recorded at each node. This app note is not an exhaustive study of physical carrier sensing. There are many scholarly articles on the physical carrier sensing that provide a much richer theoretical background.

Table of Contents

  1. Experimental Setup
  2. Aggregate Results
  3. Tx/Rx Log Results
  4. Source Code

Experimental Setup

The experiments described below use 3 Mango WARP v3 kits, each running the 802.11 Reference Design (version v0.91), including the WLAN Experimental Framework.

Each node's RF interface is connected to an antenna with a toroidal pattern with 7dBi gain in all horizontal directions (L-Com RE07U-SM). The antennas are positioned within line-of-sight.

The nodes are indoors in a small office environment with limited mobility. The experimental network is sharing its channel with a few lightly-loaded Wi-Fi networks.

Experimental Setup

Experiment Details

  • Packet Length: 1400 byte payloads (1428 byte MPDUs, with MAC header and FCS)
  • PHY Rate: 18 Mbps (QPSK, code rate 3/4)
  • Tx Power: -5 dBm
  • Trial Duration: 300 seconds
  • 2.4GHz channel 1
  • Physical Carrier Sensing Threshold: approximately -70 dBm, when enabled

We use 4 traffic flows in our experiments:

  • Flow 1: Backlogged traffic from AP to STA_1
  • Flow 2: Backlogged traffic from AP to STA_2
  • Flow 3: Backlogged traffic from STA_1 to AP
  • Flow 4: Backlogged traffic from STA_2 to AP

The colors in the figure above are used throughout this app note to denote each flow.

Aggregate Results

The simplest analysis uses the aggregate Tx/Rx statistics at each node. These statistics include the total number of packets and bytes transmitted and received for each flow, and the number of successful packets and bytes for each flow.

These statistics for our two experiments are in the table below.

# MPDU Tx # PHY Tx # PHY Re-Tx # MPDU Rx Throughput (Mbps)
Physical Carrier Sensing On Off On Off On Off On Off On Off
Flow 1 51,804 46,883 65,531 65,951 13,727 19,068 51,806 46,820 1.97 1.78
Flow 2 51,792 46,864 66,211 66,090 14,419 19,226 51,792 46,794 1.97 1.78
Flow 3 114,116 113,725 140,036 151,143 25,920 37,418 114,115 113,597 4.33 4.31
Flow 4 121,787 118,609 147,488 156,835 25,701 38,226 121,788 118,523 4.62 4.50

Metrics:

  • MPDU Tx: total number of unique MAC data frames submitted to the DCF for transmission
  • PHY Tx: total number of PHY transmissions (includes initial transmission and all re-transmissions of all MPDUs)
  • PHY Re-Tx: total number of PHY re-transmissions
  • MPDU Rx: total number of MAC data frames received successfully
  • Throughput: ratio of total number of MAC bits received and experiment duration

It is clear that physical carrier sensing improves overall throughput, and reduces the number of re-transmissions. But the underlying reason for these changes are impossible to discern from these aggregate results. For a better understanding we must explore the detailed Tx/Rx logs from each node.

Tx/Rx Log Results

The 802.11 Reference Design experiments framework includes a flexible logging system that runs in real-time at every node. This system keeps a record of every Tx and Rx event at the node. For Tx events the log includes both the high-level MPDU Tx (as implemented in CPU High) and the low-level PHY Tx events for each MPDU. Each low-level Tx record includes the timestamp of the actual PHY transmission plus MAC parameters for the transmission (number of backoff slots, current contention window, re-transmission count, etc.). By retrieving the logs from every node following the experiment and analyzing them together, we can gain significant understanding of the behaviors of the nodes and how various parameters impact performance on short and long timescales.

Rx Power vs. Time

The first log-based analysis simply plots the received power of every packet for each node, grouped by traffic flow.

Rx Power vs. Time
Physical Carrier Sensing Enabled Physical Carrier Sensing Disabled

These plots clearly demonstrate the low-mobility, mid-to-high SNR propagation environment for our experiments. And, as expected, the physical carrier sensing threshold has no substantial impact on Rx power.


Throughput vs. Time

The aggregate results above provide the total throughput over the full experiment duration. This throughput is computed as the ratio of successfully received bytes and time duration. But the aggregate throughput does not provide insight into any variations in throughput over the course of the experiment. Using the Rx events in the node logs we can gain a fine-grained view of throughput vs. time.

Throughput vs. Time Per Flow
Physical Carrier Sensing Enabled Physical Carrier Sensing Disabled

These plots show the throughput of each flow as a function of time. Each throughput curve is computed as a 1 second rolling window of bytes received by each node for each flow. This 1 second window is rolled over the full 300 second log in steps of 1 msec. This calculation is based on the log throughput analysis example script.

The impact of physical carrier sensing is apparent in the wide variation of instantaneous throughputs achieved by each flow. In a perfectly-coordinated TDMA system there would be zero variation in throughput with time — each flow would be allocated its fair share and would use the medium a specific intervals. Random access (i.e. distributed coordination) adds variation in the instantaneous throughputs. An effect coordination function should minimize these variations. Carrier sensing is designed to detect potential collisions and defer transmissions that would likely fail. These plots clearly demonstrate the improved consistency of throughput when physical carrier sensing is used to defer transmissions. The improvement is apparent in both total throughput and in lower variation of individual flow throughputs with time.

Throughput Histograms Per Flow
Physical Carrier Sensing Enabled Physical Carrier Sensing Disabled

These plots use the same data as the throughput vs. time curves above, aggregated as histograms to show the probability density function of short-term throughputs per flow. Ideally each histogram would be a delta function. Again, it's clear physical carrier sensing reduces variations in each flow's throughput.


Contention Windows vs. Time

The 802.11 DCF contention window determines the distribution of slot counts for selecting the random backoff period. The contention window grows (i.e. longer average backoffs) with each failed attempt to transmit a packet. The contention window growth is exponential, starting at 16 and doubling with each re-transmission, up to a maximum of 1024.

Ideally a node's contention window would never increase from 16 (the minimum). In reality packet collisions and losses require re-transmissions, leading to inevitable contention window increases.

The contention window resets to its minimum following a successful transmission. When a collision occurs we expect a node's contention window to increase briefly, then reset when the transmission failure is resolved by a future re-transmission. But if collisions are very common (i.e. transmission failures are frequent), we would expect to see higher contention window values that persist longer.

Contention Windows at Each Node vs. Time
Physical Carrier Sensing Enabled Physical Carrier Sensing Disabled

These plots show the actual contention window value of every node at the time of every PHY transmission. The contention window is only updated following PHY transmissions, so these plots capture the complete history of contention window values at every node. The impact of physical carrier sensing on contention window is dramatic. Disabling physical carrier sensing increases the probability of collisions. As explained above, more collisions leads to more transmission failures, leading to higher expected contention window values. This is exactly what the results show.

Characterizing Collisions

The 802.11 DCF attempts to avoid collisions by requiring every node wait (i.e. backoff) a random period and sense the medium before transmitting. The random wait is designed to stagger transmission attempts by nodes that are not otherwise coordinated. Collisions could be made less likely by using longer random backoff periods. But long backoff periods reduce overall medium utilization, negatively impacting performance. Shorter backoff periods increase medium utilization, but also increase the probability that nodes select the same random value and collide. The 802.11 DCF balances this tradeoff with its contention window definition, discussed above.

The DCF backoff procedure divides each waiting period into discrete slots. Nodes wait an integral number of slots before transmitting. The slot duration is 9 usec.

When physical carrier sensing is working correctly, we expect that collisions will occur when two nodes select the same backoff slot count and initiate their transmissions in the same slot. When physical carrier sensing is disabled, nodes will still collide when they choose the same slot count. But other nodes, with larger backoff slot values, will fail to sense the collision and will initiate their own transmission in a future slot.

We can test these expectations by analyzing the timestamps of PHY Tx events in the node logs. The absolute time difference between nodes is first resolved by identifying log entries of a common event, such as beacon transmissions and receptions. Once the time drift between nodes is corrected, the Tx timestamps can be extract and analyzed for overlapping Tx events. When overlapping Tx events are located, the timestamps of the Tx events are compared to compute the difference in Tx start times. We expect this difference to be small when carrier sensing allows nodes to defer to ongoing collisions.

The plots below show the results of this analysis for all 4 traffic flows with physical carrier sensing enabled (left) and disabled (right).

Time Offsets of Colliding Packets - Flow 1
Physical Carrier Sensing Enabled Physical Carrier Sensing Disabled
Time Offsets of Colliding Packets - Flow 2
Time Offsets of Colliding Packets - Flow 3
Time Offsets of Colliding Packets - Flow 4

As you can see from the plots above, when physical carrier sensing is enabled, the only collisions we see are when the time offset between the nodes is essentially zero (i.e. both transmissions were started in the same slot). However, when carrier sensing is disabled, we can see that not only were there more collisions, we have collisions with varying time offsets meaning that the nodes failed to sense the collision.


Resources

The source code for running these experiments will be posted shortly (it all works, we're just cleaning and commenting).

Attachments (1)

Download all attachments as: .zip