Implementing Fair Share aggregation for CSMA/ECA in NS-3

The final step towards completing CSMA/ECA proposal in NS-3 is to implement frame aggregation via the Fair Share mechanism.

The slight difference with the previous post is that MAC events are handled with EdcaTxopN class instead of DcaTxop. The main reason is that aggregation is not supported on IEEE 802.11g or previous implementations.

EdcaTxopN, as it name might suggests also supports multiple Access Categories (AC), so there is the potential of also programming traffic differentiation with CSMA/ECA (maybe I’ll do it for another post).

As with the previous post, you may find the modified files in my Github repository.


Throughput results

Figure 1 below shows the overall aggregate throughput for a single simulation of 20 seconds in length with saturated nodes.

We are using 802.11n with Mcs HT7 (20 MHz, 72.2 Mbps). ACKs are configured to be sent at 54 Mbps.

NOTE: it is convenient to mention that the smoothing of the curves is yet to be done. This task requires several simulations per point. Future posts will include this feature.

Fig 1. Throughput

Fig 1. Throughput

We can see from Figure 1 that pure CSMA/ECA+Hyst+FS achieves the greater throughput. This is because collisions force the involved nodes to increase their respective backoff stages, which in turn translates to a higher level of aggregation according to Fair Share.

The second highest throughput corresponds to the introduction of Schedule Halving and dynamic stickiness (dynStick) with srConservative (and this). That is, after a number of consecutive transmissions, the node will test the possibility of halving the current deterministic backoff (if it is not the minimum). If a successful reduction is possible, the node will also increase its stickiness to 1. This increase in the stickiness prevents the throughput for increasing that much, mainly because the protocol converges when nodes are at lower backoff stages when compared with the pure Hysteresis and Fair Share curve.


Failed transmissions

Fig 2. Failed Tx

Fig 2. Failed Tx

As expected, CSMA/CA shows the highest number of failed transmissions, followed by Basic CSMA/ECA. CSMA/ECA+Hys+FS with Schedule Reset shows a relative higher number of failed transmissions mostly because it is not using srConservative. The “lump” observed at around 22 nodes for CSMA/ECA+Hys+FS srConservative dynStick is thought to be the result of dynStickiness.


Time between successful transmissions

One of the main reasons for the implementation of Schedule Reset (or Halving) is to reduce the time between successful transmission. High values of this metric negatively impact delay sensitive applications, like voice or video calls.

Fig. 3 Time Between Sx Tx

Fig. 3 Time Between Sx Tx

As the level of aggregation gets higher (according to the node’s backoff stage and Fair Share) the time between successful transmissions increases. As it can be appreciated in Figure 3 the Schedule Reset Mechanism is always attempting to reduce the nodes’ deterministic backoff. We can also see in the figure that Basic CSMA/ECA has a lower value of this metric than CSMA/CA. This can be attributed to the reduced number of collisions experienced with this protocol.


What’s to come

We plan to present CSMA/ECA as CSMA/ECA+Hyst+FS+SH+srConservative+dynStick. Particularly because this was the configuration tested with real hardware (see Figure 4 below). The next post will contain the simulations results of CSMA/ECA when performing under different levels of channel errors.

Fig 4: CSMA/ECA test with 25 nodes

Fig 4: CSMA/ECA+Hyst+SH test with 25 nodes @ UPF, Barcelona (09/2015)



Posted under: CSMA/ECA, Fair Share, Hysteresis, MAC, NS3, QoS, WiFi

Tagged as:

Leave a Reply