也谈USB重定向的方式
在桌面虛擬化的項目中,常常會遇到用戶提出的各自外設(shè)需求,這時產(chǎn)品對外設(shè)的兼容性就成為了項目成敗的攔路虎
本文試圖用通俗易懂的語言講講USB外設(shè)重定向的工作流程,先看看普通PC上USB設(shè)備的工作流程
usb硬件只將數(shù)據(jù)交給usb總線驅(qū)動,而應(yīng)用程序只會把請求提交給本usb設(shè)備驅(qū)動處理,在usb設(shè)備驅(qū)動提交usb總線驅(qū)動處理
從上圖可以看出,能夠被虛擬化的只有USB設(shè)備驅(qū)動和USB總線驅(qū)動兩個對象
這也是目前業(yè)界對USB設(shè)備虛擬化的兩大主流方式
一.? 虛擬USB總線驅(qū)動的方案
又叫做USB端口重定向,工作流程如下圖
TC上所插USB設(shè)備數(shù)據(jù)通過TC的USB總線提交給虛擬USB驅(qū)動,虛擬USB驅(qū)動負責(zé)在TC總線和USB客戶端之間雙向傳輸數(shù)據(jù),如實傳輸USB硬件的一切細節(jié),對虛擬機來說,相當于在虛擬USB總線上插了一個USB硬件,假如在TC上插了一個閃迪的U盤,那在虛擬機看來就是有一個閃迪U盤插上來了,這時候虛擬機的系統(tǒng)會自動打相應(yīng)的設(shè)備驅(qū)動
實質(zhì)上,端口映射只是相當于將PC上USB工作流程里的USB設(shè)備驅(qū)動到USB總線驅(qū)動之間的這段進行了拉長,通過中間加入幾個代理,最終還是將TC上USB外設(shè)的細節(jié)原原本本向虛擬機上的USB應(yīng)用呈現(xiàn),只是隱瞞了設(shè)備實際上是在遠端TC的事實,這樣應(yīng)用根本感知不到和使用本地外設(shè)的差異,和運行在PC上是一樣的,因此,USB端口重定向具有良好的設(shè)備兼容性。
端口重定向也有一定局限性,由于沒有經(jīng)過設(shè)備驅(qū)動層的壓縮和預(yù)處理,對于某些掃描儀和攝像頭等圖像類應(yīng)用,可能會導(dǎo)致帶寬過大,網(wǎng)絡(luò)時延敏感等問題
二.? 虛擬USB設(shè)備驅(qū)動的方案
又稱為USB設(shè)備重定向,工作流程如下圖
USB設(shè)備重定向是在應(yīng)用層的實現(xiàn),通過在虛擬機上創(chuàng)建一個虛擬的USB外設(shè)驅(qū)動(對操作系統(tǒng)來說,一個驅(qū)動意味著一個設(shè)備),來使應(yīng)用程序獲得數(shù)據(jù),對于整個系統(tǒng)來說,虛擬USB外設(shè)驅(qū)動和TC上的USB設(shè)備驅(qū)動本質(zhì)上是兩個不同的USB設(shè)備,而USB服務(wù)端和USB客戶端負責(zé)維護兩個驅(qū)動之間的數(shù)據(jù)通道(類似于在兩個U盤之間互相拷貝數(shù)據(jù))
顯而易見,設(shè)備重定向工作流程中的代理環(huán)節(jié)少了很多,因而數(shù)據(jù)傳輸速率更高,延時更低,更適合像USB攝像頭等數(shù)據(jù)流量比較大,同時對延時也比較敏感的外設(shè)
事實上,目前主流的遠程桌面協(xié)議如HDX,Spice等,都為每一類外設(shè)提供從客戶端到虛擬機的映射,并在應(yīng)用層提供專門的通道,將不同的流量隔離開來,如攝像頭、打印機、掃描類設(shè)備、智能卡設(shè)備等,甚至針對不同外設(shè)應(yīng)用場景的需求,提供不同的傳輸Qos
設(shè)備重定向的問題主要在TC上的USB設(shè)備驅(qū)動和外設(shè)通道協(xié)議的USB客戶端之間,如果外設(shè)廠家提供的不是遵循外設(shè)協(xié)議標準的驅(qū)動,那么USB客戶端可能會不能很好的將其識別到
參考資料
【外設(shè)那些事】傳統(tǒng)PC與桌面云的區(qū)別 and 桌面云外設(shè)兼容性???? 點擊打開鏈接
【外設(shè)那些事】USB重定向---再看原理????? 點擊打開鏈接
總結(jié)
以上是生活随笔為你收集整理的也谈USB重定向的方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spice下命令spicy的USB重定向
- 下一篇: 使用VGG16网络结构训练自己的图像分类