Horizon Client 可以在远程会话期间监控网络质量,并在检测到由于高延迟而导致网络不稳定时显示通知消息。网络延迟基于 TCP 连接的往返时间 (Round-Trip Time, RTT),以及 BEAT 和 UDP 连接的 RTT、丢包率和 RTT 变化 (RTT Variation, RTTV)。

您可以使用 Horizon Client 设置或组策略对象 (GPO) 来控制这些通知消息的显示。您还可以配置 Horizon Client 用于确定不稳定网络的阈值参数。

使用“设置”窗口显示网络通知

您可以从“设置”窗口启用和禁用网络通知。

  1. 启动 Horizon Client
  2. 单击菜单栏右上角的设置(齿轮图标),然后选择 VMware Blast

    VMware Blast 设置包含用于显示网络通知的控件
  3. 配置网络不稳定时通知的显示。
    • 要启用网络通知,请将禁止显示网络状态选项切换为“关”。默认情况下,此选项设置为“关”以允许显示通知。
    • 要禁用网络通知,请将禁止显示网络状态选项切换为“开”。

使用客户端 GPO 显示网络通知

您还可以使用禁用显示网络状态 GPO 选项来启用和禁用网络通知。有关更多信息,请参阅使用组策略设置配置 Horizon Windows Client

Horizon Client 如何确定网络质量

为确定网络连接的质量,Horizon Client 会将指定时间间隔内的网络条件与一对低阈值和高阈值进行比较,并计算 0% 到 100% 的质量评分。如果评分低于特定百分比,则网络将被视为高延迟且不稳定。

Horizon Client 根据使用的网络协议衡量以下网络条件。

表 1. Horizon Client 衡量的网络因素
协议 衡量的条件
TCP
  • RTT
BEAT 或 UDP
  • RTT
  • 丢包率
  • RTT 变化(也称为 RTTV 或抖动)

然后,Horizon Client 使用以下规则计算网络质量评分:

TCP Connections

Definitions:
rtt = detected RTT value
lowBound = RTT low threshold
highBound = RTT high threshold
score = overall network quality score

Rules:
If rtt >= highBound, then score = 0 (network is considered POOR)
If rtt <= lowBound, then score = 100 (network is considered GOOD)
If lowBound < rtt < highBound, then score = 100 * (rtt / (highBound - lowBound))
BEAT and UDP Connections

Definitions:
RTT = detected RTT value
RTT_extreme = RTT extreme threshold
RTT_lowBound = RTT low threshold
RTT_highBound = RTT high threshold
RTT_score = RTT quality score
RTT_weight_percentage = weight of RTT quality score

PkLoss = detected packet loss value
PkLoss_extreme = packet loss extreme threshold
PkLoss_lowBound = packet loss low threshold
PkLoss_highBound = packet loss high threshold
PkLoss_score = packet loss quality score
PkLoss_weight_percentage = weight of packet loss quality score


RTTV = detected RTT variation
RTTV_lowBound = low RTTV threshold
RTTV_highBound = high RTTV threshold
RTTV_score = RTTV quality score
RTTV_weight_percentage = weight of RTTV quality score

score = overall network quality score

Rules:
If RTT > RTT_extreme, then score = 0 (network is automatically considered POOR, all other calculations are skipped)
If RTT >= RTT_highBound, then RTT_score = 0
If RTT <= RTT_lowBound, then RTT_score = 100
If RTT_lowBound < RTT < RTT_highBound, then RTT_score = 100 * (rtt / (RTT_highBound - RTT_lowBound))

If PkLoss > PkLoss_extreme, then score = 0 (network is automatically considered POOR, all other calculations are skipped)
If PkLoss >= PkLoss_highBound, then PkLoss_score = 0
If PkLoss <= PkLoss_lowBound, then PkLoss_score = 100
If PkLoss_lowBound < PkLoss < PkLoss_highBound, then PkLoss_score = 100 * (PkLoss / (PkLoss_highBound - PkLoss_lowBound))

If RTTV >= RTTV_highBound, then RTTV_score = 0
If RTTV <= RTTV_lowBound, then RTTV_score = 100
If RTTV_lowBound < RTTV < RTTV_highBound, then RTTV_score = 100 * (RTTV / (RTTV_highBound - RTTV_lowBound))

To calculate the overall score, take the weighted average of the three quality scores:
score = RTT_score * RTT_weight_percentage / 100 +
        PkLoss_score * PkLoss_weight_percentage / 100 +
        RTTV_score * RTTV_weight_percentage / 100

然后,Horizon Client 使用以下规则确定网络稳定性:

Definitions:
score = overall network quality score
thresholdGood = minimum score indicating GOOD network stability
thresholdPoor = high limit of score range indicating POOR network stability

Rules:
If score >= thresholdGood, the network is considered GOOD and no notification is displayed.
If thresholdPoor < score < thresholdGood, the network is considered OK and no notification is displayed.
If score <= thresholdPoor, the network is considered POOR and a notification is displayed.

配置网络质量的阈值参数

要自定义 Horizon Client 用于计算网络质量评分并确定网络稳定性的阈值参数,请在以下某个注册表文件中配置相应的项。

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Policies\VMware, Inc.\VMware VDM\Client\vvc
  2. HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware VDM\Client\vvc

Horizon Client 将按所列顺序搜索注册表文件,并在找到具有已配置值的项时立即停止。

注: 在更改这些配置项的默认值时,请慎重考虑。默认阈值是通过广泛的内部测试确定的,旨在为典型网络环境生成合理的结果。
表 2. 网络质量的配置项

