一种基于多网卡的网络设备的数据传输方法和装置的制作方法

文档序号:7587847阅读:201来源:国知局
专利名称:一种基于多网卡的网络设备的数据传输方法和装置的制作方法
技术领域
本发明涉及网络通讯技术领域,具体涉及一种基于多网卡的网络设备的数据传输方法和装置。
背景技术
在当今的计算机领域,网络已经变的非常普及,Intranet(企业内部互联网)和Internet(国际互联网)的高速发展使得网络访问越来越频繁,用户对网络带宽,网络访问速度的要求也越来越高。网络设备中的网卡已经随着用户对网络访问速度的要求从十兆网卡、百兆网卡发展到千兆网卡。
增加网络带宽虽然可以通过升级网卡、选取更高速的网卡来实现,但是硬件设备的升级可能会要求原有配套网络设备如集线器、交换机、路由器等的整体升级,在这种情况下,使用原有网卡并行扩展技术来增加带宽就变的非常实用了。原有网卡并行扩展的技术即为网卡绑定技术。
网卡绑定技术的主导思想为将网络设备的多块物理网卡在逻辑上统一起来,对外呈现为一块网卡,但网络设备的数据处理能力却为多块网卡数据处理能力之和。
由于在以太网通讯中,网卡的以太网地址和网卡的物理地址是两个不可或缺的基本要素,所以在网卡绑定技术中确定虚拟网卡的以太网地址和物理地址是实现网卡绑定的重要步骤。
现行网卡绑定技术中确定虚拟网卡的以太网地址和物理地址的基本方法为将虚拟网卡、网络设备中所有物理网卡的以太网地址和物理地址分别虚拟成相同的地址。如设定网络设备中有物理网卡1和物理网卡2,它们的以太网地址分别是192.168.10.20和192.168.10.30,它们的物理地址分别是0010605b67f9和001079df73d9。设定虚拟网卡的以太网地址是192.168.10.40,利用现行的网卡绑定技术,依次将物理网卡1,物理网卡2绑定到虚拟网卡上,绑定后,虚拟网卡、物理网卡1、物理网卡2的以太网地址都成为192.168.10.40,物理地址都成为0010605b67f9。
利用现行网卡绑定技术将网络设备各物理网卡绑定在虚拟网卡上以后,网络设备在数据发送时,由网络设备进行轮循驱动实现物理网卡轮循发送数据,与网络设备连接的对端如交换机等同样需要支持轮循操作,这样保证了网络设备多块网卡的并行操作,从而增加了网络的带宽。
现行的这种网卡绑定技术,使网络设备在进行数据传输时,会产生一些异常现象,如在与网络设备连接的对端如交换机等不支持轮循操作时,交换机会认为连接在其上的多个端口拥有同样的物理地址是一种错误行为,从而使交换机工作不正常;在网络设备的物理网卡直接连接在集线器上时,会导致从远端发送的数据被网络设备重复接收,使网络设备在接收数据、发送数据时不能够实现并行操作。综上所述,利用现行的网卡绑定技术进行数据传输时,会带来浪费网络设备的带宽、浪费网络设备处理器的处理时间、降低数据传输速率等问题。

