Zoom is a popular video conferencing platform widely used by organizations and individuals for teleconferencing. The quality of the audio and video of these meetings can vary widely due to a host of factors, but we will focus on one of the most common root causes: lack of traffic control at the end-users' location. This results in low Internet quality not only for conferencing but for most interactive applications as well. It is especially acute on lines with low capacity, such as DSL/VDSL or rural cable systems. But it can be present even on high-speed cable and fiber lines as well.
The underlying cause is a phenomenon known as BufferBloat, which can be mitigated with active traffic management, but for the control to be effective, several things must be in place:
- The Traffic Manager must be tuned to the line (an IQrouter automates this)
- The local and remote traffic should also be correctly tagged (using DSCP) so the traffic manager can correctly prioritize
Even if #2 is not set ideally, the IQrouter will still use traffic patterns to optimize voice over other traffic to maintain good audio quality.
This FAQ is about how to optimize both the IQrouter configuration settings as well as the Zoom application and service to get the highest possible quality.
For conferencing, we always want to ensure that voice traffic takes presence over video, as we are very sensitive to audio breakups, but we also want as smooth as possible video a well. To do this, we want to prioritize both above the rest of the traffic. As mentioned above, the IQrouter will automatically prioritize certain obvious voice traffic patterns with no further indications, and to some extent, even video will benefit from the automatic prioritization and the overall low-latencies maintained by the IQrouter.
So, if you are happy with how the Zoom app performs with your IQrouter at this time, then you can stop reading and enjoy the benefits of IQrouters automatic prioritizations and traffic management.
However, the ideal is to have the device running the Zoom client actually use special markings known as DSCP on each packet being sent to explicitly indicate to the traffic manager what priority should be applied to each stream.
On the IQrouter, the default is a three-tier priority scheme with:
- Voice – Traffic marked as CS6 or CS7
- Best-Effort – All other (or marked CS0) or any unmarked traffic
- Lowest- Bulk traffic (marked CS1)
In the above mode, video traffic is competing in the Best-effort tier, so other local network activity (such as web browsing) could affect video quality.
For best video conferencing performance, there is an optional four-tier scheme, that is enabled by going to Configure->Network and enable VoIP video Prioritization, which sets up a four-tier priority scheme (highest to lowest priority):
- Latency Sensitive and VoIP traffic
- Marks: CS7, CS6, CS5, CS4, Expedited Forwarding (EF) Voice Admit (VA)
- Video traffic for video conferencing / streaming
- Marks: Assured Forwarding (AF)4x, AF3x, AF2x, CS3, CS2, TOS4, TOS1
- Best Effort (CS0, AF1x, Type of Service (TOS)2 and unmarked traffic lands here)
- Bulk (traffic marked CS1)
Note that any traffic (but bulk) can consume as much capacity as needed if there is no competing traffic, so Best Effort is usually consuming almost all of it. But as soon as VoIP or Video need capacity, they get it. Voice is guaranteed a minimum of 10% of total capacity should it need it.
The Zoom app marks the traffic by default, but it marks audio with CS7 (decimal value 56) and video with CS5 (decimal value 40), so both types of traffic wind up in the highest priority tier. This might be fine, but if the audio quality is being impacted by the video, or the video has low resolution (because latency-sensitive tier is limited in terms of percentage of the bandwidth it can chew up), then it is best to tell the Zoom service and App to use AF33 (30) for the video so it lands in the Video tier, which is allowed a higher percentage of bandwidth. So set video for a value of 30 in the Zoom UI. See the section below for screenshots from the Zoom web Interface.
Important Note: In Zoom accounts with a master account and many sub-accounts, that the master account holder will need to turn on DSCP in Zoom as it is disabled by default.
So, if you work for a company with a corporate account, please share this info with the IT team.
Notes on very low-bandwidth lines
The capacity partitioning described above works very well once there is a certain minimum of capacity in either direction. Which for video conferencing would be >2Mbps uplink and >10Mbps downlink. If your line exceeds that, then skip to the next section.
If on a line with less than that capacity, we recommend leaving the default three-tier Traffic Manager mode as it prioritizes based on traffic patterns and sizes.
If on DSL, we recommend leaving the default three-tier advanced traffic manager or use the simple setting. The advanced four-tier will likely not have enough capacity on the uplink to divvy up.
On some platforms, it requires a few extra steps to ensure those markings are actually set and reach the router.
On Windows, for DSCP to be active, the Zoom app must be run as an administrator, or on corporate-managed devices, the policies need to be set via the group policy for the app, as per this article: https://support.zoom.us/hc/en-us/articles/207368756-QoS-DSCP-Marking
The IQrouter uses ECN (Explicit Congestion Notification) as a TCP Back-off signal (vs drops), so both Windows10 and MacOS react instantly to an overrun of capacity. This is more efficient and results in greater audio/video quality all around.
Changing QoS DSCP markings in the Zoom Web console
Note: this might change over time, so please check Zoom documentation
To change the Zoom account DSCP markings, you must log in to the Zoom Web console using the Account holder (or administrative account if a corporate account).
Once logged in, expand the collapsed Admin section, then click the 'Account Settings)
Next, click the 'In Meeting (Advanced)' sub-menu
Scroll until you see the DSCP Markings section, make sure the section is enabled (toggle on the right is on) and edit it to look like this: