SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

frottle: Packet Scheduling and QoS for Wireless Networks

*** Summary ***

frottle is an open source GNU project to control traffic on wireless networks. Such control eliminates the common hidden-node effect even on large scale wireless networks. frottle is currently only available for Linux wireless gateways using iptables firewalls queue functionality, with plans to develop a windows client in the future.

frottle works by scheduling the traffic of each client so that one client does not swamp the Access Point to the extent where it loses sight of other clients. The scheduling of packets also prevents clients with stronger signals from receiving bandwidth bias. The unbiased allocation of traffic is dependant on all traffic passing through the frottle master.

Frottle has been developed and tested on the large community wireless network of WaFreeNet. We have found running frottle has given us a significant improvment in the network usability.

Testing results and further documentation can be found at:

http://www.wafreenet.org/?page=frottle

*** Operation ***

frottle operates at the IP layer, simulating a token ring network of sorts. Access to the network is controlled by the frottle master, sending each client a control packet (token) which contains information about how much data can be sent at this time.

Each client recieves its token and sends any required data, one at a time. This eliminates collisions, and with a reasonable signal packetloss is virtually zero. Also, since each client gets a limited slice of the bandwidth, everyone can get fair access regardless of their signal strength.

Whilst this mechanism does result in increased latency, overall network performance and utilisation can significantly increase.

*** Additional Features ***

Traffic queues built in to frottle assign different, dynamic priorities to different traffic. Most traffic has a default priority. Traffic to/from specified ports (and ICMP packets) are made high priority. Traffic for connections that have done more than 2 MB of data and have a rate of more than 5 KB/s are made low priority. When a client is polled, high priority traffic is send first, then default, then low until the poll quota is used.

Realtime info on each clients performance is available from the master in a html file and optionally at each client in a similar html file. (The names and locations of these files is set in /etc/frottle.conf.)

*** Independent user testemonial by SteveH ***

        "I have a poor connection to the access point. I have a low snr (varies 
        from 7 to 11 dB) and rarely achieve better than a 2 Mb/s connection. 
        When we were running without any form of QOS I was often struggling to 
        achieve transfer rates of 3 kB/s. During testing of the current frottle 
        I am able to get my share of bandwidth. My transfer rates now average 
        80 kB/s download and 35 kB/s upload. Peaks for these are about double 
        this. The end result is a network which is usable and reliable." 

*** WiCCP ***

We have also run WiCCP (http://patraswireless.net/software.html) for a test period of several weeks on our network, with a developer participating in testing and providing updates. WiCCP is the only other project we could find that has similar goals to Frottle. We wanted to compare WiCCP to Frottle so that we could use the better performing technology on our network.

Here is an extract from an email from Marcus that is a summary of the sort of results we saw:

        "Now - in terms of performance comparison, Ive been monitoring my 
        latency and packetloss to Hills Hub. Over the past few weeks (testing 
        both WiCCP and frottle), my SNR has been terrible - between 4 to 6. 
        This is a pretty extreme circumstance, but it has highlighted some 
        differences:

        WiCCP: avg packetloss ~ 15%, avg latency ~ 300ms
        frottle: avg packetloss ~ 6%, avg latency ~ 150ms

        I have not tested throughput with frottle in these poor conditions, 
        though throughput with WiCCP was reasonable. I can however see that 
        total Hills Hub bandwidth usage was much higer with frottle:

        WiCCP: peak (2 hour avg) downloads ~ 100kB/sec, uploads ~ 50kB/sec
        frottle: peak (2 hour avg) downloads ~ 250kB/sec, uploads ~ 180kB/sec

        ... 

        My 6% packetloss with frottle is due to VERY poor SNR ... it's an RF 
        error.  Without frottle/WiCCP, the packetloss in my poor conditions 
        would be more like 90%.  

Based on our observations, we will continue developing and using frottle on HillsHub, however keeping an eye on WiCCP and continuing to support their development/testing in any way we can. The above comments only relate to our environment, WiCCP may well be a better solution than frottle in other environments.

*** Contributions ***

Credit is due to:

        Marcus (http://planetaxis-web.sytes.net/wireless/) for the concept 
        and proof of concept Perl program

        ChrisK (http://www.narx.net/~chrisk/WaFreeNet/) for developing the 
        current C version of frottle

        All the HillsHub connectees for their support in testing during 
        development.

Feedback, questions, praise and gifts can be sent to the developer (frottle@wafreenet.org)


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.