usb禁止重定向_谈USB重定向的方式
在桌面虚拟化的项目中,常常会遇到用户提出的各自外设需求,这时产品对外设的兼容性就成为了项目成败的拦路虎
本文试图用通俗易懂的语言讲讲USB外设重定向的工作流程,先看看普通PC上USB设备的工作流程
usb硬件只将数据交给usb总线驱动,而应用程序只会把请求提交给本usb设备驱动处理,在usb设备驱动提交usb总线驱动处理
从上图可以看出,能够被虚拟化的只有USB设备驱动和USB总线驱动两个对象
这也是目前业界对USB设备虚拟化的两大主流方式
一. 虚拟USB总线驱动的方案
又叫做USB端口重定向,工作流程如下图
TC上所插USB设备数据通过TC的USB总线提交给虚拟USB驱动,虚拟USB驱动负责在TC总线和USB客户端之间双向传输数据,如实传输USB硬件的一切细节,对虚拟机来说,相当于在虚拟USB总线上插了一个USB硬件,假如在TC上插了一个闪迪的U盘,那在虚拟机看来就是有一个闪迪U盘插上来了,这时候虚拟机的系统会自动打相应的设备驱动
实质上,端口映射只是相当于将PC上USB工作流程里的USB设备驱动到USB总线驱动之间的这段进行了拉长,通过中间加入几个代理,最终还是将TC上USB外设的细节原原本本向虚拟机上的USB应用呈现,只是隐瞒了设备实际上是在远端TC的事实,这样应用根本感知不到和使用本地外设的差异,和运行在PC上是一样的,因此,USB端口重定向具有良好的设备兼容性。
端口重定向也有一定局限性,由于没有经过设备驱动层的压缩和预处理,对于某些扫描仪和摄像头等图像类应用,可能会导致带宽过大,网络时延敏感等问题
二. 虚拟USB设备驱动的方案
又称为USB设备重定向,工作流程如下图
USB设备重定向是在应用层的实现,通过在虚拟机上创建一个虚拟的USB外设驱动(对操作系统来说,一个驱动意味着一个设备),来使应用程序获得数据,对于整个系统来说,虚拟USB外设驱动和TC上的USB设备驱动本质上是两个不同的USB设备,而USB服务端和USB客户端负责维护两个驱动之间的数据通道(类似于在两个U盘之间互相拷贝数据)
显而易见,设备重定向工作流程中的代理环节少了很多,因而数据传输速率更高,延时更低,更适合像USB摄像头等数据流量比较大,同时对延时也比较敏感的外设
事实上,目前主流的远程桌面协议如HDX,Spice等,都为每一类外设提供从客户端到虚拟机的映射,并在应用层提供专门的通道,将不同的流量隔离开来,如摄像头、打印机、扫描类设备、智能卡设备等,甚至针对不同外设应用场景的需求,提供不同的传输Qos
设备重定向的问题主要在TC上的USB设备驱动和外设通道协议的USB客户端之间,如果外设厂家提供的不是遵循外设协议标准的驱动,那么USB客户端可能会不能很好的将其识别到
usb禁止重定向_谈USB重定向的方式相关推荐
- 如何阻止ajax自动重定向_重发和重定向有什么区别与重定向应用
重发和重定向有什么区别 重发 方式1: request.getRequestDispatcher("new.jsp").forward(request, response);//转 ...
- node 后台重定向_登录后重定向到用户原本要访问的页面《 Node.js 应用:重构与改进 #3 》...
现在我是未登录的状态 ... 可以先试着打开一个内容的编辑界面 ... 会被重定向到登录页面 ... 输入用户名 ... 密码 .. 确认登录 ... 成功以后会把用户重定向到这个用户页面上 ... ...
- java httpclient重定向_处理HttpClient重定向
我正在将一些数据发布到正在回答302移动临时的服务器上. 我希望HttpClient遵循重定向并自动获取新位置,因为我相信这是HttpClient的默认行为.但是,我得到一个例外,而不是按照重定向:( ...
- java usb小票打印机_通过USB从Android设备向热敏打印机发送数据
我正在处理从我的应用程序向热敏打印机发送数据 . 我已经让它在网络上正常工作,我的数据打印正确 . 现在有一个额外的要求,我们也必须能够通过USB打印 . 这是我尝试过的: private UsbMa ...
- usb禁止重定向_一种USB重定向处理方法和系统与流程
本发明涉及桌面虚拟化的USB重定向处理技术领域,具体而言,涉及一种USB重定向处理方法和系统. 背景技术: 随着科学技术的不断进步,网络技术日益发达,虚拟化的应用逐渐普及.桌面虚拟化是指在数据中心的服 ...
- usb禁止重定向_USB设备重定向问题的智能诊断方法与流程
本发明属于桌面虚拟化技术领域,具体涉及一种USB设备重定向问题的智能诊断方法. 背景技术: USB设备重定向是云桌面系统的基本功能.用户在云桌面客户端插上USB设备时,云桌面系统通过重定向技术,自动把 ...
- USB虚拟化和虚拟桌面USB重定向
USB:通用串行总线,是一种外部总线的标准,用于规范主机与外设之间的连接与通讯,其数据传输速度快,支持热插拔,并具有兼容性和透明性,已成为当今个人电脑和大量智能设 备必配的接口.随着虚拟化技术的盛行和 ...
- linux串口重定向到usb串口,基于Linux的USB设备重定向研究
第27卷第4期2008年12月武 汉 工 业 学 院 学 报 Journal of W uhan Polytechnic University Vol 127No 14Dec 12008 收稿日期:2 ...
- usb接口驱动_乾坤合一~Linux设备驱动之USB主机和设备驱动
这一章从主机侧角度看到的USB 主机控制器驱动和设备驱动从主机侧的角度而言,需要编写的USB 驱动程序包括主机控制器驱动和设备驱动两类,USB 主机控制器驱动程序控制插入其中的USB 设备,而USB ...
最新文章
- 使用PCAST检测散度以比较GPU和CPU结果
- 为了爱情,吃掉150瓶“老干妈”的程序员
- webgl值得重视的基础构建
- 用户界面设计的技巧与技术 (作者Scott W.Ambler)
- git中常用命令小结
- flash和linux文件系统,面向大容量Flash的高效Linux文件系统改进和实现
- STM32F407 CubeMx使用定时器测量信号频率 分辨率0.001Hz
- 计算机运行卡英语怎么说,“芯片卡”英语怎么说
- 腾讯云数据库Redis助力百万企业远程办公
- SSH 协议端口号 22 背后的故事
- Rsync结合Inotify 实时同步配置
- ArGIS Engine专题(8)之利用GP监督分类最大似然法实现根据矢量样本和影像提取植被类型
- 大白菜超级U盘启动制作工具V2.0(网络增强版)
- 关于/var/run/docker.sock那些事儿
- 在CentOS7虚拟机中安装mysql5.7
- 微信小程序新版本提示更新
- Win系统 - 如何彻底删除文件 / 文件夹?
- 计算 某一天据今天有多少天
- C语言编程编制职工档案管理程序,c语言人事档案管理程序
- 计算机无法开机如何读u盘启动,电脑无法识别U盘启动盘怎么办?