发明内容
本发明的目的在于,一方面为了克服现有技术在多网卡时数据接收的问题,另一方面为了解决现有技术的HFC网络资源闲置而现有IP网络的带宽资源不够的问题,本发明提供一种多种网卡的数据接收方法及系统。
为了实现上述第一方面的目的,本发明提供一种多网卡的数据接收方法,该方法用于处理多网卡系统的数据接收,所述方法为:通过在上层应用和多网卡之间创建一块虚拟网卡,屏蔽底层的多网卡的异构,即上层应用程序通过虚拟网络接口实现调用设置有HFC网卡和以太网卡的多种网卡的目的。
为了解决第二方面的问题,可选的,所述以太网卡和HFC网卡的个数为一时,所述多网卡的数据接收方法具体包含:
步骤1,获取以太网卡的以太网IP地址,连接HFC网卡并为其建立网络连接标识。
步骤2,为HFC网络连接分配IP地址,同时将该IP地址加入目标组播地址组,用于接收从HFC网卡中传送的组播报文。
步骤3,为以太网卡和HFC网卡建立一共有的虚拟网卡,并为该虚拟网卡分配虚拟IP地址。
步骤4,绑定以太网卡IP地址和HFC网卡IP地址;通过对各网卡IP地址的绑定,实现对被绑定网卡的操作;
步骤5,应用程序发出的上行数据经由虚拟网卡发送到以太网卡进行处理,下行数据经由以太网或HFC网卡送给虚拟网卡,再发送到应用程序。
其中,所述以太网IP地址、HFC网IP地址及虚拟IP地址为互不相同的三个IP地址。
可选的,所述步骤2中的HFC网络连接映射为与以太网卡具有相同属性的设备,还对其分配MAC地址,
步骤5所述下行数据经由虚拟网卡发送到以太网卡或HFC网卡进行处理的步骤具体包含:通过绑定的不同IP地址,循环检测以太网卡或HFC网卡上是否有数据到来;当检测到HFC网卡上有数据时,接收UDP组播报文,并判断该组播报文是否是本机所要数据,如果是,则将数据报文送至虚拟网卡,上层应用程序再通过虚拟网卡获得数据;如果不是,则将报文丢弃;当检测到以太网卡有数据时,将数据报文转发给虚拟网卡,由虚拟网卡送往操作系统网络协议栈,关注数据的应用程序可以接收并处理数据;
步骤5所述应用程序发出的上行数据经由虚拟网卡发送到以太网卡进行处理步骤具体为:
当上层应用有数据请求需要发出时,应用程序直接将数据发送到虚拟网卡,虚拟网卡将接收的数据通过以太网卡发出。
基于上述方法本发明还提供一种多网卡的数据接收系统,该系统的计算机终端设备包含以太网卡和若干应用,其特征在于,所述系统还包含:
HFC网卡,用于接收HFC网络的组播数据;和虚拟网卡,为所述HFC网卡和以太网卡的统一接口,与应用程序对接;其中,当有数据发出时,虚拟网卡将数据只发送到以太网卡,通过以太网卡发出;所述以太网卡还用于:当计算机上安装的应用程序有数据请求发出时,该应用程序将数据首先发送到所述虚拟网卡,然后所述虚拟网卡将数据通过该以太网卡发出。
优化的,所述系统还包含一IP地址分配模块,用于:获取以太网卡的以太网IP地址,连接HFC网卡并为其建立网络连接标识;为HFC网络连接分配IP地址,同时将该IP地址加入目标组播地址组,用于接收从HFC网卡中传送的组播报文;并为虚拟网卡分配虚拟IP地址;其中,所述以太网IP地址、HFC网IP地址及虚拟IP地址为互不相同的三个IP地址。
其中,所述多网卡的数据接收方法、上行数据经由虚拟网卡发送到以太网卡进行处理的具体步骤及下行数据经由以太网或HFC网卡和虚拟网卡发送给上层应用步具体骤与上述所述方法中的处理策略相同。
与现有技术相比本发明的技术优势为:一方面,通过创建一块虚拟网卡,屏蔽底层的多块物理网卡(包含以太网卡和HFC网卡),实现了通过一个接口,智能调用多种网卡的目的;另一方面,借助虚拟网卡控制HFC网卡和以太网卡,弥补了HFC网络只能单向传输导致的大量带宽闲置及IP网络带宽受限的导致的服务质量下降的问题,进而显著提高互联网的数据传输速率。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的描述。
本发明一方面为了能够充分利用HFC网络的闲置带宽另一方面还可以解决IP网络带宽资源不够的问题提供一种多网卡策略,所述多网卡策略能够充分利用HFC网络,从HFC网络高速的接收传输的数据,并能够基于以太网卡,通过IP网络发出请求,解决HFC网络单向性弊端,达到HFC网卡和以太网卡双卡并用各取所长的目的。
为了达到上述目的本发明的多网卡策略为:通过在上层应用和多网卡之间创建一块虚拟网卡,屏蔽底层的多网卡的异构,即上层应用程序通过虚拟网络接口可以实现调用多种网卡的目的。
可选的,当所述多网卡包含一个HFC网卡和一个以太网网卡时,上述策略具体包含如下步骤:
步骤1,连接HFC网卡,为其建立网络连接标识;
步骤2,获取以太网卡的IP地址;
步骤3,为HFC网络连接分配不同于步骤(2)中所得到的IP地址,同时将其地址加入目标组播地址组;
步骤4,建立虚拟网卡,并为其分配不同于物理网卡的IP;
步骤5,绑定以太网卡的地址和HFC网卡的地址;
步骤6,通过不同的IP地址,从不同的网卡中获取数据。并将接收的数据送给虚拟网卡,上层应用程序再通过虚拟网卡获得数据。
进一步地,所述的步骤(3)具体为:
将HFC网卡映射为与以太网卡具有相同属性的设备。使用时作为普通以太网卡对待,对其分配IP地址和MAC地址。
同时,HFC网络中传输的是TS封装的UDP组播报文,需要将HFC网卡IP地址加入到目标组播地址组,接收从HFC网卡中传送的组播报文。
进一步地,所述的步骤(6)具体为:
通过绑定的不同IP地址,循环检测不同网卡上是否有数据到来。当检测到HFC网卡上有数据时,接收数据(从HFC网卡上接收的是UDP组播报文)。并判断收到的数据是否是本机所要数据,如果是,则将数据报文送至虚拟网卡;如果不是,则将报文丢弃。上层应用程序再通过虚拟网卡获得数据。
当有数据请求需要发出时,应用程序直接将数据发送到虚拟网卡。虚拟网卡将其通过以太网卡发出。
虚拟网卡作为两种不同网卡的统一接口,与应用程序对接。当有数据到来时,各个网卡都会将数据转发到虚拟网卡上。当有数据发出时,虚拟网卡将数据只发送到以太网卡,通过以太网卡发出。应用程序只需通过虚拟网卡接收、发送数据。
可选的,如果上述的HFC网卡或以太网网卡为多个时,上述策略的步骤为:
步骤1,分别连接多个HFC网卡,为其建立网络连接标识;
步骤2,获取以太网卡的IP地址;
步骤3,为每个HFC网络连接分配不同于步骤(2)中所得到的IP地址,同时将其地址加入目标组播地址组;
步骤4,建立虚拟网卡,并为其分配不同于物理网卡的IP;
步骤5,绑定多个以太网卡的地址和多个HFC网卡的地址;
步骤6,通过轮询不同的IP地址,从不同的网卡中获取数据。并将接收的数据送给虚拟网卡,上层应用程序再通过虚拟网卡获得数据。
进一步地,所述的步骤(3)具体为:
将HFC网卡映射为与以太网卡具有相同属性的设备。使用时作为普通以太网卡对待,对其分配IP地址和MAC地址。
同时,HFC网络中传输的是TS封装的UDP组播报文,需要将HFC网卡IP地址加入到目标组播地址组,接收从HFC网卡中传送的组播报文。
进一步地,所述的步骤(6)具体为:
通过绑定的不同IP地址,循环检测不同网卡上是否有数据到来。当检测到HFC网卡上有数据时,接收数据(从HFC网卡上接收的是UDP组播报文)。并判断收到的数据是否是本机所要数据,如果是,则将数据报文送至虚拟网卡;如果不是,则将报文丢弃。上层应用程序再通过虚拟网卡获得数据。
当有数据请求需要发出时,应用程序直接将数据发送到虚拟网卡。虚拟网卡根据路由情况选择对应的以太网卡,将数据通过选定的以太网卡发出。
虚拟网卡作为多个不同网卡的统一接口,与应用程序对接。当有数据到来时,各个网卡都会将数据转发到虚拟网卡上。当有数据发出时,虚拟网卡根据路由策略选择以太网卡,并将数据只发送到选定的以太网卡,通过该以太网卡发出。应用程序只需通过虚拟网卡接收、发送数据。
如图1所示,本发明的方法主要包括如下步骤:
步骤101,安装HFC网卡,即对应的驱动程序,在计算机上建立HFC网络设备标识。
步骤102,创建虚拟网卡,作为多种网卡对上层应用的统一接口,并分配虚拟IP地址,如10.9.0.5。
步骤103,为HFC网卡分配IP地址,假设本机有一个以太网卡和一个HFC网卡,以太网卡IP地址为192.168.1.66。HFC网卡IP地址为10.10.255.120。
绑定目标组播地址。目标组播地址为组播数据的目的地址。例如:现有目标组播IP地址为226.10.10.249,端口6000,则绑定组播地址226.10.10.249,端口6000。
步骤104,发出数据请求,应用程序将数据发送到虚拟网卡,虚拟网卡通过以太网卡发出,与外网进行通信。
步骤105,将HFC网卡的IP加入此组播地址组。进而能够从HFC网卡上接收目标组播地址组的数据。当从HFC网卡接收到组播数据后,会判断是否是本机所需要的数据,如果是,则放行,将其发送至虚拟网卡。如果不是,则直接丢弃报文。
查询以太网卡是否有数据,如果有,接收报文,并直接将报文送至虚拟网卡。
步骤106,应用程序通过虚拟网卡,接收各个物理网卡转来的数据。
其中,应用程序、虚拟网卡和物理网卡三者的关系如附图2所示。
步骤201,应用程序和虚拟网卡之间是双向通信,应用程序通过虚拟网卡发送和接收数据。
步骤202,虚拟网卡和以太网卡之间是双向通信,虚拟网卡通过以太网卡发送和接收数据;虚拟网卡和HFC网卡之间是单向通信,虚拟网卡只通过HFC网卡接收组播数据。
本发明的装置在实际应用时可以分为两种应用场景:
场景1:数据从以太网卡发出,数据从以太网卡接收,这种方式与只有以太网卡的情况完全相同,不受HFC网卡的影响。
场景2:数据从以太网卡发出,而从HFC网卡接收,这种方式使得上行和下行分属于两种网络,上行通过以太网传输数据,下行通过HFC网络传输数据,且下行回来的报文是组播数据,需要封装组播报文头,解析此组播报文后,才会得到本机需要的网络报文。
综上所述,本发明的基于多种网卡数据接收系统通过虚拟网卡技术同时管理多种物理网卡(包含以太网卡和HFC网卡),从而能够借助以太网上行通路实现充分利用HFC现有的下行网络资源,最终达到提高终端的下行带宽的目的。
注:虽然现有技术已经有关于多网卡数据接收的专利,但本发明与其不同点为:现有技术的专利将上层数据通过不同的管道接收和发送,而本发明是接收数据通过多个管道(以太网管道或HFC管道),发送数据通过一个管道(以太网管道),这种区别技术特征带来的技术优势为。
现有的公开的专利使用的多网卡的具体种类没有说明,而本发明使用的是不同的网卡种类,包括HFC网卡和以太网卡。
总之,本发明的一种基于HFC网卡和以太网卡的数据接收系统及方法,涉及到包含HFC网卡和以太网卡等多种网卡的同时使用、智能调度的技术。为解决目前IP网络带宽有限,不能充分利用HFC网络资源的问题而发明。本发明同时使用以太网卡和HFC网卡,达到同时利用IP网络资源和HFC网络资源的目的。其中,HFC网卡可以通过USB接口连入终端,并以网络连接标识,分配不同于以太网卡的IP地址。同时,建立一个虚拟网卡,作为不同物理网卡的统一接口。即一对多的关系,一款虚拟网卡对应多个物理网卡,使得应用程序只需与一块虚拟网卡通信。本发明充分利用了HFC网络的资源,极大的提高了数据接收的能力,节约了IP网络带宽资源,提高了数据传输速率。
需要说明的是,以上介绍的本发明的实施方案而并非限制。本领域的技术人员应当理解,任何对本发明技术方案的修改或者等同替代都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围内。