Skip to main content

Hello

If you have the technical knowledge; or know someone who can assist, I highly recommend setting the QoS priority for your network assuming you can access the settings in your router. ISP supplied equipment may not allow this level of customization.

Below is a general explanation of QoS as found on the internet:

If you want in-depth information on QoS click the link https://en.wikipedia.org/wiki/Quality_of_service

Quality of Service (QoS) ensures bandwidth for prioritized tasks and applications.

  • Adaptive QoS ensures inbound and outbound bandwidth on both wired and wireless connections for prioritized applications and tasks via pre-defined, drag-and-drop presets: gaming, media streaming, VoIP, web surfing and file transferring.
  • Traditional QoS ensures inbound and outbound bandwidth on both wired and wireless connections for prioritized applications and tasks via manual user-defined parameters.
  • Bandwidth Limiter lets you set limits on download and upload speeds.

I use Adaptive QoS and Automatic Bandwidth Limiter settings. Below are two slides that show how things appear within my network for QoS using Customization.

 

 

The hiearchy can be set by drag and drop in any order you desire as shown in this slide. As you can see Video and Audio Streaming; directly related to Sonos and other devices of a similar type such as AppleTV, receive the highest priority. 

 

 

I hope you found this information useful! 😊

I do wonder if both WAN and LAN level QOS would have an impact. Or to phrase as a question, is bufferbloat part of the cause of issues with the new Sonos apps due to increased cloud connectivity / local load? 

Good tips above. I would caution that QOS systems like the above are generally based on dated HTB implementations, and take a lot of fiddling and knowledge to get right.

It is a huge tragedy that modern one-click set-and-forget libraries for QOS are built into the Linux kernel but not made available by almost any consumer routers. When they are made available you often see them labelled as something like Smart Queue Management (SQM). It is also a huge tragedy that ISPs don’t just handle this with better queueing on their networks, if they did consumers wouldn’t even need to think about this crap.

The main SQM binaries are fq_codel and cake. Both of these at their simplest let you set an upload and download limit on your internet link and magically reduce additional latency under full load to almost 0. They can accept further configuration but for the majority of users the defaults are sensible and just work. This results in a vastly improved experience when different devices / streams are fighting for bandwidth.

As mentioned there are very few consumer devices that expose control for fq_codel or cake. Eero does, by default running fq_codel on its mesh and also exposing the “Optimise for conferences and gaming” option which runs fq_codel on the WAN link. AFAIK Google wifi routers also provide an option that leverages one of these libs.

Other than that it is only firmwares like OpenWRT (which involves flashing a compatible router or buying something like a GL-iNet device), Ubiquiti edge routers and and Mikirotik router or access points that expose fine grained usage and control of these libs.

I personally run a MikroTik hAP-ax2 wifi router, with cake on my WAN link and fq_codel running on all wifi and ethernet interfaces, and I haven’t had a single issue with the new app since launch. I doubt this is the only reason, but I do wonder if bufferbloat might be a reason for many reporting new issues.


I’d say an issue with trying to QOS wan and lan is without co-operation from the ISP, then the WAN side is limited in it’s benefits. Some ISPs already apply traffic shaping and QOS, so what happens if your preferences on priorities don’t match theirs?

One of the UK ISPs is advertising their new routerhub/mesh will magically optimise your whole home network for the type of usage it has, it is just some qos/trafficshaping being applied. They are in a position where they can extend it all the way to their backbone and egress from their network though.

Apart from being a marketing tool to try and make them stand out, in the UK PSTN lines are being retired and phones replaced by voip to the home. That probably has more to do with the advertising as they’d want to apply priority and minimum bandwidth requirements to voip calls for the PSTN replacement.

Wifi standards already include a WMM (Wireless MultiMedia) extension, which performs blunt QOS on wifi adapters which support it.

https://www.smallnetbuilder.com/wireless/wireless-features/does-wi-fi-multimedia-wmm-really-do-anything-part-1/

In large enterprise networks it can be very beneficial, especially as more things became added to IP networks.

In home networks, as you can only really control one side, unless you are regularly saturating upload or download bandwidth the benefits probably aren’t that great.

Obviously it makes for great marketing, but with the category groups like pictured, unless people know what is behind them and understand how it might affect, and which they actually need, it may not make the improvements they expect. It’s potentially better than nothing, but it’s still a bit of a blunt tool.

For my household network usage, even though I stream music or video most hours I’m awake and have conference calls, I wouldn’t have Video & Audio Streaming as the highest priority. From certain devices traffic is wrapped up in a VPN, so it does nothing to help.


If you can afford and its available, I would suggest its better to overprovision your Internet connection, ie fasted speed you can afford, rather than try to analyze control traffic on a congested connection. QoS may be beneficial if you are in a rural location, with limited bandwidth.


A CD quality stream is just 1.4mbps, so in an age where even 100mbps is not unusual for internet speeds, it would take a lot of music streaming to hit the buffer full conditions SQM is designed for…

The bigger hits will be stuff like iOS/Android/Windows/macOS/PS/xBox updates en-masse when they hit if everything is set to auto update. 

