QoS for equal bandwidth sharing?
Moderator: Moderators
QoS for equal bandwidth sharing?
Hi there! New to Gargoyle and new to the forum, so please allow this to be my obligatory newbie first question.
I bought a Gargoyle compatible router (barely... the Archer C7 v2) and installed Gargoyle because it seemed like the ONLY consumer-grade solution for real bandwidth and quota control.
Now... following the advice I saw in some other threads... I created a Service Class for each household member (one of them counted for two people), and assigned IPs of various devices on the LAN to the appropriate Service Classes.
My question is this... if I'm using the QoS to perform this sort of bandwidth allocation... doesn't this necessitate giving up the abilities of the QoS to shape traffic for Gaming... VOIP... BitTorrent... etc?
Seems to me like you can only have one or the other, since the QoS interface doesn't allow any sort of nested rule structure (which would allow you to further allocate bandwidth within a particular Service Class into "Sub" Service Classes. e.g. Sally ---> Sally's Gaming, or Harry ----> Harry's BitTorrent.)
Does anyone get the gist of what I'm talking about here? Or is there a more elegant solution that I've just totally looked over?
I bought a Gargoyle compatible router (barely... the Archer C7 v2) and installed Gargoyle because it seemed like the ONLY consumer-grade solution for real bandwidth and quota control.
Now... following the advice I saw in some other threads... I created a Service Class for each household member (one of them counted for two people), and assigned IPs of various devices on the LAN to the appropriate Service Classes.
My question is this... if I'm using the QoS to perform this sort of bandwidth allocation... doesn't this necessitate giving up the abilities of the QoS to shape traffic for Gaming... VOIP... BitTorrent... etc?
Seems to me like you can only have one or the other, since the QoS interface doesn't allow any sort of nested rule structure (which would allow you to further allocate bandwidth within a particular Service Class into "Sub" Service Classes. e.g. Sally ---> Sally's Gaming, or Harry ----> Harry's BitTorrent.)
Does anyone get the gist of what I'm talking about here? Or is there a more elegant solution that I've just totally looked over?
Re: QoS for equal bandwidth sharing?
Lets say Sally has an address of 192.168.1.100
Lets say Sally does 4 things
1. gaming
2. skype
3. bit torrent
4. general traffic (other)
The rules should be set out in this order:
1. Destination: 192.168.1.100, Port: <game ports here>, Class: Games
2. Destination: 192.168.1.100, L7-Protocol: Skype, Class: VOIP
3. Destination: 192.168.1.100, L7-Protocol: bittorrent, Class: slow
4. Destination: 192.168.1.100, Class: Sally
Because the rules are evaluated in order, this will first catch the 3 specific types of traffic that Sally generates, and everything else will just be in the rule you set at the end.
Lets say Sally does 4 things
1. gaming
2. skype
3. bit torrent
4. general traffic (other)
The rules should be set out in this order:
1. Destination: 192.168.1.100, Port: <game ports here>, Class: Games
2. Destination: 192.168.1.100, L7-Protocol: Skype, Class: VOIP
3. Destination: 192.168.1.100, L7-Protocol: bittorrent, Class: slow
4. Destination: 192.168.1.100, Class: Sally
Because the rules are evaluated in order, this will first catch the 3 specific types of traffic that Sally generates, and everything else will just be in the rule you set at the end.
https://lantisproject.com/downloads/gargoylebuilds for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.
Please be respectful when posting. I do this in my free time on a volunteer basis.
Re: QoS for equal bandwidth sharing?
Okay, but what about everyone else's games?
I suppose I have to make a SallyGames class, a SallyVOIP class, a SallyBitTorrent class, and a SallyMiscellaneous class.
And then repeat that for everyone...
Phew. Good thing Gargoyle allows an arbitrary number of Service Classes. Just have to decide how much bandwidth everything needs.
I suppose I have to make a SallyGames class, a SallyVOIP class, a SallyBitTorrent class, and a SallyMiscellaneous class.
And then repeat that for everyone...
Phew. Good thing Gargoyle allows an arbitrary number of Service Classes. Just have to decide how much bandwidth everything needs.
Re: QoS for equal bandwidth sharing?
And not only do I have to have separate classes for each user's activities... I then have to make a separate rule for each activity going to each one of their devices.
5 users * 3 activities * 3 devices = 45 packet rules! YIKES!
5 users * 3 activities * 3 devices = 45 packet rules! YIKES!
Re: QoS for equal bandwidth sharing?
Okay... here's a hypothetical situation:
I want everyone to share 20 percent of the bandwidth equally.
But I still want to have QoS for particular activities.
Let's say... I set my video streaming to, say 10 percent, my games to 5, my VOIP to 4, and my BitTorrent to 1 percent.
These are now percentages of the *total bandwidth of the connection* according to Gargoyle.
Now let's say someone else just has an Xbox... I set their Xbox stuff to 15 percent and the rest of their activities (like their phone) to 5 percent.
Follow me so far? Now let's say I'm just playing my game when bandwidth is at capacity. I'M ONLY GETTING 5%! Instead of the whole 20% that is my share of the bandwidth! Because to still have activity QoS, I subdivide my share in the Service Classes, and then as far as Gargoyle is concerned, my game only gets 5% at capacity.
See what I mean? If there's a workaround for this, I'd love to see it. But like I said, it seems one has to choose between equality QoS or activity QoS. You can't have both. Not without a more versatile class/rule system.
I want everyone to share 20 percent of the bandwidth equally.
But I still want to have QoS for particular activities.
Let's say... I set my video streaming to, say 10 percent, my games to 5, my VOIP to 4, and my BitTorrent to 1 percent.
These are now percentages of the *total bandwidth of the connection* according to Gargoyle.
Now let's say someone else just has an Xbox... I set their Xbox stuff to 15 percent and the rest of their activities (like their phone) to 5 percent.
Follow me so far? Now let's say I'm just playing my game when bandwidth is at capacity. I'M ONLY GETTING 5%! Instead of the whole 20% that is my share of the bandwidth! Because to still have activity QoS, I subdivide my share in the Service Classes, and then as far as Gargoyle is concerned, my game only gets 5% at capacity.
See what I mean? If there's a workaround for this, I'd love to see it. But like I said, it seems one has to choose between equality QoS or activity QoS. You can't have both. Not without a more versatile class/rule system.
Re: QoS for equal bandwidth sharing?
That was awesome... I just spent an hour meticulously typing out a vast array of Classes and Rules for Gargoyle's QoS, and when I hit "Save", the router logged me out erasing everything I had changed.
So. Awesome.
So. Awesome.
Re: QoS for equal bandwidth sharing?
My initial example I had considered VOIP, games and BitTorrent universal classes that everyone's traffic for that particular traffic gets put into. I understand the way you have also described it and I also understand the rest of your post and the concerns you raise.
I suppose making 1 gaming class of (5*5%) 25% would solve this issue because everyone will share the bandwidth equally in this class. If no one else is on then no problem.
This is almost certainly ok for the gaming class because games really don't use that much traffic. I think one of mine is 4% or so.
Consider the equal sharing idea in paragraph one. I think it's the solution or at least compromise you are after.
I suppose making 1 gaming class of (5*5%) 25% would solve this issue because everyone will share the bandwidth equally in this class. If no one else is on then no problem.
This is almost certainly ok for the gaming class because games really don't use that much traffic. I think one of mine is 4% or so.
Consider the equal sharing idea in paragraph one. I think it's the solution or at least compromise you are after.
https://lantisproject.com/downloads/gargoylebuilds for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.
Please be respectful when posting. I do this in my free time on a volunteer basis.
Re: QoS for equal bandwidth sharing?
Okay... thanks... I suppose that's the best solution.
I will make a Service Class for "games" for everyone to share, with a decent amount of bandwidth, and ping priority.
I don't think the "BitTorrent" application protocol works, though. I think I'll just create fast Service Classes for web browsing, and let everything else fall into a "bulk" class.
I will make a Service Class for "games" for everyone to share, with a decent amount of bandwidth, and ping priority.
I don't think the "BitTorrent" application protocol works, though. I think I'll just create fast Service Classes for web browsing, and let everything else fall into a "bulk" class.
Re: QoS for equal bandwidth sharing?
The default classes are pretty good if I remember correctly.
Re: QoS for equal bandwidth sharing?
The bit torrent l7 pattern catches about 80% of my torrent traffic. For a complete solution you'd have to fix the ports on each computer and catch them that way.
The default web browsing rules (if I understand correctly, in still learning) prioritise web browsing, but put downloads (anything exceeding 1024kByte) in the slower priority.
The default web browsing rules (if I understand correctly, in still learning) prioritise web browsing, but put downloads (anything exceeding 1024kByte) in the slower priority.
https://lantisproject.com/downloads/gargoylebuilds for the latest releases
Please be respectful when posting. I do this in my free time on a volunteer basis.
Please be respectful when posting. I do this in my free time on a volunteer basis.