实现网络数据多路传输的方法

文档序号:7588621阅读:472来源:国知局
专利名称:实现网络数据多路传输的方法
技术领域
本发明涉及计算机网络领域中网络数据的传输方法,尤其涉及网络中能够实现数据多路传输的方法。
背景技术
在网络数据传输中,需要进行数据通信的两个计算机一般通过本机的一块网卡在共用的数据通路上(如双绞线)进行数据的发送和接收。但是,单一的数据通路使得该通路一旦发生故障就会影响数据传输的可靠性。而且,通过单一的网卡进行数据传输也使得在大量数据通信时网卡的处理速度成为网络传输速率的瓶颈所在,从而限制了传输速度。因此,上述网络数据传输方法存在不能保证数据传输的可靠性和高效率的缺陷。
为了解决单一数据通路传输数据导致数据传输可靠性问题,目前一种解决方法是采用如以太网切换器之类的硬件设备,请参阅图1,图1为采用以太网切换器解决传输可靠性的以太网网络结构。第一切换器32连接发送端31,第二切换器33连接接收端34,第一切换器32和第二切换器33通过数据通路连接。发送端31发送数据经由第一切换器32后被并行切换到两条并行数据通路上,接收端34经由第二切换器33接收数据。该方法实现了数据冗余传输,增加了通信的可靠性。但是,由于该些硬件设备价格高,导致实现该方法的成本较高,而且,该些硬件设备只能支持两路并行传输而不能灵活改变并行传输的通路数目,因此不能满足更高可靠性的数据传输。
另一种解决方法是采用单独的通讯模块来进行数据的发送和接收,这种方法要求所有具有并行数据传输需求的程序在编程时就需要使用特殊的通讯模块来定制,这样实际上只有通过通讯模块进行数据发送接收的程序才能实现数据的并行传输,从而失去了通用性。
为了解决单一的网卡在大流量数据传输时导致的传输效率瓶颈问题。目前采用的解决方案主要有两种一种是发送端和接收端分别使用两块网卡,一块网卡用于接收,另一块网卡用于发送,这种方案不能保证两块网卡的负荷完全平衡即无法应用于发送和接收数据量严重不对等的场合而且只适应于两块网卡的串行数据传输。另一种方案采用特制的网卡及其驱动程序,通过配置后,多块特制的网卡能够在驱动程序的调度下以负载较为平衡的状态下实现网络数据串行传输从而充分发挥网络带宽,但是这种方案必须采用特制的网卡(如IBM的特制网卡),因此通用性不足而且成本较高。

发明内容
本发明要解决的技术问题,就是提供一种实现网络数据多路传输的方法,该方法能够提高网络数据并行/串行多路传输中的传输可靠性和传输速度。
为解决上述问题本发明提供一种实现网络数据多路传输的方法,用于网络中两个计算机之间的数据通信,包括以下步骤连接步骤发送端和接收端通过数据通路建立连接;绑定步骤发送端和接收端分别设置本端用于数据多路传输的虚拟网卡,将本端进行数据多路传输的若干物理网卡与所述虚拟网卡进行绑定;发送步骤发送端将需要发送的数据打包后发送至本端虚拟网卡,所述虚拟网卡通过与其绑定的若干物理网卡将数据包发送至所述数据通路;接收步骤接收端虚拟网卡通过本端若干物理网卡接收从所述数据通路传送数据包,解包后获得所述数据。
所述连接步骤具体包括以下步骤发送端物理网卡和接收端物理网卡分别连接数据通路;发送端和接收端分别将本端的物理网卡放置在本端的网卡配置库中,并给每一块物理网卡分配一个用于控制所述物理网卡的ID号。
所述绑定步骤中若干物理网卡与虚拟网卡进行绑定进一步包括以下步骤选定步骤发送端和接收端分别从本端的网卡配置库中选定进行数据多路传输的若干物理网卡,各自保存在本端的注册表中;读取步骤发送端虚拟网卡和接收端虚拟网卡分别读取本端注册表,获得所述若干物理网卡。
所述发送步骤进一步包括发送端向本端网络协议模块发送需要发送的数据;所述网络协议模块打包数据,向本端虚拟网卡发送打包好的数据包;所述虚拟网卡接收所述数据包,如果网卡工作模式为并行工作模式,则将数据包分别发送至和其绑定的发送端物理网卡;所述物理网卡发送所述数据包至各自连接的数据通路。
其中,所述接收步骤进一步包括所述接收端物理网卡分别接收从各自连接的数据通路传送的数据包,向接收端虚拟网卡发送所述数据包;接收端虚拟网卡判断所述数据包是否曾接收过,若未接收过,则向所述接收端网络协议模块发送所述数据包;否则,丢弃所述数据包;所述接收端网络协议模块解包,得到数据。所述发送步骤进一步包括发送端向发送端网络协议模块发送需要发送的数据;发送端网络协议模块将所述数据打包成数据包,向发送端虚拟网卡发送所述数据包;所述发送端虚拟网卡接收所述数据包,如果网卡工作模式为串行工作模式,所述发送端虚拟网卡将所述数据包拆分成和其绑定的物理网卡数目相同的子数据包,向所述物理网卡发送不同的子数据包;所述发送端的物理网卡接收所述子数据包,向所述数据通路发送所述子数据包。所述接收步骤进一步包括所述接收端若干物理网卡分别接收从数据通路传送的子数据包,向本端虚拟网卡发送所述子数据包;所述虚拟网卡将所述子数据包进行组包,向接收端网络协议模块发送组包后的数据包;所述接收端网络协议模块解包,得到数据。
所述发送步骤进一步包括(a)发送端向本端网络协议模块发送需要发送的数据;(b)所述网络协议模块将所述数据打包成一组数据包,向本端虚拟网卡发送所述一组数据包;(c)所述虚拟网卡接收所述一组数据包,如果网卡工作模式为串行工作模式,所述虚拟网卡将所述一组数据包中的每一单独数据包分别依次发送至与其绑定的物理网卡;每一物理网卡向数据通路发送各自收到的数据包;所述接收步骤进一步包括(d)所述接收端每一物理网卡分别接收从数据通路传送的数据包,向本端虚拟网卡发送所述数据包;(e)所述虚拟网卡将收到的数据包调整顺序成一组数据包,发送至本端网络协议模块;(f)所述网络协议模块解调接收到的一组数据包,获得数据其中,步骤(c)中具体包括所述虚拟网卡预先将与其绑定的物理网卡进行顺序编号;所述虚拟网卡通过获得该组数据包中的每一数据包的标识号,将所述标识号除以与其绑定的物理网卡的总数,得到余数的大小,发送至编号与所述余数对应的物理网卡。步骤(e)中具体包括所述虚拟网卡预先将与其绑定的物理网卡进行顺序编号;所述虚拟网卡通过获得收到的每一数据包的标识符,将所述标识号除以与其绑定的物理网卡的总数,得到余数的大小,判断所述余数与发送的物理网卡的编号是否对应,若是,接收该数据包,否则,丢弃该数据包;所述虚拟网卡根据发送的物理网卡的编号调整所述数据包成一组数据包,将该组数据包发送至本端的网络协议模块。
其中,本发明还公开了一种计算机,包括连接网络中数据通路的若干物理网卡、连接所述物理网卡的物理网卡驱动模块和网络协议模块,其特征在于,还包括用于进行数据多路传输的多路传输驱动单元,所述多路传输驱动单元包括MiniPort接口子单元连接所述网络协议模块,用于向系统注册虚拟设备以生成虚拟网卡和转接网络协议模块传送的数据包和将数据包发送至网络协议模块;Protocol接口子单元,连接物理网卡驱动模块,用于获得物理网卡的ID号,并根据所述ID号从物理网卡驱动模块中接收数据或发送数据包至物理网卡驱动模块;数据包处理子单元,连接MiniPort接口子单元和MiniPort接口子单元,用于将接收到的数据包根据网卡工作模块进行相应处理后发送至所述MiniPort接口子单元或将接收到的数据包根据网卡工作模块进行相应处理后发送至MiniPort接口。
本发明实现了网络数据经由多块网卡在网络上进行多路数据传输,与现有技术相比,有以下优点(1)在网卡并行传输模式,由于多路并行的网络数据通路只要有一路能正常发送或接收便能使数据传输正常进行,从而提高数据传输可靠性,解决单一的数据传输通路导致的数据传输可靠性问题;(2)在网卡串行传输模式时,由于使得串行工作的网卡尽可能的达到负载平衡,从而解决单一的网卡在大流量传输时导致的传输效率瓶颈问题,提高数据传输效率;(3)在并、串行同时工作方式使得在特殊情况下能够灵活配置,既保证了网络数据的传输可靠性,也提高了网络数据的传输效率。
还有,本发明实现多路数据传输的方法不需要增加额外的硬件设备,也不需要专用的通讯模块或驱动程序,无需增加成本就能实现多路数据传输。


