* [Make-wifi-fast] the hidden station problem
@ 2016-04-21 17:13 Dave Taht
2016-04-21 17:57 ` David Lang
0 siblings, 1 reply; 5+ messages in thread
From: Dave Taht @ 2016-04-21 17:13 UTC (permalink / raw)
To: make-wifi-fast, Henning Rogge
I was watching myself do then make-wifi-fast Q&A and henning mentioned
the hidden station problem and it's interaction with minstrel...
https://www.youtube.com/watch?v=Rb-UnHDw02o
Since we are doing up some better testbeds, I am curious as to what
might be a good (simplified) setup (bench or air) for it, and/or if
there has been a paper that shows the interaction problems with
minstrel in particular.
--
Dave Täht
Let's go make home routers and wifi faster! With better software!
http://blog.cerowrt.org
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Make-wifi-fast] the hidden station problem
2016-04-21 17:13 [Make-wifi-fast] the hidden station problem Dave Taht
@ 2016-04-21 17:57 ` David Lang
2016-04-21 18:02 ` Dave Taht
2016-04-22 6:44 ` Henning Rogge
0 siblings, 2 replies; 5+ messages in thread
From: David Lang @ 2016-04-21 17:57 UTC (permalink / raw)
To: Dave Taht; +Cc: make-wifi-fast, Henning Rogge
[-- Attachment #1: Type: TEXT/PLAIN, Size: 3377 bytes --]
On Thu, 21 Apr 2016, Dave Taht wrote:
> I was watching myself do then make-wifi-fast Q&A and henning mentioned
> the hidden station problem and it's interaction with minstrel...
>
> https://www.youtube.com/watch?v=Rb-UnHDw02o
>
> Since we are doing up some better testbeds, I am curious as to what
> might be a good (simplified) setup (bench or air) for it, and/or if
> there has been a paper that shows the interaction problems with
> minstrel in particular.
the basic way to see this is to take two stations and move them far enough
apart, or put shielding between them so that they cannot talk to each other.
Then position a third station so that it can see both of the first two.
If you really turn the power down, you may be able to get away with them fairly
near each other with a metal sheet next to one of them.
You will see that you can talk to either of them quite nicely if the other is
pretty idle, but if you have them both sending a lot of data at the same time,
disaster strikes.
If you are writing a simulator, add a probability that a packet transmitted from
an edge station to the central station doesn't get through. Ramp up this
probability and watch what happens. A better simulator would scale the
probability up based on the amount of airtime needed, so that as the sender
slowes down, the probability goes up.
This is one of the hardest problems for wifi to deal with. It manifests as
massive amounts of lost packets when the first two are sending to the third one,
and no amount of backoff helps. Slowing down the transmit rate just makes things
worse as it takes longer to transmit each bundle and so it's more likely to be
stepped on.
Reading up on Minstrel at
https://wireless.wiki.kernel.org/en/developers/documentation/mac80211/ratecontrol/minstrel
there is a comment
> Inspection of the code in different rate algorithms left us bewildered. Why
> did all the code bases we looked at contain the assumption that packets sent
> at slow data rates are more likely to succeed than packets sent at higher
> datarates? The physics behind this assumption baffled us. A slow data rate
> packet has the highest possibility of being “shot down” by some other node
> sending a packet.
the answer to this is that the higher data rates require a better signal to
noise ratio, and so if the problem is that the stations are too far apart, or
there is a wall between them that makes the signal weaker, or that there is just
a lot of low-volume noise in the area, the slower data rates are far more likely
to be understandable than the faster data rates. Since Wifi was designed long
before anyone imagined how common it would become (I remember when the pcmcia
cards were >$1000 each rather than the current <$10 for a much faster USB
adapter), they designed the protocol to fall back to lower rates if the packets
don't get through.
This works well if you are out in the boonies and trying for range. It fails
horribly in very high density environments (this is why most conference wifi is
worthless for example)
This is why it's a good idea to disable the lowest data rates if you know that
you don't need them.
reading the minsrel page, it seems intuitively obvious to me that this random
packet drop would really mess with their moving average and thus the decisions
they end up making.
David Lang
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Make-wifi-fast] the hidden station problem
2016-04-21 17:57 ` David Lang
@ 2016-04-21 18:02 ` Dave Taht
2016-04-22 6:44 ` Henning Rogge
1 sibling, 0 replies; 5+ messages in thread
From: Dave Taht @ 2016-04-21 18:02 UTC (permalink / raw)
To: David Lang; +Cc: make-wifi-fast, Henning Rogge
the original minstrel paper is well worth reading.
http://blog.cerowrt.org/post/minstrel/
On Thu, Apr 21, 2016 at 10:57 AM, David Lang <david@lang.hm> wrote:
> On Thu, 21 Apr 2016, Dave Taht wrote:
>
>> I was watching myself do then make-wifi-fast Q&A and henning mentioned
>> the hidden station problem and it's interaction with minstrel...
>>
>> https://www.youtube.com/watch?v=Rb-UnHDw02o
>>
>> Since we are doing up some better testbeds, I am curious as to what
>> might be a good (simplified) setup (bench or air) for it, and/or if
>> there has been a paper that shows the interaction problems with
>> minstrel in particular.
>
>
> the basic way to see this is to take two stations and move them far enough
> apart, or put shielding between them so that they cannot talk to each other.
>
> Then position a third station so that it can see both of the first two.
>
> If you really turn the power down, you may be able to get away with them
> fairly near each other with a metal sheet next to one of them.
>
> You will see that you can talk to either of them quite nicely if the other
> is pretty idle, but if you have them both sending a lot of data at the same
> time, disaster strikes.
>
>
>
> If you are writing a simulator, add a probability that a packet transmitted
> from an edge station to the central station doesn't get through. Ramp up
> this probability and watch what happens. A better simulator would scale the
> probability up based on the amount of airtime needed, so that as the sender
> slowes down, the probability goes up.
>
>
>
>
> This is one of the hardest problems for wifi to deal with. It manifests as
> massive amounts of lost packets when the first two are sending to the third
> one, and no amount of backoff helps. Slowing down the transmit rate just
> makes things worse as it takes longer to transmit each bundle and so it's
> more likely to be stepped on.
>
>
>
> Reading up on Minstrel at
> https://wireless.wiki.kernel.org/en/developers/documentation/mac80211/ratecontrol/minstrel
> there is a comment
>
>> Inspection of the code in different rate algorithms left us bewildered.
>> Why did all the code bases we looked at contain the assumption that packets
>> sent at slow data rates are more likely to succeed than packets sent at
>> higher datarates? The physics behind this assumption baffled us. A slow data
>> rate packet has the highest possibility of being “shot down” by some other
>> node sending a packet.
>
>
> the answer to this is that the higher data rates require a better signal to
> noise ratio, and so if the problem is that the stations are too far apart,
> or there is a wall between them that makes the signal weaker, or that there
> is just a lot of low-volume noise in the area, the slower data rates are far
> more likely to be understandable than the faster data rates. Since Wifi was
> designed long before anyone imagined how common it would become (I remember
> when the pcmcia cards were >$1000 each rather than the current <$10 for a
> much faster USB adapter), they designed the protocol to fall back to lower
> rates if the packets don't get through.
>
> This works well if you are out in the boonies and trying for range. It fails
> horribly in very high density environments (this is why most conference wifi
> is worthless for example)
>
>
> This is why it's a good idea to disable the lowest data rates if you know
> that you don't need them.
>
>
>
> reading the minsrel page, it seems intuitively obvious to me that this
> random packet drop would really mess with their moving average and thus the
> decisions they end up making.
>
> David Lang
--
Dave Täht
Let's go make home routers and wifi faster! With better software!
http://blog.cerowrt.org
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Make-wifi-fast] the hidden station problem
2016-04-21 17:57 ` David Lang
2016-04-21 18:02 ` Dave Taht
@ 2016-04-22 6:44 ` Henning Rogge
2016-04-22 16:44 ` Dave Taht
1 sibling, 1 reply; 5+ messages in thread
From: Henning Rogge @ 2016-04-22 6:44 UTC (permalink / raw)
To: David Lang; +Cc: Dave Taht, make-wifi-fast
On Thu, Apr 21, 2016 at 7:57 PM, David Lang <david@lang.hm> wrote:
> On Thu, 21 Apr 2016, Dave Taht wrote:
>
>> I was watching myself do then make-wifi-fast Q&A and henning mentioned
>> the hidden station problem and it's interaction with minstrel...
>>
>> https://www.youtube.com/watch?v=Rb-UnHDw02o
>>
>> Since we are doing up some better testbeds, I am curious as to what
>> might be a good (simplified) setup (bench or air) for it, and/or if
>> there has been a paper that shows the interaction problems with
>> minstrel in particular.
>
>
> the basic way to see this is to take two stations and move them far enough
> apart, or put shielding between them so that they cannot talk to each other.
>
> Then position a third station so that it can see both of the first two.
Yes, three stations would be the minimum, but I would suggest trying
it with 4 stations (all of them in IBSS/Adhoc-Mode).
With three stations you still have one who can see everyone, which
might change the effects.
As soon as you have the chain of 3/4 stations, just setup IP
forwarding routes and send traffic over the chain in one or both
directions.
> If you really turn the power down, you may be able to get away with them
> fairly near each other with a metal sheet next to one of them.
Easy to do in an office building with 5 GHz devices... often you
cannot even reach offices through two walls.
> You will see that you can talk to either of them quite nicely if the other
> is pretty idle, but if you have them both sending a lot of data at the same
> time, disaster strikes.
Yes.
> If you are writing a simulator, add a probability that a packet transmitted
> from an edge station to the central station doesn't get through. Ramp up
> this probability and watch what happens. A better simulator would scale the
> probability up based on the amount of airtime needed, so that as the sender
> slowes down, the probability goes up.
Not sure how well current simulators can handle this.
> This is one of the hardest problems for wifi to deal with. It manifests as
> massive amounts of lost packets when the first two are sending to the third
> one, and no amount of backoff helps. Slowing down the transmit rate just
> makes things worse as it takes longer to transmit each bundle and so it's
> more likely to be stepped on.
I think reporting the "used airtime" in the beacons would help. This
might be a first step to detect the presence of hidden stations
because your own view of the airtime is different than the one of your
neighbor.
It would also be possible to add a hash of all known neighbor mac
addresses to your beacon. This way your neighbors KNOW if there is the
potential of a hidden station.
> Reading up on Minstrel at
> https://wireless.wiki.kernel.org/en/developers/documentation/mac80211/ratecontrol/minstrel
> there is a comment
>
>> Inspection of the code in different rate algorithms left us bewildered.
>> Why did all the code bases we looked at contain the assumption that packets
>> sent at slow data rates are more likely to succeed than packets sent at
>> higher datarates? The physics behind this assumption baffled us. A slow data
>> rate packet has the highest possibility of being “shot down” by some other
>> node sending a packet.
> the answer to this is that the higher data rates require a better signal to
> noise ratio, and so if the problem is that the stations are too far apart,
> or there is a wall between them that makes the signal weaker, or that there
> is just a lot of low-volume noise in the area, the slower data rates are far
> more likely to be understandable than the faster data rates. Since Wifi was
> designed long before anyone imagined how common it would become (I remember
> when the pcmcia cards were >$1000 each rather than the current <$10 for a
> much faster USB adapter), they designed the protocol to fall back to lower
> rates if the packets don't get through.
Exactly... the "lower bits per airtime" should help the receiver to
decode the frames. QAM64 (for high data rates) needs a lot more SNR
(or SNIR, Signal to Noise and Interference Ratio) than QPSK.
> This works well if you are out in the boonies and trying for range. It fails
> horribly in very high density environments (this is why most conference wifi
> is worthless for example)
>
> This is why it's a good idea to disable the lowest data rates if you know
> that you don't need them.
>
> reading the minsrel page, it seems intuitively obvious to me that this
> random packet drop would really mess with their moving average and thus the
> decisions they end up making.
I wonder if it would make sense to try the best data-rate again for a
second time if you detect you are in a hidden station environment with
a "low amount of airtime available".
Henning
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Make-wifi-fast] the hidden station problem
2016-04-22 6:44 ` Henning Rogge
@ 2016-04-22 16:44 ` Dave Taht
0 siblings, 0 replies; 5+ messages in thread
From: Dave Taht @ 2016-04-22 16:44 UTC (permalink / raw)
To: Henning Rogge; +Cc: David Lang, make-wifi-fast
I have just finished re-consuming the entire (2600+ pages) 802.11-2012
specification. For those of you into that level of personal abuse, or
have insomnia, or want to make a dent in wifi's problems, I do
recommend a close reading. As specs go, it is pretty darn readable. I
made extensive notes on it, which I will publish at some point.
Probably of most interest to debloaters was section 9 on ampdu frame
formats (which sort of requires reading sec-3-8), various forms of
scheduling, how a block ack works (and could be more often disabled
via QosNoack), and so on.
the spec is now free:
http://standards.ieee.org/about/get/802/802.11.html and I would love
it if everyone here did try to get through section 9, which is only
about 50 pages.
In rereading it I was struck by how much most of our problems were in
areas that the standards viewed as out of scope!
and if you would like some insight as to how the 802.11wg works, see:
http://grouper.ieee.org/groups/802/11/Publicity/What%20is%20802.11%20doing.pptx
I started at the 802.11ac one and then went off to sleep on a bed of
nails for relaxation. (you kind of need to read both if you care
about ac, as it has extensive mods to the previous spec)
Nowhere in either spec was any reference to the hidden node problem.
AC pees on way more channels and does do some sort of dynamic backoff,
but... agh... I have to read the whole thing I guess.
On Thu, Apr 21, 2016 at 11:44 PM, Henning Rogge <hrogge@gmail.com> wrote:
> On Thu, Apr 21, 2016 at 7:57 PM, David Lang <david@lang.hm> wrote:
>> On Thu, 21 Apr 2016, Dave Taht wrote:
>>
>>> I was watching myself do then make-wifi-fast Q&A and henning mentioned
>>> the hidden station problem and it's interaction with minstrel...
>>>
>>> https://www.youtube.com/watch?v=Rb-UnHDw02o
>>>
>>> Since we are doing up some better testbeds, I am curious as to what
>>> might be a good (simplified) setup (bench or air) for it, and/or if
>>> there has been a paper that shows the interaction problems with
>>> minstrel in particular.
>>
>>
>> the basic way to see this is to take two stations and move them far enough
>> apart, or put shielding between them so that they cannot talk to each other.
>>
>> Then position a third station so that it can see both of the first two.
>
> Yes, three stations would be the minimum, but I would suggest trying
> it with 4 stations (all of them in IBSS/Adhoc-Mode).
>
> With three stations you still have one who can see everyone, which
> might change the effects.
>
> As soon as you have the chain of 3/4 stations, just setup IP
> forwarding routes and send traffic over the chain in one or both
> directions.
>
>> If you really turn the power down, you may be able to get away with them
>> fairly near each other with a metal sheet next to one of them.
>
> Easy to do in an office building with 5 GHz devices... often you
> cannot even reach offices through two walls.
>
>> You will see that you can talk to either of them quite nicely if the other
>> is pretty idle, but if you have them both sending a lot of data at the same
>> time, disaster strikes.
>
> Yes.
>
>> If you are writing a simulator, add a probability that a packet transmitted
>> from an edge station to the central station doesn't get through. Ramp up
>> this probability and watch what happens. A better simulator would scale the
>> probability up based on the amount of airtime needed, so that as the sender
>> slowes down, the probability goes up.
>
> Not sure how well current simulators can handle this.
>
>> This is one of the hardest problems for wifi to deal with. It manifests as
>> massive amounts of lost packets when the first two are sending to the third
>> one, and no amount of backoff helps. Slowing down the transmit rate just
>> makes things worse as it takes longer to transmit each bundle and so it's
>> more likely to be stepped on.
>
> I think reporting the "used airtime" in the beacons would help. This
> might be a first step to detect the presence of hidden stations
> because your own view of the airtime is different than the one of your
> neighbor.
>
> It would also be possible to add a hash of all known neighbor mac
> addresses to your beacon. This way your neighbors KNOW if there is the
> potential of a hidden station.
>
>> Reading up on Minstrel at
>> https://wireless.wiki.kernel.org/en/developers/documentation/mac80211/ratecontrol/minstrel
>> there is a comment
>>
>>> Inspection of the code in different rate algorithms left us bewildered.
>>> Why did all the code bases we looked at contain the assumption that packets
>>> sent at slow data rates are more likely to succeed than packets sent at
>>> higher datarates? The physics behind this assumption baffled us. A slow data
>>> rate packet has the highest possibility of being “shot down” by some other
>>> node sending a packet.
>
>> the answer to this is that the higher data rates require a better signal to
>> noise ratio, and so if the problem is that the stations are too far apart,
>> or there is a wall between them that makes the signal weaker, or that there
>> is just a lot of low-volume noise in the area, the slower data rates are far
>> more likely to be understandable than the faster data rates. Since Wifi was
>> designed long before anyone imagined how common it would become (I remember
>> when the pcmcia cards were >$1000 each rather than the current <$10 for a
>> much faster USB adapter), they designed the protocol to fall back to lower
>> rates if the packets don't get through.
>
> Exactly... the "lower bits per airtime" should help the receiver to
> decode the frames. QAM64 (for high data rates) needs a lot more SNR
> (or SNIR, Signal to Noise and Interference Ratio) than QPSK.
>
>> This works well if you are out in the boonies and trying for range. It fails
>> horribly in very high density environments (this is why most conference wifi
>> is worthless for example)
>>
>> This is why it's a good idea to disable the lowest data rates if you know
>> that you don't need them.
>>
>> reading the minsrel page, it seems intuitively obvious to me that this
>> random packet drop would really mess with their moving average and thus the
>> decisions they end up making.
>
> I wonder if it would make sense to try the best data-rate again for a
> second time if you detect you are in a hidden station environment with
> a "low amount of airtime available".
>
> Henning
--
Dave Täht
Let's go make home routers and wifi faster! With better software!
http://blog.cerowrt.org
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-04-22 16:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-21 17:13 [Make-wifi-fast] the hidden station problem Dave Taht
2016-04-21 17:57 ` David Lang
2016-04-21 18:02 ` Dave Taht
2016-04-22 6:44 ` Henning Rogge
2016-04-22 16:44 ` Dave Taht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox