QoS the next generation

Discuss the technical details of Gargoyle and ongoing development

Moderator: Moderators

pbix
Developer
Posts: 1372
Joined: Fri Aug 21, 2009 5:09 pm

QoS the next generation

Post by pbix »

Folks,
We've worked hard to produce a solid QoS system with features and performance to match or beat anything out there. However, not satisfied to rest on our laurels I want to push up the bar with a new feature to provide an even better and more reliable experience.

There are two problems with all existing QoS implementations that I have seen.

1) There is an assumption that the service speed your ISP delivers is constant which turns out to be never true.

2) You have to sacrifice bandwidth to get QoS to work. This is because you have to set you download speed to not more than 85% of the minimum your ISP will deliver.

So now I will attempt to address both of these problems with Gargoyle active congestion control. I have a design that is ready for testing by intrepid souls that like the bleeding edge. If you use VoIP or online gaming or if you have an ISP that varies your download speeds you might find this interesting .

The controller will automatically adjust your down link speed in real time as required to maintain the goals of your QoS settings. It can also detect when there is no need to reduce your download speed and restore your link to the maximum. This means for example when you are not using the phone you get relief from the QoS limits.

Since this technology is a little radical I felt it best to get some real world experience before putting it in the main Gargoyle branch.

If you would like to help out you can download and build the 'qosmon' branch from the GIT repository and give it a try. If building is not your thing then send me a PM including your router type and E-Mail address and I will send you a binary.
Linksys WRT1900ACv2
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM

User avatar
DoesItMatter
Moderator
Posts: 1373
Joined: Thu May 21, 2009 3:56 pm

Re: QoS the next generation

Post by DoesItMatter »

Sending you a PM for this pbix!

I'm un-familiar with building my own, so I'll be requesting
a binary for my Linksys WRT-54G-TM.
:twisted: Soylent Green Is People! :twisted:
2x Asus RT-N16 = Asus 3.0.0.4.374.43 Merlin
2x Buffalo WZR-HP-G300NH V1 A0D0 = Gargoyle 1.9.x / LEDE 17.01.x
2x Engenius - ESR900 Stock 1.4.0 / OpenWRT Trunk 49400

igorfie
Posts: 14
Joined: Mon May 31, 2010 9:38 am

Re: QoS the next generation

Post by igorfie »

Can you explain a little how this new QoS system works?

pbix
Developer
Posts: 1372
Joined: Fri Aug 21, 2009 5:09 pm

Re: QoS the next generation

Post by pbix »

What I have developed is not a "New QoS" system but rather an enhancement of the existing system.

First lets state that by definition a properly working QoS system is one in which the QoS rules (entered by the user) are being enforced. This means the QoS is achieving its goals.

Having the proper QoS goals defined for your system is critical. If your goals will not provide the performance you want then enforcing them will not help.

The QoS system we have in Gargoyle will achieve its goals if there is no congestion on the WAN side. There are many possible points of congestion out there on the NET but the most common is the link between you and your ISP. To avoid congestion on this link we use the router to limit throughput to some value below what the ISP will deliver.

All the above is nothing new.

Now the new part. Instead of forcing us specify a single link speed that we are confident our ISP will deliver the new controller monitors the link for congestion. The controller adjusts the link limit to give you the maximum possible link speed without congestion occurring.

The trick is to determine when congestion is occurring in the link. The controller does this by sending periodic ICMP requests to your WAN gateway and measuring the round trip time. I propose that increased round trip time is a good indication of congestion. The controller sends these requests only when necessary and at a maximum rate of 1 Hz.

The control is enabled on the bottom of the QoS download page. There is a status display there as well so that you can see what is happening in real time. I also added some more explanation there to help out.
Linksys WRT1900ACv2
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

Re: QoS the next generation

Post by braveheartleo »

This sounds tasty. Looks like bandwidth throttling will be coming to town. I was hesitant of enabling qos on my already hampered net connection, like 58 kilobytes a sec max realtime download. With this it would seem I found new hope for having bandwidth prioritization without sacrificing speed. I know I can find good use of this qos implementation even with such little speed.