图1是采用切换器进行数据传输的以太网结构示意图。
图2是实现网络数据多路传输的计算机结构示意图。
图3是实现网络数据多路传输的流程图。
图4是网络数据多路并行传输的网络实现图。
图5是网络数据多路并行传输的流程图。
图6是网络数据多路串行传输的网络实现图。
图7是网络数据多路串行传输的一种流程图。
图8是网络数据多路串行传输的另一种流程图。
图9是网络数据多路并、串行同时工作的网络实现图。
具体实施例方式
请参照图2,完成数据传输的计算机内部结构示意图。计算机包括用于控制数据传输的数据传输模块1以及网卡2。数据传输模块1包括网络协议模块11、连接网卡2的物理网卡驱动模块13、以及连接网络协议模块11和物理网卡驱动模块13的多路传输驱动单元12。中间驱动模块12包括MiniPort(微型端口)接口子模块12a、数据包处理子单元12b和Protoco(协议)接口子模块12c。
多路传输驱动单元12,它是一个运行于系统核心模式的NDIS(NetworkDriver Interface Standard,网络驱动接口标准)中间层驱动程序。启动该驱动程序后,它将自动链入物理网卡驱动模块13和网络协议模块11之间,成为系统进行网络传输过程中不可或缺的一环,它参与数据包在系统中的传输,系统中上下行的数据包只有通过它的传递才能继续向上层或下层传输。多路传输驱动单元12在其上边界导出MiniPort接口子单元12a,在其下边界导出Protocal接口子模块12c。多路传输驱动单元12在其上边界与系统网络驱动协议驱动模块11进行通信,而在其下边界则直接与物理网卡驱动模块13进行通讯。
当系统检测有物理网卡2接入时,装载物理网卡2对应的物理网卡驱动模块13,将该物理网卡2放入本机的网卡配置库,并分配和物理网卡2一一对应的ID号,该ID号是用于控制该物理网卡的资源句柄。
MiniPort接口子单元12a,向系统注册虚拟设备以生成一块虚拟网卡,用以转接网络协议模块11传来的数据并转交至数据包处理子单元12b,和接收数据包处理子单元12b传输的数据并转交至网络协议模块11。它是网络协议模块11和数据包处理子单元12b之间的接口。另外,MiniPort接口子单元还回应网络协议模块11对物理设备(网卡)信息的查询,预先设置回应的伪信息或将查询请求转接到对应的物理网卡上,这样以来就能将系统对虚拟网卡的查询请求转接到对应的物理网卡上或者直接提供伪信息,从而将网络协议模块11和物理网卡2完全区分开来,使得系统看到的仅仅是虚拟网卡。从而使得并行或串行多路传输时对于上层系统而言和一块网卡传输数据毫无区别。而实际上是注册了一块虚拟网卡来对应于多块并行或串行的物理网卡,从而使得系统认为只有一块网卡在传输数据。
MiniPort接口子单元12c,用于将虚拟网卡和进行数据多路传输的若干物理网卡进行绑定,以获得物理网卡的资源句柄-ID号以便于对其进行直接操作,例如获取物理网卡缓存大小,连接速度,物理地址等信息,并对网卡工作模式进行改变以适应并、串行多路传输的需要。同时在MiniPort接口子单元12c中,通过获取的网卡资源句柄,使得多路传输驱动单元12能够将自己复制和改动过的数据包驱动物理网卡发送,例如在物理地址为A的网卡上送出发送者物理地址为B的数据包。在MiniPort接口子单元12c中,完成获取物理网卡信息,并可以不理会物理网卡的物理地址而对其操作,即完全控制将物理网卡发送和接收任意数据的能力。
数据包处理子单元12b,用以处理将要发送或接收的所有数据使其满足多路并行或串行传输需要。例如在并行传输时,该数据包处理子单元12b将网络协议模块11发来的数据复制若干份后再驱动物理网卡发送,而接收来自物理网卡驱动的数据时又通过缓存数据包特征值的方法来判断数据包的重复与否以决定是否向网络协议模块11传送。而串行传输时,该模块又分析网络协议模块11发来的数据,根据ID号调度串行的多路网卡进行传输,而接收自物理网卡驱动模块13的数据时又将这些数据以多个物理网卡对应的虚拟网卡还原成发送前的数据包,并传输至网络协议模块11。另外,该模块还在驱动加载时读取系统注册表的信息以确定多路传输驱动单元12的工作模式(并行或串行),以及哪些网卡进行多路数据传输。
采用上述计算机作为网络的节点,实现网络数据多路传输。请参阅图3,为实现网络数据多路传输的流程图。
S110连接步骤,发送端和接收端通过数据通路建立连接。
发送端物理网卡和接收端物理网卡分别连接数据通路,当两端的系统检测有物理网卡2接入时,装载物理网卡2对应的物理网卡驱动模块13,将该物理网卡2放入本机的网卡配置库,并分配和物理网卡2一一对应的ID号,该ID号是用于控制该物理网卡的资源句柄。当网卡工作模式为并行工作模式时,每一物理网卡接入一数据通路,当网卡工作模块为串行工作模式时,可将所有物理网卡接入一共同数据通路。
S120绑定步骤发送端和接收端分别设置本端用于数据多路传输的虚拟网卡,将本端进行数据多路传输的若干物理网卡与所述虚拟网卡进行绑定;每次系统加载时都将多路传输驱动单元12作为网络驱动的一部分进行加载,系统向多路传输驱动单元12的MiniPort接口子单元12a生成一个虚拟网卡。发送端和接收端分别从本端的网卡配置库中选定进行数据多路传输的若干物理网卡。该选定可以是用户选定而用户没有选定的情况下,设置网卡配置库中的所有物理网卡为进行数据多路传输的网卡。发送端虚拟网卡和接收端虚拟网卡分别读取本端注册表,获得与其绑定的若干物理网卡。
S130发送步骤发送端将需要发送的数据打包后发送至本端虚拟网卡,虚拟网卡通过本端若干物理网卡将数据包发送至所述数据通路。
发送端向本端网络协议模块发送需要发送的数据;网络协议模块打包数据,向本端虚拟网卡发送打包好的数据包;数据处理模块12的数据包处理子单元12b根据其工作模式,处理数据包并发送至其绑定的若干物理网卡,通过物理网卡发送至数据通路。
S140接收步骤接收端虚拟网卡通过本端若干物理网卡接收从数据通路传送数据包,解包后获得所述数据。
图4是具有数据传输模块12的计算机进行网络多路并行传输的实现原理图。下面结合图5的并行传输流程叙述并行传输的具体实施例。在并行传输模式下,假设选定n块物理网卡进行并行数据多路传输,并将该些物理网卡分别接入到对应的n个数据传输通路中,使得发送端和接收端建立连接(步骤S210),其次进行驱动程序配置,向系统注册一个虚拟网卡并将该虚拟网卡绑定到需要并行工作的n块网卡上(步骤S220)。这样对于系统而言,只存在所注册的虚拟网卡而不存在并行工作的n块网卡。所有需要发送的数据经网络协议模块11打包后交由所注册的虚拟网卡进行发送(步骤S230)。对于经由虚拟网卡获得的要并行发送的每一个数据包,多路传输驱动单元12的数据包处理子单元12b将其生成n个拷贝(步骤S240),然后将这n个源数据包的拷贝分别驱动绑定到该虚拟网卡上的n个物理网卡发送到并行的n路网络数据通路上(步骤S250)。
而在接收端,n个并行工作的物理网卡向本端虚拟网卡提交各自接收到的数据包(步骤S260),多路传输驱动单元12经由虚拟网卡得到这些数据包,分析数据包的特征值(例如分析数据包IP头的16位标识号等)判断是否与所缓存的数据包特征值重复(步骤S270),若是,将该数据包丢弃不予接收(步骤S280),否则,将该数据包的特征值进行缓存同时向网络协议模块11提交该数据包(步骤S290)。网络协议模块11解包,得到数据(步骤S300)。其中以IP头16位标识号为数据包特征值和数据包特征值的循环缓存方法是较为常见的判定数据包是否重复的方法,这里不加赘述。经过这样的方式并行多路传输网络数据后,只要有一路网络通路通讯良好便可保证数据传输的顺利完成,提高了网络数据传输的可靠性。
图6是利用多路传输驱动进行网络多路串行传输的实现原理图。下面结合图7的串行传输流程叙述串行传输的具体实施方式
。假设选定n块物理网卡进行串行数据多路传输,并将该些物理网卡分别接入到共同数据通路中,使得发送端和接收端建立连接(步骤S310),其次进行多路传输驱动单元12配置,向系统注册一个虚拟网卡并将该虚拟网卡绑定到需要并行工作的n块网卡上(步骤S320)。这样对于系统而言,只存在所注册的虚拟网卡而不存在串行工作的n块网卡。所有需要发送的数据经网络协议模块11打包后交由所注册的虚拟网卡进行发送(步骤S330)。发送端虚拟网卡将所述数据包拆分成和其绑定的物理网卡数目相同的子数据包,向所述物理网卡发送不同的子数据包(步骤S340);发送端的物理网卡接收子数据包,向数据通路发送子数据包(步骤S350)。
在接收端,若干物理网卡分别接收从数据通路传送的子数据包,向接收端虚拟网卡发送子数据包(步骤S360);接收端虚拟网卡将该些子数据包进行组包,向接收端网络协议模块发送组包后的数据包(步骤S370);接收端网络协议模块解包,得到数据(步骤S380)。
虚拟网卡将收到的数据包拆分成N个子数据包,及将N个子数据包组包成一个数据包的方法有很多。但由于将数据包拆包和组包比较复杂,所述本发明提供了第二种方法进行发送和接收数据包(请参阅图8)。
S410发送端向本端网络协议模块发送需要发送的数据;S420网络协议模块将数据打包成一组数据包,向本端虚拟网卡发送该组数据包;S430虚拟网卡接收该组数据包,如果虚拟网卡访问注册表,得到网卡工作模式为串行工作模式时,虚拟网卡将该组数据包中的每一单独数据包分别依次发送至与其绑定的物理网卡。虚拟网卡可以预先将与其绑定的物理网卡进行顺序编号,比如将物理网卡进行从1到N进行阿拉伯顺序编号;虚拟网卡通过获得该组数据包中的每一数据包的IP头中标识号,将标识号除以与其绑定的物理网卡的总数,得到余数的大小,发送至编号与所述余数对应的物理网卡。假设某一数据包余数为i(0<i<n),发送端只在编号为i+1的物理网卡上发送该数据包。
S440每一物理网卡向数据通路发送各自收到的数据包;S450接收端每一物理网卡分别接收从数据通路传送的数据包,并向本端虚拟网卡分别发送各自接收的数据包;S460虚拟网卡将收到的数据包调整顺序成一组数据包,发送至本端网络协议模块。
虚拟网卡预先将与其绑定的物理网卡进行顺序编号,编号的顺序与发送端相同;虚拟网卡获得收到的每一数据包的IP中标识符,将标识号除以与其绑定的物理网卡的总数,得到余数的大小,判断所述余数与发送的物理网卡的编号是否对应,若是,接收该数据包,否则,丢弃该数据包;虚拟网卡根据发送的物理网卡的编号调整所述数据包成一组数据包,将该组数据包发送至本端的网络协议模块。
S470网络协议模块解调接收到的该组数据包,获得数据。
上述公开的仅是虚拟网卡将每一数据包的IP头中的标识号除数取余的方法进行发送和接收数据包。即,虚拟网卡获得的要串行进行发送和接收的每一个数据包时,先获取数据包的IP头中16位标识号,然后将这个16位标识号除以n(虚拟网卡绑定的物理网卡的数目),按照余数大小将数据包分类来决定该数据包的发送网卡和接收网卡。经过这样的方式串行多路传输网络数据后,多块网卡经驱动程序调度后共同完成原先一块网卡承担的传输任务,消除了瓶颈效应,提高了网络数据传输效率。
需要指出的是,本发明在实现了网络并、串行多路传输的基础上,还使得灵活配置网络并、串行多路传输成为可能,即通过本驱动可灵活切换网络多路传输的并行或串行模式并能灵活指定要并、串行工作的网卡数目。同时,经由本发明提供的驱动程序或相关方法还可以实现网络并、串行多路传输的同时工作,即将多块网卡分组工作,例如图8每组网卡之间串行工作,而组与组之间并行工作,这样既可提高网络数据传输可靠性也可提高网络数据传输效率,这种拓展也应视为本发明的保护范围。
权利要求
1.一种实现网络数据多路传输的方法,用于网络中两个计算机之间的数据通信,其特征在于,包括以下步骤连接步骤发送端和接收端通过数据通路建立连接;绑定步骤发送端和接收端分别设置本端用于数据多路传输的虚拟网卡,将本端进行数据多路传输的若干物理网卡与所述虚拟网卡进行绑定;发送步骤发送端将需要发送的数据打包后发送至本端虚拟网卡,所述虚拟网卡通过与其绑定的若干物理网卡将数据包发送至所述数据通路;接收步骤接收端虚拟网卡通过本端若干物理网卡接收从所述数据通路传送数据包,解包后获得所述数据。
2.如权利要求1所述的实现网络数据多路传输的方法,其特征在于,所述连接步骤具体包括以下步骤发送端物理网卡和接收端物理网卡分别连接数据通路;发送端和接收端分别将本端的物理网卡放置在本端的网卡配置库中,并给每一块物理网卡分配一个用于控制所述物理网卡的ID号。
3.如权利要求2所述的实现网络数据多路传输的方法,其特征在于,所述绑定步骤中若干物理网卡与虚拟网卡进行绑定进一步包括以下步骤选定步骤发送端和接收端分别从本端的网卡配置库中选定进行数据多路传输的若干物理网卡,各自保存在本端的注册表中;读取步骤发送端虚拟网卡和接收端虚拟网卡分别读取本端注册表,获得所述若干物理网卡。
4.如权利要求1或3所述的实现网络数据多路传输的方法,其特征在于,所述发送步骤进一步包括发送端向本端网络协议模块发送需要发送的数据;所述网络协议模块打包数据,向本端虚拟网卡发送打包好的数据包;所述虚拟网卡接收所述数据包,如果网卡工作模式为并行工作模式,则将数据包分别发送至和其绑定的发送端物理网卡;所述物理网卡发送所述数据包至各自连接的数据通路。
5.如权利要求4所述的实现网络数据多路传输的方法,其特征在于,所述接收步骤进一步包括所述接收端物理网卡分别接收从各自连接的数据通路传送的数据包,向接收端虚拟网卡发送所述数据包;接收端虚拟网卡判断所述数据包是否曾接收过,若未接收过,则向所述接收端网络协议模块发送所述数据包;否则,丢弃所述数据包;所述接收端网络协议模块解包,得到数据。
6.如权利要求1或3所述的实现网络数据多路传输的方法,其特征在于,所述发送步骤进一步包括发送端向发送端网络协议模块发送需要发送的数据;发送端网络协议模块将所述数据打包成数据包,向发送端虚拟网卡发送所述数据包;所述发送端虚拟网卡接收所述数据包,如果网卡工作模式为串行工作模式,所述发送端虚拟网卡将所述数据包拆分成和其绑定的物理网卡数目相同的子数据包,向所述物理网卡发送不同的子数据包;所述发送端的物理网卡接收所述子数据包,向所述数据通路发送所述子数据包。
7.如权利要求6所述的实现网络数据多路传输的方法,其特征在于,所述接收步骤进一步包括所述接收端若干物理网卡分别接收从数据通路传送的子数据包,向本端虚拟网卡发送所述子数据包;所述虚拟网卡将所述子数据包进行组包,向接收端网络协议模块发送组包后的数据包;所述接收端网络协议模块解包,得到数据。
8.如权利要求1或3所述的实现网络数据多路传输的方法,其特征在于,所述发送步骤进一步包括(a)发送端向本端网络协议模块发送需要发送的数据;(b)所述网络协议模块将所述数据打包成一组数据包,向本端虚拟网卡发送所述一组数据包;(c)所述虚拟网卡接收所述一组数据包,如果网卡工作模式为串行工作模式,所述虚拟网卡将所述一组数据包中的每一单独数据包分别依次发送至与其绑定的物理网卡;每一物理网卡向数据通路发送各自收到的数据包;所述接收步骤进一步包括(d)所述接收端每一物理网卡分别接收从数据通路传送的数据包,向本端虚拟网卡发送所述数据包;(e)所述虚拟网卡将收到的数据包调整顺序成一组数据包,发送至本端网络协议模块;(f)所述网络协议模块解调接收到的一组数据包,获得数据。
9.如权利要求8所述的实现网络数据多路传输的方法,其特征在于,步骤(c)中具体包括所述虚拟网卡预先将与其绑定的物理网卡进行顺序编号;所述虚拟网卡通过获得该组数据包中的每一数据包的标识号,将所述标识号除以与其绑定的物理网卡的总数,得到余数的大小,发送至编号与所述余数对应的物理网卡。
10.如权利要求8所述的实现网络数据多路传输的方法,其特征在于,步骤(e)中具体包括所述虚拟网卡预先将与其绑定的物理网卡进行顺序编号;所述虚拟网卡通过获得收到的每一数据包的标识符,将所述标识号除以与其绑定的物理网卡的总数,得到余数的大小,判断所述余数与发送的物理网卡的编号是否对应,若是,接收该数据包,否则,丢弃该数据包;所述虚拟网卡根据发送的物理网卡的编号调整所述数据包成一组数据包,将该组数据包发送至本端的网络协议模块。
11.一种权利要求1所述的计算机,包括连接网络中数据通路的若干物理网卡、连接所述物理网卡的物理网卡驱动模块和网络协议模块,其特征在于,还包括用于进行数据多路传输的多路传输驱动单元,所述多路传输驱动单元包括MiniPort接口子单元连接所述网络协议模块,用于向系统注册虚拟设备以生成虚拟网卡和转接网络协议模块传送的数据包和将数据包发送至网络协议模块;Protocol接口子单元,连接物理网卡驱动模块,用于获得物理网卡的ID号,并根据所述ID号从物理网卡驱动模块中接收数据或发送数据包至物理网卡驱动模块;数据包处理子单元,连接MiniPort接口子单元和MiniPort接口子单元,用于将接收到的数据包根据网卡工作模块进行相应处理后发送至所述MiniPort接口子单元或将接收到的数据包根据网卡工作模块进行相应处理后发送至MiniPort接口。
全文摘要
本发明公开了一种实现网络数据多路传输的方法,用于网络中两个计算机之间的数据通信,包括以下步骤连接步骤,发送端和接收端通过数据通路建立连接;绑定步骤发送端和接收端分别设置本端用于数据多路传输的虚拟网卡,将本端进行数据多路传输的若干物理网卡与所述虚拟网卡进行绑定;发送步骤发送端将需要发送的数据打包后发送至本端虚拟网卡,所述虚拟网卡通过与其绑定的若干物理网卡将数据包发送至所述数据通路;接收步骤接收端虚拟网卡通过本端若干物理网卡接收从所述数据通路传送数据包,解包后获得所述数据。本发明提高数据传输可靠性和传输的效率。
文档编号H04L29/04GK1561062SQ20041000466
公开日2005年1月5日 申请日期2004年3月9日 优先权日2004年3月9日
发明者刘建武, 洪春跃, 谭彰 申请人:浙江中控技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1