Changes between Version 42 and Version 43 of 802.11/wlan_exp/app_notes/dcf_with_multiple_flows


Ignore:
Timestamp:
Apr 21, 2014, 10:35:02 PM (10 years ago)
Author:
murphpo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 802.11/wlan_exp/app_notes/dcf_with_multiple_flows

    v42 v43  
    3333The colors in the figure above are used throughout this app note to denote each flow.
    3434
    35 == Analysis #1: Aggregate Results ==
     35= Aggregate Results =
    3636The 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.
    3737
    3838These statistics are sufficient to calculate total throughput, packet delivery ratio (PDR) and average number of re-transmissions per packet.
    3939
    40 As illustrated below the aggregate statistics mask some interesting MAC behavior changes when carrier sensing is disabled.
     40'''TODO: NEEDS DATA'''
     41
     42||    ||||=  Flow 1  =||||=  Flow 2  =||||=  Flow 3  =||||=  Flow 4  =||
     43|| Carrier Sensing || On || Off || On || Off || On || Off || On || Off ||
     44|| Tx Pkts || 1a || 1b || 2a || 2b || 3a || 3b || 4a || 4b ||
     45|| Rx Pkts || 1a || 1b || 2a || 2b || 3a || 3b || 4a || 4b ||
     46
     47It is clear that without carrier sensing all flows suffer...
     48
     49But the aggregate statistics do not provide enough information to understand why performance suffered. For this, we need to explore the Tx/Rx logs from each node.
     50
     51= Tx/Rx Log Results =
     52
     53The 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.
     54
     55== Rx Power vs. Time ==
     56
     57The first log-based analysis simply plots the received power of every packet for each node, grouped by traffic flow.
     58
     59||||=  '''Rx Power vs. Time'''  =||
     60||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:cs_pow_vs_time.png, width=500)]]  ||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:no_cs_pow_vs_time.png, width=500)]]  ||
     61||  '''Carrier Sensing Enabled'''  ||  '''Carrier Sensing Disabled'''  ||
     62
     63These plots clearly demonstrate the low-mobility, mid-to-high SNR propagation environment for our experiments. And, as expected, the carrier sensing threshold does not impact Rx power.
     64
     65----
     66
     67== Throughput vs. Time ==
     68The 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.
     69
     70||||=  '''Throughput vs. Time  Per Flow'''  =||
     71||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:cs_xput_vs_time.png, width=500)]]  ||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:no_cs_xput_vs_time.png, width=500)]]  ||
     72||  '''Carrier Sensing Enabled'''  ||  '''Carrier Sensing Disabled'''  ||
     73
     74These 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 [wiki:802.11/wlan_exp/examples/txrx_log_analysis#LogProcessThroughputvsTime log throughput analysis] example script.
     75
     76The impact of 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 improve consistency of throughput when 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.
     77
     78||||=  '''Throughput Histograms Per Flow'''  =||
     79||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:cs_xput_hist.png, width=500)]]  ||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:no_cs_xput_hist.png, width=500)]]  ||
     80||  '''Carrier Sensing Enabled'''  ||  '''Carrier Sensing Disabled'''  ||
     81
     82These 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 carrier sensing reduces variations in each flow's throughput.
     83
     84----
     85
     86== Contention Windows vs. Time ==
     87
     88||||=  '''Contention Windows at Each Node vs. Time'''  =||
     89||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:cs_cw_vs_time.png, width=500)]]  ||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:no_cs_cw_vs_time.png, width=500)]]  ||
     90||  '''Carrier Sensing Enabled'''  ||  '''Carrier Sensing Disabled'''  ||
    4191
    4292
    43 ||  -  ||=  Flow 1  =||=  Flow 2  ||=  Flow 3  ||=  Flow 4  =||
    44 || Tx Pkts || 1 || 2 || 3 || 4 ||
    45 || Rx Pkts || 1 || 2 || 3 || 4 ||
     93----
     94----
     95----
     96
     97
     98
     99
    46100
    47101== Experiment 1: Physical Carrier Sensing Enabled ==
     
    79133
    80134
    81 ||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:cs_xput_vs_time.png, width=600)]]  || [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:cs_xput_hist.png, width=600)]]  ||
    82  ||  '''Throughput vs. Time'''  || '''Throughput Histogram'''  ||
    83135
    84136
    85 ||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:cs_pow_vs_time.png, width=600)]]  ||
    86 ||  '''Rx Power vs. Time''  ||
    87 
     137[[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:no_cs_cw_vs_time.png, width=500)]]
    88138||  [[Image(wiki:802.11/wlan_exp/app_notes/dcf_with_multiple_flows/figs:cs_cw_vs_time.png, width=600)]]  ||
    89139||  '''Rx Power vs. Time''  ||