一种基于无线网卡的无感知网络桥接方法及其装置与流程

文档序号:25650425发布日期:2021-06-29 20:07阅读:169来源:国知局
一种基于无线网卡的无感知网络桥接方法及其装置与流程

1.本发明涉及无线通信技术领域,特别是涉及一种基于无线网卡的无感知网络桥接方法及其装置。


背景技术:

2.虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的cmos、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
3.在基于windows qemu虚拟机中,想要让虚拟机上网,有两种方式,一种是nat(网络地址转换)的方式,但是使用nat方式实现上网需要对虚拟网和局域网的ip地址进行统一规划,该方法由于是由纯软件实现,并且功能不全(例:不支持icmp协议,无法ping),因此,大部分人会选择使用桥接的方式使虚拟机实现上网功能。
4.现有技术中,通常需要借助tap虚拟网卡,再借助windows创建网桥的方法进行网络桥接,以实现windows qemu虚拟机上网,但是该方法在实践中经常会导致断网一会或者断网后不可恢复,应用到产品中非常有风险。


技术实现要素:

5.本申请提供一种基于无线网卡的无感知网络桥接方法及其装置,本申请基于windows内核中网卡的协议驱动进行研究,实现了一套无感知的桥接方案,以克服现有技术中的桥接网络创建过程中出现的断网现象。
6.为解决上述技术问题,本申请采用的一个技术方案是提供提供一种基于无线网卡的无感知网络桥接方法,该无感网络桥接方法包括:在虚拟机所在的windows系统的无线网卡上安装混杂模式对应的驱动的网络协议;利用所述驱动监听所述虚拟机是否有数据待发送至所述无线网卡,或所述无线网卡端是否接收到待发送给所述虚拟机的数据;如果通过所述驱动监听所述虚拟机或所述无线网卡有数据待发送,将发送方的源地址以及网络协议按照设定条件进行转换后,将所述数据发送至接收方。
7.在一实施方式中,如果通过所述驱动监听所述虚拟机或所述无线网卡有数据待发送,将发送方的源地址以及网络协议按照设定条件进行转换后,将数据发送至接收方的步骤包括:如果通过所述驱动监听到所述虚拟机有数据待发送至所述无线网卡,通过所述驱动将所述虚拟机的源mac地址修改为所述无线网卡的源mac地址;如果通过所述驱动监听到所述无线网卡端接收到待发送给所述虚拟机的数据,通过所述驱动将所述无线网卡的源mac地址修改为所述虚拟机的源mac地址。
8.在一实施方式中,所述如果通过所述驱动监听所述虚拟机或所述无线网卡有数据待发送,将发送方的源地址以及网络协议安装设定条件进行转换后,将所述数据发送至接收方的步骤包括:如果通过所述驱动监听所述虚拟机或所述无线网卡有数据待发送,通过
所述windows系统的nwifi.sys驱动文件将发送方的网络协议进行修改。
9.在一实施方式中,所述通过所述windows系统的nwifi.sys驱动文件将发送方的网络协议进行修改的步骤包括:如果通过所述驱动监听到所述虚拟机有数据待发送至所述无线网卡,通过所述nwifi.sys驱动文件将802.3网络协议转换为802.11网络协议,利用所述802.11网络协议将所述数据发送至所述无线网卡;如果通过所述驱动监听到所述无线网卡端接收到待发送给所述虚拟机的数据,通过所述nwifi.sys驱动文件将802.11网络协议转换为802.3网络协议,利用所述802.3网络协议将所述数据发送至所述虚拟机。
10.在一实施方式中,所述利用所述802.3网络协议将所述数据发送至所述虚拟机的步骤之后包括:通过所述驱动将所述无线网卡的源地址转换为所述虚拟机的源地址,以使所述虚拟机接收所述数据。
11.在一实施方式中,所述在虚拟机所在的windows系统的无线网卡上安装混杂模式对应的驱动的网络协议的步骤包括:在所述虚拟机所在的所述windows系统的虚拟网卡上安装混杂模式对应的网络协议的驱动,以在所述windows系统的无线网卡上安装所述网络协议。
12.在一实施方式中,所述在虚拟机所在的windows系统的无线网卡上安装混杂模式对应的驱动的网络协议的步骤包括:在所述虚拟机同一网段的虚拟网卡上安装混杂模式对应的网络协议的驱动,以在所有所述无线网卡上安装所述网络协议。
13.为解决上述技术问题,本申请采用的另一个技术方案是提供一种基于无线网卡的无感知网络桥接装置,包括:虚拟机;协议驱动单元,与所述虚拟机连接,用于将混杂模式对应的网络协议的驱动安装到所述无线网卡上,并利用所述驱动监听所述虚拟机与所述无线网卡是否有数据待发送;协议转换单元,与协议驱动单元连接,用于将发送方的源地址以及网络协议按照设定条件进行转换;无线接口收发单元,与所述协议驱动单元连接,用于识别通过所述接口接收或发送的数据。
14.在一实施方式中,协议驱动单元还用于将混杂模式对应的协议安装到所有与虚拟机在同一网段的系统上。
15.在一实施方式中,协议转换单元用于将发送方的源mac地址转换为接收方的源mac地址以及控制802.3网络协议与802.11网络协议的相互转换。
16.本申请的有益效果是:在虚拟机所在的windows系统的无线网卡上安装混杂模式对应的驱动的网络协议;利用驱动监听虚拟机是否有数据待发送至无线网卡,或无线网卡端是否接收到待发送给虚拟机的数据;如果通过驱动监听有虚拟机或无线网卡有数据待发送,将发送方的源地址以及网络协议按照设定条件进行转换后,将数据发送至接收方,通过上述基于windows内核中无线网卡的协议驱动建立无感知网络桥接,在虚拟机通过宿主机的网卡进行网络传输时,不影响宿主机的上网正常上网功能,实现了虚拟机的无感知网络桥接。
附图说明
17.为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
18.图1是本申请基于无线网卡的无感知网络系统一实施方式的结构示意图;
19.图2是本申请基于无线网卡的无感知网络桥接方法一实施方式的流程示意图;
20.图3为本申请基于无线网卡的无感知网络桥接装置一实施方式的结构示意图。
具体实施方式
21.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本申请保护的范围。
22.在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
23.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
24.应当理解,本文中使用的术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
25.需要说明的是,传统意义上的网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有mac地址,因此属于osi模型的第2层。它使得用户可以通过电缆或无线相互连接的重要物理硬件。在一台电脑中可以将计算机硬件分成多个物理硬件,以实现计算机同时包含有线网卡和无线网卡等多个上网物理硬件。本申请的网卡至少包括有线网卡、无线网卡、以及多个虚拟网卡等。在本申请中无线网卡是指计算机通过无线连接网络进行上网使用的硬件。
26.通常所说的无感知认证是指用户使用一台设备上网时,只有首次登录需要进行web认证,再次使用时就不需要再输入用户名密码了,即使用户异常掉线,如:关机重启、意外断网或离开校园无线网区域,当终端再次连接有线网或进入无线网络覆盖区域时均可自动认证,实现用户永远在线。这一过程由系统自动完成,对用户“无感知”。在本申请中的无感知网络桥接是指虚拟机使用宿主机的网卡进行上网时,不影响宿主机的原网卡上网情况,从而实现宿主机的无感知上网。
27.802.3是一种支持ieee802.3网络架构的技术。ieee802.3是工作组和工作组制定的电气和电子工程师协会(ieee)标准的集合,该工作组定义了有线以太网的物理层和数据链路层的介质访问控制(mac)。ieee802.11是现今无线局域网通用的标准,它是由电气和电子工程师协会(ieee)所定义的无线网络通信的标准。
28.网络桥接(bridging)是指依据osi网络模型的链路层的地址,对网络数据包进行
转发的过程。通过网桥可以把两个不同的物理局域网连接起来,是一种在链路层实现局域网互连的存储转发设备。具体地,网桥从一个局域网接收mac帧,拆封、校对、校验之后,按另一个局域网的格式重新组装,发往它的物理层,通俗地说就是通过一台设备(可能不止一个)把几个网络串起来形成的连接,在本申请中是通过虚拟网卡使虚拟机的网络与无线网卡的网络建立桥接。
29.本申请提供一种虚拟机基于无线网卡的无感知上网系统,如图1所示,图1为本申请基于无线网卡的无感知网络桥接方法,该无感知网络桥接方法包括以下步骤:
30.步骤s11:在虚拟机所在的windows系统的无线网卡上安装混杂模式对应的驱动的网络协议。
31.具体包括:将混杂模式对应的网络协议的驱动安装至windows系统的虚拟网卡上,再通过虚拟网卡与无线网卡的数据连接关系,将混杂模式对应的网络协议的驱动安装至无线网卡上。在本步骤中,协议驱动的安装可由windows系统的驱动层进行自动安装。在本步骤之前还包括:在windows系统的应用层建立一个虚拟化方案以形成一个独立于windows系统的虚拟机。
32.在本步骤中,还包括将混杂模式对应的网络协议的驱动安装至同一网段的系统中,以使同一网段的虚拟机或应用程序通过该协议驱动与无线网卡建立连接,实现接收数据包和发送数据包的功能。
33.本实施例中,通过在无线网卡上安装混杂模式对应的驱动的网络协议以使虚拟与无线网卡建立协议连接,以实现虚拟机与互联网的网络连接。
34.具体地在安装混杂模式对应的驱动的网络协议时,将网络协议的驱动设置成混杂模式,以接收所有通过该无线网卡接口的数据,并将接收到的数据发送至虚拟机。其中,需要说明的是,混杂模式是指一台机器能够接收所有经过它的数据流。通常情况下,网卡只接受来自网络端口的目的地址指向自己的数据;而当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序。
35.在本步骤之后还包括,无线网卡通过驱动将该混杂模式对应的网络协议安装成功的信息发送至虚拟机。
36.步骤s12:利用驱动监听虚拟机是否有数据待发送至无线网卡,或无线网卡端是否接收到待发送给虚拟机的数据。
37.在本步骤中,虚拟机利用驱动监听无线网卡上是否有数据流通,以及数据流通清况,其中包括监听数据包的大小以及数据帧的信息等。具体实施方式是监听虚拟机是否有数据待发送至无线网卡或无线网卡端是否接收到待发送给虚拟机的数据。如果驱动监听到有数据流通,则执行步骤s13。
38.步骤s13:如果通过驱动监听有虚拟机或无线网卡有数据待发送,经发送方的源地址以及网络协议按照设定条件进行转换后,将所述数据发送至接收方。
39.在本实施例中,发送方和接收方为虚拟机和无线网卡,当虚拟机向无线网卡发送数据包时,发送方为虚拟机,接收方为无线网卡;当无线网卡向虚拟机发送数据包时,发送方为无线网卡,接收方为虚拟机。
40.步骤s13具体包括:如果通过驱动监听到虚拟机有数据待发送至无线网卡,则通过驱动将虚拟机的源mac地址修改外无线网卡的源mac地址;如果通过驱动监听到无线网卡接
收到待发送给虚拟机的数据,通过驱动将无线网卡的源mac地址修改为虚拟机的源mac地址。
41.本步骤还包括:如果通过驱动监听有虚拟机或无线网卡有数据待发送,通过windows系统的nwifi.sys驱动文件将发送方的网络协议进行修改。具体地,如果通过驱动监听到虚拟机有数据待发送至无线网卡,通过nwifi.sys驱动文件将802.3网络协议转换为802.11网络协议,利用802.11网络协议将数据发送至无线网卡;如果通过驱动监听到无线网卡接收到待发送给虚拟机的数据,通过nwifi.sys驱动文件将802.11网络协议转换为802.3网络协议,利用802.3网络协议将数据发送至虚拟机。
42.为了具体说明上述实施方式的实施过程,具体请参阅图2,图2为本申请基于无线网卡的无感知网络系统一实施方式的信号流向示意图;包括:虚拟机100、驱动单元200、协议转换单元300、无线网卡400以及外部网卡500。
43.虚拟机100通过驱动单元200将网络协议发送至无线网卡400,并通过驱动单元200在无线网卡400上安装该网络协议。在本实施例中,网络协议为混杂模式对应的网络协议,具体实现方式是在协议安装过程中将网络协议的驱动设置为混杂模式,以使无线网卡能接收所有流通该接口的所有数据。在无线网卡400上安装成功之后还包括将安装成功的信息通过驱动单元300发送至虚拟机100。虚拟机100通过驱动单元200监听无线网卡400接收或发送的数据情况。
44.具体地,如果通过驱动单元200监听到虚拟机有数据待发送至无线网卡,将虚拟机100的发包发送至驱动单元200,通过驱动单元200将虚拟机的源mac地址修改为无线网卡的源mac地址,再将更改后的数据包的源mac地址发往协议转换单元300,通过协议转换单元300将数据包的上网协议标准由802.3转换成802.11,将源mac地址及上网协议标准经过转换的数据包发送至无线网卡400,通过无线网卡400与外部网络500进行通信连接,其中协议转换单元300的功能由windows系统内的nwifi.sys驱动文件完成。在本实施例中,外部网络500是指互联网或是独立于宿主机的数据网络,无线网卡400接收外部网络500的网络数据或向外部网络500发送网络数据。如果通过驱动监听到无线网卡端接收到待发送给虚拟机的数据,其中,该数据包括外部网卡500发送给无线网卡400的收发包;无线网卡400将接收到的数据发送至协议转换单元300,协议转换单元300将数据的802.11网络协议转换为802.3网络协议,并将转换后的数据包发送至驱动单元200,通过驱动单元200将数据包中的无线网卡的源mac地址转换成虚拟网卡的源mac地址,并将转换后的数据发送至虚拟机100以使虚拟机100能接收到无线网卡400发送的数据,避免丢包的现象发生,从而实现虚拟机100与无线网卡400的数据发送和接收的无感知桥接。
45.需要说明的是,在本实施例中,驱动单元200的驱动与协议转换单元300的协议转换操作均由软件自动完成,驱动单元200的驱动与协议转换单元300的协议转换操作可在虚拟网卡上完成。
46.本实施例中的系统为windows系统。在实现windows系统内的无线网卡无感知桥接之前还包括在windows系统中建立虚拟化方案,虚拟化方案可以为应用软件界面等,在本实施例中,虚拟化方案为虚拟机100,windows系统为宿主机。
47.在另一实施方式中,通过在虚拟机同一网段的虚拟网卡上安装混杂模式对应的驱动的网络协议,以在所有无线网卡上安装该网络协议。具体地,同一网段的虚拟网卡可以进
行信息交互,在传输数据过程中,通过对数据的mac地址和网络协议进行修改可在同一网段的其它设备上进行数据传输。
48.需要说明的是,本申请中的网络协议为混杂模式对应的网络协议,在该网络协议的驱动下,所有流经安装有该网络协议的网卡的数据时,都会被该网卡获取。另外,虚拟机100是独立于宿主机的“电脑”,是一个虚拟电脑,可以实现实体电脑所有能实现的功能,虚拟机100也可以使一个应用软件。
49.本申请中的网络桥接方法包括网络的应用层、驱动层、协议层和硬件层,无线网卡的功能在硬件层进行实现,具体地包括接收/发送外部网络的数据包,和接收/发送虚拟机和宿主机的数据请求。虚拟机在应用层进行实现,虚拟机本身可以是一个应用软件。驱动层和协议层分别对应驱动单元和协议转换单元,用于驱动网络协议的安装以及网络协议的转换。需要说明的是,在本实施例中的,驱动单元和协议转换单元可在应用层进行实现,并未有具体划分,只是为了具体解释本实施例的虚拟协议的安装过程将其细划为驱动层和协议层,在此不是限定。
50.本实施例通过驱动将虚拟机100的上网协议安装到无线网卡400上,并通过该驱动监听无线网卡400的网络数据,并通过该驱动实现虚拟机100与无线网卡400的信息交互,从而实现虚拟机的上网功能,在本实施例中,混杂模式对应的网络协议的驱动安装不会改变宿主机原有的上网协议以及协议驱动,从而实现虚拟机与宿主机的无感知上网,具体相当于在无线网卡上添加一个新的网络协议。一旦该协议安装成功,虚拟机100通过该驱动监听无线网卡400上的网络数据,并获取到无线网卡400上流通的数据,具体包括:如果监听到无线网卡400上有数据待发送,则通过驱动对数据包的信息进行转换以传输给虚拟机100;如果监听到虚拟机有数据待发送出去,则通过驱动对数据包的信息进行转换成无线网卡能接收的数据,以传输给无线网卡400。通过无线网卡400与外部网络500进行数据传输。
51.本实施例的有益效果是:在虚拟机所在的windows系统的无线网卡上安装混杂模式对应的驱动的网络协议;利用驱动监听虚拟机是否有数据待发送至无线网卡,或无线网卡端是否接收到待发送给虚拟机的数据;如果通过驱动监听有虚拟机或无线网卡有数据待发送,将发送方的源地址以及网络协议按照设定条件进行转换后,将数据发送至接收方,通过上述方式能将虚拟机的数据发送至无线网卡,也能接收到无线网卡的数据,而不会出现丢包的现象,实现了虚拟机与无线网卡的无障碍网络连接,另一方面,通过在宿主机的无线网卡上安装混杂模式对应的驱动的网络协议,而不会影响宿主机的原上网功能,从而实现了无感知上网。
52.本申请还提供一种基于无线网卡的无感知网络桥接装置,具体请参阅图3,图3为本申请基于无线网卡的无感知网络桥接装置一实施方式的结构示意图。如图3所示,该基于无线网卡的无感知网络桥接装置30包括:虚拟机31;协议驱动单元32,与所述虚拟机连接,用于将混杂模式对应的驱动的网络协议安装到无线网卡上,并利用驱动监听虚拟机与无线网卡是否有数据待发送;协议转换单元33,与协议驱动单元连接,用于将发送方的源地址以及网络协议按照设定条件进行转换;无线接口收/发单元34,与所述协议转换单元耦接,用于识别通过无线接口接收或发送的数据。具体地,在本实施例中,协议驱动单元32利用该混杂模式对应的驱动监听虚拟和无线网卡是否有数据待发送的具体过程包括:监听虚拟机是否有数据待发送至无线网卡,或无线网卡端是否接收到待发送给虚拟机的数据;如果监听
到虚拟机有数据待发送至无线网卡,则将虚拟机的源mac地址修改为无线网卡的源mac地址,并将通过协议转换单元33将802.3网络协议转换为802.11网络协议,利用802.11网络协议将虚拟机的数据发送至无线网卡;如果监听到无线网卡端接收到待发送给虚拟机的数据,则将无线网卡的源mac地址修改为虚拟机的源mac地址,并通过协议转换单元33将802.11网络协议转换为802.3网络协议,利用802.3网络协议将无线网卡的网络协议发送至虚拟机。协议转换单元33用于控制802.3网络协议与802.11网络协议的相互转换,当虚拟机向无线网卡发送数据时,控制将数据包的网络发送标准改为802.11,当无线网卡向虚拟机发送数据时,控制将数据包的网络发送标准改为802.3。
53.在另一实施方式中,协议驱动单元32用于将混杂模式对应的协议安装到所有与虚拟机在同一网段的系统上。通过上述方式,以使与虚拟机在同一网段的系统也能使用无线网卡进行数据传输。具体地,同一网段是指上网的ip地址在同一网段。
54.在本实施例中,无线接口收/发单元34还与无线网卡连接,用于接收或发送通过无线网卡流通的数据或数据包。具体包括:接收虚拟机发送的数据请求并将该数据请求发送至互联网,接收互联网发送的数据并将该数据发送至虚拟机。其中,无线接口收发单元还包括将接收到的数据进行储存到物理网卡上,形成上网记录,在此不作限定。
55.需要说明的是,本实施例中的虚拟机31、协议驱动单元32、协议转换单元33、无线接口收/发单元34为虚拟模块,由计算机的软件应用层进行实现,上述的连接关系均为信号的耦接。本实施例中的虚拟机31、协议驱动单元32、协议转换单元33、无线接口收/发单元34与第二实施例中的虚拟机100、驱动单元200、协议转换单元300可以相同也可以不同,在此不作限定。
56.本实施例的有益效果是:通过协议驱动单元32将混杂模式对应的网络协议的驱动安装到无线网卡上,并监听虚拟机是否有数据待发送至无线网卡,或无线网卡端是否接收到待发送给虚拟机的数据;如果监听到虚拟机有数据待发送至无线网卡,则将虚拟机的源mac地址修改为无线网卡的源mac地址,并将通过协议转换单元33将802.3网络协议转换为802.11网络协议,利用802.11网络协议将虚拟机的数据发送至无线网卡;如果监听到无线网卡端接收到待发送给虚拟机的数据,则将无线网卡的源mac地址修改为虚拟机的源mac地址,并通过协议转换单元33将802.11网络协议转换为802.3网络协议,利用802.3网络协议将无线网卡的网络协议发送至虚拟机,从而实现虚拟机与无线网卡的无感知桥接,以使虚拟机能上网。
57.以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1