发明内容
本发明的目的在于,提供一种基于多网卡的网络设备的数据传输方法和装置,使网络设备连接在不支持轮循操作的交换机或直接连接在集线器上时,可保持多网卡带宽的优势,保证数据正常的并行接收和发送,从而实现了节约网络设备资源,提高数据传输速率的目的。
为达到上述目的,本发明提供的一种基于多网卡的网络设备的数据传输方法,包括
a、建立基于多网卡的网络设备的虚拟网卡;b、获取所述网络设备中至少一块物理网卡的地址;c、将所述虚拟网卡的地址设置为区别于所述获取的至少一块物理网卡的地址;d、所述网络设备根据具有不同地址的所述虚拟网卡、物理网卡进行数据传输。
所述步骤a包括在数据链路层建立基于多网卡的网络设备的虚拟网卡;根据物理网卡列表为所述虚拟网卡设置名称。
所述的步骤c包括将所述虚拟网卡的以太网地址设置为区别于所述获取的至少一块物理网卡的以太网地址;将所述虚拟网卡的物理地址设置为所述获取的至少一块物理网卡的物理地址中的一个;在不改变所述至少一块物理网卡的物理地址的同时将所述网络设备中各物理网卡与所述虚拟网卡绑定。
所述的步骤d包括从所述网络设备至少一块物理网卡中选取一块物理网卡;将网络设备待发数据的控制网卡设置为所述选取的物理网卡;将所述待发数据的链路层数据帧的源物理地址设置为所述选取的物理网卡的物理地址;所述选取的物理网卡将所述链路层数据帧发送。
所述步骤d中从所述至少一块物理网卡中选取一块物理网卡进一步包括采用轮循算法从所述网络设备的至少一块物理网卡中选取一块物理网卡。
所述的步骤c还包括将所述虚拟网卡设置为属主状态;
将所述网络设备中至少一块物理网卡设置为从属状态。
所述的步骤d包括所述网络设备的物理网卡接收传输来的数据;将所述接收的数据的控制网卡设置为处于属主状态的网卡;判断所述接收的数据是否为基于地址解析协议的请求报文;如果是,返回所述网络设备物理网卡的物理地址;如果不是,所述网络设备对所述接收的数据进行相应处理。
所述步骤d中返回所述网络设备物理网卡的物理地址进一步包括判断所述请求报文的控制网卡是否为所述虚拟网卡;如果是,从所述网络设备的至少一块物理网卡中选取一块物理网卡,并将其物理地址返回;如果不是,将所述请求报文的控制网卡的物理地址返回。
所述步骤d中从所述网络设备的至少一块物理网卡中选取一块物理网卡进一步包括采用轮循算法从所述网络设备的至少一块物理网卡中选取一块物理网卡。
本发明提供的一种基于多网卡的网络设备的数据传输装置,包括虚拟网卡数据存储模块用于存储基于多网卡的网络设备的虚拟网卡的相应数据;设置地址模块用于获取所述网络设备中各物理网卡的地址,并将所述虚拟网卡的地址设置为区别于所述获取的各物理网卡的地址,并存储;数据传输模块用于根据具有不同地址的所述虚拟网卡、物理网卡进行数据传输。
通过上述技术方案的描述可明显得知,本发明通过设置虚拟网卡地址,将虚拟网卡、物理网卡的地址设置为不同的地址,在将虚拟网卡和物理网卡绑定后对外呈现为至少两块网卡,使与网络设备连接的不支持轮循操作的交换机不会产生工作异常现象,而且网络设备直接连接在集线器上时,也不会造成网络设备重复接收远端传输来的数据的现象;本发明通过改变链路层封装处理流程、改变链路层地址解析协议的实现方法,使网络设备在保持多网卡带宽优势的同时,保证了网络设备多块网卡的并行操作,从而使本发明克服了现有技术的缺点,实现了节约网络设备资源,提高数据传输速率的目的。


