Network Quality of Service (QoS) on Windows

The goal of Quality of Service (QoS) is to provide preferential treatment to certain subsets of data, enabling that data to traverse the traditionally best-effort Internet or intranet with higher quality transmission.

By using QoS you can:

  • Specify or request bandwidth requirements particular to their application, such as latency requirements for streaming audio.
  • Give applications their required bandwidth — provided bandwidth availability exist.
  • Control network device resources based on user policy and/or application usage.
  • Reserve portions of a given bandwidth for applications or users that require such availability for core business activities.
  • Shape and smooth the traffic that clients submit to the network, thereby avoiding the overburdening of switches and routers suffered with traditional burst transmissions.


QoS History in Windows

Windows 2000 introduced the Generic QOS (GQOS) application programming interface (API) as a framework for QOS. The GQOS API provided access to QOS mechanisms that were available as part of the networking stack. Windows 2000 also provided tools, such as Subnet Bandwidth Manager (SBM) and QOS policy control.

In Windows XP, the focus was on prioritization and traffic shaping mechanisms. Although GQOS continued to be the application interface for accessing prioritized QOS, the reservation mechanisms had been removed. The kernel component that implemented prioritization and traffic shaping was the QOS Packet Scheduler, called the Traffic Control (TC) API. The TC API provided control of QOS mechanisms (such as prioritization and shaping) at the host level rather than at the application level, but it required administrative privileges to be invoked. The QOS mechanisms provided in Windows XP supported enterprise QOS needs for wired networks. In Windows XP Service Pack 2 (SP2), the GQOS mechanisms allowed the application to set Layer 3 priorities only. Applications that set Layer 2 priorities for their traffic had to implement an independent service with administrative privileges to set Layer 2 priorities using TC APIs.

In Windows Vista, two features were introduced: Quality Windows Audio Video Experience (qWAVE) and policy-based QOS. qWAVE is designed to estimate the network bandwidth, intelligently mark the application packets (with proper DSCP values), and interact with the application in the event of network congestion or bandwidth fluctuations (informing the application to take appropriate actions). Policy-based QOS allows IT administrators to apply QOS to applications (which do not need to have native support for QOS), computers, and users in their enterprise network.

In Windows 7, enhancements were made to allow policies to be created based on the URL of an HTTP server (rather than just on an application name), source and/or destination IP addresses, source and/or destination ports, and protocol).


Using PowerShell to manage QoS

With the following cmdlets you can manage your QoS.

Get-NetQosPolicy      Retrieves network Quality of Service (QoS) policies.
New-NetQosPolicy      Creates a new network QoS policy.
Set-NetQosPolicy      Updates the QoS policy settings.
Remove-NetQosPolicy   Removes a network Quality of Service (QoS) policy.

Lets get started:

Step 1

As usual step 1 is to know from where you are starting. So we are going to check if some NetQosPolicy is already defined. Open PowerShell with administrative priviledges.

The Get-NetQosPolicy cmdlet allows you to retrieve Quality of Service (QoS) policies from a computer.

QoS policies can originate from many sources, such as from the administrator of a local computer, from a domain controller, or from applications that use the QoS Windows Management Instrumentation (WMI) APIs. Therefore, the QoS policies are stored in different locations. If the location as provided by the PolicyStore parameter is not specified, then this cmdlet retrieves all the policies stored on the local computer (localhost).


ActiveStore is a special location. If ActiveStore is specified as the location, the user will see all the effective QoS policies, regardless of where the QoS policies are stored.

This command gets a list of QoS policies currently effective on the computer:

Get-NetQosPolicy -PolicyStore "ActiveStore"

This command gets all of the properties of a specific QoS policy.

Get-NetQosPolicy -Name "YOUR POLICY HERE" | Format-List -Property *


Step 2

The New-NetQosPolicy cmdlet creates a new network Quality of Service (QoS) policy. A QoS policy consists of two main parts: match conditions also known as filters, and actions. If the PolicyStore parameter is not specified, then the new policy is added to local computer (localhost). If a policy is stored in ActiveStore, then the policy will not persist after reboot.

This command creates a QoS policy named FTP that matches an application path at ftp.exe and throttles the traffic at 1,000,000 bits per second.

New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB -PolicyStore ActiveStore


This command creates a QoS policy named SMB Policy that classifies SMB traffic and tags it with 802.1p priority value of 1. The SMB parameter is a built-in filter

New-NetQosPolicy -Name "SMB Policy" -SMB -PriorityValue8021Action 1

This command creates a QoS policy named Backup that matches traffic sent to subnet and tags it with DSCP value of 40. This policy is effective only on traffic sent on a domain-joined network adapter.

New-NetQosPolicy -Name "Backup" -IPDstPrefixMatchCondition "" -NetworkProfile Domain -DSCPAction 40

You can also use a single IP as a IPDstPrefixMatchCondition and the NetworkProfile can be: Domain, Public, Private, or All.

Option 3

The Set-NetQosPolicy cmdlet modifies an existing Quality of Service (QoS) policy. You need to specify the existing name to change values in this policy.

This command updates the QoS policy named SMB Policy so that it only applies to traffic that is outgoing from a domain-joined network adapter.

Set-NetQosPolicy -Name "SMB Policy" -NetworkProfile Domain

Step 4

The Remove-NetQosPolicy cmdlet removes the network Quality of Service (QoS) policies. All the policies, in a policy store, are removed unless a specific policy is named.

This example removes a policy named as Backup.

Remove-NetQosPolicy -Name "Backup"

This example removes all the policies from the ActiveStore.

Remove-NetQosPolicy -PolicyStore ActiveStore


With this information you can get into shape… 😉


Extra Info:

Differentiated Services and DSCP

Diffserv (Differentiated Services) is a protocol that defines traffic prioritization at Layer 3 of the OSI model. Layer 3 network devices, such as routers, that support this protocol use Diffserv markings to identify the forwarding treatment, or per-hop behavior (PHB), that marked traffic is to receive. Diffserv markings for a packet are placed in the IP header.
RFC 2475 defines the architecture for Diffserv. RFC 2474 defines the bits in the Diffserv field.
RFC 2474 redefines the IPv4 TOS octet as 6 bits for the Diffserv value, also known as Diffserv code point or DSCP, followed by 2 unused bits.

DSCP values are backward-compatible with IP precedence values, which means that legacy routers that support only IP precedence can interpret DSCP values. Valid values are 0-63.

Common values sorted from low to high are: 0,8,16,24,32,40,48,56

IEEE 802.1p Priority Levels

IEEE 802.1p defines a 3-bit field called the Priority Code Point (PCP) within an IEEE 802.1Q tag. The PCP value defines 8 priority levels, with 7 the highest priority and 1 the lowest priority. The priority level of 0 is the default. Each priority level defines a class of service that identifies separate traffic classes of transmitted packets.


Specifies the location of the policy that is stored. The acceptable values for this parameter are:

  • ActiveStore

Samba – SMB browsing elections wars

I while ago I posted a page about Kodi and SMB. Read about it here. My goal than was to disable SMBv1 and ban it from my network.

Today I did a new installation of my Chromebook (with Chromebook Unix on the side). I noticed I couldn’t browse with the file manager from my distro and after editing the samba configuration file to bumb the client max protocol to level 3 it still wouldn’t work.

Having multiple looks at my smb.conf file and restarting the service multiple times after uncommenting some settings I had no clou what was going on. Samba can be a handfull but has an overwhelming documentation library. Reading Chapter 7. Name Resolution and Browsing pointed my in the right direction to solve this.

Continue reading Samba – SMB browsing elections wars

End of roaming charges for travellers in the EU in 2017

The European Parliament sealed the new rules on ending roaming charges in June 2017 and the first EU-wide net neutrality rules.


The roaming charges will cease to exist in the EU as of 15 June 2017. Consumers will pay the same price for calls, texts and mobile data wherever they are travelling in the EU. Calling a friend when you are at home or in another EU country won’t make a difference on your bill.

Already from April 2016, roaming will become even cheaper: operators will only be able to charge a small additional amount to domestic prices up to €0.05 per minute of call made, €0.02 per SMS sent, and €0.05 per MB of data (excl. VAT).

How does roaming work in the EU?

When you travel to a foreign country and phone, text or surf online with your mobile phone or device using your home country’s SIM card, you are roaming. Your operator in your home country pays the operator in the foreign country for the use of their networks. The price paid between operators is called the wholesale roaming price. It represents a cost to the home country operator and therefore impact on consumers’ final bills. This is why the Commission has worked to limit wholesale roaming prices in the EU, in parallel to its work to directly limit the retail prices paid by the consumer.

While many counties have 3 or 4 Mobile Network Operators with different names many are somehow part of a larger holding or some sort of group. Roaming has been a huge money tree for these companies while it was clear for everyone that the extra costs are almost nothing.

Vodafone network

Deutsche Telekom network

With only the Vodafone and Deutsche Telekom we got 80% of the world covered. In Europe there are two other smaller but multi county operators.

Orange network
Telenor network

What are the different domestic prices for mobile services across the EU?

Europeans have different travel habits across the EU, and there are also different network costs in visited countries. A recent European Commission study (2016) also shows that consumer retail offers vary between Member States. For example, in 2016 the cheapest monthly deals offering 1GB of data, 600 minutes of calls and 225 SMS ranged from €60 in Hungary to €8 in Estonia (excl. VAT and any smartphone subsidy).

EU action against roaming charges

Since 2007, the European Commission has successfully worked to reduce the consumer price of roaming. This has changed the habits of many Europeans who previously used to switch their mobile phones off while travelling. In 2013, the European Commission proposed legislation to end roaming charges for people periodically travelling in the EU. In October 2015, the European Parliament and the Council agreed that this should be in place as of 15 June 2017

As of 15 June 2017, you will be able to use your mobile device when travelling in the EU, paying the same prices as at home, i.e. to roam like at home, subject to operators’ fair use policies. For instance, if you pay for a monthly package of minutes, SMS and data in your country, any voice call, SMS and data session you make while travelling abroad in the EU will be deducted from that volume as if you were at home, with no extra charges.

What have been the different decreases in roaming prices?

  • Since 2007, the EU has achieved retail price reductions across calls of 92%
  • Since 2009, the EU has achieved retail price reductions across SMS of 92%
  • Data roaming is now up to 96% cheaper compared to 2012 when the first EU retail price cap became applicable on data roaming.
  • Between 2008 and 2015, the volume of data roaming has been multiplied by more than 100.

Regulated Roaming tariffs 2007 – 2016

(€ excl. VAT)
  Voicecall made Voicecall received SMS Data Data
        Wholesale Retail
        MB MB
2007 0,49 0,24      
2008 0,46 0,22      
2009 0,43 0,19 0,11 1,00  
2010 0,39 0,15 0,11 0,80  
2011 0,35 0,11 0,11 0,50  
2012 0,29 0,08 0,09 0,25 0,70
2013 0,24 0,07 0,08 0,15 0,45
2014 0,19 0,05 0,06 0,05 0,20
2015 0,19 0,05 0,06 0,05 0,20
2016 domestic price + up to 0,05 0,0114 domestic price + up to 0,02 0,05 domestic price + up to 0,05

Net neutrality

The rules enshrine the principle of net neutrality into EU law: no blocking or throttling of online content, applications and services. It means that there will be truly common EU-wide internet rules, contributing to a single market and reversing current fragmentation.

Every European must be able to have access to the open internet and all content and service providers must be able to provide their services via a high-quality open internet. From the entry into force of the rules, blocking and throttling the internet will be illegal in the EU and users will be free to use their favourite apps no matter the offer they subscribe. Many mobile providers are blocking Skype, Facetime or similar apps or sometime they ask extra money for allowing these services: this will be illegal.

All traffic will be treated equally. This means, for example, that there can be no paid prioritisation of traffic in the internet access service. At the same time, equal treatment allows reasonable day-to-day traffic management according to justified technical requirements, and which must be independent of the origin or destination of the traffic and of any commercial considerations. Common rules on net neutrality mean that internet access providers cannot pick winners or losers on the internet, or decide which content and services are available.


Netflix ISP Speed Index – Nederland

ISP (Internet Speed Index) for Prime Time Netflix performance  – March 2017


1 Ziggo 4.21 4.20 No change


2 Ziggo (former UPC) 4.20 4.19 +1
3 Caiway 4.19 4.19 -1


4 ZeelandNet 4.17 4.17 No change


5 T-Mobile Thuis 4.02 4.04 No change


6 KPN 3.99 3.99 No change


7 Xs4all 3.88 3.88 No change


8 Tele2 3.63 3.60 No change


9 Online 3.55 3.52 No change


  • Since december Netflix bandwidth has gone up and seems to stay this way.
  • UPC users should be really happy with the merged with Ziggo in 2016.
  • KPN seems to do a little traffic shaping.
  • Xs4All surprised me, they are known to be the goto ones but clearly lack behind. On their website they are saying that Netflix will go over the open internet and quality will depend on the available bandwidth. I don’t think so…
  • The Ziggo average speed is the 3rd fastest in the world.

Windows 10, Hyper-V and Wireless – Yes, Hyper-V also can do NAT

Set up a NAT network

Windows 10 Hyper-V allows native network address translation (NAT) for a virtual network.

This guide will walk you through:

  • creating a NAT network
  • connecting an existing virtual machine to your new network
  • confirming that the virtual machine is connected correctly


  • Windows 10 Anniversary Update or later
  • Hyper-V is enabled
Note: Currently, you to create one NAT network per host.

Continue reading Windows 10, Hyper-V and Wireless – Yes, Hyper-V also can do NAT