自适应传输

简介

自适应传输是 Citrix Virtual Apps and Desktops 的数据传输机制。此传输速度更快,能够扩展,改进了应用程序的交互性,并且在具有挑战性的远距离 WAN 和 Internet 连接中互动性更强。自适应传输维持高服务器可扩展性,并有效利用带宽。借助自适应传输,ICA 虚拟通道可以自动响应不断变化的网络条件。它们可以在 Citrix 协议(名为 Enlightened Data Transport (EDT))与 TCP 之间智能地切换基本协议,以实现最佳性能。这提高了所有 ICA 虚拟通道(包括 Thinwire 显示远程处理、文件传输(客户端驱动器映射)、打印和多媒体重定向)的数据吞吐量。相同的设置适用于 LAN 和 WAN 条件。

网络堆栈

设置为首选时,将使用基于 EDT 的数据传输作为主要方式,并启用回退到 TCP。在启用适用于 Windows 的 Citrix Workspace 应用程序最低版本 1808 或 Citrix Receiver for Windows 最低版本 4.10 和会话可靠性的情况下,在初始连接、会话可靠性重新连接和客户端自动重新连接期间会尝试并行使用 EDT 和 TCP 。这样会缩短 EDT 设置为首选时的连接时间,但所需的基础 UDP 传输不可用,并且必须使用 TCP。默认情况下,回退到 TCP 后,自适应传输将继续每隔 5 分钟搜寻一次 EDT。

重要

并行 EDT 和 TCP 要求:

  • 适用于 Windows 的 Citrix Workspace 应用程序最低版本 1808 和会话可靠性。
  • Citrix Receiver for Windows 最低版本 4.10 和会话可靠性。
  • 适用于 Mac 的 Citrix Workspace 应用程序最低版本 1808 和会话可靠性。
  • Citrix Receiver for Mac 最低版本 12.8 和会话可靠性。

默认情况下,启用自适应传输(首选),以及尽可能使用 EDT,并启用回退到 TCP。

出于测试目的,您可以设置诊断模式,在这种情况下,仅使用 EDT,并禁用回退到 TCP。

自适应传输图片

与 Citrix SD-WAN WAN 优化的互操作性

Citrix SD-WAN WAN 优化 (WANOP) 提供跨会话的标记化压缩(重复数据删除功能),包括基于 URL 的视频缓存。WANOP 提供了重要的带宽降低功能。如果两个人或多个人在办公室观看同一个客户端提取的视频,或者传输或打印同一个文件或文档的重要部分,则会出现此功能。此外,通过在分支机构的设备上运行面向 ICA 数据缩减和打印作业压缩的进程,WANOP 将提供 VDA 服务器 CPU 卸载并启用更高的 Citrix Virtual Apps and Desktops 服务器可扩展性。

重要

使用 Citrix SD-WAN 的 WANOP 功能时,无需禁用自适应传输。WANOP 会自动将 HDX 会话置于 TCP 数据传输模式,因为 WANOP 为 EDT 提供等效的流量控制,并增加了前一个段落中所述的优势。非 WANOP 会话将尽可能使用 EDT。通过使用 TCP 流控制和拥塞控制,WANOP 可确保在高延迟和一定程度的数据包丢失的情况下与 EDT 的等效交互。

要求和注意事项

  • Citrix Virtual Apps and Desktops:最低版本 7 1808。
  • XenApp 和 XenDesktop:最低版本 7.13。
  • 适用于单会话操作系统的 VDA:最低版本 7.13。
  • 适用于多会话操作系统的 VDA:最低版本 7.13。
  • StoreFront:最低版本 3.9。
  • 适用于 Windows 的 Citrix Workspace 应用程序最低版本 1808
  • Citrix Receiver for Windows:最低版本 4.7(并行 EDT 和 TCP 要求最低版本 4.10 和会话可靠性)。
  • 适用于 Mac 的 Citrix Workspace 应用程序最低版本 1808
  • Citrix Receiver for Mac:最低版本 12.5(并行 EDT 和 TCP 要求最低版本 12.8 和会话可靠性)。
  • 适用于 iOS 的 Citrix Workspace 应用程序最低版本 1808
  • Citrix Receiver for iOS:最低版本 7.2。
  • 适用于 Linux 的 Citrix Workspace 应用程序最低版本 1808
  • Citrix Receiver for Linux:仅对于直接 VDA 连接,最低版本为 13.6;对于使用 NetScaler Gateway 的 DTLS 支持(或者直接 VDA 连接的 DTLS),最低版本为 13.7。
  • 适用于 Android 的 Citrix Workspace 应用程序最低版本 1808
  • Citrix Receiver for Android:仅对于直接 VDA 连接,最低版本为 3.12.3。
  • 仅限 IPv4 VDA。不支持 IPv6 配置以及 IPv6 和 IPv4 混合配置。
  • Citrix Gateway (Citrix ADC):最低版本 11.1 Build 51.21、12.0 Build 35.6。我们建议的最低版本为 11.1 Build 55.10 或 12.0 Build 53.6,因为这些版本包括重要的 DTLS 碎片修复。有关配置的详细信息,请参阅配置 Citrix Gateway 以支持 Enlightened Data Transport 和 HDX Insight

