首页 > 其他分享 >SPICE协议浅析

SPICE协议浅析

时间:2024-12-16 15:23:09浏览次数:5  
标签:协议 server client SPICE 浅析 channel Spice

本文分享自天翼云开发者社区《SPICE协议浅析》,作者:王****均

云环境中根据使用场景不同,有多种远程控制台传输协议,如SPICE、VNC、RDP等。

SPICE是Simple Protocol for independent Computing Environment的缩写,表示独立计算环境的简单协议。

SPICE协议由三个基本部分组成:Spice 协议,Spice server 和Spice client。采用带外的管理模式进行云主机图像画面的采集和传输,适用于LAN 和WAN,可以处理虚拟设备(后端back-end)和前端front-end。在前端和后端间通过VDI(Virtual Device Interfaces)进行交互。

一、SPICE协议

SPICE 协议用于client 和server 间的通信,比如传输图形对象, 键盘和鼠标事件, 光标信息, Audio playback 和录音,以及控制命令。

SPICE协议可以在云主机控制台画面传输过程中进行安全防护、效率优化,保障用户使用云主机的安全可靠和极致的用户体验,包括协议加密、算法自适应、USB重定向等多个关键技术。

1、协议加密:支持TLS加密,提供保密性和数据完整性,保障数据在传输过程中的安全,并且可根据用户需求进行算法替换。

2、算法自适应:针对文字、图片、视频等不同的显示类型,自动进行检测适配,及时调整压缩算法,降低控制台带宽占用,保障用户网络稳定。

3、USB重定向:利用USB重定向技术,支持将多种类型的USB外部设备接入云主机,具有良好的兼容性和使用体验。

另外,SPICE协议还支持高清的分辨率、多媒体高清视频(4K视频)播放和多屏显示,保障用户远程访问云主机具有极致体验。

二、Spice server

spice server 是通过libspice 和VDI library 实现的。VDI 提供了一个标准的方法来发布虚拟设别的接口。这使得其他的软件部件可以和这些virtual device 交互。一方面,server 使用Spice 协议和远程client 通信,另一方面,它和VDI host 应用进行交互。
server 为了远程显示的目的,server 维护了一个命令序列和一棵树来管理当前对象的依赖关系和覆盖关系。QXL 命令被处理转换为Spice 协议,然后发送给客户端。

架构图如下:

Server 通过channels 和client 通信。每一个channel 类型对应一种特定类型的数据。每一个channel 使用专用的TCP port。服务端的channel 和client 的channel 是对应的,也有Main, Inputs, Display, Cursor Playback 和Record。

三、Spice client

Spice 跨平台客户端是终端用户的接口。架构图如下:

Spice包含的关键类有:Application、Channels、Screens 和Windows

Application包含Clients, monitos 和screens,这个类实现了通用的应用功能:命令行解析,主循环,时间处理,鼠标事件重定向,全屏切换等等。

Channels:client 和服务端通过channels 进行通信,每一个channel 类型对应着特定的数据类型。每个channel 使用专门的TCP 端口,有一个专门的线程来处理,所以我们可以为每一个channel 设置单独的优先级来达到不同的QoS。

Screens 和Windows:提供窗口控制和操作逻辑。ScreenLayer - screen layer绑定到特定的screen,用来提供矩形区域的操作。layer 是z-order。RedScreen - 实现screen的逻辑,控制window,使用screen layers 来显示他的内容。RedDrawable - 基本pixmap 的平台特定实现。它支持基本的渲染操作。

综上,SPICE协议提供了一种兼顾色彩、音频和外设管理等方面的云主机控制台解决方案。

标签:协议,server,client,SPICE,浅析,channel,Spice
From: https://www.cnblogs.com/developer-tianyiyun/p/18610227

