序 言SPICE,即Simple Protocol for Independent Computing Environment(獨立計算環(huán)境簡單協(xié)議)是紅帽企業(yè)虛擬化桌面版的主要技術組件之一" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > Spice協(xié)議初探

Spice協(xié)議初探

時間:2023-06-27 09:33:01 | 來源:網(wǎng)站運營

時間:2023-06-27 09:33:01 來源:網(wǎng)站運營

Spice協(xié)議初探:轉自:靈躍桌面云-高效管理、簡易操作、靈活定制,把復雜留給我們




序 言

SPICE,即Simple Protocol for Independent Computing Environment(獨立計算環(huán)境簡單協(xié)議)是紅帽企業(yè)虛擬化桌面版的主要技術組件之一,具有自適應能力的遠程提交協(xié)議,能夠提供與物理桌面完全相同的最終用戶體驗。借助支持SPICE協(xié)議的客戶端(如remote-viewer)或者通過瀏覽器,用戶可以訪問自己的虛擬云桌面,如下圖1所示。










圖1 spice remote-viewer客戶端




1.特點




Spice虛擬桌面?zhèn)鬏攨f(xié)議,最初是由Qumranet開發(fā),后來被RedHat收購并開源。經(jīng)過幾年的社區(qū)開發(fā),Spice協(xié)議已經(jīng)能在實際應用中一展拳腳,和商業(yè)協(xié)議ICA 、PCoIP等相抗衡,與上述商業(yè)化的遠程桌面協(xié)議相比,Spice協(xié)議具有如下優(yōu)點:

(1)開源:易于擴展和功能定制;

(2)跨平臺:Windows/Linux/Mac OS平臺全兼容;

(3)支持外接設備:除常用USB設備外,打印機和掃描儀等設備也能在遠程使用;

(4)豐富的媒體支持:包括視頻、音頻、圖像;

(5)更小的帶寬占用:Spice里內置圖像壓縮算法,有效減少數(shù)據(jù)傳輸時的帶寬占用;

(6)更安全的數(shù)據(jù)傳輸:Spice可以使用OpenSSL加密傳輸數(shù)據(jù)。




2.架構




Spice 包含四個部分:協(xié)議、客戶端側、服務端側和虛擬機側。其中,

(1)協(xié)議:是客戶端側、服務端側和虛擬機側三個部分交互時所遵循的準則;

(2)客戶端:負責接收并轉換虛擬機數(shù)據(jù),以及發(fā)送用戶輸入數(shù)據(jù)到虛擬機,從而使得用戶能夠與虛擬機進行交互;

(3)服務端:是集成在Hypervisor內部的一個用戶層組件,使得Hypervisor(如QEMU)支持Spice協(xié)議;

(4)虛擬機側:指所有部署在虛擬機內部的必需組件,如QXL驅動、Spice Agent等。







圖2 Spice 相關組件




(一)Spice 圖形命令流




圖3展示了Spice的基本框架,以及圖形命令流如何從虛擬機內部達到Spice終端(平臺環(huán)境為QEMU+libSpice)。圖形命令開始于虛擬機內部的圖形應用程序向OS請求繪制操作(如GDI命令)。之后,Spice會利用安裝在虛擬機內部的QXL驅動,捕獲應用程序的繪制操作,進而轉化為Spice QXL 命令,并傳遞到QEMU虛擬的QXL設備后端。接著,LibSpice會讀取上述QXL 命令,進行重組和優(yōu)化,并封裝成Spice協(xié)議消息格式,發(fā)送到終端。最后,終端依據(jù)Spice協(xié)議解析對應的圖形操作消息,進而完成畫面更新操作。







圖3 Spice圖形命令流




(二)Agent 命令流




如圖4所示,為Spice Agent對應的命令交互流程,Spice Agent位于虛擬機內部。Spice Server 和 client 借助Agent在虛擬機內部執(zhí)行一系列動作,如設置虛擬機顯示配置等。Spice Agent通過位于虛擬機內部的VDIPort設備驅動與VDIPort設備(由QEMU 虛擬的設備)進行交互,VDIPort虛擬設備與Spice Server通過QEMU 的VDI Interface 進行交互,從而最終實現(xiàn)Spice Agent與Spice Server以及Spice Client三者之間的交互,其中消息格式均遵從Spice協(xié)議。







圖4 Spice Agent圖形命令流




3.實現(xiàn)




3.1 Spice客戶端




如圖5所示,Spice客戶端通過建立不同的通道來處理不同的事件??蛻舳藢⒚總€Channel實現(xiàn)為一個單獨的線程,具體通過定義一個以單獨線程運轉的RedChannel基類的方式來實現(xiàn),之后從此基類中派生所需要的具體功能類。

客戶端Channel類包括:RedClient、DisplayChannel、CursorChannel、InputsChannel、PlaybackChannel、RecordChannel等。RedClient 負責建立主通道,之后主通道通過channel_type創(chuàng)建下述通道:

(1)DisplayChannel:負責處理圖形命令、圖片以及視頻流顯示;

(2)InputsChannel:負責處理鍵盤和鼠標輸入;

(3)CursorChannel:負責處理指針設備位置、可見性以及形狀的顯示;

(4)PlaybackChannel:負責接收服務端的聲音數(shù)據(jù),并在客戶端播放;

(5)RecordChannel:負責客戶端聲音設備聲音捕獲,并將其傳遞到虛擬機內。







圖5 Spice client實現(xiàn)




3.2 Spice Server




如圖6所示,Spice Server內部對應于client,也存在若干個通道。這些通道主要負責向虛擬機的虛擬設備(如鍵盤鼠標等)傳遞客戶端側用戶的輸入,以及接收并顯示虛擬機虛擬顯卡對應的畫面(QXL)。為了使得Spice Server能夠相對獨立,其借助QEMU提供的各種虛擬設備后端接口來與虛擬機所見的虛擬設備進行交互,如Playback Interface等。







圖6 Spice Server實現(xiàn)




3.3 Spice 協(xié)議




如圖7所示,Spice協(xié)議是構建起整個虛擬桌面的核心。借助于Spice協(xié)議,虛擬云桌面各個組件之間才能夠順利交互。







圖7 Spice 協(xié)議




3.4 QXL Device




Spice Server 支持 QXL VDI interface,負責為虛擬機提供虛擬顯卡,包括初始化顯卡的ROM與RAM等的地址映射、IO端口映射、顯存區(qū)域更新、光標位置通知、設備IRQ請求、顯卡模式設置及重置等顯卡基本功能。同時,QXL設備后端,負責與Spice Server交互,從而實現(xiàn)在終端實時進行虛擬桌面的顯示。




3.5 QXL Guest Drivers




QXL虛擬設備對應的驅動,使操作系統(tǒng)能夠正確識別相應的設備。




3.6 Spice Agent




虛擬機內部的守護進程,接收來自客戶端或者服務器的相關操作請求,比如設置虛擬機的分辨率等。




3.7 VDIPort Device and Driver




VDIPort設備由Spice Server為虛擬機所虛擬的串口通信設備,提供給虛擬機內部Agent通道以及usb重定向通道使用,其在QEMU側均對應于一種名稱為Spicevmc的字符設備后端。

關鍵詞:協(xié)議

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