However, the above aren’t (yet) constant things as much as CDS would like them to be, so in normal Sonos use, I’m not sure SQM would have a great deal of positive or negative impact. 

There would also be an element of local WiFi hogging by such devices potentially, which for me makes PC’s, Macs and games consoles prime candidates for wired connections in the first place if you can. 

For me the problem with all this stuff is home router vendors tend to want to hide all this and add an ‘AI adaptive magic’ moniker to the sales blurb, but if you can’t have some level of control, or use lots of VPN’s etc, it gets messy, or doesn’t deliver what you need… 

I do wonder if the new Sonos model needs to consider the idea of working without going out to the internet all the time for those users that don’t need/want access to Sonos from outside their house. IF you don’t buy into their headphones, then I’m not sure what benefits remote access has, and it opens up the ‘normal’ experience to all sorts of pain that may not be needed. 


For me the problem with all this stuff is home router vendors tend to want to hide all this and add an ‘AI adaptive magic’ moniker to the sales blurb, but if you can’t have some level of control, or use lots of VPN’s etc, it gets messy, or doesn’t deliver what you need… 

fq_codel is a core linux package https://man7.org/linux/man-pages/man8/tc-fq_codel.8.html 

It really just requires one value, a limit, and does its job.

Below are two screenshots captured using flent which is a tool that stress tests a connection with simultaneous max UL and DL using multiple connections / protocols. The first is my internet link without shaping, the second my internet link shaped with fq_codel set up via the following command (on my mikrotik router, the GUI version of this is just a few input fields):

/queue simple
add max-limit=95M/15M name=fq-codel queue=fq-codel/fq-codel target=ether1

There is no “ai magic” and no greater level of control required. Instead of a steady 50ms latency increase and connections that fluctuate wildly in speed over time, fq_codel gives me a steady ~2ms latency increase under full link saturation, and connections that all run as fast as possible without competing with each other. Note that as I mentioned above I run fq_codel on all my router’s wifi and ethernet ports too, and thus get the same benefits within my LAN. Sure, this isn’t going to be the solution to everyone’s Sonos problems, but I would never go back to a home network without SQM (the Smart in SQM means no config btw).

 


@m-m-i , this is all very interesting, but I am asking myself why so much complexity for a home network, unless its for education/research purposes. Looking at graphs, suggests Starlink network? Is this type of configuration more relevant for a Satellite ISP connection?

If I have sufficient bandwidth to my ISP, why do I need QoS?


@m-m-i , this is all very interesting, but I am asking myself why so much complexity for a home network, unless its for education/research purposes. Looking at graphs, suggests Starlink network? Is this type of configuration more relevant for a Satellite ISP connection?

If I have sufficient bandwidth to my ISP, why do I need QoS?

This isn’t complex. Eero exposes this via a single toggle called “optimise for conferences and gaming” and Eero users would see similar performance gains to what I posted above.

My connection is not starlink btw, that’s the flent test server address (also not starlink, but that’s another story).

The point is this works. I work with a colleague who had a 50 down 25 up connection and spent months unable to work at home due to Teams calls dropping, work software lagging… no idea why since our work vpn limits to around 15 dl. I managed to convince her to get an Eero router and all her problems - which she had spent many service calls trying to resolve with her ISP - magically disappeared.

Extrapolate that same experience out to other things she might be doing on her network, like maybe streaming music to multiple Sonos speakers - which these days rely on a pretty constant stream of cloud calls.


This isn’t complex. Eero exposes this via a single toggle called “optimise for conferences and gaming” and Eero users would see similar performance gains to what I posted above.

The point is this works. I work with a colleague who had a 50 down 25 up connection and spent months unable to work at home due to Teams calls dropping, work software lagging… no idea why since our work vpn limits to around 15 dl. I managed to convince her to get an Eero router and all her problems - which she had spent many service calls trying to resolve with her ISP - magically disappeared.

 

Ok, sorry misunderstood, I thought you were talking about enabling FQ-Codel queues on MikroTik routers via command line, which may appear complex to your average Sonos user.


Interesting thread. As a home eero mesh network user here - I have been having intermittent cutting in and out across 9 Sonos speakers as well since the May app update. Calls to support with diagnostics sent didn’t reveal anything to Sonos support. It was the old reboot the router and reset all speakers routine that seems to work temporarily. 
I have had better success in the last week or so after connecting one speaker via Ethernet creating SonosNet. 
I have been hesitant to mess with any of eero settings up to now as I don’t want to mess with other devices across my network. 
Is this the setting I should toggle on to improve performances you suggest? “optimize for conferencing and gaming”

 

 


Ok, sorry misunderstood, I thought you were talking about enabling FQ-Codel queues on MikroTik routers via command line, which may appear complex to your average Sonos user.

I was talking about those things since that is what I use, and I am responding to the more technical users here who saying QOS is not necessary or overly complicated. The point I am trying (in an admittedly confusing manner) to make is modern libraries like fq_codel and cake are not complicated at all — for an end user config can wrap up to a simple “on/off” switch like you see in the Eero screenshot above — and they work literal magic.


Is this the setting I should toggle on to improve performances you suggest? “optimize for conferencing and gaming”

