frottle: Defeating the Wireless Hidden Node Problem 121
jasonjordan writes "The West Australian FreeNet Group was the first to go War Flying - and now we've released "frottle" (freenet throttle) - an open source project to control & manage traffic on fixed wireless networks. Such control eliminates the common hidden-node effect even on large scale wireless networks.
frottle works by scheduling client traffic by using a master node to co-ordinate - effectively eliminating collisions!
Developed and tested on the large community wireless network of WaFreeNet, We've found it has given us a significant improvement in network usability and throughput.
"
They're reinvented Alohanet, circa 1970 (Score:5, Informative)
Look up "slotted Aloha" [google.com] for background on this class of idea.
Re:They're reinvented Alohanet, circa 1970 (Score:3, Interesting)
Re:They're reinvented Alohanet, circa 1970 (Score:1)
Computer Networks by AST (Score:5, Informative)
Tannenbaum's best known work is Operating Systems [amazon.com], the Minix book.
Yes, I know he was critical of Linus on comp.os.minix [comp.os.minix], that is why I voted to create comp.os.linux [comp.os.linux]. They are still excellent books.
Re:They're reinvented Alohanet, circa 1970 (Score:5, Funny)
So... (Score:3, Funny)
Mirror (Score:4, Informative)
Is Frottle.. is good (Score:5, Interesting)
Thanks to the great work of Frottle, we're now cruising along - we all get a fair go, we have QoS, and bandwidth is shared equally and we're all pretty damn pleased with it.
Is Frottle.. is good
Re:Is Frottle.. is good (Score:5, Funny)
Re:Is Frottle.. is good (Score:4, Interesting)
Most of us connected to this network because we are interested in the technology behind it. 15 "normal" internet users would have undoubtedly leeched the fsck out of the AP and would have seen problems much sooner....
Proud Denizen of the WaFreeNet
Re:Is Frottle.. is good (Score:5, Informative)
So we rolled our own. Frottle is the result.
Re:Is Frottle.. is good (Score:2)
Token ring reborn! (Score:5, Funny)
Re:Token ring reborn! (Score:3, Funny)
This sounds a LOT like Token ring has gone to the, um... ether?
it's more like Token Bus (Score:1, Informative)
Speed isn't the problem... (Score:5, Funny)
Ah yes.... (Score:5, Funny)
agreed (Score:2, Funny)
At least we know who to thank- on the bottom of frottle's page under the special thanks is:
jas for coming up with such a catchy name
Yay jas.... very catchy.
J
Re:Ah yes.... (Score:1)
Attention Project Namers: (Score:4, Insightful)
It's much worse than Firebird.
If nothing else, realize that it messes up people who search for you on Google because of all the @freenet.com email addresses.
Re:Attention Project Namers: (Score:2, Informative)
Try Googling [google.com.au] for frottle some time. no confusion there!
802.11x topology change (Score:5, Informative)
In a true polled topology client packets aren't sent until the AP says they can. The client equipment remains completely silent until they receive the right to broadcast packet. AP's are programmed to completely ignore packets that are sent out of turn anyway.
802.11x hardware is NOT designed that way. Sure you can control data flow that way but your AP is still open to the same problems as before. I wonder what happens when one of the client on one of the computers crashes and ceases to act as a polled client. Will it start hogging time slices from the AP again? Seems to me it would unless there was a radical hardware change to both AP and client adapter.
Re:802.11x topology change (Score:5, Informative)
Correct!
We have built a city-wide wireless freenet using commodity hardware. Things were working well, but as we grew larger the hidden node effect became a larger problem. Swapping all the hardware over is a big expense, and a big undertaking for a bunch of hobbyists.
We did investigate doing so, and also investigated a firmware solution (KarlNet TurboCell) but found it unsuitable to our needs.
On a whim, one of us implemented a small master/slave polling system in Perl which seemed to do the job surprisingly well, and it just grew from there.
Re:802.11x topology change (Score:1)
Re:802.11x topology change (Score:1)
If people connect to the AP without frottle, essentially the collisions and packetloss appear whenever they are uploading. To discourage this, we generally firewall any non-frottle clients, using the frottle stats output in a script. Now, this doesnt stop people using the AP to repeat traffic at the MAC layer, bypassing our routed topilogy - though if this was a problem we could setup MAC fi
token-passing on top of CDCSMA (Score:2, Insightful)
Perhaps this will stimulate some hardware vendor to make token-passing wireless network hardware to eliminate the latency problems. IBM, Madge and Thomas Conrad must have boatloads of relevant expertise already....
Just read the article.. (Score:1, Informative)
Color me unimpressed.
Re:Just read the article.. (Score:5, Insightful)
Color me unimpressed.
Why are you critical of the solution? It appears to work well and is inexpensive. What is wrong with that?
A friend who used to work for a "baby bell" was involved with a project to provide VoIP and video services, as well as internet, over their DSL infrastructure. The problem that they ran into was that IP, as supported by their commodity DSL equipment, did not support QoS. Their solution was to tunnel a more advanced network protocol (ATM I think) over the entire DSL IP connection. Then they ran their voice and video over ATM directly and ran IP as another tunnel over ATM. It wasn't elegant, but it was cheaper and more effective than manufacturing new devices.
Anytime you can use commodity off-the-shelf hardware, you can usually save money.
Re:Just read the article.. (Score:2)
The important point is that the protocol tunneled over the commodity IP connection, and was, by definition, able to use the entire bandwidth of the IP connection. The protocol supported QoS. It was implemented in software. Since the telco involved controlled both ends, it may have been a custom protocol that borrowed features from ATM.
Re:Just read the article.. (Score:1)
-Brian
Re:Just read the article.. (Score:5, Funny)
Yeah, me too. You lamers. All you're doing is adapting old ideas that you didn't invent to new situations. You should just deal with the problem and stop trying to improve your situation. Who do you think you are? People with free will? WTF is wrong with you?
If you want good behavior from your wireless system, you're supposed to go forth and spend large sums of money on exotic, highly vertical equipment from specialized vendors. How do you expect to command respect from anyone if you don't do it that way?
Idiots.
Re:Just read the article.. (Score:2)
And? If it works better than RTS/CTS and solves their problem..
Re:TokenRing? (Score:4, Interesting)
Re:TokenRing? (Score:5, Insightful)
Re:TokenRing? (Score:2)
I _like_ tokenbus; I designed a TokenBus protocol long ago for the Amiga that was never implemented (complete with auto-registration and optimizations for the common small-number-
Wow (Score:5, Funny)
Re:Wow (Score:1)
Am I new to warring or... (Score:3, Interesting)
what. Is there some place that the coordinates of all these hotspots are shown? I think it would be helluva cool to be able to see GPS coordinates, or some sort of listing of where there are these hotspots around. It could be helpful in traveling, and the such.
I don't have a wireless card, much less a laptop, but if i wanted to travel, i imagine that having something like this would be quite helpful, rather than roaming around looking for the symbol etched on a roadsign.
Re:Am I new to warring or... (Score:4, Informative)
Most WaFreeNet nodes are listed here [nodedb.com]
Thanks (Score:2)
What is the state of WAFreeNet these days? (Score:3, Interesting)
One of the things which has kept me from moving back home to Perth and setting up digs has been the state of the Internet down there - the Telecom monopoly, and the distances involved, have been a big factor. Maybe I'm spoiled by American and European bandwidth situations and maybe I ought to just go home and bear with it, but I would be curious to hear from anyone who knows what the scene is like in Perth for cheap, affordable world-class Internet bandwidth?
Re:What is the state of WAFreeNet these days? (Score:1)
There isn't, simple. And I can't see there being for quite a long time either. I am from Perth originally (lived 18 years, now residing in Washington) and broadband in Australia is still in a very poor state, unless you are exceedingly wealthy.
Re:What is the state of WAFreeNet these days? (Score:1)
You can get some of it cheap, but it's not really world class.
256kbit ADSL with 2GB soft cap for A$50/month
1.5mbit ADSL with ~22GB soft cap for A$150/month
Cable (only in some areas) with 10GB hard cap for A$300/month + A$0.10 per MB over cap
Reliability on the ADSL is pretty crap, many of the ISP's have experienced such huge takeup that their main data pipes cant meet the
Fakin' it. (Score:5, Interesting)
802.11b people have a bad habit of thinking that the problems they face are new or unique, so they do a lot of re-inventing the wheel. This, normally is not a bad thing, but quite often "WiFi" supporters produce a crude solution while spewing insane amounts of bullshit radio pseudosience. When did "crosstalk" suddenly mutate into "hidden node problems?" Alvarion (Breezecom) has had polling support in their AP's for
What someone who wants to fix this really ought to do is modify the ihostap drivers to do polling 'on the air' -- If it is possible, at any rate.. I am unaware of the specific implemenation, and it's likely that even toying with the HostAP drivers will not allow one to work with the radio at a low enough level. Still, you know, if it works, it works. Traffic shaping can make things seem faster on congested networks of any kind, so if it throttles the abuser down enough where other radios can get a word in edgewise, then it does a little towards curing a symptom of the real problem. For the freenets and coffee shops, this may be entirely sufficient.
~GoRK
Re:Fakin' it. (Score:2)
I also did address using a computer as an access point. This software belongs in the HostAP driver in that case as I said. Running the access point and running the firewall on the same host is often done (I do it myself on my home firewall.) This is the only real solution to the problem as posted. The frottle people should not say they implemented AP polli
Re:Fakin' it. (Score:1)
I dont thik we ever said we did. We were quite clear that this was IP layer polling (not just traffic shaping either - it's co-ordinated).
Yes, we are "fakin' it", but unfortunately that is all we have to work with. Karnet, with their expertise and budget, have true AP polling with their Turbocell system.
Now, we dont claim to be RF experts, but from what I can determine our exa
Re:Fakin' it. (Score:2, Informative)
Let us also consider the cost of alvarion breezecoms (the outdoor models) of easily 1600+ American dollars. I've got a choice between that and a 75 dollar (or less) AP with a 100 dollar beater laptop in a 50$ (max, maybe less if I can find something used and appropriate, which I can) hoffman box. Subtract that from the profit margin of your basic Mom&Pop Wisp (almost nonexistent labor of love style) or neghborhood
Re:Fakin' it. (Score:2)
I also did mention that proper polling support might easily be
AODV (Score:1, Insightful)
Re:AODV (Score:1)
Adhoc links are all well and good - but you try linking a large number of users via adhoc links and you'll run into a number of problems:
Firstly, cost - that's a lot of dishes, cable and wireless cards you're talking about! We're hobbyists - not a commercial entity.
Secondly, Line of Sight (LOS) - not everyone has LOS to everyone else. And not everyone likes putting up massive masts just so they can. Bu
but i converted that pringles can for a reason! (Score:2)
all that time and effort to get a stronger signal and they're gonna cast me back down with the technon00bs?
'screw you guys, i'm goin home'
This isn't the *real* hidden node problem (Score:3, Informative)
802.11b orginially proposed using RTS/CTS to rememdy the problem, but they quickly realized that this cut network bandwidth down to 1/2 or 1/4 of available bandwidth. Not good.
The only way that you could really fix the problem is to use multiple receivers (access points) located throughout and have them vote on the packets by using a diversity antenna pair. Between the two access points, they should get enough transmission from both stations (remote clients) to reassemble both packets and send them on their merry way.
This software doesn't really handle 802.11b itself , which allows for clients to clobber each other. Good job getting around the problem, though.
Not a hidden node problem (Score:5, Informative)
This is more a problem with the inherent lack of scalability of a CSMA/CA architecture. Everyone is familiar with the way ethernet degrades under saturation: you only get about 70% of that 100Mbit throughput utilized. Ethernet is CSMA/CD - collision detection.
In wireless the problem is even more pronounced in infrastructure mode because you are using CSMA/CA -- collision avoidance. This means that for every packet to be sent, the clients must coordinate use of the medium before sending, using a RTS/CTS handshake.
(client) can I send now?
(AP) not your turn yet
(client) can I send now?
(AP) not your turn yet
(client) can I send now?
(AP) yes
(client)
When you put many clients (20+) on the same AP sharing the same medium, a large amount of bandwidth is spent simply coordinating contention free access to the wireless medium itself.
Traffic shaping (which is all frottle is doing) helps ease this problem by reducing the amount of data clients try to send/recv in a given period of time, and thus reduces some of the contention.
This is simply a band-aid on a more fundamental problem, however.
The only true way to prevent this kind of inefficiency for larger numbers of clients is to use a true wireless phased array switch, like vivato, which can effectively emulate a dedicated medium to each client, preventing any contention that arises in the broadcast CSMA/CA situation.
Also, it is important to note that communication between nodes on the wireless will NOT be shaped by the frottle queues unless you are using hostap or some other linux based access point. In such a scenario, two nodes talking to each other could use as much of the medium as they liked (as coordinated by the access point itself) without frottle seeing any of the traffic.
Re:Not a hidden node problem (Score:2)
If you use an AP that does the NAT/router for you, anything between the clients is not going to go through the linux router.
Re:Not a hidden node problem (Score:1)
Not true. Each client sends its data one at time, much like a token ring.
Yes, it's a bandaid solution, but your comments are just misleading. How about you read the documentation next time.
Re:Not a hidden node problem (Score:2)
You may also want to try forcing the communication rates for clients operating under contention.
iwconfig eth0 rate 11M
This bypasses the brain dead default behavior where clients drop rates during contention. If you know you have good SQ, set it high.
Last, any kind of ingress traffic from the clients is completely outside the control of the qu
No, this IS the hidden node problem (Score:2)
Actually CSMA/CA does not include handling of hidden nodes. RTS/CTS was specifically ADDED to 802.11, AFTER CSMA/CA was decided, to handle the hidden node problem.
Re:No, this IS the hidden node problem (Score:2)
Ok, if you want to be pedantic, I was talking about CSMA/CA in the context of the 802.11 standard, which uses RTS/CTS to address the problem, just like you said. There, that's better.
Score another point for Wi-FUD. That is ONE solution but not the ONLY solution. You could of course, also reduce contention for the shared medium by installing mu
Re:No, this IS the hidden node problem (Score:2)
Hmm.. I thought we were trying to solve the original problem. If you're going to keep piling nodes onto the hub, you're going to
Problems with this (Score:3, Informative)
2. What 802.11 really needs is <b>power scaling.</b> It's the big difference between cellular networks and wifi. Like the article says, the person with the highest S/N gets to talk.
Re:Problems with this (Score:3, Informative)
Request to Send / Clear to Send
Required to solve (reduce) hidden station problems.
Station 1: Hey, can I send? (RTS)
Access Point: Yeah, go ahead. (CTS)
Station 2 (who can't hear Station 1, but can hear the access point): Well, since a CTS came back taht I didn't request, I know someone else is sending. Therefore, I'll shut the hell up.
Re:Problems with this (Score:1, Interesting)
In fact, we had a similar product that did much of this in a software layer above 802.11, and measured aggregate throughputs of 2-3 times higher than vanilla 802.11. I guess that the
Re:Problems with this (Score:2)
Except that RTS/CTS doesn't work well enough.
802.11* was designed for indoor use, so the MAC layer depends on all stations hearing each other in order to arbitrate access to the shared medium.
As a fall-back they also included RTS/CTS mode. But RTS/CTS is rather suboptimal - some sort of polling or token mode would work better for outdoor wireless data comm.
So these guys implemented a token mode for controlling the clients' access to the wireless medium. Hack? Sure. Wou
Oh yeah (Score:1)
Re:Oh yeah (Score:1)
I only just setup the sourceforge page yesterday (though we had it registered for some time before that).
Frottle master is a "man in the middle" (Score:3, Interesting)
I'd rather see the master simply arbitrating bandwidth in its neighborhood and the peers exchanging data directly. General-casing that to multiple simultaneous masters, while relaying but only when necessary and only by efficient paths, limits out at a mesh network with extreme bandwidth usage efficiency.
But the thing that bugs me is the security implications of having all non-master nodes relay through the master. That lets a hostile node that achieves (or spoofs-up) master-node status perform man-in-the-middle attacks on the security of the communication.
Being man-in-the-middle is probably not a big deal if the master is also the main internet gateway (so it would be man-in-the-middle to most traffic anyhow), operated by a well-known and trusted organization. And it does simplify routing packets from one channel to another. But it bothers me anyhow.
Fortunately, any node that can also hear its peer can check the honesty of the master's forwarding.
Which leads to a potential way to eliminate unnecessary bounces off the master: Clients can inform it that they can hear other particular clients and what the differential delay characteristics are from their site. Then the master can just assign the transmission slot for the packet and drop it on the floor while the receiving peer captures it directly.
Re:Frottle master is a "man in the middle" (Score:2, Informative)
Frottle can run in many modes, and doesnt need traffic to pass through the master, though it is more reliable to do so.
As far as Client-Client comms goes, we've always discouraged it for it'
Re:Frottle master is a "man in the middle" (Score:1, Informative)
In the WAFreeNet scenario, the nodes are well dispersed, and we're all using directional antennas to connect to the APs, so the nodes cannot talk to each other directly anyway.
802.11e anyone? (Score:3, Informative)
11e will have a mode called HCF (Hybrid Coordinator Function) recently renamed to HCCA (forgot what that stands for) where the Accesspoint can be asked for timeslots and it will assigned them to the requestors after each beacon causing a content-free period. Only afterwards a (prioritized) contention mechanism will come into place for the rest of the transmission time till the next beacon (called EDCF=Enhanced DCF).
Actually HCCA is not really intended for web browsing over 20km wireless link but more for real-time traffic over 10m wireless link (e.g. videos to your Webpad, PDA,
I can't stand those (Score:1)
Perth, wireless capital of the world (Score:2, Interesting)
Why? Because it is a spread out, very flat city with piss poor and expensive broadband internet. It's also isolated from the rest of the country, so it's quite often the last Australian city to get infrastructure. There is also an abundance of unused satellite TV antennas from a failed provider, which people le
Just add bandwidth, duh (Score:1)
802.11a/g are at 54 Mbps, who knows what the next jump will be.
simon
-1, moderator is ignorant (Score:2)
First, what the heck is the hidden node problem anyway? It's highly misunderstood. The hidden node problem is when you have a point to multipoint topology in your 802.11 network, aka, a "star" topology. There is one central hub that is connected to the internet, and many nodes that talk to the hub. Now this is all fine and dandy indoors, because indoors usually all of the nodes can hear not just the hub but also each other as well. So they are effectively sharing a single bus, and the
Re:-1, moderator is ignorant (Score:1)
Thanks, but get real.
PS - the token in this system doesnt get passed from client to client. The master hands out a control packet, the client sends data, sends a response packet, then the master moves on.
If the clie
Re:-1, moderator is ignorant (Score:2)
You acknowledge on your page that you are introducing greater latency. Latency is another bugbear of the 802.11 QoS crowd, because it affect voice applications. 802.11 latency also goes way up when the hidden node problem occurs. Again with that situation, increasing bandwidth will
In a perfect world, yes... (Score:1)
As I mentioned in the story, HillsHub is very popular due to it's location. It's a private property - owned by the Uncle of one of the wireless enthusiasts. They've been gratious enough to allow one waveguide and a dish on their roof, but that's it. Even if we could put more infrastructure there, there is channel usage and other surrounding AP's (noise/interference) to be aware of. There are real
Re:In a perfect world, yes... (Score:1)
simon
The story of frottle.... (Score:3, Informative)
A bunch of people got together, and through many donations, were able to buy their first public WAFreenet Access Point. Now - Perth is fairly flat, with a long ridge running down one side - perfect! The AP was setup on a private property with an incerible view of the city, and we named it HillsHub (we'll call it HH).
By about 5 clients, the hidden node issue started to get noticable. Easy, they turned on RTS, and it made an improvement.
Since it had such good visibility, HH began to get pretty popular. By about 10 clients it was really stuggling, and many of those clients had AP and clients of their own adding to the routed traffic. RTS just wasnt cutting it anymore - the RTS packets are subject to collisions aswell. In a desperate effort to regain some control, rate limiting was implemented, dropping speeds back to 10kB/sec during the day to maintain some reliability. However - during the night, a free for all would occur - some people would get 100's kB/sec, whislt others would be drowned out, near complete packetloss.
By 14 clients, the situation was ridiculous. We HAD to do something. We knew Kalrnet Turbocell (a polled system) would fix it, so we sold our soul (advertising on the e3 website) and negotiated a lower price - even then we needed to fork out A$150 each. We got together and pooled the cash, and just as we were about to buy, realised that the linux support was terrible - old, buggy kernels, binary driver only. We stopped in our tracks, and wondered what to do.
There were plenty of ideas about building our own kalrnet, but none of us were kernel programmers, so it seemed a bit out of reach. That was until one day, when I came up with a plan. I'd read that iptables could send packets to a userspace program, so inspired by some examples (countertrace), I set about building the first version of frottle using perl.
There was nothing new about the concept - polled systems and token rings are common knowledge in communications and networking. It wasnt difficult - it only took me a weekend, and that included the time spent learning perl (it was my first go). It was even operating at the wrong layer - using UDP control messages to schedule IP traffic. Regardless of all it's limitations, it worked, so I got the other WAFreenet members involved with testing and development. Radix picked it up and tried to continue development with C++, but had problems. Then, ChrisK took up the challege, and the result is the dynamic, performance C version we have released.
Halfway through development, WiCCP was released. This was a similar concept, but implemented as an loadable module/interface. We liked the concept better than our userspace app, so we trialled it ourselves. One of the perth guys (Brad) even got involved with development, improving the product. Still, whislt it was an implrovement on no QoS, it didnt seem to perform quite as well as frottle. This was the decider, so ChrisK prepared frottle for release.
So, there you have it. As a developer, I've been paying attention to the comments here. Many of you have given positive feedback, and for that we're thankfull. Unfortunately, some of you have decided it would be easier to point out the flaws...
Well, no shit sherlock! We're quite aware of frottle's limitations, the concept is far from origonal, and it really is a kludge. The inherent problems of 802.11b are still there, and all we've done is work around them. The thing is, no-one else had done it before - at least not for free, and not when we started. We've spent our own time on frottle in order to improve our situation, and help the performance of free community wireless networks the world over.
Criticise all you like, but the fact is, we have experienced an enourmous, measurable improvement to our network performance. As far as we're concerned, this is BIG news.
Re:Good news. (Score:3, Insightful)
You could achieve the same thing on packet radio by using a digipeater instead of having all nodes transmit/receive on the same frequency, and I think you'd get better thruput with a digipeater than using Frottle.