jeudi 5 mars 2009

DSCP marking under Windows at application level

DSCP stands for Differentiated Services Code Point and is a field in the header of IP packets (v4 and v6) for packet classification purposes. As defined in the RFC 2474 Differentiated Services enhancements to the Internet protocol are intended to enable scalable service discrimination in the Internet without the need for per-flow state and signaling at every hop.

 0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| DSCP | CU |
+---+---+---+---+---+---+---+---+
DSCP: Differentiated Services CodePoint (0x00-0x3F)
CU: Currently Unused


Out-of-Scope

- Using End-to-end QoS features in IMS context. However, you can read 3GPP TS 23.207 for more information.
- Using DSCP tagging under Windows at host level (Network administrators).

In-Scope

- Using DSCP tagging under Windows at application level (General Information).

The IP_TOS socket option

By default, individual applications are not allowed to manipulate TOS (Type Of Services) bits, because this can defeat system policy mechanisms. This is why using IP_TOS option on WINSOCK socket has no effect.

Follow these steps to enable the IP_TOS option for the Winsock setsockopt function and the -v option for the ping utility on Windows 2000, Windows XP, or Windows Server 2003 (Microsoft KB 248611):

1. Start Registry Editor (Regedt32.exe).
2. Go to the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters
3. If you are running Windows 2000, follow these steps:
1. On the Edit menu, click Add Value.
2. In the Value name box, type DisableUserTOSSetting.
3. In the Data Type list, click REG_DWORD, and then click OK.
4. In the Data box, type a value of 0 (zero), and then click OK.


If you are running Windows XP or Windows Server 2003, follow these steps:

1. On the Edit menu, point to New, and then click DWORD Value.
2. Type DisableUserTOSSetting as the entry name, and then press ENTER.


When you add this entry, the value is set to 0 (zero). Do not change the value.

4. Quit Registry Editor, and then restart the computer.

This is not supported under Windows Vista

The Generic Quality of Service (GQoS) API

It is also possible to specify DSCP values using GQoS API. This API is part of Microsoft Windows Sockets v2. Because the first method can break the security rules it is recommended to use GQoS. This API can also be used to provide feedback to your application regarding the status of the network.

Good article on how to use this API --> http://msdn.microsoft.com/en-us/magazine/cc301862.aspx

Only IPv4 is supported

Quality Windows Audio/Video Experience (qWave)

As define here qWave is a collection of QoS-related software modules that run on devices in the home network. qWave supports multiple A/V streams (real-time flows requiring QoS) and data streams (best-effort flows, such as e-mail) simultaneously over the home network, while providing a high-quality A/V user experience. qWave is targeted for home A/V scenarios and is disabled in other environments, such as an enterprise.

Only under Windows Vista

Some references:

http://www.rfc-editor.org/rfc/rfc2474.txt
http://www.rfc-editor.org/rfc/rfc1349.txt
http://www.microsoft.com/whdc/archive/qWave.mspx
http://technet.microsoft.com/en-us/library/bb742475.aspx
http://support.microsoft.com/kb/248611

1 commentaire:

CHANG a dit…

Salut Mamadou,

j'ai survolé qq doc sur Qwave, mais je ne trouve pas comment l'installer sur Vista.
est ce qu'il est deja compris dans le home edition et faut aller le configurer qq part, ou alors faut l'installer?

Je cherche à marquer des packets video provenant de Vista en AF, vers toutes les machines de mon reseaux.

Merci.
MC