Yes thats the one. If you want to test if you have an issue this might solve you try the below links – note that these should be run on a wired connection to your main router, not via wifi.

https://speed.cloudflare.com/
https://www.waveform.com/tools/bufferbloat


Ok, sorry misunderstood, I thought you were talking about enabling FQ-Codel queues on MikroTik routers via command line, which may appear complex to your average Sonos user.

I was talking about those things since that is what I use, and I am responding to the more technical users here who saying QOS is not necessary or overly complicated. The point I am trying (in an admittedly confusing manner) to make is modern libraries like fq_codel and cake are not complicated at all — for an end user config can wrap up to a simple “on/off” switch like you see in the Eero screenshot above — and they work literal magic.

Please correct me if I’m wrong, but the purpose of fq_codel/cake is to reduce the delays on bottlenecked/saturated links. It’s also why the tests are for maximum data speed. It only enables and starts shaping at a configured point below the maximum link data rate. Until the trigger limit is hit anything can use the bandwidth.

When first discussed and introduced in 2012, in a home environment the internet connection was frequently a severe bottleneck and easily saturated. Things moved on and the Wifi AP became the slowest point, so a wifi optimised version was created. The biggest benefit for Wifi at the time was that it handled airtime better when devices with significantly different maximum speeds were connected.

It has been available in linux for a long time due to it’s high use in routers. Some systemd linux distros also enable it by default. By design it has limited configuration which is sane, but it’s not a silver bullet miracle queuing system.

Typical hardware network buffers are a FiFo (first in first out) and when a link is saturated can backlog, ie bufferbloat, because the time sensitive data is stuck behind other data.

fq-codel & cake, implement queues for flows combined with a traffic shaper for different types types of flow. When below trigger limits anything goes. So regardless of what a client is doing, vpn, video calls, music streaming, game playing it can take as much bandwidth as it needs.

When the link they’re applied to hits the trigger, then the fq_codel and cake kicks in and limits the different traffic flows.

If your use case fits the flow model and you regularly saturate links it can be beneficial and is a reasonable automatic low config control, but its limitations due to being flow based are also documented in the rfcs.

Work VPNs are an obvious case when all traffic goes across the VPN. The vpn is a flow, so there is no control of the traffic within the VPN. Not good when I’m on a video or voice call or ssh’d into remote servers and my VPN gets shaped down.

A high number of flows can make the algorithms ineffective. Bittorrent based traffic can be tricky, eg steam updating, some game updaters, software image downloads (common for linux isos).

In situations like this host IP based shaping can be preferable, or at least understanding what is behind the simple headings/tick boxes.

That eeos setting to prioritise “conferencing and gaming” is bad for my work connection because everything is inside a vpn, so my work video/voice conferencing will actually suffer while my sons gaming will would improve.

If you don’t saturate your links to hit the trigger thresholds or have significant speed differences between wifi devices you are likely to see limited or no benefit.


@m-m-i , this is all very interesting, but I am asking myself why so much complexity for a home network, unless its for education/research purposes. Looking at graphs, suggests Starlink network? Is this type of configuration more relevant for a Satellite ISP connection?

If I have sufficient bandwidth to my ISP, why do I need QoS?

...

The point is this works. I work with a colleague who had a 50 down 25 up connection and spent months unable to work at home due to Teams calls dropping, work software lagging… no idea why since our work vpn limits to around 15 dl. I managed to convince her to get an Eero router and all her problems - which she had spent many service calls trying to resolve with her ISP - magically disappeared.

Extrapolate that same experience out to other things she might be doing on her network, like maybe streaming music to multiple Sonos speakers - which these days rely on a pretty constant stream of cloud calls.

How much of that problem was related to the previous router she was using and any newer router would have had the same magical effect?

If the old router wasn’t even hitting the internet bandwidth limits before things collapsed was it hitting hardware limits? Low powered cpus, low memory coupled with poor software can quickly cause issues in a router.

In the past when I’ve used teams, it can fall apart itself long before it gets close to bandwidth limits and latency increases 😂

By all means if a router can let you enable/fiddle with it, there is no harm trying. But it could have unexpected side effects on other traffic or do nothing.


Based on the above comments, I still standby my recommendation:

If you can afford and its available, I would suggest its better to overprovision your Internet connection, ie fasted speed you can afford, rather than try to analyze control traffic on a congested connection. QoS may be beneficial if you are in a rural location, with limited bandwidth.

 


While I appreciate that this thread has opened a lot of constructive conversation. However I really think my suggestion has been “ over thunk” ( and the previous was not a typo).

Although I recommend setting the parameters if possible there’s no rule you must do so nor is there a guarantee that you will see an improvement in network performance.

What I can say is that I have none of the issues with Sonos and the new app that is permeating throughout this community like a plague. Does my network perform better because of QoS parameters set or is because I have invested in a very expensive mesh network using three Asus ZenWiFi Pro ET12’s with a wired Ethernet Backhaul? I’ll let you ponder that answer. However, please don’t take it to the Nth degree for analysis

Once again thanks for your comments but I think it’s time to enjoy your Sonos 😊