I suspect that carrier sensing does not work in some cases.
It was found in my experiment that the transmitter can begin transmission despite the presence of an incoming packet. I found there is
a "stomp" mode in Atheros optimazation. The idea of "stomping" is as follows: if the incoming packet has a very low RSSI or belongs to another WLAN, the link can neglect
it and transmit without waiting for the complete of the ongoing transmission.
I wonder whether anyone knows more on this "stomp" mode. In Atheros chipset, is it turned on by default? Is there any method to disable it through MADWifi?
The following is the details of my experiment:
My wireless card is WAG511 v2. Its chipset is AR5001X+. The driver is madwifi 0.9.4.
Here are two scenarios for comparison:
Scenario 1: only one Transmitter-Receiver pair, T1 transmits to R1. Fix the transmission power to 1 mW, and the distance between T-R is 16m. Given data rate of 54 Mbps, the measured throughput is around 27Mbps.
That is, under this experiment setting (given txpower and distace), the receiver can hear and successfully decode the packets from the transmitter.
Scenario 2: two Transmitter-Receiver pairs. T1 transmits to R1 and T2 transmits to R2. The transmission power is also fixed to 1mW. The distance between T1 and R1, T2 and R2 is about 2.5 cm to achive perfect signal capture. The distance between T1 and T2 is fixed to 16m. That is, T1 and T2 should perfectly sense the other's transmission.
According to the standard, two transmission should equally share the channel and achieve a throughout of 15Mbps. However, the measured throughput of two links are both beyond 23Mbps.
Compared scenario 1 and scenario 2, it indicates that T1 can hear T2 while it still begins to transmit.