[kismac] Re: Signal strength
- From: Robin L Darroch <robin@xxxxxxxxxxxxx>
- To: kismac@xxxxxxxxxxxxx
- Date: Thu, 2 Mar 2006 06:39:37 +0800
Whatever numbers are produced, regardless of all
proscriptions against such behaviour, people are going to use them
for comparison purposes, and then they are going to get mightily
confused. In FreeBSD parlance, this would be a serious violation of
POLA (Principle of Least Astonishment).
I think your principles are correct, but your conclusion is actually
counter to those principles. As you say, people are going to use
numbers to compare no matter what we tell them. Now lets look at two
scenarios for such a comparison:
- warwalker Alice has a 12" iBook with Airport Extreme passive mode.
When she's parked right next to a router, she gets a raw strength of
110. When a network is on the threshold of reception, she gets 60.
- warwalker Brian has a 17" PowerBook, also with Airport Extreme
passive mode. Sitting next to a router, he gets raw strength 150.
At the threshold of reception, he gets 70.
1) No scaling - existing raw numbers only:
* Alice walks past the north side of a house, and gets a signal of 80.
* Brian walks past the south side of the same house, and gets a signal of 100.
* Alice and Brian compare notes. Since they both have computers
using Airport Extreme passive mode, they quite reasonably assume that
the numbers are comparable, and thus conclude that the router is
closer to the south side of the house than the north side. Imagine
their astonishment when they visit the occupants and find the router
sitting in one of the northern rooms!
2) Auto-scaling using the algorithm posted:
* Alice walks past the north side of the house, and gets a scaled
strength of 41.
* Brian walks past the south side of the same house, and gets a
scaled strength of 38.
* Alice and Brian compare notes (although we told them not to) and
conclude that the router is closer to the north side of the house.
When they make the same visit, they admire how clever they were to
ignore our warnings.
In this case, the POLA is actually to provide auto-scaling, not the
raw values KisMAC currently shows.
However, I'm not sure you've understood my proposal as I intended it
(and I probably didn't explain it that well). The auto-scaling
should NOT happen the way the graphs are currently auto-scaled. The
graphs are (quite appropriately) scaled based on "what signal
strengths have I seen lately". By contrast, the scaling values for
signal strength will have to be auto-learned from the time when that
driver was first added to the list in KisMAC (i.e. "what signal
strengths have I seen *ever*"). This means that they increase in
accuracy in a logarithmic curve, very rapidly improving at first
(i.e. the first several networks scanned since installing the driver
will have rough and inaccurate scaled strengths, although still
relatively correct with respect to each other), then reaching the
point where the weakest and strongest signals ever seen probably
won't change much at all (because they'll have encountered - at least
once - the "right next to the router" and the "threshold of hearing"
situations). Essentially, KisMAC would always be learning, but after
the initial period of inaccuracy, it would be pretty close to the
In some cases (e.g. the apartment where I live), the training would
be almost instantaneous: I have a network of my own, and there's
another network which the Airport can only just pick up from time to
time. If I ran KisMAC here, then later took it wardriving, my
auto-scaled strengths would be pretty close to the mark right away,
and would be far more comparable to anyone else's (reasonably
trained) auto-scaled strengths than any existing raw figures.
Yes, it should be optional to turn it on, but I don't think the fact
that it might be used to make an inappropriate comparison is a reason
to exclude it from the program altogether: we already present data
that will give wildly inaccurate comparisons, and don't even warn
people that they shouldn't compare. The case I've given above goes
much more in favour of learned auto-scaling if Alice has a DWL-122
instead of Airport Extreme (e.g. signals ranging from 5 to 50). In
that case, she'd have got a raw strength of 23 compared to Brian's
100, and they would have figured that the router must be outside the
south wall of the house, or even across the street to the south,
which is a completely incorrect conclusion. If using auto-scaled
values, Alice would still have got 41.
As for what to save in KisMAC's data files, that's another matter.
Perhaps with each network saved, save the raw signal strength, and
include an index number for what adapter picked it up, and then at
the end of the file list the adapter(s) installed when the file was
created (with some uniquely identifying number for each... MAC
address? BSSID?) and their current minimum and maximum signal
values. That way, the strengths can be displayed according to the
user's preference (i.e. raw or auto-scaled) on either the same
computer or another computer, while still allowing the scaling to
improve in accuracy with later learning on the original computer that
did the scan.
Hmm... this is getting a bit big... but the more I think about it,
the more convinced I am that it would be a considerable improvement
to the current numbers we show - we just need to be sure to get it
This doesn't exclude the possibility of using dBm if/when we can
gather data on translating raw signals to dBm for all supported
adapters: just let the user choose - raw, dBm, or auto-scaled.
Robin L. Darroch - PO Box 2715, South Hedland WA 6722 - +61 421 503 966
robin@xxxxxxxxxxxxx - robin@xxxxxxxxxxx - robin@xxxxxxxxxxxxx
Other related posts: