Quality of Service Enablement for GVP and Stream Manager on Windows

QoS can be applied to prioritise the delivery of latency-sensitive traffic such as VoIP services and to control the impact of latency-insensitive traffic such as bulk data transfers.

The central problem of defining QoS for TCP/IP networks is how to specify and provide for prioritised delivery of IP traffic. To support QoS, the original RFC 791 for IP defined the Type of Service (ToS) field with the ability to specify precedence, delay, throughput, reliability, and cost characteristics. On CISCO routers, a Differentiated Services Code Point (DSCP) value can be specified in the ToS field of an IP packet. Differentiated Services (DiffServ) is a new model in which traffic is treated by intermediate systems with relative priorities based on the type of services (ToS) field.

Here is how QoS can be enabled on Windows based servers:

  • Firstly, you must have the QoS Packet Scheduler component installed and enabled from the properties of network connections in the Network Connections folder:

Image

  • Secondly, to enable RTP packet marking you must set the value of the following registry key to (DWORD) 1:

HKEY_LOCAL_MACHINE\Software\Microsoft\RTC\Transport\QoSEnabled

  • Microsoft provides APIs for assigning QoS parameters to traffic. You can use Winsock and the IP_TOS socket option to set the DSCP value for outgoing packets for a socket. However, by default the TCP/IP stack ignores the IP_TOS socket option. To use the IP_TOS socket option, you must create and set the value of the following registry key to (DWORD) 1:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DisableUserTOSSetting

  • Phew! That is the basic configuration required on Windows. To test this we can use a PING command using the “-v’ switch set to the ToS value and run a Wire Shark trace. In the example shown below the ToS value is 184 in decimal (HEX 0xB8) or Binary: 1011100 where the first 6 characters represent the DSCP value, which is the Expedited Forwarding (EF) code

Ping -v 184 xx.xx.xx.xx

Image

OK, so far so good. But how can we get Genesys components such as GVP and Stream Manager to set the IP_TOS value in RTP packets?

For Stream Manager we can configure a ToS value in the “rtp-ip-tos” option in the [x-config] section:

Image

We can also define the RTP port range using the “rtp-port” and “max-ports” options in the [contact] section:

Image

However, setting TOS bits is not possible within GVP 7.6 however this can be set within the network through a variety of mechanisms. For example when RTP packets from GVP arrive at the router they can be classified in a variety of ways such as using the source IP or destination IP addresses Layer4 protocol and port numbers, incoming interface, MAC address, etc. Additionally in Cisco environments it is possible to use NBAR (Network Based Application Recognition) to provide prioritisation based upon higher level protocols such as HTTP, RTP, etc. Typically this prioritisation results in setting of specific DiffServ priority levels.

To support such as configuration it is possible to specify the RTP port range by defining custom attributes “PortLow” and “PortHigh” within EMPS. By default the port range used is 1025-65535.

Image

Image

Share

Leave a Reply