答案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。如果您想要设置非零值,也请检查您的应用程序。