配置项

注: 所有密钥均为密钥类型 REG_SZ。
允许的值 默认值 说明
NetworkStatsCheckEnabled 0、1 1

指定是否启用网络数据处理以计算网络质量评分。

  • 指定 1 将启用网络数据处理并计算网络质量评分。
  • 指定 0 将禁用网络数据的处理。Horizon Client 将不会监控网络质量或计算网络质量评分。
NetworkStatsCheckPeriodSec 大于 2 的正整数 15 指定监控网络条件的时间间隔(以秒为单位)。
NetworkStatsQualityScoreTcpThresholdGood 0 到 100 的数字 85

指定指示 TCP 网络质量良好所需的最低评分。

指定的值必须大于 NetworkStatsQualityScoreTcpThresholdPoor 值。

NetworkStatsQualityScoreTcpThresholdPoor 0 到 100 的数字 40

指定指示 TCP 网络质量较差的评分范围上限。

指定的值必须小于 NetworkStatsQualityScoreTcpThresholdGood 值。

NetworkStatsQualityScoreBeatThresholdGood 0 到 100 的数字 75

指定指示 BEAT 和 UDP 网络质量良好所需的最低评分。

指定的值必须大于 NetworkStatsQualityScoreBeatThresholdPoor 值。

NetworkStatsQualityScoreBeatThresholdPoor 0 到 100 的数字 45

指定指示 BEAT 和 UDP 网络质量较差的评分范围上限。

指定的值必须小于 NetworkStatsQualityScoreBeatThresholdGood 值。

NetworkStatsTcpRttMSLow 正整数 2

指定用于计算 TCP 网络质量评分的低 RTT 阈值(以毫秒为单位)。

指定的值必须小于 NetworkStatsTcpRttMSHigh 值。

NetworkStatsTcpRttMSHigh 正整数 400

指定用于计算 TCP 网络质量评分的高 RTT 阈值(以毫秒为单位)。

指定的值必须大于 NetworkStatsTcpRttMSLow 值。

NetworkStatsTcpRttMSWeightPercent 0 到 100 的百分比 100

指定用于计算 TCP 网络质量评分的 RTT 值的统计权重。

注: 由于 RTT 是当前用于确定 TCP 网络质量的唯一网络因素,因此此项必须设置为 100。
NetworkStatsBeatRttMSLow 正整数 2

指定用于计算 BEAT 和 UDP 网络质量评分的低 RTT 阈值(以毫秒为单位)。

指定的值必须小于 NetworkStatsBeatRttMSHigh 值。

NetworkStatsBeatRttMSHigh 正整数 400

指定用于计算 BEAT 和 UDP 网络质量评分的高 RTT 阈值(以毫秒为单位)。

指定的值必须大于 NetworkStatsBeatRttMSLow 值。

NetworkStatsBeatRttMSExtreme 正整数 250

指定用于立即识别质量较差的 BEAT 和 UDP 网络的极端 RTT 阈值(以毫秒为单位)。

如果检测到的 RTT 大于极端阈值,则自动认定网络质量较差,且不会进行其他评分计算。

NetworkStatsBeatRttMSWeightPercent 0 到 100 的百分比 34

指定用于计算 BEAT 和 UDP 网络质量评分的 RTT 值的统计权重。

注: NetworkStatsBeatRttMSWeightPercent、NetworkStatsBeatPkLossPercentWeightPercent 和 NetworkStatsBeatRttvMSWeightPercent 的组合值必须等于 100。
NetworkStatsBeatPkLossPercentLow 0 到 100 的百分比 0.1

指定用于计算 BEAT 和 UDP 网络质量评分的低数据包丢失阈值。

指定的值必须小于 NetworkStatsBeatPkLossPercentHigh 值。

NetworkStatsBeatPkLossPercentHigh 0 到 100 的百分比 15

指定用于计算 BEAT 和 UDP 网络质量评分的高数据包丢失阈值。

指定的值必须大于 NetworkStatsBeatPkLossPercentLow 值。

NetworkStatsBeatPkLossPercentExtreme 0 到 100 的百分比 25

指定用于立即识别质量较差的 BEAT 和 UDP 网络的极端丢包率阈值。

如果检测到的丢包率大于极端阈值,则自动认定网络质量较差,且不会进行其他评分计算。

NetworkStatsBeatPkLossPercentWeightPercent 0 到 100 的百分比 33

指定用于计算 BEAT 和 UDP 网络质量评分的丢包率值的统计权重。

注: NetworkStatsBeatRttMSWeightPercent、NetworkStatsBeatPkLossPercentWeightPercent 和 NetworkStatsBeatRttvMSWeightPercent 的组合值必须等于 100。
NetworkStatsBeatRttvMSLow 正整数 1

指定用于计算 BEAT 和 UDP 网络质量评分的低 RTTV 阈值(以毫秒为单位)。

指定的值必须小于 NetworkStatsBeatRttvMSHigh 值。

NetworkStatsBeatRttvMSHigh 正整数 30

指定用于计算 BEAT 和 UDP 网络质量评分的高 RTTV 阈值(以毫秒为单位)。

指定的值必须大于 NetworkStatsBeatRttvMSLow 值。

NetworkStatsBeatRttvMSWeightPercent 0 到 100 的百分比 33

指定用于计算 BEAT 和 UDP 网络质量评分的 RTTV 值的统计权重。

注: NetworkStatsBeatRttMSWeightPercent、NetworkStatsBeatPkLossPercentWeightPercent 和 NetworkStatsBeatRttvMSWeightPercent 的组合值必须等于 100。