SPICE協(xié)議的基本框架
讀了兩篇文章,總結(jié)一下SPICE的VDI協(xié)議。
1、徐浩,蘭雨晴 2013年(計(jì)算機(jī)工程與科學(xué))發(fā)表的文章:“基于SPICE協(xié)議的桌面虛擬化技術(shù)研究與改進(jìn)方案”;
2、石屹嶸,龔德志,2013年 (電信科學(xué))發(fā)表的文章:“基于SPICE 開源協(xié)議的云桌面技術(shù)架構(gòu)研究”;
張兩篇文章都介紹了“SPICE”框架,
其中文章二對(duì)比了幾種桌面遠(yuǎn)程顯示技術(shù)。
目前的技術(shù)實(shí)現(xiàn)方式和協(xié)議主要有以下4 種:
微軟公司,桌面?zhèn)鬏敽驼宫F(xiàn)基于RDP。
Citrix 公司,桌面?zhèn)鬏敽驼宫F(xiàn)基于ICA 協(xié)議。
VMware 公司,桌面?zhèn)鬏敽驼宫F(xiàn)基于PCoIP。
Red Hat 公司, 桌面?zhèn)鬏敽驼宫F(xiàn)基于SPICE(simple protocol for independent computing environment)協(xié)議。


SPICE架構(gòu)包括客戶端、SPICE服務(wù)端和相應(yīng)的QXL設(shè)備、QXL驅(qū)動(dòng)等,如下圖所示??蛻?br>
端運(yùn)行在用戶終端設(shè)備上,為用戶提供桌面環(huán)境。SPICE服務(wù)端以動(dòng)態(tài)連接庫(kù)的形式與KVM虛擬
機(jī)整合,通過SPICE協(xié)議與客戶端進(jìn)行通信。

分為3個(gè)部分:
(1)QXL驅(qū)動(dòng):部署在服務(wù)器側(cè)、提供虛擬桌面服務(wù)的虛擬機(jī)中,用于接收操作系統(tǒng)和應(yīng)用程序的圖形命令,并將其轉(zhuǎn)換為KVM的QXL圖形設(shè)備命令。
(2)SPICE客戶端:部署在用戶終端上的軟件,負(fù)責(zé)顯示虛擬桌面.同時(shí)接收終端外設(shè)的輸入。
(3)QXL設(shè)備:部署在KVM服務(wù)器虛擬化的Hypervisor中,用于處理各虛擬機(jī)發(fā)來(lái)的圖形圖像操作。
SPICE協(xié)議最大的特點(diǎn)是其架構(gòu)中增加的位于Hypervisor中的QXL設(shè)備,本質(zhì)上是KVM虛
擬化平臺(tái)中通過軟件實(shí)現(xiàn)的PCI顯示設(shè)備,利用循環(huán)隊(duì)列等數(shù)據(jù)結(jié)構(gòu)供虛擬化平臺(tái)上的多個(gè)虛擬
機(jī)共享實(shí)現(xiàn)了設(shè)備的虛擬化。但是,這種架構(gòu)使得SPICE協(xié)議緊密地依賴于服務(wù)器虛擬化軟/硬件基礎(chǔ)設(shè)施,SPICE必須與KVM虛擬化環(huán)境綁定。傳統(tǒng)的遠(yuǎn)程桌面?zhèn)鬏攨f(xié)議工作在虛擬機(jī)Guest OS中,而SPICE協(xié)議本身運(yùn)行在虛擬機(jī)服務(wù)器中,可以直接使用服務(wù)器的硬件資源。
1.1 SPICE協(xié)議核心技術(shù)
自適應(yīng)圖形處理
SPICE客戶端采用基于Cairo圖形庫(kù)的軟件處理方式,使用CPU計(jì)算資源,提供2D圖形數(shù)據(jù)的渲染處理能力。
同時(shí)也提供了基于GPU的硬件處理方法,在Iinux平臺(tái)使用OpenGI。庫(kù),在Windows平臺(tái)使用GDI接口。
分類壓縮技術(shù)
SPICE提供了三種無(wú)損圖像壓縮算法,分別是Quic、LZ和Glz壓縮算法。
針對(duì)視頻流,SPICE采用了有損的壓縮方式,SPICE服務(wù)端通過圖形區(qū)域的刷新頻率來(lái)偵測(cè)視
頻區(qū)域,采用MJPEG壓縮算法。
1.2 SPICE協(xié)議改進(jìn)
SPICE協(xié)議的不足
在WAN環(huán)境下性能較差。
服務(wù)端讀取指令延遲。
視頻處理能力不足。
客戶端啟動(dòng)緩慢。
客戶端ACK延遲。
SPICE協(xié)議的改進(jìn)方案
壓縮算法改進(jìn)

改進(jìn)方案
優(yōu)化視頻數(shù)據(jù)傳輸方式(直接把視頻數(shù)據(jù)以流媒體的方式發(fā)送到終端設(shè)
備的方法,避免服務(wù)端的解碼操作)
圖像渲染性能優(yōu)化
