Horizon 一直以来都是使用 PCoIP 作为 VDI 网络传输协议。PCoIP 的全称是 PC over IP,是由加拿大公司 Teradici 开发的,最初的定位是在 IP 网络上传输高性能图形;后来 VMware 和 Teradici 合作,把 PCoIP 协议用于 Horizon View 桌面虚拟化环境,用于展现远程桌面。
PCoIP 是一款优秀的 VDI 网络传输协议,具有传输效率高、占用带宽低、功能丰富(支持USB、多媒体重定向等)等优点,在业界有着广泛的应用,很多硬件厂商也纷纷推出直接支持 PCoIP 协议的零客户端。虽然 PCoIP 在各种场合下的表现都很出色,随着时代的发现它也逐渐暴露出一些局限性,例如它的数据传输采用 UDP 协议,而有些 Proxy 服务器不支持 UDP 协议;在基于 TCP 协议的 SSL VPN 环境里,无法发挥 PCoIP 的优势。
VMware 在 Horizon 7 中推出了一个全新的传输协议 Blast Extreme,来更好地适应移动-云计算时代的一些新需求。说起这个协议,细心的用户可能并不陌生,VMware 早在 HTML5 和 Linux 客户端中就已经应用了 Blast 协议,到了 Horizon 7 全线客户端都开始支持这个协议,并把它统一命名为 Blast Extreme。
小知识:VDI 的几种客户端
- 零客户机:内置芯片直接支持 PCoIP、RDP 等传输协议,无操作系统,本地的设备一定需要重定向到远程桌面;
- 瘦客户机:运行精简版操作系统,支持各种 VDI 协议,由于本机有操作系统,本地连接的设备可不用重定向到远程桌面;
- Web 客户端:完全基于 Web 浏览器,支持 HTML5,最灵活,但支持的功能比较有限;
- 软件客户端:以软件形式运行于各种平台上,因为不受硬件厂商限制,最新的功能往往在软件客户端上率先实现。
Blast Extreme 协议的特点
1. 采用 H.264
Blast Extreme 采用了 H.264 技术来传输视频图像,H.264 是目前最主流的高清视频压缩标准(蓝光 DVD 就是采用 H.264 的),因而在视频传输上要比 PCoIP 表现更优秀。由于 H.264 在业界被广泛接受,所以主流的硬件设备都支持 H.264 解码,最新的手机、平板电脑的 CPU 都内置硬件解压的 GPU,可以毫无压力地支持这一标准。
当服务器上安装有 NVIDIA 的 GRID GPU 时,Horizon 7 还能充分利用 GPU 的处理能力来加速 H.264 媒体流的编码效率,减轻 CPU 的负载,更加完美地展现 3D 渲染的结果。
2. 灵活使用 TCP 或 UDP
PCoIP 使用 UDP 来传输数据,使用 TCP 来管理链路连接,UDP 对网络带宽的要求相对较低,数据传输速度快。但是在实际应用场景中,也会遇到一些制约,如某些 VPN 连接或 Proxy 服务器对 UDP 有限制,导致采用 PCoIP 的客户端无法连接远程桌面。
Blast Extreme 在设计的时候很好地总结了过往的经验,在网络传输协议上更加灵活地采用 UDP 和 TCP 两种模式。Blast Extreme 默认状态下还是先尝试用 UDP 来传输数据,当 UDP 不能正常工作的时候会切换到 TCP。这样 Blast Extreme 协议对 VPN 和 Proxy 更加友好,在保证高效数据传输的同时能够适应更多的应用场景。
3.专为移动-云计算时代而设计
在移动-云计算时代,用户不仅仅在办公室使用远程桌面,也需要使用智能移动设备在各种场所随时随地访问自己的桌面;虚拟桌面也可能不再运行在传统的数据中心内,也有用户开始使用云端的 DaaS (Desktop as a Service) 服务。
Blast Extreme 正是为移动-云计算时代而打造,它使用更少的带宽来支持更多的用户,提供更好的用户体验。顺应移动化的需求,Blast Extreme 可以很好地适应各种网速状态,无论是 WiFi 还是移动通信网络;同时专门针对移动设备进行了优化,能够延长电池寿命。
充分利用 GPU 来提高性能
因为 Blast Extreme 采用了业界流行的 H.264 编码标准,所以可以充分利用现有的硬件来加速编码和解码的工作,在服务器端目前可以利用 NVIDIA GPU 来加速视频流的压缩编码工作,并且把服务器 CPU 解放出来。
NVIDIA 的性能工程小组做了一个基于 Blast Extreme 协议和 GRID GPU 的性能测试,该测试运行了一个 ESRI ArcGIS Pro 1.1 GIS(地理信息系统)负载,测试结果表明 Blast Extreme 充分利用了 GPU 的处理能力而明显提高了数据传输性能。
1. 延迟 (Latency)
延迟是影响用户体验的一个关键因素,Blast Extreme 虽然不能降低网络延迟,但是它能够利用 GPU 来减少编码延迟,从而显著降低整体的延迟现象。测试的结果显示 Blast Extreme 和 NVIDIA GRID 相配合跟 PCoIP 相比总共降低了 51ms 的延迟;如果不使用 GPU 加速的话,Blast Extreme 也要比 PCoIP 减少 27ms 的延迟。
2. 每秒帧数 (FPS)
每秒帧数是另一个影响用户体验的重要因素, 在测试中 Blast Extreme 成功地利用 GPU 使得每秒帧数提高了 37%。
3. 带宽
在使用广域网时,网络带宽往往成为性能的瓶颈,没有足够的带宽就会导致用户体验下降。 在测试中运行了19个虚拟桌面,在达到同样的图像质量效果时,Blast Extreme 需要的带宽比 PCoIP 要少 19%。
4. 减轻 CPU 负载和支持更多用户
测试也发现 Blast Extreme 能够充分利用 GPU 来减少 16% 的 CPU 负载,与 PCoIP 相比,Blast Extreme 在同一台服务器上能够多支持3个用户(用户数提升18%)。
NVIDIA 的测试结果表明 Blast Extreme 协议能够以更少的网络带宽、更低的 CPU 资源占用来获得更优的用户体验。
说明:本文的后半部分“针对 GRID GPU 的优化”引用了 NVIDIA 性能架构师 Erik Bohnhorst 的博客文章 “VMware Horizon Blast Extreme Acceleration with NVIDIA GRID” 中的内容和数据。