基于Linux主机间USB通信实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Linux主机间USB通信实现

基于Linux主机间USB通信实现   摘要:网络隔离器在隔离了可信网络和不可信网络的同时,允许信息在两个网络间安全传输。主要介绍使用USB实现网络隔离器内部的数据交换。首先介绍了USB系统、USB通信模型和数据传输类型,然后介绍了Linux的USB子系统及主要数据结构,重点说明了使用libusb库实现两台USB主机间的数据传输。??   关键词:网络隔离;网闸;Linux;通用串行总线;libusb??   中图分类号:TP311.11文献标志码:A   文章编号:1001-3695(2007)08-0306-03      0引言??      Linux操作系统结构清晰、功能强大,支持多用户访问和多任务编程,是一个稳定可靠、功能完善的操作系统。Linux源代码开放,具有可订制性和可裁减性,被广泛应用于防火墙、安全网关、网络隔离器等安全产品。在国家保密局发布的《计算机信息系统国际互联网保密管理规定》中规定“涉及国家秘密的计算机信息系统,不得直接或间接地与国际互联网或其他公共信息网络相连接,必须进行物理隔离”。??   物理隔离阻断了内部网络与Internet间的直接连接,是防范网络攻击的有效手段,但是同时也阻断了必要的信息交换。基于网络隔离的数据交换系统就是在保证两个网络安全隔离的基础上实现信息的自动交换。本文基于国家2005信息安全专项“隔离专网之防病毒反入侵综合管理与更新网关的产品产业化”。网络隔离器主要由三部分组成:内网处理单元、外网处理单元和中间数据交换单元。在隔离器内部三个单元之间的通信必须在链路层上中止网络连接[1]。USB具有低成本、支持即插即用、协议灵活、传输速率高的优点,本文将通过使用USB来实现网络隔离器内部的安全数据交换。??      1USB系统简介??      一个USB系统由USB主机、USB设备以及两者之间的互连三个部分组成。USB主机和多个USB设备之间构成一个有层次性的星型结构。当一个USB设备连接到主机时,主机控制器会为这个设备分配一个惟一的地址(1~127),并且读取该设备的描述符。??   USB是一种被动的总线类型,所有USB主机与设备之间的通信都是由主机控制器发起的。USB的数据传输是在主机软件与USB设备上指定端点之间进行的。主机和端点之间的连接称为管道(pipe)。一个端点只支持一个方向的数据传输,或支持数据流入设备,或支持数据流出设备。0号端点是所有USB设备的缺省端点。当外设连接到USB,被供电并接收到总线复位信号后,USB系统软件就可通过0号端点初始化并操作USB设备了。除0号缺省端点外,其他的端点只有设置后才能被使用。??   图1以分层结构显示了USB的通信模型。其中最底层是USB接口层(USB interface layer),它提供了USB主机与设备之间的物理连接;中间层是USB设备层(USB device layer),它负责处理所有USB的数据传输,在主机端,除了对控制传输进行分析外,其余的直接送往上层;最上层是功能接口层,提供了不同类USB设备的驱动程序,在设备端对应的实体是设备中不同的接口。??   USB协议中定义了四种数据传输类型,即控制传输、批量传输、中断传输、等时传输。控制传输把特定的设备请求传送给USB设备,用来配置设备、控制设备状态等。它是一种可靠的、非周期性的传输。批量传输用于传输批量的、没有周期和传输速率要求的数据。中断传输通过对设备的查询以确定设备是否有数据需要传输,主机控制器以指定的时间间隔向设备周期性地发送中断请求。等时传输用于要求以恒定速率实时传输的数据流,但对所传送数据是否正确并无要求,常用于音频和视频数据的传送[2,3]。??      2Linux中的USB子系统??      Linux系统中将设备分为字符设备、块设备和网络设备三种类型。每个USB设备由一个USB模块驱动。该USB模块和USB子系统一同工作;但是在底层,每个USB设备仍然表现为一个字符设备、块设备或网络设备(USB以太网接口)。??   2.1USB内核??   Linux中的USB体系结构分为三层,如图2所示,类似于规范中建议的结构。Linux内核中提供了一个称为USB core的模块,该模块连接了上层USB设备驱动程序和下层主控制器驱动程序。Linux的USB内核主要由文件usb.h和usb.c组成。USB core模块包含了所有USB设备驱动和USB主控制器驱动的通用程序,它通过定义一些数据结构、宏和功能函数抽象了所有的硬件设备,给出专门的API来支持上层设备驱动程序和下层主控制器驱动程序。另外,USB内核还具有维护设备的加载/卸载、负责设备的默认配置、连接设备与对应的驱动程序关联等功能。??   

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档