为什么 DSCP 标签在 Windows 10 中的 TCP 上不起作用?

为什么 DSCP 标签在 Windows 10 中的 TCP 上不起作用?

我尝试使用组策略 - QOS 标记来自某个程序的所有数据包。但只有 UDP 数据包被标记,并且所有 TCP 的标签值仍为 0

在此处输入图片描述

这是由 Windows 10 引起的还是 DSCP 在 TCP 上不起作用?

答案1

TCP应该对仅包含 TCP 控制信息的数据报使用与包含用户数据的数据报相同的 TOS。Windows 确实如此,因此在检查时请仔细检查您是否正在剖析有效负载。

尽管总是要求网络最小化包含确认但不包含数据的段的延迟在直觉上似乎是正确的,但这样做可能会破坏 TCP 的往返时间估计。

另外,请检查数据包的来源。Windows 通常对 DSCP 标签非常严格。有一个 API 可以在应用程序内设置 DSCP 标签。但是,这只有在您告诉 Windows 允许此访问时才有可能。

以下 REG 文件启用该 API:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"DisableUserTOSSetting"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\QoS]
"Do not use NLA"="1"

如果没有这个,每个“手动”创建的数据包(使用 WinSock)都会被重置为 DCSP 0。如果您想要设置非零值,也请检查您的应用程序。

相关内容