Horizon Client can monitor the network quality during remote sessions and display a notification message if it detects network instability due to high latency. The network latency is based on round-trip time (RTT) for TCP connections, and on RTT, packet loss, and RTT variation (RTTV) for BEAT and UDP connections.
You can use the Horizon Client settings or group policy object (GPO) to control the display of these notification messages. You can also configure the threshold parameters used by Horizon Client to identify unstable networks.
Use the Settings Window to Display Network Notifications
You can turn on and off network notifications from the Settings window.
- Start Horizon Client.
- Click Settings (gear icon) in the upper-right corner of the menu bar and select VMware Blast.
- Configure the display of notifications when the network is unstable.
- To turn on network notifications, toggle the Disable network state display option to Off. By default, this option is set to Off to allow the display of notifications.
- To turn off network notifications, toggle the Disable network state display option to On.
Use the Client GPO to Display Network Notifications
You can also use the Disable displaying network state GPO option to turn on and off network notifications. For more information, see Using Group Policy Settings to Configure Horizon Windows Client.
How Horizon Client Determines the Network Quality
To determine the quality of a network connection, Horizon Client compares the network conditions during a specified time interval to a pair of low and high threshold values and calculates a quality score from 0 through 100 percent. If the score falls below a certain percentage, the network is deemed to be high-latency and unstable.
Horizon Client measures the following network conditions depending on the network protocol in use.
Protocol | Measured Conditions |
---|---|
TCP |
|
BEAT or UDP |
|
Horizon Client then uses the following rules to calculate the network quality score:
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 then uses the following rules to determine the network stability:
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.
Configure Threshold Parameters for Network Quality
To customize the threshold parameters used by Horizon Client to calculate the network quality score and determine network stability, configure the keys in one of the following registry files.
- HKEY_LOCAL_MACHINE\SOFTWARE\Policies\VMware, Inc.\VMware VDM\Client\vvc
- HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware VDM\Client\vvc
Horizon Client searches through the registry files in the listed order and stops as soon as it finds a key with a configured value.
Configuration Key
Note: All keys are of key type REG_SZ.
|
Allowed Values | Default Value | Description |
---|---|---|---|
NetworkStatsCheckEnabled | 0, 1 | 1 | Specifies whether to enable the processing of network data to calculate the network quality score.
|
NetworkStatsCheckPeriodSec | A positive integer greater than 2 | 15 | Specifies the time interval, in seconds, during which network conditions are monitored. |
NetworkStatsQualityScoreTcpThresholdGood | A number from 0 through 100 | 85 | Specifies the minimum score required to indicate GOOD quality for TCP networks. The specified value must be greater than the NetworkStatsQualityScoreTcpThresholdPoor value. |
NetworkStatsQualityScoreTcpThresholdPoor | A number from 0 through 100 | 40 | Specifies the high limit of the score range indicating POOR quality for TCP networks. The specified value must be less than the NetworkStatsQualityScoreTcpThresholdGood value. |
NetworkStatsQualityScoreBeatThresholdGood | A number from 0 through 100 | 75 | Specifies the minimum score required to indicate GOOD quality for BEAT and UDP networks. The specified value must be greater than the NetworkStatsQualityScoreBeatThresholdPoor value. |
NetworkStatsQualityScoreBeatThresholdPoor | A number from 0 through 100 | 45 | Specifies the high limit of the score range indicating POOR quality for BEAT and UDP networks. The specified value must be less than the NetworkStatsQualityScoreBeatThresholdGood value. |
NetworkStatsTcpRttMSLow | A positive integer | 2 | Specifies the low RTT threshold value, in milliseconds, used to calculate the quality score for TCP networks. The specified value must be less than the NetworkStatsTcpRttMSHigh value. |
NetworkStatsTcpRttMSHigh | A positive integer | 400 | Specifies the high RTT threshold value, in milliseconds, used to calculate the quality score for TCP networks. The specified value must be greater than the NetworkStatsTcpRttMSLow value. |
NetworkStatsTcpRttMSWeightPercent | A percentage from 0 through 100 | 100 | Specifies the statistical weight of the RTT value used to calculate the quality score for TCP networks.
Note: Since RTT is the only network factor currently used to determine the quality of TCP networks, this key must be set to 100.
|
NetworkStatsBeatRttMSLow | A positive integer | 2 | Specifies the low RTT threshold value, in milliseconds, used to calculate the quality score for BEAT and UDP networks. The specified value must be less than the NetworkStatsBeatRttMSHigh value. |
NetworkStatsBeatRttMSHigh | A positive integer | 400 | Specifies the high RTT threshold value, in milliseconds, used to calculate the quality score for BEAT and UDP networks. The specified value must be greater than the NetworkStatsBeatRttMSLow value. |
NetworkStatsBeatRttMSExtreme | A positive integer | 250 | Specifies the extreme RTT threshold value, in milliseconds, used to immediately identify POOR-quality BEAT and UDP networks. If the detected RTT is greater than the extreme threshold, the network is automatically considered POOR and no other scoring calculations are made. |
NetworkStatsBeatRttMSWeightPercent | A percentage from 0 through 100 | 34 | Specifies the statistical weight of the RTT value used to calculate the quality score for BEAT and UDP networks.
Note: The combined value of NetworkStatsBeatRttMSWeightPercent, NetworkStatsBeatPkLossPercentWeightPercent, and NetworkStatsBeatRttvMSWeightPercent must equal 100.
|
NetworkStatsBeatPkLossPercentLow | A percentage from 0 through 100 | 0.1 | Specifies the low packet loss threshold used to calculate the quality score for BEAT and UDP networks. The specified value must be less than the NetworkStatsBeatPkLossPercentHigh value. |
NetworkStatsBeatPkLossPercentHigh | A percentage from 0 through 100 | 15 | Specifies the high packet loss threshold used to calculate the quality score for BEAT and UDP networks. The specified value must be greater than the NetworkStatsBeatPkLossPercentLow value. |
NetworkStatsBeatPkLossPercentExtreme | A percentage from 0 through 100 | 25 | Specifies the extreme packet loss threshold used to immediately identify POOR-quality BEAT and UDP networks. If the detected packet loss is greater than the extreme threshold, the network is automatically considered POOR and no other scoring calculations are made. |
NetworkStatsBeatPkLossPercentWeightPercent | A percentage from 0 through 100 | 33 | Specifies the statistical weight of the package loss value used to calculate the quality score for BEAT and UDP networks.
Note: The combined value of NetworkStatsBeatRttMSWeightPercent, NetworkStatsBeatPkLossPercentWeightPercent, and NetworkStatsBeatRttvMSWeightPercent must equal 100.
|
NetworkStatsBeatRttvMSLow | A positive integer | 1 | Specifies the low RTTV threshold, in milliseconds, used to calculate the quality score for BEAT and UDP networks. The specified value must be less than the NetworkStatsBeatRttvMSHigh value. |
NetworkStatsBeatRttvMSHigh | A positive integer | 30 | Specifies the high RTTV threshold, in milliseconds, used to calculate the quality score for BEAT and UDP networks. The specified value must be greater than the NetworkStatsBeatRttvMSLow value. |
NetworkStatsBeatRttvMSWeightPercent | A percentage from 0 through 100 | 33 | Specifies the statistical weight of the RTTV value used to calculate the quality score for BEAT and UDP networks.
Note: The combined value of NetworkStatsBeatRttMSWeightPercent, NetworkStatsBeatPkLossPercentWeightPercent, and NetworkStatsBeatRttvMSWeightPercent must equal 100.
|