论文部分内容阅读
USB总线因其高速、方便的特点,已经逐渐取代传统的低速总线,成为一种应用最为广泛的外设接口标准,越来越多的计算机外设开始采用USB接口。与此同时,共享USB设备的需求也变得越来越突出。
现有的设备共享技术可以部分满足人们共享USB设备的需求,但是这些共享技术都只针对特定协议层次或特定设备,针对存储USB的协议就无法共享视频USB设备;并且利用现有技术实现的共享对系统并不透明,操作系统和应用软件对本地USB设备和远程USB设备可以明确区分,应用软件必须做相应的修改才能使用被共享的远程USB设备,而这是需要相当高的代价甚至是不可能的。
本文根据USB协议的特点,对在主机之间进行USB设备透明映射的机制做了一些探索。通过在客户主机的协议底层实现一个虚拟的USB控制器,将由上至下传输的USB数据截取、打包并传送到服务器主机,由驻留在服务器主机上的程序解析接受到的USB数据包,并向物理设备提交,最终完成服务器主机上的USB设备向客户主机的映射。这种方式的映射在USB总线层实现,对上层系统来说,USB设备的物理位置是透明的,应用程序可以不加修改地访问远程主机上被共享的USB设备。
USB设备映射的性能受网络传输延迟的影响较大,通过将USB数据块进行聚簇传送,可以极大地提高传输吞吐量。与此同时,在聚簇过程产生的等待会造成平均传输延迟时间的增加。针对具体USB设备的传输特点,可以通过适当减小队列深度和传输阀值时间,在改善吞吐量和保持较小的延迟之间达到平衡。