配置

  1. 安装 Citrix Virtual Apps and Desktops。
  2. 安装 StoreFront。如果使用的是 Citrix Gateway,请验证会话可靠性是否处于启用状态。请在 Studio > StoreFront > 管理 NetScaler Gateway > 选择您的 NetScaler > Secure Ticket Authority > 启用会话可靠性中执行此操作。
  3. 安装 VDA(适用于单会话操作系统或多会话操作系统)。
  4. 安装适用于 Windows 的 Citrix Workspace 应用程序、适用于 Mac 的 Citrix Workspace 应用程序、适用于 iOS 的 Citrix Workspace 应用程序、适用于 Android 的 Citrix Workspace 应用程序或适用于 Linux 的 Citrix Workspace 应用程序。
  5. 如果使用的是 Citrix Gateway,请在 Studio 策略中启用“会话可靠性”。此外,请在前端 VPN 虚拟服务器中启用 DTLS。
  6. 在 Studio 中,启用策略设置“HDX 自适应传输”(默认启用)。
    • 要启用该策略设置,请将值设置为“首选”,然后单击确定
      • 首选。尽可能使用基于 EDT 的自适应传输,并回退到 TCP。
      • 诊断模式。TCP 强制打开,并禁用回退到 EDT。我们建议此设置仅用于故障排除。
      • 关。强制启用 TCP,并禁用 EDT。
  7. 单击“下一步”,完成向导中的步骤。
  8. 此策略将在用户重新连接 ICA 会话时生效。尽管不需要,但您可以运行 gpupdate /force 以将该策略设置移动到服务器,但用户仍然必须重新连接 ICA 会话。
  9. 请从受支持的 Citrix Workspace 应用程序启动会话以使用自适应传输建立连接。
  10. 要进行安全的外部访问,请在 Citrix Gateway 上配置 DTLS 加密。有关详细信息,请参阅本文

要确认策略设置是否已生效,请执行以下操作:

  • 使用 netstat -a 检查是否在 VDA 上启用了 ICA 用户数据报协议 (UDP) 服务。
  • 使用 VDA 上提供的 DirectorCtxSession.exe 命令行实用程序检查虚拟通道是否通过 EDT 运行。

Director 示例:

在 Director 中,会话详细信息 > 连接类型显示策略设置。查找连接类型 HDX。如果协议为 UDP,EDT 将可用于会话。如果协议为 TCP,会话将处于回退或默认模式。如果连接类型为 RDP,则不使用 ICA,并且协议为不适用。有关详细信息,请参阅监视会话

Director 协议示意图

CtxSession.exe 示例:

此示例说明了 EDT over UDP 可用于会话。在命令行中键入 CtxSession.exe。

C:\Program Files (x86)\Citrix\System32>CtxSession

会话 2 传输协议:UDP -> CGP -> ICA

要查看详细统计信息,请使用 -v 开关:

>CtxSession -v

对 EDT 连接问题进行故障排除

要求和注意事项

  • 多会话操作系统 VDA 7.13
  • 单会话操作系统 VDA 7.13
  • Receiver for Windows 4.7(4.6 处于实验阶段)
  • Receiver for Linux:
    • 13.6(直接连接)
    • 13.7(支持 DTLS)
  • Receiver for Mac 12.5
  • Receiver for iOS 7.2
  • Receiver for Android:
    • 3.12.3(直接连接)
    • 3.13(支持 DTLS)
  • StoreFront 3.9
  • NSG 版本 11.1-51.21/12.0.53.6 或更高版本

并行连接

Receiver for Windows 4.10、Receiver for Mac 12.8 和 Receiver for iOS 7.5 中包含允许其尝试并行使用 EDT 和 TCP 连接的代码。系统向 EDT 提供了 500 毫秒提前开始准备的时间以支持 UDP。支持 EDT 的任何 VDA 也支持并行连接。

