This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
qos [2013/09/24 10:33] pbix [Introduction] |
qos [2017/12/29 01:21] (current) ispyisail [Router Performance] |
||
---|---|---|---|
Line 14: | Line 14: | ||
Let’s start by trying to identify when QoS might provide benefit for you. If for example you are already happy with your Internet experience then you do not need to use QoS or to read any further. However, if you play online games or use voice of internet technology then you know when someone else is watching youtube videos at the same time suddenly you get high pings and timeouts or very poor voice quality. | Let’s start by trying to identify when QoS might provide benefit for you. If for example you are already happy with your Internet experience then you do not need to use QoS or to read any further. However, if you play online games or use voice of internet technology then you know when someone else is watching youtube videos at the same time suddenly you get high pings and timeouts or very poor voice quality. | ||
- | browsing suffers greatly because of it. Or you may administer a campsite and get complaints that some campers have good access but others are not getting their fair share. Having multiple people involved | + | browsing suffers greatly because of it. Or you may administer a campsite and get complaints that some campers have good access but others are not getting their fair share. Having multiple people, devices or programs |
+ | |||
+ | An important fact about fairness is that it has a cost. In the case of QoS the cost will come in terms of reduced utilization of your WAN link. Lots of work has been invested in making this cost as low as possible but you are going to take a 5-10% hit on your WAN throughput to get fairness. | ||
How about an analogy? I fly a lot and if you do too then you understand that when it’s time to board the airplane we do not just all rush at the door. The gate agent enforces the airline’s quality of service plan for each passenger. She starts by boarding handicapped folks, then we move onto the airline’s diamond members, then gold, silver and finally we arrive at the bulk class. In this analogy the gate agent is the router and the passengers are the packets of data trying to get through to the WAN. The point is that for | How about an analogy? I fly a lot and if you do too then you understand that when it’s time to board the airplane we do not just all rush at the door. The gate agent enforces the airline’s quality of service plan for each passenger. She starts by boarding handicapped folks, then we move onto the airline’s diamond members, then gold, silver and finally we arrive at the bulk class. In this analogy the gate agent is the router and the passengers are the packets of data trying to get through to the WAN. The point is that for | ||
- | those diamond members to experience high quality the average Joes must wait. One more interesting lesson from this example is that if there is no one else waiting to board the plane when you show up it does not matter what your status is, you get to board next. The lesson here is that if the WAN is not | + | those diamond members to experience high quality the average Joes must wait. When people are waiting to board we call this the ' |
saturated your QoS setup will not matter much, all packets get immediately transmitted. | saturated your QoS setup will not matter much, all packets get immediately transmitted. | ||
Line 210: | Line 212: | ||
==== Total Bandwidth Field ==== | ==== Total Bandwidth Field ==== | ||
- | Below the class table is the total (upload/ | + | Below the class table is the total (upload/ |
- | critical | + | |
- | congestion controller or not and if your WAN connection type (set on the Connection-> | + | |
- | to PPPoE. Assuming | + | |
- | When using PPPoE you should consult | + | Now start with the upload |
- | is running at. Enter the uplink/ | + | |
- | When not using PPPoE you should | + | On the download page the value you enter depends on if you are using ACC or not. When using ACC you enter the maximum download speed you saw. If you enter a value even 10% higher its OK too. ACC is going to automatically adjust |
- | 95% of your measured upload speed on the upload screen. The way I recommend to measure | + | |
- | speed is to first turn QoS off, then make sure no one is using the WAN link and then run a speed test such | + | |
- | as the one http:// | + | |
- | If you are not using the ACC then you will generally | + | If you are not using ACC then things get more complicated. |
- | values mentioned above. The amount to reduce varies from 20-80% | + | |
- | your ISP. For this reason I recommend that you use the ACC. | + | |
===== Active Congestion Controller (ACC) ===== | ===== Active Congestion Controller (ACC) ===== | ||
- | The active congestion controller continuously monitors your WAN download performance and adjusts | + | For QoS to function |
- | the total downlink bandwidth in response | + | |
- | delivered by your ISP will vary as conditions on their network change. Like you your ISP has a WAN | + | |
- | link to the internet. When their WAN link saturates they must limit the delivered performance to all their | + | |
- | customers. The ACC detects the performance being delivered by monitoring the round trip times (RTT) | + | |
- | of ping packets sent to your ISP’s gateway. The RTT corresponds roughly to the amount | + | |
- | queued by the ISP and waiting | + | |
- | data that is queued is how the ACC makes QoS work. | + | |
- | Let’s think about the queue that your ISP has for you. The amount of data waiting in the queue will grow | + | The active congestion controller continuously monitors your WAN download performance and adjusts |
- | or shrink based on several factors. A critical point will be when it grows to the point that no more data | + | |
- | can fit in the queue. In that case the packet must be discarded by your ISP. This turns out to be bad for | + | |
- | QoS. For QoS to function accurately it alone must decide which packets should be dropped. When the | + | The amount of download bandwidth actually delivered by your ISP will vary as conditions on their network change. Like you your ISP has a WAN link to the internet. When their WAN link saturates they must limit the delivered performance to all their customers. The ACC detects |
- | ACC is in active mode it is controlling | + | queued by the ISP and waiting to travel over the WAN link to your router. Controlling |
- | router’s QoS is dropping packets. Notice I said that the ACC controls the length | + | |
- | cannot control | + | |
- | enough | + | |
- | keep you downlink fully utilized by allowing | + | |
- | that packets get dropped. | + | |
- | It turns out that the proper amount of data in your queue for full utilization would take about 100ms to | + | Let’s think about the queue that your ISP has for you. The amount of data waiting in the queue will grow or shrink based on several factors. A critical point will be when it grows to the point that no more data can fit in the queue. In that case the packet must be discarded by your ISP. This turns out to be bad for QoS. For QoS to function accurately it alone must decide which packets should be dropped. When the ACC is in active mode it is controlling the data flow such that this queue does not overflow and only your router’s QoS is dropping packets. Notice I said that the ACC controls the length of downlink queue. It cannot control the speed of your downlink. As long as the queue in front of your WAN downlink has enough data in it your downlink will be fully utilized. This is the goal of the ACC in active mode. To |
- | drain away if no new packets arrived. This also means that each packet has to wait around 100ms in the | + | keep you downlink fully utilized by allowing the queue to grow to the necessary length but not too long that packets get dropped. |
- | queue before it proceeds. The affects the round trip time (RTT) of a packet exchange. If for example I | + | |
- | send a ‘ping’ message to a computer on the internet the response will have to wait in this queue. Adding | + | It turns out that the proper amount of data in your queue for full utilization would take about 100ms to drain away if no new packets arrived. This also means that each packet has to wait around 100ms in the queue before it proceeds. The affects the round trip time (RTT) of a packet exchange. If for example I send a ‘ping’ message to a computer on the internet the response will have to wait in this queue. Adding other overhead and you end up with a total RTT of around 150ms in this case. Some applications will be |
- | other overhead and you end up with a total RTT of around 150ms in this case. Some applications will be | + | affected by an RTT of this length. So the ACC has another mode in which it reduces the average length of this queue to about half this value. This will lead to RTTs of around 75ms but at the cost of WAN utilization. When the minRTT mode is active WAN utilization drops by about 20% but the RTT is cut in |
- | affected by an RTT of this length. So the ACC has another mode in which it reduces the average length | + | half. This is a useful compromise which the ACC will make when a class becomes active which indicates it needs minimum RTTs and is indicated in the status display by the MinRTT mode. |
- | of this queue to about half this value. This will lead to RTTs of around 75ms but at the cost of WAN | + | |
- | utilization. When the minRTT mode is active WAN utilization drops by about 20% but the RTT is cut in | + | |
- | half. This is a useful compromise which the ACC will make when a class becomes active which indicates | + | |
- | it needs minimum RTTs and is indicated in the status display by the MinRTT mode. | + | |
The ACC considers a class to be active if the bandwidth used by that class exceeds 4kbps. | The ACC considers a class to be active if the bandwidth used by that class exceeds 4kbps. | ||
Line 268: | Line 243: | ||
Use non-standard ping target: The ACC needs to bounce pings off of a computer on the other side your | Use non-standard ping target: The ACC needs to bounce pings off of a computer on the other side your | ||
WAN link in order to determine the amount of congestion which is present. By default the ACC uses | WAN link in order to determine the amount of congestion which is present. By default the ACC uses | ||
- | the gateway assigned to the WAN port as this target, however, | + | the gateway assigned to the WAN port as this target, however, this is often not the appropriate target and must be changed. |
- | needed. Remember that the ACC controls the congestion between your router and this target so you need | + | |
- | to pick something on the ISP side of your WAN connection. | + | |
Use custom ping limit: This is the ping limit that ACC will use in MINRTT mode. Unless you check | Use custom ping limit: This is the ping limit that ACC will use in MINRTT mode. Unless you check | ||
Line 277: | Line 250: | ||
own this setting can be used to remedy the problem. This value will normally be between 40-90ms and | own this setting can be used to remedy the problem. This value will normally be between 40-90ms and | ||
can be observed when the ACC is in MINRTT mode as the ping time limit. | can be observed when the ACC is in MINRTT mode as the ping time limit. | ||
+ | |||
+ | ===== Router Performance ===== | ||
+ | |||
+ | Your router has a CPU and that CPU has a limit on how much data is can process per second. | ||
+ | |||
+ | This will happen somewhere between 10Mbps and 500Mbps depending on your router and what Gargoyle features you are using. | ||
+ | |||
+ | Bandwidth monitoring and QoS are the two features that take the most processing for your router. | ||
+ | |||
+ | Don't complain on the forum that your router' | ||
+ | |||
+ | ---------------- | ||
+ | |||
+ | All routers have a maximum processing speed for the WAN link. If you lower your total WAN bandwidth (upload plus download) to below this maximum on the Gargoyle QoS screens then Gargoyle will throttle your throughput and all your Gargoyle functions will work properly. This may result in you not being able to utilize the full bandwidth your ISP provides you but you will have stable and predictable performance. | ||
+ | |||
+ | Selecting a router that has enough horsepower to handle your full bandwidth is important if you really want to use all your available bandwidth. Stock firmware which comes with your modem will usually provide higher throughput than Gargoyle. The reason for this is simple. The stock firmware does not have the advanced features of Gargoyle. Especially QoS and Bandwidth monitoring. These are the features that require CPU horsepower. If you turn them off in Gargoyle you will also see a high throughput capability. | ||
+ | |||
+ | Like a car top-end speed is not the only desirable feature. The many other features that you use everyday are usually what you should concentrate on and these are what Gargoyle provides. | ||
===== FAQS ===== | ===== FAQS ===== | ||
Line 294: | Line 285: | ||
shared between them. | shared between them. | ||
- | **A.** Prior to Gargoyle v1.5.4 there was no control on this and the sharing could not be predicted. | + | **A.** Prior to Gargoyle v1.5.4 there was no control on this and the sharing could not be predicted. |
- | Starting with v1.5.4 Gargoyle shares bandwidth equally between different IP addresses directed to | + | |
- | the same class. This makes QoS setups for large LANs much easier. For example if merely want all | + | |
- | computers on your network to have the same bandwidth you need to only create a default class, delete all | + | |
- | your rules and enable QoS. | + | |
==== enable minimize RTT ==== | ==== enable minimize RTT ==== | ||
Line 321: | Line 308: | ||
**B.** The MAC address of the devices on your LAN are not available to QoS. In the Linux routing | **B.** The MAC address of the devices on your LAN are not available to QoS. In the Linux routing | ||
- | architecture this information is stripped from the packets before they get to the code executing QoS. | + | architecture this information is stripped from the packets before they get to the code executing QoS. You can approximate the behavior you want by assigning a fixed IP address to the device with the MAC in question. |
==== QoS for traffic between computers ==== | ==== QoS for traffic between computers ==== | ||
Line 328: | Line 314: | ||
**Q.** I want to use QoS for traffic between computers on my LAN. How can I do that? | **Q.** I want to use QoS for traffic between computers on my LAN. How can I do that? | ||
- | **A.** | + | **A.** |
- | a switch in hardware and therefore never seen by your router software. This is also why LAN< | + | nothing that it can do. This applies to all Wifi traffic as well. QoS can do nothing to help when the congestion which is caused by an overloaded radio link. I advise serious gamers to use a hardwired connection between their console/PC and the router so they will not be affected by unpredictable traffic jams on the radio link. |
- | traffic can have much higher bandwidth than LAN< | + | |
- | nothing that it can do. | + | |
==== Number of rules and classes ==== | ==== Number of rules and classes ==== | ||
Line 346: | Line 330: | ||
**A.** In Gargoyle we use the concept of bandwidth to allocate the WAN resource and not the concept of ‘priority’. | **A.** In Gargoyle we use the concept of bandwidth to allocate the WAN resource and not the concept of ‘priority’. | ||
+ | |||
+ | |||
+ | ==== QoS not working ==== | ||
+ | |||
+ | |||
+ | **Q.** QoS is not working what could be wrong. | ||
+ | |||
+ | **A.** As you can tell by the length of this article QoS is a complicated subject and there are many things that could be wrong. | ||
+ | |||
+ | ==== ACC keeps lowering my link limit ==== | ||
+ | |||
+ | |||
+ | **Q.** Why does ACC keep lowering my link limit, I have to reset to get it back. | ||
+ | |||
+ | **A.** ACC lowers your link limit until the filtered ping time falls under the target ping times. | ||
+ | |||
===== Common Myths ===== | ===== Common Myths ===== | ||
Line 403: | Line 403: | ||
Example: | Example: | ||
+ | ==== Whenever I use QoS my ping times increase ==== | ||
+ | ** | ||
+ | Statement: | ||
+ | **Rebuttal: | ||
Line 460: | Line 464: | ||
- | |||
+ | |||
+ |