0

云桌面的技术架构分析

 1 year ago
source link: https://www.51cto.com/article/713665.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

作者 | 池伟,单位:中国移动智慧家庭运营中心安全产品部

​Labs 导读

在传统的企业网络建设中,PC机既是基础也是核心。但PC机在网络搭建过程中容易出现诸如配置部署复杂、软件硬升级成本高、机密数据分散以及数据安全保障机制不完善等一系列问题,不便于数据的集中管理和维护。于是云桌面逐渐进入人们的视野,并受到越来越多的关注。

云桌面主要是指PC端的桌面系统(如windows)运行在云端,用户在本地通过软终端或者瘦终端作为入口,外接显示器,连接到远程的桌面系统,体验就如同本地电脑一样,整个使用过程中,所有的计算工作在云端完成。

2022年6月13日,IDC发布的《虚拟客户端计算软件市场半年跟踪报告》(如下图所示)显示:2021年虚拟客户端计算软件市场的市场规模达到了3.2亿美元(21.6亿人民币),同比增长25.2%。

图片

IDC定义的虚拟客户端计算软件市场主要指的是与桌面云/桌面虚拟化技术相关的软件市场,包括了虚拟桌面,应用虚拟化以及其他种类的桌面云/桌面虚拟化技术。这并非是一个新兴市场,但随着这几年疫情催生的企业工作方式转型,以及云上DaaS(Desktop as a Service)模式的高速发展,整体市场迸发出了新的活力。

2发展历史

纵观云桌面的技术演进路线,从两大巨头Citrix和VMware的发展历程(如下图所示)中可看出,它们分别聚焦于一项技术侧重点:Citrix公司是以推流协议起家,在桌面虚拟化的关键核心技术上已经研发储备超过30年之久,推流协议的性能业界第一;而VMware公司则是以虚拟化技术起家,在服务器虚拟化方面的研发储备也超过30年之久,虚拟化解决方案整体市场占比超过90%。

图片

国内云桌面企业从2010年开始陆续发力,多以企业私有云场景入手点。但近些年,国内多家厂商也陆续进入到公有云市场。主流云桌面厂商主要有阿里云、中兴、锐捷、深信服、华为等,其云桌面产品涉及的关键技术有自研、合作、基于开源改造等,但是核心关键技术都包括计算资源云化(虚拟化)、端到端推流(远程显示协议)、网络传输(抗抖动、低时延)、外设适配(USB设备远程接入)。

3技术架构

经过多年的技术演进,各大厂商的云桌面整体方案如下图所示:

图片
  • 用户层:用户通过软件终端或者硬件终端连接远程桌面系统
  • 网络层:在公有云或者私有云网络环境传输数据
  • 接入层:负责用户信息校验、桌面分配控制、连接、安全控制等
  • 虚拟桌面池:给用户分配虚拟的桌面系统并关联虚拟资源
  • 资源池:将硬件层的资源进行虚拟池化管理

基于上述功能架构,从技术角度概括为如下一张图:

图片

整个端到端的流程可以总结为流化的过程,主要分为云、端、网三大部分,下面分别从这三部分展开说明。

(一)云:虚拟化、抓屏、编码(计算资源云化、端到端推流)

1. 虚拟化

基于x86架构实现桌面系统虚拟化,迁移至安卓场景需要考虑ARM虚拟化;考虑到编码性能优化,需要实现GPU虚拟化或者GPU直通(成本较高)。

2.抓屏

针对GuestOS(以Linux为例)系统实现屏幕抓屏,大致涉及的流程包括:应用(显示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时延控制不仅仅在网络侧,云和端的图形图像编解码等方面也需要深度优化,降低时延。

以上从云、网、端三个方面分别详细阐明了核心关键技术点,在技术点逐个实现之后,可向下沉淀基础能力,延展到其它业务场景,发挥更大的技术价值。

4总结展望

基于上述关键技术点分析,我们可梳理出云桌面所涉及的基础能力:

图片

资源云化能力、推流能力、网络能力、外设适配能力统一建成后,在云计算和大带宽高速发展的趋势下,可通过能力组合复制,推广衍生到越来越多的云化场景,将用户侧设备逐步瘦身,将计算能力逐步上云,发挥运营商IDC计算及基础网络的综合优势。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK