1. 程式人生 > >spice協議詳解(三):spice架構和通訊

spice協議詳解(三):spice架構和通訊

一.相關概念

Channel(通道):
Client和server通過通道進行互動。每個通道型別專用於一種特殊資料型別傳輸。每個通道用一個專用的TCP套接字,可能是安全的(用SSL加密)或不安全的。在客戶端每個通道有一個專用的執行緒。因此通過不同的執行緒優先順序,每個通道被安排不同的傳輸功能,通道包括:

  • 主通道( main ),由 RedClient 實現的主通道;
  • 顯示通道(display channel),處理圖形命令,影象以及視訊資料流;
  • 輸入通道(inputs channel),用於滑鼠鍵盤輸入;
  • 位置通道( cursor channel ),指示裝置的位置、可視性和游標形狀;
  • 音訊播放通道(playback channel),指示來自伺服器待由客戶端播放的音訊;
  • 音訊捕捉頻道 ( record channel ),指示客戶端捕捉的音訊;
  • 每個Channel就是客戶端與服務端一個的網路連線。

客戶端將每個Channel實現為一個單獨的執行緒,實現方式是定義一個以單獨執行緒運轉的RedChannel基類,然後從此基類中派生所需要的具體功能類。
客戶端啟動後會首先與伺服器建立連線,此連線即為MAIN_CHANNEL,MAIN_CHANNEL建立起來之後,客戶端首先向伺服器傳送查詢命令,請求伺服器支援的Channel型別,然後客戶端對所有支援的Channel一一建立對應的Channel類例項,每個例項都會開啟自己的工作執行緒並向服務端發起連線請求,建立網路連線。

相關推薦

spice協議()spice架構通訊

一.相關概念 Channel(通道): Client和server通過通道進行互動。每個通道型別專用於一種特殊資料型別傳輸。每個通道用一個專用的TCP套接字,可能是安全的(用SSL加密)或不安全的

HTTPS協議()PKI 體系

客戶 判斷 節點 無法 三方 證書無效 進行 證書 roo 1、RSA身份驗證的隱患 身份驗證和密鑰協商是TLS的基礎功能,要求的前提是合法的服務器掌握著對應的私鑰。但RSA算法無法確保服務器身份的合法性,因為公鑰並不包含服務器的信息,存在安全隱患: 客戶端C和

HTTPS協議(二)TLS/SSL工作原理

-c 基本 公鑰加密 工作方式 通信 使用 sha2 公開 原理 HTTPS協議的主要功能基本都依賴於TLS/SSL協議,本節分析TLS/SSL協議工作原理。 TLS/SSL的功能實現主要依賴於三類基本算法:散列函數 Hash、對稱加密和非對稱加密,其利用非對稱加密實

HTTPS協議(四)TLS/SSL握手過程

其它 對數 hello 減少 受保護 改版 text gin 組裝 1、握手與密鑰協商過程 基於RSA握手和密鑰交換的客戶端驗證服務器為示例詳解TLS/SSL握手過程 再看一張手繪時序圖 (1).client_hello 客戶端發起請求,以明文傳輸請求信息,包

mysql系列mysql中各類日誌-技術流ken

1.前言 日誌檔案記錄了MySQL資料庫的各種型別的活動,MySQL資料庫中常見的日誌檔案有 查詢日誌,慢查詢日誌,錯誤日誌,二進位制日誌,中繼日誌 。下面分別對他們進行介紹。   2.查詢日誌   1.檢視查詢日誌變數 查詢日誌即檢視日誌記錄了所有對 My

docker容器第一個docker程式

新建一個docker 下面來通過命令成功執行一個容器 通過docker images/image ls/docker list/等命令來檢視映象。 命令顯示的分別是: 映象名 標籤(在映象名

OSPF—開放最短路徑優先協議---附OSPF LSA

OSPF:開放式最短路徑優先協議 無類別鏈路狀態路由協議---公有協議--組播更新協議:224.0.0.5/6   觸發更新、週期更新(30min);跨層封裝到網路層--協議號89 基於LSA更新導致更新量很大-----需要為中大型網路服務---週期的維護---結

java io位元組輸入輸出流

這篇部落格我們講的是位元組輸入輸出流:InputStream、OutputSteam(下圖紅色長方形框內),紅色橢圓框內是其典型實現(FileInputSteam、FileOutStream)       1、位元組輸出流:OutputStream

kafka開發Kafka應用

問題導讀1.Kafka系統由什麼組成?2.Kafka中和producer相關的API是什麼?一、整體看一下Kafka我們知道,Kafka系統有三大元件:Producer、Consumer、broker 。 file:///C:/Users/ADMINI~1/AppData/

TCP協議-次握手、四次揮手

為什麼會有TCP/IP協議 在世界上各地,各種各樣的電腦執行著各自不同的作業系統為大家服務,這些電腦在表達同一種資訊的時候所使用的方法是千差萬別。就好像聖經中上帝打亂了各地人的口音,讓他們無法合作一樣。計算機使用者意識到,計算機只是單兵作戰並不會發揮太大的作用

ES6class

class是es6引入的最重要特性之一。在沒有class之前,我們只能通過原型鏈來模擬類。 基本用法 如果你用過java這樣的純面嚮物件語言,那麼你會對class的語法非常熟悉。 class People { constructor(name)

Netty4Netty概要講解,全面瞭解Netty,做到胸有成竹

讀完這一章,我們基本上可以瞭解到Netty所有重要的元件,對Netty有一個全面的認識,這對下一步深入學習Netty是十分重要的,而學完這一章,我們其實已經可以用Netty解決一些常規的問題了。一、先縱覽一下Netty,看看Netty都有哪些元件? 為了更好的理解和進一步深

C++11多執行緒(七):《 std::future & std::shared_future》

#include <iostream>                // std::cout #include <future>                // std::async, std::future #include <chrono>            

Android Fragment(五)Fragment與Activity通訊

與activity通訊儘管fragment的實現是獨立於activity的,可以被用於多個activity,但是每個activity所包含的是同一個fragment的不同的例項。Fragment可以呼叫getActivity()方法很容易的得到它所在的activity的物件,

Java網絡編程NIO8淺析mmapDirect Buffer

temp 行動 訪問 objects swa oca 空閑 long 內存操作 Java網絡編程與NIO詳解8:淺析mmap和Direct Buffer 本系列文章首發於我的個人博客:https://h2pl.github.io/ 歡迎閱覽我的CSDN專欄:Java網絡編程

Java網路程式設計與NIO8淺析mmapDirect Buffer

微信公眾號【黃小斜】作者是螞蟻金服 JAVA 工程師,目前在螞蟻財富負責後端開發工作,專注於 JAVA 後端技術棧,同時也懂點投資理財,堅持學習和寫作,用大廠程式設計師的視角解讀技術與網際網路,我的世界裡不只有 coding!關注公眾號後回覆”架構師“即可領取 Java基礎、進階、專案和架構師等免費學習資

Web Service筆記(wsdl 與 soap協議

一、WSDL語言:(web service definition language - web service定義語言) (一)簡介: 2、wsdl 文件描述了 ws 主要的3個方面: 1)WHATA:該 ws 包含”什麼“操作,即有幾個方法。 2)HOW:該 ws

)GETPOST協議

str 打印 http 類別 多個 表現 pro 版本 prot 一、GET請求報文分析: 1、 請求行:   a) GET(描述該請求采用了什麽請求方法),HTTP協議中包含8種請求方法: GET 請求獲取Request-URI 所標識的資源 POST

python 對象類型數字(上)

結果 dom 運行 精度 升級 方法 函數 般的 代碼 一:python 的數字類型: a)整數和浮點數 b)復數 c)固定精度的十進制數 d)有理分數 e)集合 f)布爾類型 g)無窮的整數精度 h)各種數字內置函數和模塊 二:各種數字類型的詳解   1,數字常量:pyt

MySQL系列MySQL實現雙主架構演示-技術流ken

back span procedure eve mysql- ack community chang tee 前言 在企業中,數據庫高可用一直是企業的重中之重,中小企業很多都是使用mysql主從方案,一主多從,讀寫分離等,但是單主存在單點故障,從庫切換成主庫需要作改動。