USB重定向

USB重定向(轉載)

  第一期中,我們一起簡要的看了下傳統PC和桌面雲下USB重定向和USB設備重定向方式的差異,瞭解了桌面雲下外設兼容性問題來源的根源-USB設備本身驅動不規範/不支持,

  或者虛擬機驅動實現上與USB設備對接存在疏漏。

  本期我們來詳細的瞭解下傳統PC和桌面雲的外設工作原理

  目前,在通用操作系統上,USB外設佔主流,下面就以USB攝像頭舉例說明其兩種重定向技術的區別。

 傳統PC

  先認識一下傳統(PC機模式)USB外設工作的原理

                        

  從上圖可以瞭解到,所有USB外設正常工作,在軟件層面依賴的是USB總線驅動。一個應用需要使用USB外設必須與USB設備驅動進行交互,而設備驅動的工作

  完全依賴USB總線驅動來交互設備數據,與硬件交互都是由總線驅動來代理完成。

  桌面雲

    在桌面雲環境下實現對USB外設的支持,可以有兩種方式,一種是基於USB總線的虛擬化重定向,稱之爲USB端口重定向,即替換掉USB總線驅動;另外一種

  是USB設備驅動的重定向,稱之爲設備重定向,即替換掉USB設備驅動。

                    

  上圖所示,即爲USB端口重定向方式,它通過在虛擬機和客戶端各內置一個虛擬USB總線驅動,實現原物理下USB總線驅動的拉遠。而設備對應的真實USB設備驅動安裝

  並運行在虛擬機中,與虛擬機USB總線驅動進行交互,這樣對虛擬機中的USB設備驅動來說,並不會感知到所控制的設備實際上在TC遠端,同樣應用程序也不會感知到

  這個差異。因爲USB端口重定向與具體的設備和應用無關,直接將USB端口重定向到桌面虛擬機中,所以USB端口重定向具有良好的設備兼容性。但同時,也正是因爲這個原因,USB端口重定向也有一定的侷限性,由於沒有經過設備驅動層的壓縮和預處理,對於某些掃描儀和攝像頭等圖像類應用,可能會導致帶寬過大,網絡時延敏感等問題。在這種情況下,需要使用設備重定向技術。                                                                         

  桌面雲下USB重定向各模塊作用(如上圖)

  USB客戶端:負責發現和斷開客戶端設備,接收服務端總線數據轉發到設備,以及獲取設備的總線數據轉發到服務端

  虛擬USB驅動:作爲一個虛擬的功能驅動,負責雙向透傳總線數據包

  USB服務端:負責獲取服務端的總線數據包轉發到客戶端,以及接受客戶端迴應的總線數據包轉發到虛擬總線驅動

  虛擬USB總線驅動:作爲一個虛擬的總線驅動,向上和真實的各類USB功能驅動交互,負責轉發各類USB設備的總線數據包,以及將USB 服務傳遞進來的數據包

  透傳到上層功能驅動。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章