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

您可以使用 Horizon Client 设置来控制这些通知消息的显示。您还可以配置 Horizon Client 用于确定不稳定网络的阈值参数。

配置网络通知的显示

您可以使用配置 VMware Blast 菜单项来控制网络通知消息的显示。

  1. 启动 Horizon Client
  2. 从菜单栏中选择文件 > 配置 VMware Blast

    您可以利用“Blast 配置”窗口来配置网络通知的显示。
  3. 配置网络不稳定时通知的显示。
    • 要启用网络通知,请取消选择禁止显示网络状态选项。默认情况下,将取消选择此选项以允许显示通知。
    • 要禁用网络通知,请选择禁止显示网络状态选项。
  4. 单击确定保存更改。

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. 全局设置:/usr/lib/vmware/settings
  2. 用户首选项: ~/.vmware/preferences
  3. 用户默认值:~/.vmware/config
  4. 主机默认值:/etc/vmware/config
  5. 站点默认值:/usr/lib/vmware/config

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

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

配置项

允许的值 默认值 说明
vvc.NetworkStatsCheckEnabled 0、1 1

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

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

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

指定的值必须大于 vvc.NetworkStatsQualityScoreTcpThresholdPoor 值。

vvc.NetworkStatsQualityScoreTcpThresholdPoor 0 到 100 的数字 40

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

指定的值必须小于 vvc.NetworkStatsQualityScoreTcpThresholdGood 值。

vvc.NetworkStatsQualityScoreBeatThresholdGood 0 到 100 的数字 75

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

指定的值必须大于 vvc.NetworkStatsQualityScoreBeatThresholdPoor 值。

vvc.NetworkStatsQualityScoreBeatThresholdPoor 0 到 100 的数字 45

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

指定的值必须小于 vvc.NetworkStatsQualityScoreBeatThresholdGood 值。

vvc.NetworkStatsTcpRttMSLow 正整数 2

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

指定的值必须小于 vvc.NetworkStatsTcpRttMSHigh 值。

vvc.NetworkStatsTcpRttMSHigh 正整数 400

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

指定的值必须大于 vvc.NetworkStatsTcpRttMSLow 值。

vvc.NetworkStatsTcpRttMSWeightPercent 0 到 100 的百分比 100

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

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

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

指定的值必须小于 vvc.NetworkStatsBeatRttMSHigh 值。

vvc.NetworkStatsBeatRttMSHigh 正整数 400

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

指定的值必须大于 vvc.NetworkStatsBeatRttMSLow 值。

vvc.NetworkStatsBeatRttMSExtreme 正整数 250

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

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

vvc.NetworkStatsBeatRttMSWeightPercent 0 到 100 的百分比 34

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

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

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

指定的值必须小于 vvc.NetworkStatsBeatPkLossPercentHigh 值。

vvc.NetworkStatsBeatPkLossPercentHigh 0 到 100 的百分比 15

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

指定的值必须大于 vvc.NetworkStatsBeatPkLossPercentLow 值。

vvc.NetworkStatsBeatPkLossPercentExtreme 0 到 100 的百分比 25

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

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

vvc.NetworkStatsBeatPkLossPercentWeightPercent 0 到 100 的百分比 33

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

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

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

指定的值必须小于 vvc.NetworkStatsBeatRttvMSHigh 值。

vvc.NetworkStatsBeatRttvMSHigh 正整数 30

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

指定的值必须大于 vvc.NetworkStatsBeatRttvMSLow 值。

vvc.NetworkStatsBeatRttvMSWeightPercent 0 到 100 的百分比 33

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

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