Adaptive transport
Adaptive transport is a mechanism in Citrix Virtual Apps and Desktops that can use Enlightened Data Transport (EDT) as the transport protocol for ICA connections. Adaptive transport switches to TCP when EDT is not available.
EDT is a Citrix-proprietary transport protocol built on top of the User Datagram Protocol (UDP). It delivers a superior user experience on challenging long-haul connections while maintaining server scalability. EDT improves data throughput for all ICA virtual channels on unreliable networks, providing a better and more consistent user experience.
For more information, see Adaptive transport in the Citrix Virtual Apps and Desktops documentation.
Enable or disable adaptive transport
Adaptive transport is enabled by default. You can configure the following options using the HDX Adaptive Transport policy setting:
-
Preferred: Adaptive transport is enabled, and it uses Enlightened Data Transport (EDT) as the preferred transport protocol, with fallback to TCP.
-
Diagnostic mode: Adaptive transport is enabled, and it forces the use of EDT. Fallback to TCP is disabled. This setting is recommended for testing and troubleshooting only.
-
Off. Adaptive transport is disabled, and only TCP is used for transport.
Check whether adaptive transport is being used
To check whether EDT is being used as the transport protocol for the current session, run the following command.
/opt/Citrix/VDA/bin/ctxquery -f iP
<!--NeedCopy-->
If EDT is being used, the transport protocols displayed include UDP, for example:
EDT MTU discovery
MTU discovery allows EDT to automatically determine the Maximum Transmission Unit (MTU) when establishing a session. Doing so prevents EDT packet fragmentation that might result in performance degradation or failure to establish a session.
System requirements:
- Linux VDA minimum version 2012
- Citrix Workspace app:
- Windows: 1911 or later
- Citrix ADC:
- 13.0.52.24 or later
- 12.1.56.22 or later
- Session reliability must be enabled
If you use client platforms or versions that don’t support this feature, see CTX231821 for details about configuring a custom EDT MTU that is appropriate for your environment.
Control EDT MTU discovery on the VDA
EDT MTU discovery is enabled on the VDA by default. You can enable or disable it by setting the MtuDiscovery
registry key as follows:
-
To enable EDT MTU discovery, set the
MtuDiscovery
registry key using the following command, restart the VDA, and wait for the VDA to register:/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\icawd" -t "REG_DWORD" -v "MtuDiscovery" -d "0x00000001" --force <!--NeedCopy-->
-
To disable EDT MTU discovery, delete the
MtuDiscovery
registry value.Warning:
Editing the registry incorrectly can cause serious problems that might require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. Be sure to back up the registry before you edit it.
Control EDT MTU discovery on the client
You can control EDT MTU discovery selectively on the client by adding the MtuDiscovery
parameter in the ICA file. To disable the feature, set the following under the Application
section:
MtuDiscovery=Off
To re-enable the feature, remove the MtuDiscovery
parameter from the ICA file.
Important:
For this ICA file parameter to work, enable EDT MTU discovery on the VDA. If EDT MTU discovery is not enabled on the VDA, the ICA file parameter has no effect.
Enhanced EDT congestion control
A congestion control algorithm is introduced to optimize the EDT protocol. This implementation allows EDT to achieve higher throughput and reduce latency for an enhanced user experience.
This feature is enabled by default. To disable and re-enable it, run the following commands, respectively and then restart the ctxhdx
service:
/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\icawd\Tds\udp\UDPStackParameters" -t "REG_DWORD" -v "edtBBR" -d "0x00000000" --force
<!--NeedCopy-->
/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\icawd\Tds\udp\UDPStackParameters" -t "REG_DWORD" -v "edtBBR" -d "0x00000001" --force
<!--NeedCopy-->