CN105991679B - 一种网络分享的实现方法和装置 - Google Patents
一种网络分享的实现方法和装置 Download PDFInfo
- Publication number
- CN105991679B CN105991679B CN201510050899.2A CN201510050899A CN105991679B CN 105991679 B CN105991679 B CN 105991679B CN 201510050899 A CN201510050899 A CN 201510050899A CN 105991679 B CN105991679 B CN 105991679B
- Authority
- CN
- China
- Prior art keywords
- socket
- data message
- wireless network
- network card
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2517—Translation of Internet protocol [IP] addresses using port numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
- H04L61/2525—Translation at a client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
- H04L61/2528—Translation at a proxy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Abstract
本发明提供了一种网络分享的实现方法和装置,无线网卡连接至PC,所述方法包括:所述无线网卡的驱动模块将通过无线网卡接收到的无线协议的数据报文转换为以太网协议的数据报文,网络地址转换(NAT)模块确定与该数据报文的源地址和目的地址相关联的套接字(Socket),将该数据报文的有效数据通过该Socket发送;和/或,所述NAT模块通过Socket接收到数据后,将该数据封装成以太网协议的数据报文,其中该数据报文的目的地址为与该Socket相关联的源地址,数据报文的源地址为与该Socket相关联的目的地址;所述驱动模块将该数据报文转换为无线协议的数据报文后通过无线网卡发送。本发明能够实现PC热点的功能且不受限于操作系统框架。
Description
【技术领域】
本发明涉及网络通信技术领域,特别涉及一种网络分享的实现方法和装置。
【背景技术】
随着智能移动设备对wifi(无线保真)需求的日益增加,利用PC进行与智能移动设备的网络分享技术即PC热点技术迅速兴起。所谓PC热点技术就是将连接网络的PC作为热点,分享wifi信号给智能移动设备。这样手机、平板或者其他笔记本等智能移动设备就能够通过该PC连接网络,实现同时上网,如图1中所示。
NAT(Network Address Translation,网络地址转换)是PC热点稳定性及兼容性的核心,在Windows平台,现有实现PC热点的NAT方案主要有两种:
一是利用Windows系统自带组件ICS(Internet Connection Sharing,网络连接共享),但由于ICS组件非Windows系统的核心组件,且对系统其他服务依赖较多,在实际使用过程中存在失败率高,稳定性差,出现问题定位困难等缺陷。
针对ICS的上述缺陷,出现了另一种方案,即开发NDIS(Network DriverInterface Specification,网络驱动接口规范)进行网络地址转换。然而,由于NDIS作为Windows系统中的中间层,受限于Windows系统框架,在进行数据包处理时,需要经由Windows系统的协议驱动,因此在NDIS驱动的安装过程中,会出现Windows系统的协议驱动认为网卡故障而断开网络连接的情况,影响用户使用。另外NDIS驱动安装成功率低,卸载困难,NDIS作为内核态驱动一旦出现BUG,会导致PC蓝屏死机。
【发明内容】
有鉴于此,本发明提供了一种网络分享的方法和装置,以便于实现PC热点的功能且摆脱操作系统框架的限制。
具体技术方案如下:
本发明提供了一种网络分享的实现方法,无线网卡连接至PC,所述方法包括:
所述无线网卡的驱动模块将通过无线网卡接收到的无线协议的数据报文转换为以太网协议的数据报文,NAT模块确定与该数据报文的源地址和目的地址相关联的套接字Socket,将该数据报文的有效数据通过该Socket发送;和/或,
所述NAT模块通过Socket接收到数据后,将该数据封装成以太网协议的数据报文,其中该数据报文的目的地址为与该Socket相关联的源地址,数据报文的源地址为与该Socket相关联的目的地址;所述驱动模块将该数据报文转换为无线协议的数据报文后通过无线网卡发送。
根据本发明一优选实施方式,在所述驱动模块在安装过程中声明自身为非网卡驱动。
根据本发明一优选实施方式,该方法还包括:
所述驱动模块将通过所述无线网卡接收到的无线协议的连接请求转换为以太网协议的连接请求;
所述NAT模块创建与所述连接请求的源地址和目的地址相关联的Socket,创建的Socket用于所述PC与所述连接请求的目的地址对应的设备建立网络连接;
所述NAT模块将通过该Socket接收到的连接响应封装成以太网协议的连接响应,其中该连接响应的目的地址为与该Socket相关联的源地址,连接响应的源地址为与该Socket相关联的目的地址;所述驱动模块将该连接响应转换为无线协议的连接响应后通过无线网卡发送。
根据本发明一优选实施方式,将该数据报文的有效数据通过该Socket发送包括:
将该数据报文的有效数据通过该Socket发送给所述PC中的网络协议驱动,以便于所述PC中的网络协议驱动利用所述Socket的信息封装所述有效数据后,将封装得到的数据报文通过所述网络连接发送。
根据本发明一优选实施方式,该方法还包括:所述无线网卡预先与智能移动终端建立无线网络连接;
所述通过无线网卡接收到的无线协议的数据报文来自所述智能移动终端;
通过无线网卡发送的无线协议的数据报文发送给所述智能移动终端。
根据本发明一优选实施方式,所述NAT模块置于所述驱动模块中或者置于上层应用中。
本发明还提供了一种网络分享的实现装置,该装置包括:无线网卡的驱动模块和NAT模块;
所述驱动模块,用于将通过无线网卡接收到的无线协议的数据报文转换为以太网协议的数据报文,将转换后的数据报文提供给所述NAT模块;
所述NAT模块,用于确定与所述驱动模块提供的数据报文的源地址和目的地址相关联的Socket,将该数据报文的有效数据通过该Socket发送;和/或,
所述NAT模块,用于通过Socket接收到数据后,将该数据封装成以太网协议的数据报文,将封装后的数据报文提供给所述驱动模块,其中该数据报文的目的地址为与该Socket相关联的源地址,数据报文的源地址为与该Socket相关联的目的地址;
所述驱动模块,用于将所述NAT模块提供的数据报文转换为无线协议的数据报文后通过无线网卡发送。
根据本发明一优选实施方式,所述驱动模块在所述无线网卡连接PC时的安装过程中,声明该驱动模块为非网卡驱动。
根据本发明一优选实施方式,所述驱动模块,还用于将通过所述无线网卡接收到的无线协议的连接请求转换为以太网协议的连接请求,将转换后的连接请求提供给所述NAT模块;将所述NAT模块提供的连接响应转换为无线协议的连接响应后,通过无线网卡发送;
所述NAT模块,还用于创建与所述驱动模块提供的连接请求的源地址和目的地址相关联的Socket,创建的Socket用于所述PC与所述连接请求的目的地址对应的设备建立网络连接;将通过该Socket接收到的连接响应封装成以太网协议的连接响应,其中该连接响应的目的地址为与该Socket相关联的源地址,连接响应的源地址为与该Socket相关联的目的地址,将封装后的连接响应提供给所述驱动模块。
根据本发明一优选实施方式,所述驱动模块在将数据报文的有效数据通过该Socket发送时,发送给所述PC中的网络协议驱动,以便于所述PC中的网络协议驱动利用所述Socket的信息封装所述有效数据后,将封装得到的数据报文通过所述网络连接发送。
根据本发明一优选实施方式,所述驱动模块,还用于建立所述无线网卡与智能移动终端之间的无线网络连接;通过无线网卡接收来自所述智能移动终端的无线协议的数据报文,通过无线网卡将无线协议的数据报文发送给所述智能移动终端。
根据本发明一优选实施方式,所述NAT模块置于所述驱动模块中,或者置于上层应用中。
由以上技术方案可以看出,本发明由无线网卡的驱动模块和NAT模块对数据报文进行处理实现PC热点,而非操作系统,因此不再受限制于操作系统框架。
【附图说明】
图1为PC热点技术的示意图;
图2为本发明实施例提供的一个实现方法的流程图;
图3为本发明实施例提供的框架示意图;
图4为本发明实施例提供的装置结构图;
图5为本发明实施例提供的实现PC热点的一个实例图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图2为本发明实施例提供的一个实现方法的流程图,如图2中所示,该方法可以包括以下步骤:
在201中,无线网卡连接PC时,无线网卡的驱动模块在安装过程中声明自身为非网卡设备驱动。
本发明实施例中,无线网卡作为一个硬件需要连接PC,从而实现将PC作为一个热点来进行网络分享。这里无线网卡的形式以及无线网卡与PC的连接形式可以多种多样,例如,无线网卡可以为USB设备的形式,无线网卡采用即插即用的方式与PC连接。当无线网卡插入PC后,需要安装无线网卡的驱动,这里可以是存储于硬件存储空间的驱动自动被识别、读取和安装,也可以是用户手动操作PC进行无线网卡驱动的安装。
本发明实施中,在无线网卡的驱动安装过程中,驱动模块可以声明自身为网卡驱动,也可以声明自身为非网卡驱动,优选后一种方式,其中,申明自身为非网卡驱动,也就是说,可以申明自身为网卡驱动以外的任意一种驱动类型,例如显卡驱动、鼠标驱动等。
通常在Windows系统中,处理网络数据报文的硬件都声明为网卡类型,求助于操作系统现有的协议栈和中转服务来处理数据。一旦声明成网卡类型,如果所处的网络环境是限制共享网络的网卡数量的,例如一个账号只允许一个网卡同时使用网络,那么该连接PC的无线网卡可能会被网卡检测机制检测出,从而被阻止使用。在本发明中,用于进行网络分享的无线网卡在连接PC时,无线网卡驱动在安装过程中可以声明自身为非网卡设备,例如可以是鼠标、键盘、摄像头、显卡等设备驱动。这样,操作系统就将该驱动作为非网卡驱动,那么通常的网卡探测机制就无法探测到该无线网卡,并且基于网卡限制用户网络共享行为的方式就无法产生效果。
驱动在安装的过程中,操作系统读取驱动提供的INF(设备信息文件),诸如:
[Version]
Signature="$Windows NT$"
Class=Sample
ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171}
其中Class=Sample行即表明当前设备所属的类型。如果申明为网卡,则可以为Class=Net。
然而,驱动一旦申明成自身是网卡驱动,则操作系统会按照网卡的标准来询问网卡,比如网卡的速度、网卡的MAC地址等信息。一旦网卡被安装,就会被操作系统中的网络防火墙,杀毒软件等软件监视,造成工作开销非常大,并且容易造成一旦这些软件中的任何一个处理上存在问题,就会造成整条链路上面的所有软件全部异常,也会影响网卡的工作,因为这部分数据是串行处理的。
在本发明实施例中,声明驱动为非网卡驱动时,可设置的Class类型是很多的,比如蓝牙的Class=Bluetooth,摄像头的Class=Image等等。
在驱动安装完成后,该驱动模块的AP(热点)功能可以默认开启,也可以在收到控制命令后开启。AP功能开启后,在该无线网卡的无线通信范围内,智能终端设备可以与该无线网卡建立无线连接,即执行202,无线网卡与智能终端设备建立无线网络连接。建立无线网络连接的过程可以采用现有实现方式,在此不再详述。
当智能终端设备要将PC作为热点,通过PC访问网络时,需要建立与外部网络中要访问设备(例如某个服务提供商的服务器)之间的网络连接,因此智能终端设备会通过与无线网卡之间的无线网络连接发送无线协议的连接请求,该连接请求的源地址为智能终端设备的IP地址,目的地址为要访问设备的IP地址。
在203中,驱动模块通过无线网卡接收到无线协议的连接请求后,将无线协议的连接请求转换为以太网协议的连接请求。
例如,本发明实施例中无线协议采用802.11,以太网协议采用802.3,则本步骤将802.11无线协议的连接请求转换为802.3以太网协议的连接请求。
在204中,NAT模块创建与该连接请求的源地址和目的地址相关联的Socket。
本步骤可以由无线网卡的驱动执行,也可以由上层应用执行,该上层应用可以为PC中的应用模块,当诸如Windows等操作系统与无线网卡通信时,操作系统可以创建一个应用模块(即进程),并将无线网卡的驱动加载至该应用模块,该应用模块可以采用诸如WUDFHost进程实现。
NAT模块通过文件读写接口从驱动模块获取到连接请求时,从该连接请求中解析得到源地址和目的地址,针对该连接请求创建一个Socket,该Socket的IP地址为PC的IP地址,端口号为新分配的端口号。创建Socket后,维护该Socket与源地址、目标地址的关联关系。
该创建的Socket用于PC与该连接请求的目的地址对应的设备建立网络连接,PC中的网络协议驱动(诸如TCP/IP协议驱动)利用该创建的Socket完成与目的地址对应的设备之间网络连接的建立,也就是说,该网络连接对连接请求的目的地址对应的设备暴露的是PC的IP地址和端口号,隐藏了实际的请求者(智能终端设备)。
对于外部网络返回的连接响应,PC中的网络协议驱动会将该连接响应剥离协议头后发送给Socket。NAT模块将通过该Socket接收到的连接响应封装成以太网协议的连接响应,其中该连接响应的目的地址为与该Socket相关联的源地址,连接响应的源地址为与该Socket相关联的目的地址。驱动模块将该连接响应转换为无线协议的连接响应后通过无线网卡发送给智能终端设备。
一旦该网络连接建立完成后,智能终端设备可以开始经由PC与要访问的设备之间进行数据传输,即执行以下步骤。
在205中,驱动模块将通过无线网卡接收到的无线协议的数据报文转换为以太网协议的数据报文。
智能终端设备发送数据报文给无线网卡,该数据报文的源IP地址为智能终端设备的IP地址,目的地址为要访问设备的IP地址。本步骤可以由驱动模块执行,驱动模块通过无线网卡接收到该数据报文后,进行从无线协议至以太网协议的转换。
在206中,NAT模块确定与该数据报文的源地址和目的地址相关联的Socket,将该数据报文的有效数据通过该Socket发送。
NAT模块通过文件读写接口从驱动模块获取到数据报文后,通过之前维护的源地址、目的地址与Socket之间的关联关系,可以找到与该数据报文的源地址、目的地址相关联的Socket。然后将以太网协议的数据报文的协议头剥离,将其中的有效数据通过该Socket发送。
PC中的网络协议驱动利用该Socket的信息(IP地址和端口号)封装该有效数据后,将封装得到的数据报文通过之前建立的PC与要访问的设备之间的网络连接发送。封装后的数据报文的源地址为PC的IP地址。要访问的设备接收到该数据报文后,会向PC返回响应的数据报文,PC中的网络协议驱动将该响应的数据报文中的有效数据发送至对应的Socket。
在207中,NAT模块通过Socket接收到数据后,将该数据封装成以太网协议的数据报文,其中该数据报文的目的地址为与该Socket相关联的源地址,数据报文的源地址为与该Socket相关联的目的地址。
NAT模块通过Socket接收到数据后,确定与该Socket相关联的源地址和目的地址,其中源地址为智能终端设备的IP地址,目的地址为要访问设备的IP地址,NAT模块在进行以太网协议的数据报文封装时,将要访问的IP地址作为数据报文的源地址,将智能终端设备的IP地址作为数据报文的目的地址。
在208中,驱动模块将以太网协议的数据报文转换为无线协议的数据报文后,通过无线网卡发送。
驱动模块通过文件读写接口将以太网协议的数据报文转换为无线协议的数据报文后,通过无线网卡发送给智能终端设备。
由上述流程可以看出,本发明实施例基于如图3中所示的框架,无线网卡的硬件作为连接PC的实体以及面向智能终端设备收发数据报文的接口,驱动作为添加到操作系统中的一小块代码,包含有关硬件的信息,使得计算机能够与该硬件进行通信。协议栈是本发明实施例中各层协议的总和,反映了本发明实施例中数据报文传输的过程。操作系统负责完成PC与外部网络之间的连接建立和数据报文传输。
以上是对本发明所提供的方法进行的详细描述,下面对本发明提供的装置进行详细描述。图4为本发明实施例提供的装置结构图,如图4中所示,该装置可以包括无线网卡的驱动模块01和NAT模块02。其中无线网卡作为一个硬件需要连接PC,无线网卡的形式以及无线网卡与PC的形式可以多种多样,在本发明实施例中优选无线网卡为USB设备的形式,无线网卡采用即插即用的形式与PC连接。当无线网卡连接PC时,驱动模块01在安装过程中可以声明自身为网卡驱动,也可以声明自身为非网卡设备,优选后一种方式。驱动模块01可以声明自身为诸如鼠标、键盘、摄像头、显卡等设备驱动。这样,操作系统就将该驱动作为非网卡驱动,那么通常的网卡探测机制就无法探测到该无线网卡,并且基于网卡限制用户网络共享行为的方式就无法产生效果。
驱动模块01首先建立无线网卡与智能移动终端之间的无线网络连接;通过无线网卡接收来自智能移动终端的无线协议的连接请求和数据报文,通过无线网卡将无线协议的数据报文发送给智能移动终端。
当智能终端设备要将PC作为热点,通过PC访问网络时,需要建立与要访问设备之间的网络连接,因此智能终端设备会通过与无线网卡之间的无线网络连接发送无线协议的连接请求。此时驱动模块01将通过无线网卡接收到的无线协议的连接请求转换为以太网协议的连接请求,将转换后的连接请求提供给NAT模块02。
NAT模块02通过文件读写接口从驱动模块01获取到连接请求时,创建与驱动模块01提供的连接请求的源地址和目的地址相关联的Socket,该Socket的IP地址为PC的IP地址,端口号为新分配的端口号。该创建的Socket用于PC与连接请求的目的地址对应的设备建立网络连接,PC中的网络协议驱动(诸如TCP/IP协议驱动)利用该创建的Socket完成与目的地址对应的设备之间网络连接的建立,也就是说,该网络连接对连接请求的目的地址对应的设备暴露的是PC的IP地址和端口号,隐藏了实际的请求者(智能终端设备)。
对于外部网络返回的连接响应,PC中的网络协议驱动会将该连接响应剥离协议头后发送给Socket。NAT模块02将通过该Socket接收到的连接响应封装成以太网协议的连接响应,其中该连接响应的目的地址为与该Socket相关联的源地址,连接响应的源地址为与该Socket相关联的目的地址,然后将封装后的连接响应发送给驱动模块01。驱动模块01将该连接响应转换为无线协议的连接响应后通过无线网卡发送给智能终端设备。
该装置在实现PC热点的主要过程中,对于智能终端设备发送数据报文至要访问的设备(外部网络中的设备),驱动模块01可以将通过无线网卡接收到的无线协议的数据报文转换为以太网协议的数据报文,将转换后的数据报文提供给NAT模块02。NAT模块02通过文件读写接口从驱动模块01获取到数据报文后,确定与驱动模块01提供的数据报文的源地址和目的地址相关联的Socket,将该数据报文的有效数据通过该Socket发送。
然后PC中的网络协议驱动利用该Socket的信息(IP地址和端口号)封装该有效数据后,将封装得到的数据报文通过之前建立的PC与要访问的设备之间的网络连接发送。封装后的数据报文的源地址为PC的IP地址。要访问的设备接收到该数据报文后,会向PC返回响应的数据报文,PC中的网络协议驱动将该响应的数据报文中的有效数据发送至对应的Socket。
NAT模块02通过Socket接收到数据后,将该数据封装成以太网协议的数据报文,将封装后的数据报文提供给驱动模块01,其中该数据报文的目的地址为与该Socket相关联的源地址,数据报文的源地址为与该Socket相关联的目的地址。驱动模块01将NAT模块02提供的数据报文转换为无线协议的数据报文后通过无线网卡发送给智能终端设备。
上述NAT模块02可以设置于驱动模块01中,即都属于无线网卡驱动,也可以设置于上层应用中。
下面举一个例子,假设当IP地址为192.168.0.3的智能终端设备通过PC热点要访问外网中IP地址为10.11.12.13的服务器时,如图5所示,首先将USB形式的无线网卡插入PC,该无线网卡类似一个U盘,插入PC后,无线网卡存储空间中的驱动被自动识别和安装,在安装过程中驱动声明自身为非网卡设备驱动。驱动完成后,默认开启AP功能。智能终端设备找到该无线网卡的标识,然后与该无线网卡建立wifi连接。
智能终端设备要访问服务器时,发送源地址为192.168.0.3,目的地址为10.11.12.13的连接请求。驱动模块通过无线网卡接收到该连接请求后,将无线协议的连接请求转换为以太网协议的连接请求。应用模块通过文件读写接口获取到该连接请求后,创建与源地址192.168.0.3、目的地址10.11.12.13相关联的Socket,该Socket的IP地址为PC的IP,假设为:192.158.0.1,端口号为1024。然后PC中的TCP/IP协议驱动利用该Socket与IP地址为10.11.12.13的服务器建立网络连接,对于服务器而言,对端设备为PC,即对服务器暴露的是PC的IP地址和端口号,而隐藏了智能终端设备。
终端设备发送源IP地址为192.168.0.3,目的地址为10.11.12.13的数据报文,驱动模块通过无线网卡收到该数据报文后,将该数据报文从wifi协议转换为以太网协议。应用模块确定与该数据报文的源地址和目的地址相关联的Socket,将其中的有效数据通过Socket发送,PC中的TCP/IP协议驱动利用Socket的IP地址和端口号封装该有效数据,封装得到的数据报文的源IP地址为192.158.0.1,端口号为1024,目的IP地址为10.11.12.13,将封装得到的数据报文发送给服务器。
对于服务器返回的响应数据报文,则PC中的TCP/IP协议驱动会将其中的有效数据通过Socket发送给应用模块,应用模块将该数据封装成以太网协议的数据报文,其中该数据报文的源地址为Socket相关联的目的地址,即10.11.12.13,目的地址为Socket相关联的源地址,即192.168.0.3,然后应用模块将封装后的数据报文发送给驱动模块。驱动模块将以太网协议的数据报文转换为wifi协议后,通过无线网卡发送给智能终端。
另外,在本发明实施例中,如果PC所使用的网络宽带类型是不限制网卡数量的,诸如大多数家庭类型所使用的宽带是不限制同一账号接入的终端数量的,那么上述的无线网卡连接PC后,在无线网卡的驱动安装过程中就可以声明自身为网卡设备。
但也有些情况,PC所使用的网络宽带类型是限制网卡数量的,例如有些校园网环境,学校会限制学生的上网共享,一个账号只能在一台设备上使用,例如,如果PC在用,那么手机就不能使用了。并且学校一般安装了使用严密监控措施的客户端,一旦发现PC上有多块网卡,就会禁用网络服务。对于这种情况,本发明实施例中上述的无线网卡连接PC后,在无线网卡的驱动安装过程中就可以声明自身为非网卡设备,那么上述客户端就监控不到该网络共享行为。
由以上描述可以看出,本发明提供的方法和装置具备以下优点:
1)本发明由无线网卡的驱动模块和NAT模块对数据报文进行处理实现PC热点,而非操作系统,因此不再受限制于操作系统框架。
2)另外,由于驱动可以不声明硬件为网卡,因此不会在驱动的安装过程中出现Windows系统的协议驱动认为网卡故障而断开网络连接的情况,且基于网卡探测机制对网络分享行为进行的限制都是无效的。
3)本发明中驱动直接操作硬件,即与无线网卡硬件的交互由无线网卡的驱动直接执行(现有技术中是由操作系统执行),绕过操作系统并且工作在用户态而非内核态(即进程执行的是用户代码而非操作系统的内核代码),使得系统兼容性问题不再存在,即使驱动程序本身存在BUG导致崩溃,也不会导致操作系统出现问题,避免PC蓝屏死机,使得用户的风险最小化。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种网络分享的实现方法,其特征在于,无线网卡连接至PC,所述方法包括:
所述无线网卡的驱动模块将通过无线网卡接收到的无线协议的数据报文转换为以太网协议的数据报文,网络地址转换NAT模块确定与该数据报文的源地址和目的地址相关联的套接字Socket,将该数据报文的有效数据通过该Socket发送;和/或,
所述NAT模块通过Socket接收到数据后,将该数据封装成以太网协议的数据报文,其中该数据报文的目的地址为与该Socket相关联的源地址,数据报文的源地址为与该Socket相关联的目的地址;所述驱动模块将该数据报文转换为无线协议的数据报文后通过无线网卡发送。
2.根据权利要求1所述的方法,其特征在于,所述驱动模块在安装过程中声明自身为非网卡驱动。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:
所述驱动模块将通过所述无线网卡接收到的无线协议的连接请求转换为以太网协议的连接请求;
所述NAT模块创建与所述连接请求的源地址和目的地址相关联的Socket,创建的Socket用于所述PC与所述连接请求的目的地址对应的设备建立网络连接;
所述NAT模块将通过该Socket接收到的连接响应封装成以太网协议的连接响应,其中该连接响应的目的地址为与该Socket相关联的源地址,连接响应的源地址为与该Socket相关联的目的地址;所述驱动模块将该连接响应转换为无线协议的连接响应后通过无线网卡发送。
4.根据权利要求3所述的方法,其特征在于,将该数据报文的有效数据通过该Socket发送包括:
将该数据报文的有效数据通过该Socket发送给所述PC中的网络协议驱动,以便于所述PC中的网络协议驱动利用所述Socket的信息封装所述有效数据后,将封装得到的数据报文通过所述网络连接发送。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:所述无线网卡预先与智能移动终端建立无线网络连接;
所述通过无线网卡接收到的无线协议的数据报文来自所述智能移动终端;
通过无线网卡发送的无线协议的数据报文发送给所述智能移动终端。
6.根据权利要求1至5任一权项所述的方法,其特征在于,所述NAT模块置于所述驱动模块中或者置于上层应用中。
7.一种网络分享的实现装置,其特征在于,该装置包括:无线网卡的驱动模块和NAT模块,所述无线网卡连接至PC;
所述驱动模块,用于将通过无线网卡接收到的无线协议的数据报文转换为以太网协议的数据报文,将转换后的数据报文提供给所述NAT模块;
所述NAT模块,用于确定与所述驱动模块提供的数据报文的源地址和目的地址相关联的Socket,将该数据报文的有效数据通过该Socket发送;和/或,
所述NAT模块,用于通过Socket接收到数据后,将该数据封装成以太网协议的数据报文,将封装后的数据报文提供给所述驱动模块,其中该数据报文的目的地址为与该Socket相关联的源地址,数据报文的源地址为与该Socket相关联的目的地址;
所述驱动模块,用于将所述NAT模块提供的数据报文转换为无线协议的数据报文后通过无线网卡发送。
8.根据权利要求7所述的装置,其特征在于,所述驱动模块在所述无线网卡连接PC时的安装过程中,声明该驱动模块为非网卡驱动。
9.根据权利要求7所述的装置,其特征在于,所述驱动模块,还用于将通过所述无线网卡接收到的无线协议的连接请求转换为以太网协议的连接请求,将转换后的连接请求提供给所述NAT模块;将所述NAT模块提供的连接响应转换为无线协议的连接响应后,通过无线网卡发送;
所述NAT模块,还用于创建与所述驱动模块提供的连接请求的源地址和目的地址相关联的Socket,创建的Socket用于所述PC与所述连接请求的目的地址对应的设备建立网络连接;将通过该Socket接收到的连接响应封装成以太网协议的连接响应,其中该连接响应的目的地址为与该Socket相关联的源地址,连接响应的源地址为与该Socket相关联的目的地址,将封装后的连接响应提供给所述驱动模块。
10.根据权利要求9所述的装置,其特征在于,所述NAT模块在将数据报文的有效数据通过该Socket发送时,发送给所述PC中的网络协议驱动,以便于所述PC中的网络协议驱动利用所述Socket的信息封装所述有效数据后,将封装得到的数据报文通过所述网络连接发送。
11.根据权利要求7所述的装置,其特征在于,所述驱动模块,还用于建立所述无线网卡与智能移动终端之间的无线网络连接;通过无线网卡接收来自所述智能移动终端的无线协议的数据报文,通过无线网卡将无线协议的数据报文发送给所述智能移动终端。
12.根据权利要求7至11任一权项所述的装置,其特征在于,所述NAT模块置于所述驱动模块中,或者置于上层应用中。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510050899.2A CN105991679B (zh) | 2015-01-30 | 2015-01-30 | 一种网络分享的实现方法和装置 |
JP2017540199A JP6665190B2 (ja) | 2015-01-30 | 2016-01-21 | ネットワーク共有実施方法及び装置 |
PCT/CN2016/071549 WO2016119623A1 (zh) | 2015-01-30 | 2016-01-21 | 一种网络分享的实现方法和装置 |
US15/645,902 US10499311B2 (en) | 2015-01-30 | 2017-07-10 | Method and apparatus for implementing network sharing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510050899.2A CN105991679B (zh) | 2015-01-30 | 2015-01-30 | 一种网络分享的实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105991679A CN105991679A (zh) | 2016-10-05 |
CN105991679B true CN105991679B (zh) | 2019-07-09 |
Family
ID=56542399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510050899.2A Active CN105991679B (zh) | 2015-01-30 | 2015-01-30 | 一种网络分享的实现方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10499311B2 (zh) |
JP (1) | JP6665190B2 (zh) |
CN (1) | CN105991679B (zh) |
WO (1) | WO2016119623A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102015016616A1 (de) * | 2015-12-22 | 2017-06-22 | Giesecke & Devrient Gmbh | Vorrichtung und Verfahren zur Verbindung einer Produktionsvorrichtung mit einem Netzwerk |
US11838375B2 (en) * | 2020-11-12 | 2023-12-05 | Harman International Industries, Incorporated | Universal software communication bus |
CN112968791B (zh) * | 2021-01-20 | 2022-08-05 | 福建新大陆通信科技股份有限公司 | 一种CTID智能门禁外接usb网卡通信方法及系统 |
CN114499924A (zh) * | 2021-12-02 | 2022-05-13 | 厦门市美亚柏科信息股份有限公司 | 基于网络接口控制器的数据防泄漏方法及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101511132A (zh) * | 2009-03-23 | 2009-08-19 | 杭州华三通信技术有限公司 | 一种数据报文的转发方法和系统 |
CN101562864A (zh) * | 2009-05-12 | 2009-10-21 | 深圳华为通信技术有限公司 | 热点装置 |
CN102880508A (zh) * | 2012-09-14 | 2013-01-16 | 深圳市中兴移动通信有限公司 | 一种实现PC操控Android终端的方法及系统 |
CN202841409U (zh) * | 2012-08-31 | 2013-03-27 | 博视联(苏州)信息科技有限公司 | 一种带wifi热点的机顶盒装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040196486A1 (en) * | 2003-04-01 | 2004-10-07 | Atsushi Uchino | Addressbook service for network printer |
KR100630355B1 (ko) * | 2004-08-04 | 2006-09-29 | 한국전자통신연구원 | 무선 랜에서의 프레임 브리지 제공 장치 및 그 방법 |
US20080113674A1 (en) * | 2006-11-10 | 2008-05-15 | Mohammad Faisal Baig | Vicinity-based community for wireless users |
CN201039395Y (zh) * | 2007-05-22 | 2008-03-19 | 北京东方讯科技发展有限公司 | 一种无线网络路由器 |
JP2011004271A (ja) * | 2009-06-19 | 2011-01-06 | Nec Corp | 無線lan搭載データカード、通信方法及びプログラム |
JP5468595B2 (ja) * | 2011-11-22 | 2014-04-09 | レノボ・シンガポール・プライベート・リミテッド | 共有通信による無線ネットワークへのアクセス方法および無線端末装置 |
-
2015
- 2015-01-30 CN CN201510050899.2A patent/CN105991679B/zh active Active
-
2016
- 2016-01-21 JP JP2017540199A patent/JP6665190B2/ja active Active
- 2016-01-21 WO PCT/CN2016/071549 patent/WO2016119623A1/zh active Application Filing
-
2017
- 2017-07-10 US US15/645,902 patent/US10499311B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101511132A (zh) * | 2009-03-23 | 2009-08-19 | 杭州华三通信技术有限公司 | 一种数据报文的转发方法和系统 |
CN101562864A (zh) * | 2009-05-12 | 2009-10-21 | 深圳华为通信技术有限公司 | 热点装置 |
CN202841409U (zh) * | 2012-08-31 | 2013-03-27 | 博视联(苏州)信息科技有限公司 | 一种带wifi热点的机顶盒装置 |
CN102880508A (zh) * | 2012-09-14 | 2013-01-16 | 深圳市中兴移动通信有限公司 | 一种实现PC操控Android终端的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US10499311B2 (en) | 2019-12-03 |
WO2016119623A1 (zh) | 2016-08-04 |
US20170311224A1 (en) | 2017-10-26 |
JP6665190B2 (ja) | 2020-03-13 |
CN105991679A (zh) | 2016-10-05 |
JP2018510538A (ja) | 2018-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11075821B2 (en) | Method and apparatus for managing field device based on cloud server | |
WO2019100605A1 (zh) | 平台即服务paas容器平台的构建方法、服务器、系统及存储介质 | |
JP2020129800A (ja) | 仮想ネットワークインタフェースオブジェクト | |
EP2297648B1 (en) | Network controller based pass-through communication mechanism between local host and management controller | |
US10417061B2 (en) | Operating method of routing device, routing device, and terminal device | |
US20130346591A1 (en) | Clientless Cloud Computing | |
CN104639913B (zh) | 一种网络视频录像机及其自动接入ipc的方法 | |
US20180146008A1 (en) | Implementing Decoys in Network Endpoints | |
CN109525461B (zh) | 一种网络设备的测试方法、装置、设备及存储介质 | |
CN105991679B (zh) | 一种网络分享的实现方法和装置 | |
US10833952B2 (en) | Introducing latency and delay for test or debug purposes in a SAN environment | |
US20170124231A1 (en) | Introducing Latency and Delay in a SAN Environment | |
WO2019057089A1 (zh) | 网卡镜像抓包方法、终端以及可读存储介质 | |
CN109510878A (zh) | 一种长连接会话保持方法和装置 | |
US9473451B2 (en) | Methods, systems, and computer readable media for providing mapping information associated with port control protocol (PCP) in a test environment | |
CN114826969B (zh) | 网络连通性检查方法、装置、设备及存储介质 | |
CN108307369A (zh) | 配对方法、配对信息的传输方法、装置及设备 | |
CN110430478B (zh) | 组网通信方法、装置、终端设备及存储介质 | |
JP6605149B2 (ja) | 共有端末の検出方法及びその装置 | |
JP6281369B2 (ja) | 通信システム及び通信プログラム | |
CN111858300B (zh) | 一种嵌入式设备自动化测试方法、装置、系统及存储介质 | |
CN112738032B (zh) | 一种用于防ip欺骗的通讯系统 | |
CN116389555A (zh) | 为局域网内的终端提供服务的方法、装置、设备及介质 | |
CN117640469A (zh) | 测试网络带宽的方法及装置 | |
CN112653702A (zh) | 一种识别搭建代理环境的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |