Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Wando64

macrumors 68020
Original poster
Jul 11, 2013
2,451
3,352
I have been trying in many ways to keep control of my slow DSL connection (12Mbs Down, 1Mbs Up) after a possibly ill decision to move to cloud storage, so I have now come to the conclusion that I need to implement some sort of ACK prioritisation system.
As far as I can see there isn't any software available to implement this at device level (2 macs), so probably the best solution is at router level.

What do you use to do this? Can anybody make any recommendation as to what Hardware/Software combination would allow me to achieve this?
None of my routers allows QoS and installing an opensource firmware on them would require the soldering of a serial port, or something like it... so I would be willing to invest in a new router as long as they can do this job well, not just on paper but in real life situations.
I am UK based and fibre is not yet available in my area.

Thanks
 
If using just one Mac is too slow, then prioritizing traffic isn't going to help. You need a faster connection.
 
As far as I can see there isn't any software available to implement this at device level (2 macs), so probably the best solution is at router level.

It makes more sense to do it at the router level because that's where the queuing is happening. That said I believe OSX does ship with the tools to do this at a host level - i.e. dummynet from FreeBSD. Take a look at dnctl(8).

Your first step however would need to be to confirm exactly what is happening. Prioritising ACKs outbound will only improve things if you are unable to use your incoming bandwidth because ACKs are being queued behind other outbound traffic. Have you checked that there is any free bandwidth (in either direction)?
 
If using just one Mac is too slow, then prioritizing traffic isn't going to help. You need a faster connection.

I am using 2 macs, one PC and a number of mobile devices, although not always concurrently.
However, I must correct you on your point that prioritising traffic wouldn't make a difference in the case of a single user.
I have specifically asked for prioritisation of ACK messages, this would allow them to cut through the high outgoing traffic and ensure a reasonable throughput of the incoming traffic.
If you are familiar with the concept of ACK transmission then you would know this is a common issue when the outgoing bandwidth is limited.
Many routers offer QOS based on ACK prioritazation, however I am curious to receive some real users recommendations.
[doublepost=1504599338][/doublepost]
It makes more sense to do it at the router level because that's where the queuing is happening. That said I believe OSX does ship with the tools to do this at a host level - i.e. dummynet from FreeBSD. Take a look at dnctl(8).

Your first step however would need to be to confirm exactly what is happening. Prioritising ACKs outbound will only improve things if you are unable to use your incoming bandwidth because ACKs are being queued behind other outbound traffic. Have you checked that there is any free bandwidth (in either direction)?

the problem occurs when I am maxing out on the outbound bandwidth. At that point any inbound traffic crawls to a halt, even a request for opening of a simple webpage.
[doublepost=1504599901][/doublepost]
dummynet from FreeBSD. Take a look at dnctl(8).

My understanding of networking is somewhat limited so forgive me if I say anything incorrect.
Re: Dummynet, as far as I can see is based on IPFW, which I believe is no longer used on Mac-OS Sierra.
There is a product called "Throttled" which used to do ACK prioritisation on OS X, but this too does not work on Sierra.
 
I am using 2 macs, one PC and a number of mobile devices, although not always concurrently.
However, I must correct you on your point that prioritising traffic wouldn't make a difference in the case of a single user.
I have specifically asked for prioritisation of ACK messages, this would allow them to cut through the high outgoing traffic and ensure a reasonable throughput of the incoming traffic.
If you are familiar with the concept of ACK transmission then you would know this is a common issue when the outgoing bandwidth is limited.
Many routers offer QOS based on ACK prioritazation, however I am curious to receive some real users recommendations.

the problem occurs when I am maxing out on the outbound bandwidth. At that point any inbound traffic crawls to a halt, even a request for opening of a simple webpage.

My understanding of networking is somewhat limited so forgive me if I say anything incorrect.
Re: Dummynet, as far as I can see is based on IPFW, which I believe is no longer used on Mac-OS Sierra.
There is a product called "Throttled" which used to do ACK prioritisation on OS X, but this too does not work on Sierra.
If you proceed, you will need to throttle at the router level. There are several devices that can do this, such as Ubiquiti or MikroTik. I use a Ubiquiti EdgeRoutet Lite and it could handle that bandwidth easily.

You might consider a faster connection. :)

I should add some detail to my earlier response. I would test with a single Mac and see if it saturates your connection. If so, you're far better off getting a faster connection. Technically, you can prioritize a single user's traffic, but it's much easier (and simpler) to have that user not initiate so many traffic requests. Be aware that some products QoS features are very basic and not effective. In my (very small) tests, prioritizing a single user's traffic wasn't worthwhile.
 
Last edited:
If you proceed, you will need to throttle at the router level. There are several devices that can do this, such as Ubiquiti or MikroTik. I use a Ubiquiti EdgeRoutet Lite and it could handle that bandwidth easily.

You might consider a faster connection. :)

I should add some detail to my earlier response. I would test with a single Mac and see if it saturates your connection. If so, you're far better off getting a faster connection. Technically, you can prioritize a single user's traffic, but it's much easier (and simpler) to have that user not initiate so many traffic requests. Be aware that some products QoS features are very basic and not effective. In my (very small) tests, prioritizing a single user's traffic wasn't worthwhile.

Hi, thanks for your reply. I appreciate your willingness to help, but there seem to be some misunderstanding.

I have no intention to prioritise one user's traffic.
What I would like to do is prioritise a certain type of traffic (ACK packets) over all other traffic, regardless of the user or of the device.
I would love nothing more that a faster connection, however as I mentioned Fibre internet is not available at my address and I am getting the best possible connection for copper wire.
 
Hi, thanks for your reply. I appreciate your willingness to help, but there seem to be some misunderstanding.

I have no intention to prioritise one user's traffic.
What I would like to do is prioritise a certain type of traffic (ACK packets) over all other traffic, regardless of the user or of the device.
I would love nothing more that a faster connection, however as I mentioned Fibre internet is not available at my address and I am getting the best possible connection for copper wire.
Sorry but saying fiber isn't available didn't convey you had the fastest possible connection.

I offered solutions above for QoS. You will need to prioritize something more specific than ACK packets. You could take a look at Ubiqiti's smart queue to see if it may help.
 
I think there might be an extra piece to the puzzle that's being overlooked. I'm well aware of why prioritizing ACK packets can be a good thing on slow connections, but only under certain circumstances. The primary use case is asymmetric links like yours, however if the line were idle and you were to do a speed test from one machine (as an example), ACK prioritization would buy you nothing because the ACKs wouldn't really be competing with any other traffic.

In your original post you mentioned a decision to move to cloud storage. I take that to mean that 1 or more devices on your network is monopolizing the upload portion of your link the majority of the time (assuming by cloud storage you are referring to say a cloud backup service). If this is the case, simply surfing the web could be very painful; while your 12Mbps down should be mostly idle, the initial requests and successive ACK packets for any realtime traffic (browsing to websites, trying to watch Netflix etc.) get shoved into the same saturated upstream queue as the traffic heading upstream to the cloud service thus slowing down responses downstream and limiting your downstream (usable) bandwidth.

If this is the case, let me know and I'm happy to propose a few options for you that should work well. With a slow DSL link you by no means need a high end router to get the functionality you desire as it doesn't have to be extremely powerful. If I'm mis-understanding your issue, can you provide some more background? Hope this helps get things headed in the right direction..
 
In your original post you mentioned a decision to move to cloud storage. I take that to mean that 1 or more devices on your network is monopolizing the upload portion of your link the majority of the time (assuming by cloud storage you are referring to say a cloud backup service). If this is the case, simply surfing the web could be very painful; while your 12Mbps down should be mostly idle, the initial requests and successive ACK packets for any realtime traffic (browsing to websites, trying to watch Netflix etc.) get shoved into the same saturated upstream queue as the traffic heading upstream to the cloud service thus slowing down responses downstream and limiting your downstream (usable) bandwidth.

That is exactly what is happening.
I have been looking at ASUS modem/router as they offer ACK prioritisation out of the box, but I wanted opinions before I take the plunge.

Thanks
 
Keep in mind that if you prioritize ACK packets, you're only prioritizing existing traffic. Thus you will still have issues with starting new connections. That's why I recommend prioritizing traffic based on different specs.

The Ubiquiti EdgeRouter X is $50. It can do a lot for less money than a consumer brand.
 
Just for completeness, in the end I did purchase an ASUS router with built in QOS/Traffic-manageent.
(Wireless is essential in my environment, which negates the usefulness of the Ubiquity suggestion made by another member)
The QOS for this router includes ACK packets prioritisation, which I what I wanted.
After a small amount of fine tuning, the router solved my problem and I no longer experienced download slowdown due to the upload bandwidth being maxed out.

As it happened, shortly after I bought the router, Fibre connection has become available at my address.
After I have upgraded to fibre, I realised that QOS is still very much needed as it is as easy to max out 9Mbps (Up) as it was when I had 0.5Mbps (Up). QOS ensures that no matter how much, and how fast, I try to upload, I retain the ability to utilise my full download speed (in my case 37Mbps).
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.