要对 EDT 连接进行故障排除,请参阅以下过程:

  1. 验证最低产品/组件版本要求。请参阅 要求和注意事项
  2. 检查 Studio 中的 HDX 自适应传输策略设置为未配置还是设置为首选

    注意:

    在 XenApp 和 XenDesktop 7.16 中,“HDX 自适应传输”默认设置为“首选”,对配置 Studio 策略没有任何明确的要求。

  3. 检查是否使用可选 Receiver GPO 管理模板。如果是,请确保 Citrix Receiver 的传输协议值设置为未配置首选。Receiver for Windows 端配置是可选的。
  4. 确保正在 VDA 上侦听 UDP 套接字。在 VDA 中打开命令提示符并键入 netstat –a –p udp。有关详细信息,请参阅 如何确认 HDX Enlightened Data Transport 协议
  5. 跳过 NetScaler Gateway:测试 EDT 的最佳方法是从内部网络直接将应用程序启动到 StoreFront,跳过 NetScaler Gateway。在 VDA 上的命令提示窗口中运行 ctxsession 并验证您的会话是否正在使用 UDP。如果是,您的 VDA 也将准备好从外部建立 EDT 连接。
  6. 通过 NetScaler Gateway 启动会话,但请先检查 ICA 文件。确保存在内容为 HDXoverUDP = Preferred 的条目。如果设置为 Off,则在 Studio 策略中“HDX 自适应传输”未设置为首选,或者尚未在 VDA 中应用组策略更新。还应存在条目 CGPSecurityTicket=On,其中 CGP 为 EDT 能够使用 NetScaler Gateway 运行的要求。
  7. 在 NetScaler Gateway 中,在 VDA 命令提示符下运行 ctxsession 并验证您的会话是否正在使用 UDP。如果设置为 TCP,Citrix Receiver 与 NetScaler Gateway 前端虚拟服务器之间可能会出现错误,连接回退到 TCP。
  8. 12.0.56.20 之前的任何 NetScaler Gateway 要求在前端 VPN 虚拟服务器上手动启用 DTLS。
  9. 如果您使用的是类似于 Cisco AnyConnect 的 VPN 或者更改网络中的 MTU 的任何其他解决方案,EDT 连接可能会失败。必须计算 VPN 供应商引入的开销,然后再修改 StoreFront 中的 ICA 文件模板以额外再包含两个条目。此外,请添加 Citrix Receiver 端更改。有关更多详细信息,请参阅CTX231821

更多故障排除工具

  • Wireshark: 要解决无法确定的问题,请在 NetScaler Gateway 上使用 Wireshark 跟踪进行故障排除。Wireshark Dissector 会将 EDT 误解为 QUIC。可以使用 Wireshark 中的 Decode As 功能将 DTLS 解码为 QUIC。
  • NMAP: 使用 nmap -sU -p 443 <IP Address of your NSG> 测试 UDP 数据包是否访问虚拟服务器。 请参见正在运行的跟踪与未运行的跟踪: NMAP 示意图
  • Director: 此外,还可以选中 Citrix Director > 会话详细信息 > 协议 > UDP
  • CDF 跟踪: 可能需要检查 XenApp 和 XenDesktop 组件上的 EDT 逻辑,并在重现问题时生成 CDF 跟踪。 CDF 跟踪示意图

丢失容忍模式

重要:

  • 此功能需要至少使用适用于 Windows 的 Citrix Workspace 应用程序 2002。本版本的 VDA 将在可用时向其提供支持。

  • 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 MTU 发现

EDT 在建立会话时自动确定最大传输单位 (MTU)。这样做可以防止出现可能会导致性能下降或无法建立会话的 EDT 数据包碎片。

最低要求:

  • VDA 最低版本 1912
  • 适用于 Windows 的 Citrix Workspace 应用程序 1911
  • Citrix ADC:
    • 13.0.52.24
    • 12.1.56.22
  • 必须启用会话可靠性

如果使用不支持此功能的客户端平台或版本,请参阅知识中心文章 CTX231821,了解有关如何配置适合您的环境的自定义 EDT MTU 的详细信息。

警告:

注册表编辑不当会导致严重问题,可能需要重新安装操作系统。Citrix 无法保证因注册表编辑器使用不当导致出现的问题能够得以解决。使用注册表编辑器需自担风险。在编辑注册表之前,请务必进行备份。

在 VDA 上启用或禁用 EDT MTU 发现

  1. 设置此注册表项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd

    名称:MtuDiscovery

    类型:DWORD

    数据:00000001

  2. 重新启动 VDA 并等待 VDA 注册。

要禁用 EDT MTU 发现,请删除此注册表值并重新启动 VDA。

此设置在计算机范围内适用,影响从受支持的客户端连接的所有会话。

控制客户端上的 EDT MTU 发现

可以通过在 ICA 文件中添加 MtuDiscovery 参数,在客户端上有选择地控制 EDT MTU 发现。要禁用此功能,请在应用程序部分下设置以下策略:

MtuDiscovery=Off

要重新启用此功能,请从 ICA 文件中删除 MtuDiscovery 参数。

重要:

要使此 ICA 文件参数正常起作用,请在 VDA 上启用该功能。如果在 VDA 上未启用该功能,ICA 文件参数将不起作用。