Azure 虚拟桌面的 RDP 短路径
RDP 短路径可在本地设备 Windows 应用或受支持的平台上的远程桌面应用和 Azure 虚拟桌面中的会话主机之间建立基于 UDP 的直接传输。
默认情况下,远程桌面协议 (RDP) 会尝试使用 UDP 建立远程会话,并使用基于 TCP 的反向连接传输作为回退连接机制。 基于 UDP 的传输提供更高的连接可靠性和更稳定的延迟。 基于 TCP 的反向连接传输提供与各种网络配置的最佳兼容性,以及很高的 RDP 连接成功率。
可通过两种方式使用 RDP 短路径:
托管网络:使用虚拟专用网络 (VPN) 等专用连接时,在客户端与会话主机之间建立直接连接。 通过以下方式之一建立了使用托管网络的连接:
- 客户端设备和会话主机之间的直接 UDP 连接,你需要启用 RDP 短路径侦听器并允许每个会话主机上的入站端口接受连接。
- 客户端设备和会话主机之间的直接 UDP 连接,使用客户端和会话主机之间的简单穿越 NAT (STUN) 协议。 不允许会话主机上的入站端口。
公用网络:使用公共连接时,在客户端与会话主机之间建立直接连接。 使用公共连接时有两种连接类型,下面按优先顺序列出了这些类型:
- 在客户端与会话主机之间使用“NAT 下的简单遍历”(STUN) 协议建立的直接 UDP 连接。
- 在客户端与会话主机之间通过“使用中继 NAT 的遍历”(TURN) 协议和中继建立的间接 UDP 连接。 此功能目前为预览版。
用于 RDP 短路径的传输基于通用速率控制协议 (URCP)。 URCP 通过主动监视网络状况来增强 UDP,并提供合理且完整的链接利用率。 URCP 以低延迟和低损耗级别运行。
- 在预览期间,TURN 仅适用于与验证主机池中的会话主机的连接。 若要将主机池配置为验证环境,请参阅将主机池定义为验证环境。
- 具有 TURN 的公共网络的 RDP 短路径仅在 Azure 公有云中可用。
主要优势
使用 RDP 短路径可获得以下重要优势:
使用 URCP 增强 UDP 可以通过动态获知网络参数并提供具有速率控制机制的协议来实现最佳性能。
消除额外的中继点可减少往返时间,从而改善连接可靠性以及对延迟敏感的应用程序和输入法的用户体验。
此外,对于托管网络:
- RDP 短路径支持通过区分服务代码点 (DSCP) 标记为 RDP 连接配置服务质量 (QoS) 优先级。
- RDP 短路径传输允许通过为每个会话指定限制速率来限制出站网络流量。
托管网络 RDP 短路径的工作原理
可使用以下方法实现所需的直接无障碍连接,以将 RDP 短路径用于托管网络。
- ExpressRoute 专用对等互连
- 站点到站点或点到站点 VPN (IPsec),例如 Azure VPN 网关
直接无障碍连接是指客户端可以直接连接到会话主机,而不会被防火墙阻止。
注意
如果你使用其他 VPN 类型连接到 Azure,我们建议使用基于 UDP 的 VPN。 虽然大多数基于 TCP 的 VPN 解决方案支持嵌套 UDP,但它们增加了 TCP 拥塞控制的继承开销,这会降低 RDP 性能。
若要将 RDP 短路径用于托管网络,必须在会话主机上启用 UDP 侦听器。 默认会使用端口 3390,不过你也可以使用其他端口。
此关系图简要概述了将 RDP 短路径用于托管网络和已加入 Active Directory 域的会话主机时的网络连接。
连接顺序
所有连接首先是通过 Azure 虚拟桌面网关建立基于 TCP 的反向连接传输。 然后,客户端和会话主机建立初始 RDP 传输,并开始交换其功能。 使用以下过程协商这些功能:
- 会话主机将其 IPv4 和 IPv6 地址的列表发送到客户端。
- 客户端启动后台线程,以便与会话主机的某个 IP 地址直接建立基于 UDP 的并行传输。
- 当客户端探测提供的 IP 地址时,它继续通过反向连接传输建立初始连接,以确保用户连接没有延迟。
- 如果客户端直接连接到会话主机,则客户端使用基于可靠 UDP 的 TLS 建立安全连接。
- 建立 RDP 短路径传输后,包括远程图形、输入和设备重定向在内的所有动态虚拟通道 (DVC) 将移到新传输。 但是,如果防火墙或网络拓扑阻止客户端建立直接 UDP 连接,RDP 通过反向连接传输继续。
如果用户可同时为托管网络和公用网络使用 RDP 短路径,则会使用最先找到的算法。 用户将为该会话使用首先建立的连接。
公用网络 RDP 短路径的工作原理
为了在使用公共连接时提供最佳的 UDP 连接成功机会,提供了直接和间接连接类型:
直接连接:STUN 用于在客户端与会话主机之间建立直接 UDP 连接。 若要建立此连接,客户端和会话主机必须能够通过公共 IP 地址和协商端口相互连接。 但是,大多数客户端不知道自己的公共 IP 地址,因为它们位于网络地址转换 (NAT) 网关设备后面。 STUN 协议可用于从 NAT 网关设备和客户端后面自行发现公共 IP 地址,以确定其自己的面向公众的 IP 地址。
要使客户端能够使用 STUN,其网络必须允许 UDP 流量。 假设客户端和会话主机都可以直接路由到对方的已发现 IP 地址和端口,则可以通过 WebSocket 协议来与直接 UDP 建立通信。 如果防火墙或其他网络设备阻止直接连接,则尝试建立间接 UDP 连接。
间接连接:当无法建立直接连接时,将使用 TURN 建立间接连接,通过中间服务器在客户端与会话主机之间中继流量。 TURN 是 STUN 的扩展。 使用 TURN 意味着公共 IP 地址和端口事先已知,可以允许流量通过防火墙和其他网络设备。
TURN 通常通过用户名/密码授权访问服务器,其首选操作模式是使用 UDP 套接字。 如果防火墙或其他网络设备阻止 UDP 流量,则连接将回退到基于 TCP 的反向连接传输。
建立连接时,交互式连接建立 (ICE) 将协调 STUN 和 TURN 的管理,以优化连接成功的可能性,并确保优先使用首选的网络通信协议。
每个 RDP 会话都使用来自临时端口范围(默认为 49152 到 65535)的动态分配的 UDP 端口,该端口接受 RDP 短路径流量。 将会在此范围内忽略端口 65330,因为它保留供 Azure 内部使用。 你也可以使用更小的可预测端口范围。 有关详细信息,请参阅限制客户端为公用网络使用的端口范围。
此关系图简要概述了将 RDP 短路径用于会话主机已加入 Microsoft Entra ID 的公用网络时的网络连接。
网络地址转换和防火墙
大多数 Azure 虚拟桌面客户端在专用网络中的计算机上运行。 Internet 访问是通过网络地址转换 (NAT) 网关设备提供的。 因此,NAT 网关将修改来自专用网络的、发往 Internet 的所有网络请求。 这种修改的目的是在专用网络中的所有计算机之间共享单个公共 IP 地址。
由于 IP 数据包的修改,流量接收方将看到 NAT 网关而不是实际发送方的公共 IP 地址。 当流量返回到 NAT 网关时,该网关将在发送方不知情的情况下将流量转发到预期的接收方。 在大多数情况下,隐藏在此类 NAT 后面的设备并不知道正在发生转换,也不知道 NAT 网关的网络地址。
NAT 适用于所有会话主机所在的 Azure 虚拟网络。 当会话主机尝试访问 Internet 上的网络地址时,NAT 网关(你自己的网关或 Azure 提供的默认网关)或 Azure 负载均衡器将执行地址转换。
大多数网络通常包含可以基于规则检查和阻止流量的防火墙。 大部分客户会将其防火墙配置为阻止传入连接(即,未经请求从 Internet 发送的数据包)。 防火墙采用不同的技术来跟踪数据流,以区分经过请求的流量和非经请求的流量。 在 TCP 的上下文中,防火墙跟踪 SYN 和 ACK 数据包,该过程简单直接。 UDP 防火墙通常使用基于数据包地址的启发式方法将流量与 UDP 流相关联,然后允许或阻止流量。
连接顺序
所有连接首先是通过 Azure 虚拟桌面网关建立基于 TCP 的反向连接传输。 然后,客户端和会话主机建立初始 RDP 传输,并开始交换其功能。 如果在会话主机上启用了公用网络 RDP 短路径,则会话主机将启动一个称为“候选项收集”的过程:
- 会话主机枚举分配给会话主机的所有网络接口,包括 VPN 和 Teredo 等虚拟接口。
- Windows 服务远程桌面服务 (TermService) 在每个接口上分配 UDP 套接字,并将“IP:端口”对作为本地候选项存储在候选项表中。
- 远程桌面服务使用在上一步骤中分配的每个 UDP 套接字尝试访问公共 Internet 上的 Azure 虚拟桌面 STUN 服务器。 通信是通过向端口 3478 发送一个较小的 UDP 数据包来实现的。
- 如果数据包到达 STUN 服务器,STUN 服务器将使用公共 IP 和端口做出响应。 此信息作为自反候选项存储在候选项表中。
- 会话主机在收集所有候选项后,将使用建立的反向连接传输将候选项列表传递给客户端。
- 客户端在从会话主机接收候选项列表时,还会在自身一端执行候选项收集。 然后客户端将其候选项列表发送给会话主机。
- 在会话主机与客户端彼此交换候选项列表后,双方将尝试使用所有收集到的候选项相互连接。 这种连接尝试在双方自身一端同时进行。 许多 NAT 网关配置为允许在出站数据传输初始化传入流量后立即将此流量发送到套接字。 NAT 网关的这种行为是必须同时进行连接的原因。 如果 STUN 因受阻止而失败,则使用 TURN 尝试建立间接连接。
- 完成初始数据包交换之后,客户端和会话主机可以建立一个或多个数据流。 RDP 从这些数据流中选择最快的网络路径。 然后,客户端使用基于可靠 UDP 的 TLS 与会话主机建立安全的连接,并启动 RDP 短路径传输。
- 在 RDP 建立 RDP 短路径传输后,所有动态虚拟通道 (DVC)(包括远程图形、输入和设备重定向)将转移到新的传输。