自适应传输

简介

自适应传输是 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 服务器可扩展性。

重要提示

将 TCP 用作数据传输协议时,Citrix WANOP 将支持优化功能,如前一段内容中所述。对网络连接使用 Citrix WANOP 时,请选择 TCP 并禁用 EDT。通过使用 TCP 流控制和拥塞控制,WANOP 可确保在高延迟和一定程度的数据包丢失的情况下与 EDT 的等效交互。

要求和注意事项

  • Citrix Virtual Apps and Desktops:最低版本 7 1808。
  • XenApp 和 XenDesktop:最低版本 7.13。
  • VDA for Desktop OS:最低版本 7.13。
  • VDA for Server OS:最低版本 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 最低版本 1808
  • NetScaler:最低版本 11.1 build 51.21、12.0 build 35.6。我们建议的最低版本为 11.1 Build 55.10 或 12.0 Build 53.6,因为这些版本包括重要的 DTLS 碎片修复。有关 NetScaler 配置的详细信息,请参阅这篇文章

配置

  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。有关详细信息,请参阅 How to Confirm HDX Enlightened Data Transport Protocol(如何确认 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 跟踪示意图