泛云桌面关键技术分析
一、背景
云桌面主要是指 PC 端的桌面系统(如 windows)运行在云端,用户在本地通过软终端或者瘦终端作为入口,外接显示器,连接到远程的桌面系统,体验就如同本地电脑一样,整个使用过程中,所有的计算工作在云端完成。
2022 年 6 月 13 日,IDC 发布的《虚拟客户端计算软件市场半年跟踪报告》(如下图所示)显示:2021 年虚拟客户端计算软件市场的市场规模达到了 3.2 亿美元(21.6 亿人民币),同比增长 25.2%。
IDC 定义的虚拟客户端计算软件市场主要指的是与桌面云/桌面虚拟化技术相关的软件市场,包括了虚拟桌面,应用虚拟化以及其他种类的桌面云/桌面虚拟化技术。这个市场并不是一个新兴市场,但是随着这几年企业工作方式的转型,疫情的影响以及云上 DaaS(Desktop as a Service)模式的高速发展,整体市场迸发出了新的活力。
Citrix 和 VMware 作为云桌面市场的全球领导者,在中国同样具有很大的影响力,但是随着近几年国内厂商的崛起,也遇到了较大的挑战。他们通过积极拓展合作伙伴来发展更广阔的商业市场。
二、发展历史
云桌面的技术演进过程中,目前的两大巨头为 Citrix 和 VMware,从其发展历程(如下图所示)中可看出两家公司的技术布局各有侧重:Citrix 公司是以推流协议起家,在桌面虚拟化的关键核心技术上已经研发储备超过 30 年之久,推流协议的性能业界第一;而 VMware 公司则是以虚拟化技术起家,在服务器虚拟化方面的研发储备也超过 30 年之久,虚拟化解决方案整体市场占比超过 90%。
国内整个云桌面市场从 2010 年开始陆续发力,起步大多以企业私有云场景为主,近些年来,国内多家厂商也开始陆陆续续进入到公有云市场。主流云桌面厂商主要有阿里云、中兴、锐捷、深信服、华为等,其云桌面产品涉及的关键技术有自研、有合作、有基于开源改造等,但是核心关键技术都包括计算资源云化(虚拟化)、端到端推流(远程显示协议)、网络传输(抗抖动、低时延)、外设适配(USB 设备远程接入)。
三、技术架构
经过多年的技术演进,各大厂商的云桌面整体方案如下图所示:
用户层:用户通过软件终端或者硬件终端连接远程桌面系统;
网络层:在公有云或者私有云网络环境传输数据;
接入层:负责用户信息校验、桌面分配控制、连接、安全控制等;
虚拟桌面池:给用户分配虚拟的桌面系统并关联虚拟资源;
资源池:将硬件层的资源进行虚拟池化管理。
基于上述功能架构,从技术角度概括总结为如下一张图:
整个端到端的流程可以总结为流化的过程,主要分为云、端、网三大部分,下面分别从这三部分展开说明。
(一)云:虚拟化、抓屏、编码(计算资源云化、端到端推流)
1. 虚拟化
基于 x86 架构实现桌面系统虚拟化,迁移至安卓场景需要考虑 ARM 虚拟化;考虑到编码性能优化,需要实现 GPU 虚拟化或者 GPU 直通(成本较高)。
2. 抓屏
针对 GuestOS 系统实现屏幕抓屏,大致涉及的流程包括:应用(显示 Client)、服务端(显示 Server)、OpenGL(实现 Mesa 3D)、libDRM、DRM(kernel)、GPU,不同的桌面系统图形栈有所差异,需要针对性的优化。
3. 编码
抓屏采集到的数据需要进行编码传输,为了降低带宽占用,需要在码率、帧率、分辨率三个维度上综合性优化,根据系统资源占用情况、当前用户网络环境等自适应调整参数,达到网络传输和用户体验的平衡,实现传输自适应。
(二)端:解码、指令收集上传、USB 外设接入(端到端推流、外设适配)
1. 解码
一般场景下通过 H.264 软解方式即可,但是在游戏等对体验要求极高的场景下需要考虑 H.265 硬解方案,终端侧对应的设备硬件、适配工作等成本会增加。
2. 指令收集上传
终端设备上会采集键鼠等外接设备的按键控制指令并组装成对应的数据协议格式上传云端,由云端系统解析并进行事件响应。
3. USB 外设接入
在桌面场景下,为了符合用户对 PC 端电脑的所有使用场景需求,USB 的外设接入适配是必不可少的工作,常见的有 U 盘、摄像头、麦克风等。不同厂家的云桌面技术栈会存在差异,相应的 USB 外设能力也层次不齐,与桌面协议强耦合,导致云 桌面的整体能力替换成本巨大。所以外设方面可以采用 USB/IP 协议来实现,USB/IP 在 2009 年已经合并到 Linux Kernel,而且该方案完全跨平台(云电脑平台),与桌面协议完全解耦,灵活可插拔。
(三)网:抗弱网环境、低时延传输(网络)
1. 抗抖动
可以采用 QUIC UDP 的方案,,基于 UDP 实现,握手过程简单,改进了拥塞控制,可以多路复用,同时还具备 FEC 前向纠错特性,在网络抖动丢包时可以一定程度上保证数据的完整性。
2. 低时延
云桌面场景的整个链路 RTT 包括如下步骤:
其中比较耗时的关键步骤为抓屏、编码、网络传输、解码,所以整体的 RTT 时延控制不仅仅在网络侧,云和端的图形图像编解码等方面也需要深度优化,降低时延。
以上从云、网、端三个方面分别详细阐明了核心关键技术点,在技术点逐个实现之后,可向下沉淀基础能力,延展到其它业务场景,发挥更大的技术价值。
四、总结展望
基于上述关键技术点总结概括的基础能力如下图所示:
资源云化能力、推流能力、网络能力、外设适配能力统一建成后,在云计算和大带宽高速发展的趋势下,可通过能力组合复制,推广衍生到越来越多的云化场景,将用户侧设备逐步瘦身,将计算能力逐步上云,发挥运营商 IDC 计算及基础网络的综合优势。
长远来看,可依托移动运营商的一张大网,“4+3+X”的数据中心布局,以低时延、高可靠、大算力的强大资源优势,布局整个云化业务场景的市场。
评论