SPICE协议的理解

SPICE协议的基本框架

读了两篇文章,总结一下SPICE的VDI协议。
1、徐浩,兰雨晴 2013年(计算机工程与科学)发表的文章:“基于SPICE协议的桌面虚拟化技术研究与改进方案”;
2、石屹嵘,龚德志,2013年 (电信科学)发表的文章:“基于SPICE 开源协议的云桌面技术架构研究”;
张两篇文章都介绍了“SPICE”框架,
其中文章二对比了几种桌面远程显示技术。
目前的技术实现方式和协议主要有以下4 种:

微软公司,桌面传输和展现基于RDP。
Citrix 公司,桌面传输和展现基于ICA 协议。
VMware 公司,桌面传输和展现基于PCoIP。
Red Hat 公司, 桌面传输和展现基于SPICE(simple protocol for independent computing environment)协议。
SPICE协议的理解_第1张图片
虚拟桌面传输协议比较

SPICE协议的理解_第2张图片
桌面传输和展现技术的对比

SPICE架构包括客户端、SPICE服务端和相应的QXL设备、QXL驱动等,如下图所示。客户
端运行在用户终端设备上,为用户提供桌面环境。SPICE服务端以动态连接库的形式与KVM虚拟
机整合,通过SPICE协议与客户端进行通信。

SPICE协议的理解_第3张图片
SPICE协议架构

分为3个部分:

(1)QXL驱动:部署在服务器侧、提供虚拟桌面服务的虚拟机中,用于接收操作系统和应用程序的图形命令,并将其转换为KVM的QXL图形设备命令。
(2)SPICE客户端:部署在用户终端上的软件,负责显示虚拟桌面.同时接收终端外设的输入。
(3)QXL设备:部署在KVM服务器虚拟化的Hypervisor中,用于处理各虚拟机发来的图形图像操作。

SPICE协议最大的特点是其架构中增加的位于Hypervisor中的QXL设备,本质上是KVM虚
拟化平台中通过软件实现的PCI显示设备,利用循环队列等数据结构供虚拟化平台上的多个虚拟
机共享实现了设备的虚拟化。但是,这种架构使得SPICE协议紧密地依赖于服务器虚拟化软/硬件基础设施,SPICE必须与KVM虚拟化环境绑定。传统的远程桌面传输协议工作在虚拟机Guest OS中,而SPICE协议本身运行在虚拟机服务器中,可以直接使用服务器的硬件资源。

1.1 SPICE协议核心技术

自适应图形处理

SPICE客户端采用基于Cairo图形库的软件处理方式,使用CPU计算资源,提供2D图形数据的渲染处理能力。
同时也提供了基于GPU的硬件处理方法,在Iinux平台使用OpenGI。库,在Windows平台使用GDI接口。

分类压缩技术

SPICE提供了三种无损图像压缩算法,分别是Quic、LZ和Glz压缩算法。
针对视频流,SPICE采用了有损的压缩方式,SPICE服务端通过图形区域的刷新频率来侦测视
频区域,采用MJPEG压缩算法。

1.2 SPICE协议改进

SPICE协议的不足

在WAN环境下性能较差。
服务端读取指令延迟。
视频处理能力不足。
客户端启动缓慢。
客户端ACK延迟。

SPICE协议的改进方案

压缩算法改进

SPICE协议的理解_第4张图片
原始方案
SPICE协议的理解_第5张图片
改进方案

优化视频数据传输方式(直接把视频数据以流媒体的方式发送到终端设
备的方法,避免服务端的解码操作)
图像渲染性能优化

你可能感兴趣的:(SPICE协议的理解)