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