自适应传输
自适应传输是 Citrix 虚拟应用和桌面™ 中的一种机制,它可以使用智能数据传输 (EDT) 作为 ICA 连接的传输协议。当 EDT 不可用时,自适应传输会切换到 TCP。
EDT 是 Citrix 专有的传输协议,基于用户数据报协议 (UDP) 构建。它在具有挑战性的长距离连接上提供卓越的用户体验,同时保持服务器可伸缩性。EDT 提高了不可靠网络上所有 ICA® 虚拟通道的数据吞吐量,从而提供更好、更一致的用户体验。
有关详细信息,请参阅 Citrix 虚拟应用和桌面 文档中的自适应传输。
启用或禁用自适应传输
自适应传输默认处于启用状态。您可以使用 HDX™ 自适应传输策略设置配置以下选项:

-
首选:自适应传输已启用,它使用 Enlightened Data Transport (EDT) 作为首选传输协议,并回退到 TCP。
-
诊断模式:自适应传输已启用,它强制使用 EDT。回退到 TCP 已禁用。此设置仅建议用于测试和故障排除。
-
关闭。自适应传输已禁用,仅使用 TCP 进行传输。
检查是否正在使用自适应传输
要检查 EDT 是否用作当前会话的传输协议,请运行以下命令。
/opt/Citrix/VDA/bin/ctxquery -f iP
<!--NeedCopy-->
如果正在使用 EDT,则显示的传输协议包括 UDP,例如:

EDT MTU 发现功能
MTU 发现允许 EDT 在建立会话时自动确定最大传输单元 (MTU)。这样做可以防止 EDT 数据包碎片化,从而避免性能下降或会话建立失败。
系统要求:
- Linux VDA 的最低版本为 2012
- 思杰工作区应用程序:
- Windows:1911 或更高版本
- 思杰应用交付控制器:
- 13.0.52.24 或更高版本
- 12.1.56.22 或更高版本
- 必须启用会话可靠性
如果您使用的客户端平台或版本不支持此功能,请参阅 CTX231821,了解有关配置适合您环境的自定义 EDT MTU 的详细信息。
在 VDA 上控制 EDT MTU 发现
EDT MTU 发现默认在 VDA 上启用。您可以通过如下设置 MtuDiscovery 注册表项来启用或禁用它:
-
要启用 EDT MTU 发现,请使用以下命令设置
MtuDiscovery注册表项,然后重新启动 VDA 并等待 VDA 注册:/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\icawd" -t "REG_DWORD" -v "MtuDiscovery" -d "0x00000001" --force <!--NeedCopy--> -
要禁用 EDT MTU 发现,请删除
MtuDiscovery注册表值。警告:
错误编辑注册表可能导致严重问题,甚至可能需要重新安装操作系统。Citrix 无法保证能够解决因不正确使用 注册表编辑器 而导致的问题。请自行承担使用 注册表编辑器 的风险。编辑注册表之前,请务必备份。
在客户端控制 EDT MTU 发现
您可以通过在 ICA 文件中添加 MtuDiscovery 参数,在客户端选择性地控制 EDT MTU 发现。要禁用此功能,请在 Application 部分下设置以下内容:
MtuDiscovery=Off
要重新启用此功能,请从 ICA 文件中删除 MtuDiscovery 参数。
重要提示:
要使此 ICA 文件参数生效,请在 VDA 上启用 EDT MTU 发现。如果未在 VDA 上启用 EDT MTU 发现,则 ICA 文件参数无效。
增强型 EDT 拥塞控制
引入了一种拥塞控制算法来优化 EDT 协议。此实现允许 EDT 实现更高的吞吐量并降低延迟,从而增强用户体验。
此功能默认启用。要禁用和重新启用它,请分别运行以下命令,然后重新启动 ctxhdx 服务:
/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-->