图1是本发明的建立虚拟网卡并绑定的处理过程示意图;图2是本发明的网卡绑定后TCP/IP协议栈的示意图;图3是本发明的基于多网卡的网络设备发送数据示意图;图4是本发明的基于多网卡的网络设备接收数据示意图;图5是本发明的基于多网卡的网络设备的数据传输装置。
具体实施例方式
本发明的核心思想是建立基于多网卡的网络设备的虚拟网卡;获取所述网络设备中至少一块物理网卡的地址;将所述虚拟网卡的地址设置为区别于所述获取的至少一块物理网卡的地址;所述网络设备根据所述虚拟网卡、物理网卡进行数据传输。
基于本发明的核心思想,下面结合附图对本发明的基于多网卡的网络设备进行数据传输的方法和装置进行具体说明。
本发明的基于多网卡的网络设备进行数据传输的方法需要首先建立虚拟网卡,并将网络设备中的物理网卡绑定在虚拟网卡上。
建立虚拟网卡,并将网络设备中的各物理网卡绑定在虚拟网卡上的过程如附图1所示。
图1中,在步骤1.1,网络设备的系统驱动部分加载网络设备虚拟网卡的驱动模块,同时为虚拟网卡分配名字如bond0,系统驱动部分查询网络设备中物理网卡列表,该列表中是否有与bond0重复的名字,如果没有,成功的为虚拟网卡分配了名字;否则,继续为虚拟网卡分配名字bond1,再次查询网络设备中物理网卡列表,以此类推直至成功的为虚拟网卡分配了名字,或者网卡名称从bond0至bond100都已在网卡列表中存在,错误退出。
到步骤1.2,系统驱动部分调用注册函数在网络驱动层注册一个设备,虚拟出一块网卡,该网卡即为虚拟网卡。虚拟网卡虽然在物理上并不存在,但是对IP层来说虚拟网卡就是一块实际存在的物理网卡。调用注册函数成功后,建立虚拟网卡的过程实现,通过ifconfig -a命令将可以在网络系统中看到这块虚拟网卡。下面的步骤是实现网卡绑定的过程。
到步骤1.3,为该虚拟网卡设置IP地址,IP地址的设置由用户根据具体的网络环境通过用户进程来设置,如果网络设备是一台多穴主机,用户在设置路由的时候应该清楚自己希望在哪个网段做网卡绑定,增加去往哪个网段的带宽。
到步骤1.4,用户通过用户进程读出需要绑定在虚拟网卡上物理网卡的信息,对这些物理网卡做合法性判断,如判断此网卡是否为物理网卡等,以决定该块网卡是否可以绑定在虚拟网卡上。
到步骤1.5,用户通过用户进程调用ioctl,将网络设备中各合法的物理网卡绑定在虚拟网卡上。
到步骤1.6,系统驱动部分判断虚拟网卡目前是否有物理地址,如果虚拟网卡目前还没有物理地址,将虚拟网卡的物理地址设置为第一块绑定到虚拟网卡上的物理网卡,到步骤1.7;如果虚拟网卡已经有物理地址,到步骤1.7。
步骤1.7,系统驱动部分将要求绑定的物理网卡的状态设置为从属状态,将虚拟网卡的状态设置为属主状态。
到步骤1.8,正常退出。
通过上述建立虚拟网卡并将物理网卡绑定过程的描述,可以得知,如果设定网络设备有物理网卡1和物理网卡2,它们的以太网地址分别是192.168.10.20和192.168.10.30,物理地址分别是0010605b67f9和001079df73d9,并且设定虚拟网卡的以太网地址为192.168.10.40。在将各物理网卡绑定在虚拟网卡上后,虚拟网卡、物理网卡1、物理网卡2三者的以太网地址都为192.168.10.40,物理网卡1的物理地址仍然为0010605b67f9,物理网卡2的物理地址仍然为001079df73d9,虚拟网卡的物理地址可以是物理网卡1的0010605b67f9,也可以是物理网卡2的物理地址001079df73d9。
建立虚拟网卡并将物理网卡绑定后TCP/IP协议栈的示意图如附图2所示。
在图2中,2.1是采用本发明的网卡绑定技术后,相对正常TCP/IP协议模型所增加的虚拟接口即虚拟网卡,2.2为网络层,2.3为物理接口即物理网卡。本发明在物理网卡上虚拟一层2.1虚拟接口,让网络层2.2只看到虚拟网卡,再由虚拟网卡去管理物理网卡2.3,这样,从使用网络设备用户的角度看,网络设备使用的是一块网卡,从与网络设备连接的交换机、集线器等其他网络设备看,网络设备使用的是两块不同的网卡,从而使不支持轮循的交换机在网络设备实现网卡绑定后同样能够进行正常工作,避免了数据传输过程中网络设备重复接收数据等异常现象的出现。
建立虚拟网卡并将物理网卡绑定后,网络设备发送数据的示意图如附图3所示。
图3中,在步骤3.1,网络设备的应用层首先创建套接口,应用层发送数据至传输层。
到步骤3.2,网络设备的传输层对该数据进行处理,并将其传输至网络层。
到步骤3.3,网络设备的网络层对该数据进行处理,根据网络设备中的路由选择可得知该数据由虚拟网卡发送。
到步骤3.4,网络设备的网络层发送基于地址解析协议的数据包,请求并得到下一跳目的网络设备的物理地址。
到步骤3.5,网络设备的网络层构建链路层数据帧,并将请求得到的下一跳目的网络设备的物理地址和虚拟网卡的物理地址添入链路层数据帧的帧头。
到步骤3.6,网络设备从绑定在虚拟网卡上的物理网卡中选择一块物理网卡作为实际发送数据的网卡。选择的方法采用轮循算法,如设定有三块物理网卡绑定在虚拟网卡上,则选择的作为实际发送数据的网卡依次为网卡1,网卡2,网卡3,网卡1,网卡2,网卡3,依次循环。
到步骤3.7,将该数据的控制网卡改为实际发送数据的网卡。
到步骤3.8,修改链路层数据帧,将帧头的源物理地址改为实际发送数据的网卡的物理地址。
到步骤3.9,实际发送数据的网卡通过物理线路将该数据发送。
到步骤3.10,成功发送数据后,正常退出。
建立虚拟网卡并将物理网卡绑定后,网络设备接收数据的示意图如附图4所示。
图4中,在步骤4.1,网络设备的物理网卡接收远端传输来的数据。
到步骤4.2,判断该物理网卡是否处于是从属状态,如果不是处于从属状态,跳转到步骤4.4;如果处于从属状态,到步骤4.3。
在步骤4.3、将物理网卡接收到的数据的控制网卡更改为虚拟网卡。
到步骤4.4,剥除该数据的链路层数据帧的帧头,判断该数据是否是基于地址解析协议的请求,如果是,则到步骤4.5,如果不是,到步骤4.7。
在步骤4.5,判断该数据的控制网卡是否是虚拟网卡,如果是,到步骤4.6,如果不是,返回该物理网卡的物理地址,网络设备接收数据的处理过程结束。
在步骤4.6,从绑定在虚拟网卡上的物理网卡中选择一块物理网卡,将选择的该物理网卡的物理地址返回,网络设备接收数据的处理过程结束。选择的方法为轮循算法,设定有三块物理网卡绑定在虚拟网卡上,则选择的物理网卡依次为网卡1,网卡2,网卡3,网卡1,网卡2,网卡3,依次循环。
在步骤4.7,网络设备的网络层接收该数据并进行处理。
到步骤4.8,网络设备的传输层接收该数据并进行处理。
到步骤4.9,网络设备的应用层的守候进程接收该数据并进行处理。
到步骤4.10,网络设备接收数据的过程结束,正常退出。
上述网络设备接收数据的过程是针对网络设备接收远端启动的数据发送来描述的。远端为了响应接收到的数据而产生的数据发送,由于远端可以从接收到的数据中得到介质访问控制地址等信息,使网络设备接收数据的处理过程变的简单,包含在上述图4的描述过程中,在本实施例中不再具体描述。
本发明提供的基于多网卡的网络设备的数据传输装置如附图5所示。
在图5中,该装置包括虚拟网卡数据存储模块500、设置地址模块510和数据传输模块520。
虚拟网卡数据存储模块500用于存储虚拟网卡的名称等数据信息,并接收设置地址模块510传输来的虚拟网卡的以太网地址、物理地址和属主/从属状态。
设置地址模块510用于获取网络设备中各物理网卡的以太网地址和物理地址,将虚拟网卡的以太网地址设置为区别于获取的各物理网卡的以太网地址,将虚拟网卡的物理地址设置为获取的各物理网卡的物理地址中的一个,将虚拟网卡和网络设备中各物理网卡绑定,设置虚拟网卡、各物理网卡的属主/从属状态,并将绑定后虚拟网卡的以太网地址、物理地址、属主/从属状态传输至虚拟网卡数据存储模块500,同时,设置地址模块510存储绑定后各物理网卡的以太网地址和物理地址。
数据传输模块520的功能包括数据发送和数据接收,其数据接收和数据发送的过程如上述方法中描述的过程,在数据接收和数据发送过程中需要用到虚拟网卡和物理网卡的地址和状态时,从设置地址模块510和虚拟网卡数据存储模块500中获取,在本实施例中不再详细描述。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化。
权利要求
1.一种基于多网卡的网络设备的数据传输方法,其特征在于包括a、建立基于多网卡的网络设备的虚拟网卡;b、获取所述网络设备中至少一块物理网卡的地址;c、将所述虚拟网卡的地址设置为区别于所述获取的至少一块物理网卡的地址d、所述网络设备根据具有不同地址的所述虚拟网卡、物理网卡进行数据传输。
2.如权利要求1所述的一种基于多网卡的网络设备的数据传输方法,其特征在于所述步骤a包括在数据链路层建立基于多网卡的网络设备的虚拟网卡;根据物理网卡列表为所述虚拟网卡设置名称。
3.如权利要求1或2所述的一种基于多网卡的网络设备的数据传输方法,其特征在于所述的步骤c包括将所述虚拟网卡的以太网地址设置为区别于所述获取的至少一块物理网卡的以太网地址;将所述虚拟网卡的物理地址设置为所述获取的至少一块物理网卡的物理地址中的一个;在不改变所述至少一块物理网卡的物理地址的同时将所述网络设备中各物理网卡与所述虚拟网卡绑定。
4.如权利要求1或2所述的一种基于多网卡的网络设备的数据传输方法,其特征在于所述的步骤d包括从所述网络设备至少一块物理网卡中选取一块物理网卡;将网络设备待发数据的控制网卡设置为所述选取的物理网卡;将所述待发数据的链路层数据帧的源物理地址设置为所述选取的物理网卡的物理地址;所述选取的物理网卡将所述待发数据发送。
5.如权利要求4所述的一种基于多网卡的网络设备的数据传输方法,其特征在于所述步骤d中从所述至少一块物理网卡中选取一块物理网卡进一步包括采用轮循算法从所述网络设备的至少一块物理网卡中选取一块物理网卡。
6.如权利要求1或2所述的一种基于多网卡的网络设备的数据传输方法,其特征在于所述的步骤c还包括将所述虚拟网卡设置为属主状态;将所述网络设备中至少一块物理网卡设置为从属状态。
7.如权利要求6所述的一种基于多网卡的网络设备的数据传输方法,其特征在于所述的步骤d包括所述网络设备的物理网卡接收传输来的数据;将所述接收的数据的控制网卡设置为处于属主状态的网卡;判断所述接收的数据是否为基于地址解析协议的请求报文;如果是,返回所述网络设备物理网卡的物理地址;如果不是,所述网络设备对所述接收的数据进行相应处理。
8.如权利要求7所述的一种基于多网卡的网络设备的数据传输方法,其特征在于所述步骤d中返回所述网络设备物理网卡的物理地址进一步包括判断所述请求报文的控制网卡是否为所述虚拟网卡;如果是,从所述网络设备的至少一块物理网卡中选取一块物理网卡,并将其物理地址返回;如果不是,将所述请求报文的控制网卡的物理地址返回。
9.如权利要求8所述的一种基于多网卡的网络设备的数据传输方法,其特征在于所述步骤d中从所述网络设备的至少一块物理网卡中选取一块物理网卡进一步包括采用轮循算法从所述网络设备的至少一块物理网卡中选取一块物理网卡。
10.一种基于多网卡的网络设备的数据传输装置,其特征在于包括虚拟网卡数据存储模块用于存储基于多网卡的网络设备的虚拟网卡的相应数据;设置地址模块用于获取所述网络设备中各物理网卡的地址,并将所述虚拟网卡的地址设置为区别于所述获取的各物理网卡的地址,并存储;数据传输模块用于根据具有不同地址的所述虚拟网卡、物理网卡进行数据传输。
全文摘要
本发明提供一种基于多网卡的网络设备的数据传输方法,包括建立基于多网卡的网络设备的虚拟网卡;获取所述网络设备中至少一块物理网卡的地址;将所述虚拟网卡的地址设置为区别于所述获取的至少一块物理网卡的地址;所述网络设备根据具有不同地址的所述虚拟网卡、物理网卡进行数据传输;本发明还提供一种基于多网卡的网络设备的数据传输装置,包括虚拟网卡数据存储模块、设置地址模块、数据传输模块;本发明节约了网络设备资源,提高了数据传输速率。
文档编号H04L12/28GK1556625SQ20041000011
公开日2004年12月22日 申请日期2004年1月5日 优先权日2004年1月5日
发明者朱晨露, 袁林, 谈华芳 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1