SylixOS USB虚拟网卡框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SylixOS USB虚拟网卡框架相关的知识,希望对你有一定的参考价值。

1. USB子系统简介

1.1      USB简介

     USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔康柏、IBM、Microsoft等多家公司联合提出的。

1.2      USB虚拟网卡框架

1.2.1   普通网卡与USB网卡框架对比

    如图 11所示,普通网卡驱动与USB网卡驱动相比最大的区别是,USB网卡把普通的物理硬件换成了USB的物理硬件。

技术分享

图 11 USB网卡与普通网卡对比图

1.2.2   USB虚拟网卡框架

    如图 12所示,在SylixOS中,USB网卡框架中网卡驱动可大致分为4层分别为USB网卡驱动层、USB协议层、Gadget层和UDC层。

技术分享

图 12 SylixOS USB虚拟网卡框架

    USB网卡驱动层:服务对象是网络协议栈(TCP/IP或者LWIP)用来接收或发送网络报文。

    USB协议层:从USB网卡驱动层接收网络报文加工生成对应的USB报文或者,从UDC层接收USB报文转换成网络报文。

    Gadget层:完成的工作是绑定UDC层和USB协议层,注册绑定相关的回调函数,此层功能类似于Linux下的Platform功能。是为了去除耦合便于移植和代码复用。

UDC层:配置USB寄存器来实现硬件传输功能。

2. SylixOS虚拟网卡数据流

2.1      数据流整体框架

    USB数据在传输的过程中会经过如图 21所示中的相关代码层。数据每经过一个代码层,代码层会对数据进行加工处理。

技术分享

图 21 USB虚拟网卡数据分层

2.2      数据流实例

    如图 22所示,举一个数据传输的实例。上层应用要传输数据“123”(数据“123”称为原始数据),首先需要经过协议栈层。协议栈会把原始数据封装成网络报文继续向下传输。需要注意如果是普通网卡驱动最终传输的就是网络报文,但USB仍然需要对网络报文再次封装。网络报文经过USB协议层时,会根据安装好的驱动选择对应的USB驱动协议进行报文封装,把网络报文转换成USB报文。最终在USB上传输的是USB报文。发送的过程是对原始数据封装组包的过程,同理接收数据是对接收到的数据拆包解析的过程。有了这套机制,就可以保证数据可以正确传输。

技术分享

图 22 数据流实例


以上是关于SylixOS USB虚拟网卡框架的主要内容,如果未能解决你的问题,请参考以下文章

CDlinux虚拟机怎么加载USB无线网卡

linux怎么加载usb无线网卡

BT5虚拟机,USB无线网卡,能看到WLAN0,但wicd无法搜索信号?

主机 虚拟机能不能共用一个网卡

virtualbox安装xp虚拟机,加载了usb无线网卡,但是找不到那个无线网络连接,那个显示信号强度的东西?

请问一下,我才买了一个usb无线网卡,在虚拟机里连接了,但kali linux发现不了,该怎么办才