I would like to give this a try, but a quick question, if I decide to stop using this technology for a while would disabling it be like I never had introduced this change in the first place, save for the files it needed installed? PM Sent :)

pbix
Developer
Posts: 1372
Joined: Fri Aug 21, 2009 5:09 pm

Re: QoS the next generation

Post by pbix »

braveheartleo,

This controller is for people who want their QoS to work properly under all circumstances and get maximum possible throughput. In your case it seems you get along fine with no QoS enabled at all. So its hard for me to see how you could benefit from this. You must enable QoS and properly set up the classes you want to benefit from this.

But of course you can try it and of course you can turn it off and get your previous performance.

Other than the fact that you are suffering from a lower than average download speed why do you think this might help you?

I can send you a binary via E-Mail this evening but its pretty easy to build this on your own if you have a Linux box.

From your home directory

Code: Select all

git clone git://gargoyle-router.com/gargoyle.git
cd gargoyle
git checkout qosmon
make


After a few hours of churning your binary will be under gargoyle/images
Linksys WRT1900ACv2
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

Re: QoS the next generation

Post by braveheartleo »

pbix,

While for others, QoS is a means of ensuring performance with maximum throughput, for me QoS is for issuing bandwidth priority. I already know I can't get a lot of performance with such lower-than-average link even without QoS, and I can't give up 15% of what's already hampered just to make the original QoS implementation work.

But to be able to partition this bandwidth based upon priorities is what I'm after. If I'm using video chat with no other users on the link it performs pretty well, and it's not even using my full bandwidth. But as soon as another user gets online and starts watching videos then my video chat suffers. If I can guarantee a predefined bandwidth for my video chat link that is enough to keep it flawless, and set it to a higher priority, then the remaining bandwidth is what's left for the other user to make use of. Of course when I'm not video chatting, the bandwidth is distributed evenly, unless another high priority rule with guaranteed bandwidth triggers. Usually just one other user is sharing the net with me, or two in the weekends, and they're just casual users who surf the net or sometimes watch videos online, or get into limewire and pick up a song or two.

To make good use of such limited bandwidth to guarantee acceptable performance based upon my preference is what QoS stands atleast for me. And I think if I'm able to make QoS work without capping to 85%, then it's already a big win for me because, as I understand it, the new controller can adjust this link speed limit depending upon the presence of congestion, thus ensuring QoS works with maximum throughput.

Thank you so much for your efforts at keeping Gargoyle's QoS implementation overtaking the rest. It's really a good addition to an already user-friendly router management software. Gargoyle is one management software I have never seen the likes of. :)

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

Re: QoS the next generation

Post by braveheartleo »

pbix wrote:braveheartleo,

I can send you a binary via E-Mail this evening but its pretty easy to build this on your own if you have a Linux box.

From your home directory

Code: Select all

git clone git://gargoyle-router.com/gargoyle.git
cd gargoyle
git checkout qosmon
make


After a few hours of churning your binary will be under gargoyle/images


I'll try this one out. Any installation steps to take? What dir to install to, scripts to run?

User avatar
braveheartleo
Posts: 47
Joined: Sun Dec 13, 2009 9:50 am

Re: QoS the next generation

Post by braveheartleo »

i've run into some problems while trying to compile under debian-lenny. using my account i can't exec:

Code: Select all

git clone git://gargoyle-router.com/gargoyle.git


returns with a permission denied while trying to copy /usr/share/git-core/templates/info/exclude to /home/user/gargoyle/.git/info/exclude. so i tried running as root and that went through. but then executing:

Code: Select all

git checkout qosmon


returns with "error: pathspec 'qosmon' did not match any file(s) known to git."

maybe i'll wait for your binaries after all.

pbix
Developer
Posts: 1372
Joined: Fri Aug 21, 2009 5:09 pm

Re: QoS the next generation

Post by pbix »

Installing the binary is just like installing any version of Gargoyle.

To operate this controller you must enable both upload and download QoS. Set your download speed to the peak your ISP will provide and your upload speed to 95% of what your ISP provides.

Add the QoS class that you would like to have enforced.

Then enable the control at the bottom of the QoS_download page.

Double check that your traffic is properly classified using the connection list screen.
Linksys WRT1900ACv2
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM

Post Reply