自适应传输
自适应传输是 Citrix Virtual Apps and Desktops 中的一种机制,它提供了使用Enlightened Data Transport (EDT) 或 EDT Lossy 作为 ICA 连接的传输协议的功能。当 EDT 不可用时,自适应传输将切换到 TCP。
EDT 是基于用户数据报协议 (UDP) 构建的 Citrix 专有传输协议。它在保持服务器可扩展性的同时,在具有挑战性的长途连接方面提供了出色的用户体验。EDT 提高了不可靠网络中所有 ICA 虚拟通道的数据吞吐量,从而提供更出色、更一致的用户体验。
自适应传输设置为首选时,EDT 将用作主传输协议,TCP 将用于回退。默认情况下,自适应传输设置为首选。可以将自适应传输设置为诊断模式以进行测试,这仅允许使用 EDT 并禁用回退到 TCP。
使用适用于 Windows、Mac 和 iOS 的 Citrix Workspace 应用程序时,将在初始连接、会话可靠性重新连接和客户端自动重新连接期间并行尝试建立 EDT 和 TCP 连接。如果基础 UDP 传输不可用,必须改为使用 TCP,这样做可以缩短连接时间。如果自适应传输设置为首选,并且使用 TCP 建立连接,自适应传输将继续尝试每五分钟切换到 EDT 一次。
使用适用于 Linux 和 Android 的 Citrix Workspace 应用程序时,将首先尝试建立 EDT 连接。如果连接失败,Citrix Workspace 应用程序将尝试在 EDT 请求超时后使用 TCP 进行连接。
系统要求
下面是使用自适应传输和 EDT 的要求:
- 控制平面
- Citrix DaaS
- Citrix Virtual Apps and Desktops 1912 或更高版本
- Virtual Delivery Agent
- 版本 1912 或更高版本(推荐 2103 或更高版本)
- 版本 2012 是将 EDT 与 Citrix Gateway 服务结合使用所需的最低要求
- StoreFront(仅在部署中使用时适用)
- 版本 3.12.x
- 版本 1912.0.x
- Citrix Workspace 应用程序
- Windows:版本 1912 或更高版本(推荐 2105 或更高版本)
- Linux:版本 1912 或更高版本(推荐 2109 或更高版本)
- Mac:版本 1912 或更高版本(推荐 2108 或更高版本)
- iOS:Apple App Store 中提供的最新版本
- Android:Google Play 中提供的最新版本
- Citrix Gateway (ADC)
- 13.0.52.24 或更高版本
- 12.1.56.22 或更高版本
- 防火墙(从 VDA 的角度来看)
- UDP 1494 入站 - 如果禁用了会话可靠性
- UDP 2598 入站 - 如果启用了会话可靠性
- UDP 443 入站 - 如果为 ICA 加密 (DTL) 启用了 VDA SSL
- UDP 443 出站 - 如果使用 Citrix Gateway 服务。有关详细信息,请参阅 Citrix Gateway 服务文档。
注意事项
- 启用会话可靠性以使用 EDT MTU 发现并将 EDT 与 Citrix Gateway 和 Citrix Gateway 服务一起使用。
- 确保已充分设置 EDT MTU 以避免碎片化。否则,在某些情况下,性能可能会受到影响或者会话可能无法启动。有关详细信息,请参阅 EDT MTU 发现部分。
- 有关将 EDT 与 Citrix Gateway 服务结合使用的要求和注意事项的详细信息,请参阅 HDX 自适应传输与 Citrix Gateway 服务对 EDT 的支持。
- 有关支持 EDT 的 Citrix Gateway 配置的详细信息,请参阅配置 Citrix Gateway 以支持 Enlightened Data Transport 和 HDX Insight。
- 当前不支持 IPv6。
配置
默认情况下启用自适应传输。可以使用 Citrix 策略中的 HDX 自适应传输设置配置以下选项。
- 首选。此为默认设置。自适应传输已启用,它使用 EDT 作为首选传输协议,并回退到 TCP。
- 诊断模式。自适应传输已启用,并强制使用 EDT。已禁用回退到 TCP。仅建议对测试和故障排除使用此设置。
- 关。自适应传输已禁用,只有 TCP 用于传输。
要确认 EDT 是否正用作会话的传输协议,可以在 VDA 上使用 Director 或 CtxSession.exe 命令行实用程序。
在 Director 中,查找会话并选择详细信息。如果连接类型为 HDX,协议为 UDP,则表示 EDT 正用作会话的传输协议。如果连接类型为 RDP,则表示 ICA 未在使用中,协议将显示“不适用”。有关详细信息,请参阅监视会话。
要使用 CtxSession.exe 实用程序,请在会话中启动命令提示符或 PowerShell 并运行 ctxsession.exe
。要查看详细的统计信息,请运行 ctxsession.exe -v
。如果 EDT 正在使用中,传输协议将显示以下内容之一:
- UDP > ICA(会话可靠性已禁用)
- UDP > CGP > ICA(会话可靠性已启用)
- UDP > DTL > CGP > ICA(ICA 是 DTL 加密的端到端)
EDT MTU 发现
MTU 发现允许 EDT 在建立会话时自动确定最大传输单位 (MTU)。这样做可以防止出现可能会导致性能下降或无法建立会话的 EDT 数据包碎片。
要求
- VDA 最低版本 1912(推荐 2103 或更高版本)
- Citrix Workspace 应用程序
- Windows:版本 1912 或更高版本(推荐 2105 或更高版本)
- Mac:版本 2108 或更高版本
- Android:版本 21.5 或更高版本
- Citrix ADC:
- 13.0.52.24
- 12.1.56.22
- 必须启用会话可靠性
如果您使用的是不支持此功能的客户端平台或版本,请参阅 CTX231821 以了解有关配置适合您的环境的自定义 EDT MTU 的详细信息。
重要:
多流 ICA 不支持 MTU 发现。
控制 VDA 上的 EDT MTU 发现
默认情况下 MTU 发现处于启用状态。要禁用此功能,请删除 EDT MTU 发现注册表值并重新启动 VDA。有关详细信息,请参阅通过注册表管理的 HDX 功能列表中的 EDT MTU 发现设置。
警告:
注册表编辑不当会导致严重问题,可能需要重新安装操作系统。Citrix 无法保证因注册表编辑器使用不当导致出现的问题能够得以解决。使用注册表编辑器需自担风险。在编辑注册表之前,请务必进行备份。
控制客户端上的 EDT MTU 发现
可以通过在 ICA 文件中添加 MtuDiscovery 参数,在客户端上有选择地控制 EDT MTU 发现。要禁用此功能,请在应用程序部分下设置以下策略:
MtuDiscovery=Off
要重新启用此功能,请从 ICA 文件中删除 MtuDiscovery 参数。
重要:
要使此 ICA 文件参数正常起作用,请在 VDA 上启用该功能。如果在 VDA 上未启用该功能,ICA 文件参数将不起作用。
丢失容忍模式
重要:
- 此功能需要至少使用适用于 Windows 的 Citrix Workspace 应用程序 2002。
- Citrix Gateway 或 Citrix Gateway Service 不支持丢失容忍模式。此模式仅适用于直接连接。
丢失容忍模式使用 EDT 有损传输协议增强用户通过具有高延迟且会丢失数据包的网络连接的用户体验。
最初,会话是使用 EDT 建立的。如果达到或超过延迟和数据包丢失阈值,适用的虚拟通道将从 EDT 切换到 EDT 有损,同时将其他虚拟通道保留在 EDT 上。如果延迟和数据包丢失降低到阈值以下,适用的虚拟通道将切换回 EDT。
默认阈值为:
- 数据包丢失:5%
- 延迟:300 毫秒(RTT)
默认情况下启用丢失容忍模式。可以使用丢失容忍模式阈值设置禁用该模式或调整数据包丢失和延迟阈值。
要求
- Citrix Virtual Delivery Agent (VDA) 2003
- 适用于 Windows 的 Citrix Workspace 应用程序 2002
- 已启用会话可靠性。有关会话可靠性的详细信息,请参阅会话可靠性策略设置。
已知问题
自适应传输和 EDT 包含以下问题:
-
数据包碎片可能会导致性能下降甚至无法启动会话。可以调整 EDT MTU 以避免出现这种情况。使用 MTU 发现或 CTX231821 中介绍的解决方法。
-
如果启用了 MTU 发现,则从 Windows 客户端启动会话时,可能会出现灰屏或黑屏。要解决此问题,请升级到适用于 Windows 的 Workspace 应用程序 2105 或更高版本或适用于 Windows 的 Workspace 应用程序 1912 CU4 或更高版本。
-
通过 Citrix Gateway 或 Citrix Gateway 服务进行连接时,在 Linux 和 Android 客户端上回退到 TCP 可能会失败。客户端与网关之间成功进行 EDT 协商,并且网关与 VDA 之间的 EDT 协商失败时会发生这种情况。要解决此问题,请升级到适用于 Linux 的 Workspace 应用程序 2104 或更高版本以及适用于 Android 的 Workspace 应用程序 21.5 或更高版本。
-
对于未通过 Citrix Gateway 或 Citrix Gateway 服务的连接,非对称网络路径可能会导致 MTU 发现失败。要解决此问题,请升级到 VDA 版本 2103 或更高版本。[CVADHELP-16654]
-
使用 Citrix Gateway 或 Citrix Gateway 服务时,非对称网络路径可能会导致 MTU 发现失败。这是由于网关上的一个问题导致 EDT 数据包标头中的“不碎片”(DF) 位无法传播。此问题的修复程序尚不可用。[CGOP-18438]
-
对于通过 DS-Lite 网络连接的用户,MTU 发现可能会失败。当数据包处理已启用时,某些调制解调器无法遵守 DF 位,从而阻止 MTU 发现检测到碎片。在这种情况下,可以使用以下选项:
- 在用户的调制解调器上禁用数据包处理。
- 禁用 MTU 发现并使用硬编码的 MTU,如 CTX231821 中所述。
- 禁用自适应传输以强制会话使用 TCP。如果只有一部分用户受到影响,请考虑在客户端将其禁用,以便其他用户可以继续使用 EDT。
故障排除
为了对自适应传输和 EDT 进行故障排除,我们建议执行以下操作:
- 彻底检查和验证要求、注意事项和已知问题。
- 检查 Studio 或 GPO 中是否存在覆盖所需的 HDX 自适应传输设置的 Citrix 策略。
- 检查客户端上是否存在覆盖所需的 HDX 自适应传输设置的设置。这可以是 GPO 首选项、使用可选 Workspace 应用程序管理模板配置的设置,或者在注册表或客户端的配置文件中手动配置的 HDXoverUDP 设置。
- 在多会话 VDA 计算机上,确保 UDP 侦听器处于活动状态。在 VDA 计算机中打开命令提示符并运行
netstat -a -p udp
。有关详细信息,请参阅 How to Confirm HDX Enlightened Data Transport Protocol(如何确认 HDX Enlightened Data Transport 协议)。 - 绕过 Citrix Gateway 在内部启动直接会话,然后检查正在使用的协议。如果会话使用 EDT,VDA 就可以通过 Citrix Gateway 使用 EDT 进行外部连接。
-
如果 EDT 适用于直接内部连接而不适用于通过 Citrix Gateway 进行的会话:
- 确保启用了会话可靠性
- 确保网关启用了 DTL
- 检查是否在网络防火墙和 VDA 计算机上运行的防火墙中配置了适当的防火墙规则。
- 检查用户的连接是否需要非标准 MTU。有效 MTU 低于 1500 字节的连接会导致 EDT 数据包碎片,这反过来可能会影响性能,甚至导致会话启动失败。在使用 VPN、一些 Wi-Fi 接入点和移动网络(例如 4G 和 5G)时,此问题很常见。有关如何解决此问题的信息,请参阅 MTU 发现部分。
与 Citrix SD-WAN 的互操作性
Citrix SD-WAN WAN 优化 (WANOP) 提供跨会话的标记化压缩(重复数据删除功能),包括基于 URL 的视频缓存,从而显著降低带宽。如果两个人或多个人在办公室观看同一个客户端提取的视频,或者传输或打印同一个文件或文档的重要部分,则会出现降低情况。此外,通过在分支机构的设备上运行面向 ICA 数据缩减和打印作业压缩的进程,WANOP 将提供 VDA 服务器 CPU 卸载并启用更高的 Citrix Virtual Apps and Desktops 服务器可扩展性。
当前,SD-WAN WANOP 不支持 EDT。但是,如果 SD-WAN WANOP 正在使用中,则无需禁用自适应传输。当用户启动一个在启用了 WANOP 的情况下通过 SD-WAN 进行的会话时,它会自动将该会话设置为使用 TCP 作为传输协议。非 WANOP 会话将尽可能继续使用 EDT。