相关文章

  • SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】处理
    一、概述SSL/TLS协议信息泄露漏洞(CVE-2016-2183)漏洞说明:SSL全称是SecureSocketsLayer,安全套接字层,它是由网景公司(Netscape)设计的主要用于Web的安全传输协议,目的是为网络通信提供机密性、认证性及数据完整性保障。如今,SSL已经成为互联网保密通信的工业标准。SSL最初的几个版本......
  • DP协议:概括
    来了来了!!!开始之前扯点概念,知道DP好在哪里,以及看到它的发展趋势,才知道我们为什么有学习的必要。DP的优势DisplayPort(DP)协议作为一种专为数字音频和视频传输设计的高速串行接口标准,在现代显示技术和多媒体应用中扮演着至关重要的角色。它由视频电子标准协会(VESA)这一权......
  • DP协议:缩略词
    缩写代表的含义ACT分配更改触发(AllocationChangeTrigger)API应用程序编程接口(ApplicationProgrammingInterface)AUX辅助(Auxiliary)BER比特错误率(BitErrorRate)bpc每色比特数(BitsPerComponent)bpp每像素比特数(BitsPerPixel)BE消隐结束(BlankingEnd)BS消隐开始(BlankingSta......
  • DP协议:术语表
    术语定义ANSI8B/10B通道编码规范,如ANSIX3.230-1994条款11所述AUXCH半双工、双向通道,位于DisplayPort发射器和DisplayPort接收器之间。由1个差分对组成,使用Manchester格式以1Mbps速率或FAUX格式以720Mbps速率传输数据。DisplayPort上游设备是主设备(也称为AUXCH请求者),发起......
  • Windows Server 2022 DHCP 服务器 是一种网络服务,属于 动态主机配置协议(DHCP, Dynamic
    WindowsServer2022DHCP服务器是一种网络服务,属于动态主机配置协议(DHCP,DynamicHostConfigurationProtocol)实现的一部分,用于自动为网络中的计算机和设备分配IP地址和其他网络配置信息,如子网掩码、默认网关和DNS服务器等。功能和作用:自动化IP地址分配:DHCP服......
  • 深入理解 HTTP 协议:从基础到实践全解析
    在当今数字化时代,HTTP协议如同互联网世界的“语言”,支撑着无数网页浏览、数据传输和在线交互。无论你是初涉编程的新手,还是经验丰富的开发者,深入掌握HTTP协议都至关重要。今天,就让我们一起揭开HTTP协议的神秘面纱,从基础知识到实际应用,全面深入地理解这一互联网基石。一、HTT......
  • 第七章:Profibus 真实项目协议对接
    在项目中接触到Profibus总线的开发,由于这套协议相对比较封闭,编程资料比较少,规范文件非常枯燥乏味,晦涩难懂。所以出一个专栏总结一下。第一章:ProfibusDP通信简介第二章:ProfibusDp诊断、参数、组态数据的定义第三章:ProfbusGSD文件详解第四章:Profibus单片机软件模拟DP......
  • STM32F103c8t6基于I2C协议的AHT20温湿度传感器的数据采集
    STM32F103c8t6基于I2C协议的AHT20温湿度传感器的数据采集一、了解I2C总线通信协议1、软件I2C2、硬件I2C二、工程建立1、设计要求2、STM32CubeMX的环境配置(一)STM32CubeMX的配置(二)KEIL配置三、代码编写1、AHT20-21_DEMO_V1_3.h2、AHT20-21_DEMO_V1_3.c3、main.c四、硬......
  • Deepmotion技术浅析(五):时序分析
    DeepMotion 是一款基于深度学习的运动捕捉和分析平台,其核心功能是将视频中的运动数据转化为数字化的运动信息。时序分析模块是 DeepMotion 的关键技术之一,负责从视频中提取人体运动的时序信息,包括姿态估计、动作识别和运动轨迹预测等。一、时序分析概述时序分析模块的目标......
  • 043_Tcpip Instruments in Matlab中连接和调试采用TCP/IP协议的仪器
    A:师兄,Matlab可以做什么?B:除了生孩子,什么都会。(这下你懂师兄的意思了吧)A:【星星眼】哦,那我还是可以帮兰陵王生孩子!B:【倒】先来一点跟Matlab无关的内容,现在很多仪器做得非常先进,只需要两根线,一根电源线,一根网线(RJ45)。连接到交换机,就能通过TCP/IP或者UDP协议控制仪器、......