计算机、网卡和数据交换方法

文档序号:7702637阅读:188来源:国知局
专利名称:计算机、网卡和数据交换方法
技术领域
本发明涉及计算机领域,尤其涉及一种计算机、网卡和数据交换方法。
背景技术
具有BMC(Baseboard Management Controller,基板管理控制器)的计算机中包 括两个独立运行的系统,一个是传统计算机运行系统,包括处理器、BIOS (Basic Input/ Output System,基本输入输出系统)、操作系统等,另一个是BMC系统,BMC系统也具有其自 身的处理器、ROM (Read only Memory,只读存储器)等,并不依赖于传统计算机运行系统中 的处理器、BIOS或操作系统来工作。传统计算机运行系统和BMC系统之间经常需要进行不同类型的数据的交换,为 了满足不同类型数据的交换需求,需要在传统计算机运行系统和BMC系统之间设置不同 的数据交换接口,例如USB (Universal Serial Bus,通用串行总线)、UART (Universal Asynchronous Receiver Transmitter,通用异步收发器)禾口 IPMI (Ntelligent Platform Management Interface,智能型平台管理接口)规范定义的系统接口等,其中,USB接口专 用于实现虚拟磁盘功能,UART专用于实现SOL功能,IPMI规范定义的系统接口专用于发送 系统命令。如图1所示为现有技术中的传统计算机运行系统和BMC系统之间多种类型的数 据交换接口示意图。一旦传统计算机运行系统和BMC系统之间需要交换新的类型的数据,则需要扩充 出新的接口,众多的接口会带来复杂的走线,以及更高的生产成本和设计难度。

发明内容
有鉴于此,本发明实施例提供一种计算机、网卡和数据交换方法,能够通过网卡实 现计算机中的双系统之间的数据交换。为解决上述问题,本发明实施例提供一种计算机,包括第一系统,包括一第一硬件系统,所述第一硬件系统用于支持一第一操作系统的 运行;第二系统,包括一第二硬件系统,所述第二硬件系统用于支持一第二操作系统的 运行;网卡,分别与所述第一系统和所述第二系统连接,通过一网络与第三系统连接;所 述第三系统与所述计算机相互独立;所述网卡包括获得模块,用于获得数据包;处理模块,用于分析所述数据包的标识信息,产生一分析结果;当所述分析结果表 示所述数据包属于所述第一系统时,将所述数据包存储于第一缓冲区;当所述分析结果表 示所述数据包属于所述第二系统时,将所述数据包存储于第二缓冲区;其中,所述第一缓存 区用于存储提供给所述第一系统的数据;所述第二缓存区用于存储提供给所述第二系统的 数据。
所述网卡还包括发送模块,用于当所述分析结果表示所述数据包属于与所述第三系统时,通过所 述网络向所述第三系统发送所述数据包。所述发送模块进一步用于当所述分析结果表示所述数据包属于与所述第三系统 时,在所述数据包中添加发送方的标识信息,并将添加发送方的标识信息的数据包通过所 述网络发送给所述第三系统;其中,所述发送方的标识信息用于在所述第三系统对所述数据包进行反馈时,添 加到反馈数据包中。所述获得模块进一步用于在获得所述数据包时,依据预定规则为所述数据包添加 标识信息。本发明实施例还提供一种网卡,分别与第一系统和第二系统连接,通过一网络与 第三系统连接;所述第三系统与所述计算机相互独立;所述第一系统,包括一第一硬件系统,所述第一硬件系统用于支持一第一操作系 统的运行;所述第二系统,包括一第二硬件系统,所述第二硬件系统用于支持一第二操作系 统的运行;所述网卡包括获得模块,用于获得数据包;处理模块,用于分析所述数据包的标识信息,产生一分析结果;当所述分析结果表 示所述数据包属于所述第一系统时,将所述数据包存储于第一缓冲区;当所述分析结果表 示所述数据包属于所述第二系统时,将所述数据包存储于第二缓冲区;其中,所述第一缓存 区用于存储提供给所述第一系统的数据;所述第二缓存区用于存储提供给所述第二系统的 数据。所述网卡还包括发送模块,用于当所述分析结果表示所述数据包属于与所述第三系统时,通过所 述网络向所述第三系统发送所述数据包。所述发送模块进一步用于当所述分析结果表示所述数据包属于与所述第三系统 时,在所述数据包中添加发送方的标识信息,并将添加发送方的标识信息的数据包通过所 述网络发送给所述第三系统;其中,所述发送方的标识信息用于在所述第三系统对所述数据包进行反馈时,添 加到反馈数据包中。所述获得模块进一步用于在获得所述数据包时,依据预定规则为所述数据包添加 标识信息。本发明实施例还提供一种数据交换方法,所述方法应用于一具有第一系统和第二 系统的电子设备中,所述第一系统,包括一第一硬件系统,所述第一硬件系统用于支持一第 一操作系统的运行;所述第二系统,包括一第二硬件系统,所述第二硬件系统用于支持一第 二操作系统的运行,所述第一系统与所述第二系统通过一网卡连接,所述网卡通过一网络 与第三系统连接,所述第三系统与所述电子设备相互独立;所述方法包括获得数据包;
分析所述数据包的标识信息,产生一分析结果;当所述分析结果表示所述数据包属于所述第一系统时,将所述数据包存储于第一 缓冲区;当所述分析结果表示所述数据包属于所述第二系统时,将所述数据包存储于第二 缓冲区;其中,所述第一缓存区用于存储提供给所述第一系统的数据;所述第二缓存区用 于存储提供给所述第二系统的数据。所述分析所述数据包的标识信息,产生一分析结果之后,还包括当所述分析结果表示所述数据包属于与所述第三系统时,通过所述网络向所述第 三系统发送所述数据包。所述通过所述网络向所述第三系统发送所述数据包之前,还包括在所述数据包中添加发送方的标识信息;其中,所述发送方的标识信息用于在所述第三系统对所述数据包进行反馈时,添 加到反馈数据包中。在获得所述数据包之后,还包括依据预定规则为所述数据包添加标识信息。本发明的实施例具有以下有益效果在计算机中的双系统之间需要交换的数据时,可以将需要交换的数据通过双系统 的共享网卡实现交换,本发明实施例可满足双系统之间所有类型的数据的交换,无需扩充 多种类型的交换接口,降低了计算机的生产成本和设计难度。


图1为现有技术中的传统计算机运行系统和BMC系统之间多种类型的数据交换接 口示意图;图2为本发明实施例的计算机的结构示意图;图3为本发明实施例的计算机的另一结构示意图;图4为本发明实施例的网卡的结构示意图;图5为本发明实施例的网卡的另一结构示意图;图6为本发明实施例的数据交换方法的流程示意图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。如图2所示为本发明实施例的计算机的结构示意图,所述计算机包括第一系统10,包括一第一硬件系统,所述第一硬件系统用于支持一第一操作系统 的运行;第二系统20,包括一第二硬件系统,所述第二硬件系统用于支持一第二操作系统 的运行;网卡30,分别与所述第一系统10和所述第二系统20连接,通过一网络与第三系统 连接;所述第三系统与所述计算机相互独立;所述网卡30包括获得模块31,用于获得数据包;所述数据包可以是来自于计算机内部(所述第一系统10或所述第二系统20)的数据包,也可以是来自于计算机外部(所述第三系统)的数据包。处理模块32,用于分析所述数据包的标识信息,产生一分析结果;当所述分析结 果表示所述数据包属于所述第一系统10时,将所述数据包存储于第一缓冲区;当所述分析 结果表示所述数据包属于所述第二系统20时,将所述数据包存储于第二缓冲区;其中,所 述第一缓存区用于存储提供给所述第一系统10的数据;所述第二缓存区用于存储提供给 所述第二系统20的数据。通常情况下,所述第一缓存区和所述第二缓存区设置于所述网卡30中,当然,也 不排除所述第一缓存区和所述第二缓存区设置于与所述网卡30连接的其他存储装置中的 情况。可以理解的是,上述实施例中,通过所述网卡30实现所述第一系统10和所述第二 系统20之间的数据交换的条件是所述第一系统10和所述第二系统20均将需要发送给对 方的数据,发送给所述网卡30,而非通过其他路径发送。所述第一系统10可以为传统计算机运行系统,传统计算机运行系统主要包括处 理器、BI0S(Basic Input/Output System,基本输入输出系统)、操作系统(如Windows、 Vista)等组成部分,即,上述实施例中所述的包括第一硬件系统以及运行于所述第一硬件 系统上的第一操作系统。所述第二系统20可以为BMC系统或ARM系统等小型系统,所述BMC系统或ARM系 统等小型系统主要包括低功耗处理器、小型操作系统(如WinCE)等组成部分,即,上述实 施例中所述的包括第二硬件系统以及运行于所述第二硬件系统上的第二操作系统。当然,所述第一系统10也可以为BMC系统或ARM系统等小型系统,所述第二系统 20也可以为传统计算机运行系统。通过上述实施例提供的计算机,在计算机中的双系统之间需要交换的数据时,可 以将需要交换的数据通过双系统的共享网卡实现交换,本发明实施例可满足双系统之间所 有类型的数据的交换,无需扩充多种类型的交换接口,降低了计算机的生产成本和设计难度。由于所述网卡30获得的数据包可能是需要发送给所述第三系统的数据包,因此, 如图3所示,所述网卡还包括发送模块33,用于当所述分析结果表示所述数据包属于与所述第三系统时,通过 所述网络向所述第三系统发送所述数据包。所述第三系统为网络上的一个独立计算机系统,通过网络与本发明实施例中的计 算机连接,所述第三系统具有一 IP地址,当所述分析结果表示所述数据包属于与所述第三 系统时,所述发送模块33可以根据所述第三系统的IP地址,将所述数据包发送给所述第三 系统。上述实施例中的第一系统10和第二系统20可以分别具有一 IP地址,也可以共同 一 IP地址,在上述两种情况下,所述网卡30对获得的数据包的处理方法也有所不同,下面 将分别进行详细描述。(1)所述第一系统10和所述第二系统20可以分别具有一 IP地址,举例来说,假设 所述第一系统10的IP地址为IPl,所述第二系统20的IP地址为IP2,所述第三系统的IP地址为IP3,所述第三系统并非特指网络上的某一计算机系统,而是指通过网络与本发明实 施例中的计算机连接的任一计算机系统。此时,每个系统的各自的IP地址为每个系统各自 的标识信息。所述第一系统10可以在需要发送给所述第二系统20或所述第三系统的数据包中 携带接收方IP地址,同样的,所述第二系统20也可以在需要发送给所述第一系统10或所 述第三系统的数据包中携带接收方IP地址。所述网卡30在获得数据包时,分析所述数据包中携带的接收方IP地址,所述接收 方IP地址即上述实施例中的标识信息,所述数据包可以是来自于所述第一系统10、所述第 二系统20或所述第三系统的数据包。如果分析出所述数据包的接收方IP地址为IP1,则表 示所述数据包属于所述第一系统10,将所述数据包存储于所述第一缓存区中;如果分析出 所述数据包的接收方IP地址为IP2,则表示所述数据包属于所述第二系统20,将所述数据 存储于所述第二缓存区中;如果分析出所述数据包的接收方IP地址为IP3,则表示所述数 据包属于与所述第三系统,所述网卡30通过所述网络将所述数据包发送给所述第三系统。(2)所述第一系统10和所述第二系统20共用一 IP地址时,为了区分,可以分别为 所述第一系统10、所述第二系统20设置标识信息,假设所述第一系统10的标识信息为1, 所述第二系统20的标识信息为2。此时,所述第一系统10在需要发送给所述第二系统20的数据包中携带所述第二 系统20的标识信息,同样的,所述第二系统20也可以在需要发送给所述第一系统10的数 据包中携带所述第一系统10的标识信息。所述网卡30在获得数据包时,分析所述数据包的标识信息。如果分析出所述数据 包的标识信息为1,则表示所述数据包属于所述第一系统10,将所述数据包存储于所述第 一缓存区中;如果分析出所述数据包的标识信息为2,则表示所述数据包属于所述第二系 统20,将所述数据包存储于所述第二缓存区中。另外,所述第一系统10或所述第二系统20在需要向网络上发送数据时,即,需要 向上述实施例中提到的所述第三系统发送数据时,可以在需要发送的数据包中携带一标识 信息,所述标识信息不同于所述第一系统10和所述第二系统20的标识信息,其用于标识所 述数据包是发送给网络上的所述第三系统,例如,所述标识信息为3。所述网卡30在获得所述数据包时,分析所述数据包的标识信息,如果分析出所述 数据包的标识信息为3,则表示所述数据包是要发送到网络上的,所述网卡30则解析出所 述数据包中携带的所述第三系统的IP地址,根据所述IP地址,将所述数据包通过网络发送 给所述第三系统。上述实施例中是第一系统或者第二系统向网络上发送数据包时,对所述数据包中 添加了标识信息3,从而让网卡知道该数据包是要发送到网络上的。同时可以理解的是,本 发明的实施例还可以第一系统或者第二系统向网络上发送数据包时直接将该数据包发送 给网卡,网卡接收到该数据包后分析标识信息,得到一个分析结果;所述分析结果表示所述 数据包中不包含标识信息2也不包含标识信息1,则默认为该数据包是发送到网络上的。另 一种情况,第一系统向网络上发送数据包,网卡接收到该数据包后分析标识信息,得到一个 分析结果;所述分析结果表示所述数据包中不包含标识信息2 (说明第一系统发送的该数 据包不是发生给第二系统的。)则默认为该数据包是发送到网络上的。
所述网卡30不仅可以向网络上发送数据,可以理解的是,所述网卡30还可以接收 网络上的数据。所述网卡30在接收到网络上的数据包时,由于所述第一系统10与所述第二系统 20共用同一 IP地址,难以获知所述数据包是发送给所述第一系统10的,还是发送给所述第 二系统20的,因此,所述网卡30还需要具有一判断机制,用于判断来自于网络的数据包是 发送给所述第一系统10的,还是发送给所述第二系统20的。所述网卡30可以以下采用两 种实施方式进行判断。第一种实施方式为所述网卡30可以在发送所述第一系统10或所述第二系统20 发送给网络上的数据包时,记录所述数据包的发送方标识,在接收到网络对所述数据包的 反馈数据包时,将所述发送方标识添加到反馈数据包中,从而,通过分析所述反馈数据包的 标识信息,确定所述反馈数据包是发送给所述第一系统10的,还是发送给所述第二系统20 的。另外一种实施方式为所述网卡30可以在发送所述第一系统10或所述第二系统 20发送给网络上的数据包时,在所述数据包中添加发送方的标识信息,并将添加发送方的 标识信息的数据包发送给网络,即通过网络发送给上述实施例中提到的所述第三系统,从 而,所述第三系统可以在对所述数据包进行反馈时,将所述标识信息添加到反馈数据包中。 所述网卡30在获得所述反馈数据包时,可以在通过分析所述反馈数据包中的标识信息,确 定所述反馈数据包是发送给所述第一系统10的,还是发送给所述第二系统20的。即,上述实施例中的发送模块33进一步用于当所述分析结果表示所述数据包属 于与所述第三系统时,在所述数据包中添加发送方的标识信息,并将添加发送方的标识信 息的数据包通过所述网络发送给所述第三系统;其中,所述发送方的标识信息用于在所述 第三系统对所述数据包进行反馈时,添加到反馈数据包中。另外,如果所述网卡30接收到的网络上的第三系统发送的数据包,并非所述反馈 数据包,而是所述第三系统主动向所述第一系统10或所述第二系统20发送的数据包时,所 述网卡30可以依据以下预定规则对所述数据包进行处理。所述预定规则为所述网卡30在获得所述第三系统发送的数据包时,可以随机为 所述数据包添加所述第一系统10和所述第二系统20中任意一个系统的标识信息,并存储 于所述系统对应的缓存区中,所述系统可以在接收到所述数据包时,对所述数据包进行分 析,如果确认不是发送给自身的数据包,则通过上述实施例中的数据交换方法将所述数据 包发送给另一系统。所述预定规则还可以为所述网卡30可以首先确定当前处于工作状态的系统是 第一系统10还是第二系统20,将所述数据包添加所述当前处于工作状态的系统的标识信 息,从而通过分析所述数据包的标识信息,确定将所述数据包存储于所述第一缓存区或所 述第二缓存区中。所述预定规则还可以为所述网卡30可以首先确定用户设置的接收方系统,将所 述数据包添加所述用户设置的接收方系统的标识信息,从而可以通过分析所述数据包的标 识信息,确定将所述数据包存储于所述第一缓存区或所述第二缓存区中。即,上述实施例中的获得模块31进一步用于在获得所述数据包时,依据预定规则 为所述数据包添加标识信息。
另外,上述实施例中,所述网卡30也可以在接收到网络上的第三系统发送的数据 包时,判断所述数据包中是否具有接收方的标识信息,如果没有,所述网卡30可以直接将 所述数据包存储于当前处于工作状态的系统对应的缓存区中、或者随机选取的系统对应的 缓存区中、或者用户设置的接收方系统对应的缓存区中,而无需为所述数据包添加标识信 肩、ο上述实施例中,所述第一系统10和所述第二系统20可以通过两种方式从所述网 卡30的缓存区中获取数据包,一种方式为所述网卡30主动通知所述网卡30在所述第一 缓存区或所述第二缓存区中存在数据包时,即通知所述第一系统10或所述第二系统20读 取所述数据包;另外一种方式为由所述第一系统10和所述第二系统20主动侦测所述第 一系统10或所述第二系统20时时或周期性侦测所述第一缓存区或所述第二缓存区中是否 存在数据包,在所述第一缓存区或所述第二缓存区中存在数据包时,读取所述数据包。在具体实现时,所述第一缓存区或所述第二缓存区可以具有一标识位,在所述第 一缓存区或所述第二缓存区存在数据包时,即更改所述标识位,假设在所述第一缓存区或 所述第二缓存区中不存在数据包时,将所述标识位置为0,在所述第一缓存区或所述第二缓 存区中存在数据包时,将所述标识位置为1,所述第一系统10和所述第二系统20中时时或 周期性侦测所述标识位,在侦测到所述标识位置为1时,从所述第一缓存区或所述第二缓 存区中读取数据包。在所述第一系统10为传统计算机运行系统时,所述第一系统10可以采用网卡驱 动程序侦测所述第一缓存区中是否存在数据包,在所述第二系统为BMC系统时,所述第二 系统20可以采用为BMCf/w(固件)(相当于上述网卡驱动程序)侦测所述第二缓存区中是 否存在数据包。所述第一系统10或所述第二系统20在从所述网卡30中读取到数据包后,可以对 读取到的数据包进行解封装,从而得到两系统之间的交换数据。如图4所示为本发明实施例的网卡的结构示意图,所述网卡分别与第一系统和第 二系统连接,通过一网络与第三系统连接;所述第三系统与所述计算机相互独立;所述第一系统,包括一第一硬件系统,所述第一硬件系统用于支持一第一操作系 统的运行;所述第二系统,包括一第二硬件系统,所述第二硬件系统用于支持一第二操作系 统的运行;所述网卡30包括获得模块31,用于获得数据包;所述数据包可以是来自于计算机内部(所述第一 系统或所述第二系统)的数据包,也可以是来自于计算机外部(所述第三系统)的数据包。处理模块32,用于分析所述数据包的标识信息,产生一分析结果;当所述分析结 果表示所述数据包属于所述第一系统时,将所述数据包存储于第一缓冲区;当所述分析结 果表示所述数据包属于所述第二系统时,将所述数据包存储于第二缓冲区;其中,所述第一 缓存区用于存储提供给所述第一系统的数据;所述第二缓存区用于存储提供给所述第二系 统的数据。通常情况下,所述第一缓存区和所述第二缓存区设置于所述网卡30中,当然,也 不排除所述第一缓存区和所述第二缓存区设置于与所述网卡30连接的其他存储装置中的情况。可以理解的是,上述实施例中,通过所述网卡30实现所述第一系统和所述第二系 统之间的数据交换的条件是所述第一系统和所述第二系统均将需要发送给对方的数据, 发送给所述网卡30,而非通过其他路径发送。通过上述实施例提供的网卡,在计算机中的双系统之间需要交换的数据时,可以 将需要交换的数据通过双系统的共享网卡实现交换,本发明实施例可满足双系统之间所有 类型的数据的交换,无需扩充多种类型的交换接口,降低了计算机的生产成本和设计难度。由于所述网卡30获得的数据包可能是需要发送给所述第三系统的数据包,因此, 如图5所示,所述网卡还包括发送模块33,用于当所述分析结果表示所述数据包属于与所述第三系统时,通过 所述网络向所述第三系统发送所述数据包。所述第三系统为网络上的一个独立计算机系统,通过网络与本发明实施例中的计 算机连接,所述第三系统具有一 IP地址,当所述分析结果表示所述数据包属于与所述第三 系统时,所述发送模块33可以根据所述第三系统的IP地址,将所述数据包发送给所述第三 系统。上述实施例中的第一系统和第二系统可以分别具有一 IP地址,也可以共同一 IP 地址,在上述两种情况下,所述网卡对获得的数据包的处理方法也有所不同,下面将分别进 行详细描述。(1)所述第一系统和所述第二系统可以分别具有一 IP地址,此时,可以将每个系 统各自IP地址作为每个系统各自的标识信息。所述第一系统可以在需要发送给所述第二系统或所述第三系统的数据包中携带 接收方IP地址,同样的,所述第二系统也可以在需要发送给所述第一系统或所述第三系统 的数据包中携带接收方IP地址。所述网卡在获得数据包时,分析所述数据包中携带的接收方IP地址,所述数据包 可以是来自于所述第一系统、所述第二系统或所述第三系统的数据包,根据所述接收方IP 地址,判断所述数据包是属于所述第一系统、所述第二系统还是所述第三系统。(2)所述第一系统和所述第二系统共用一 IP地址时,为了区分,可以分别为所述 第一系统、所述第二系统设置标识信息,假设所述第一系统的标识信息为1,所述第二系统 的标识信息为2。此时,所述第一系统在需要发送给所述第二系统的数据包中携带所述第二系统的 标识信息,同样的,所述第二系统也可以在需要发送给所述第一系统的数据包中携带所述 第一系统的标识信息。所述网卡30在获得数据包时,分析所述数据包的标识信息。如果分析出所述数据 包的标识信息为1,则表示所述数据包属于所述第一系统,将所述数据包存储于所述第一缓 存区中;如果分析出所述数据包的标识信息为2,则表示所述数据包属于所述第二系统,将 所述数据包存储于所述第二缓存区中。另外,所述第一系统或所述第二系统在需要向网络上发送数据时,即 ,需要向上述 实施例中提到的所述第三系统发送数据时,可以在需要发送的数据包中携带一标识信息, 所述标识信息不同于所述第一系统和所述第二系统的标识信息,其用于标识所述数据包是发送给所述第三系统,例如,所述标识信息为3。所述网卡30在获得所述数据包时,分析所述数据包的标识信息,如果分析出所述 数据包的标识信息为3,则表示所述数据包属于所述第三系统,所述网卡30则解析出所述 数据包中携带的所述第三系统的IP地址,根据所述IP地址,将所述数据包通过网络发送给 所述第三系统。所述网卡30不仅可以向网络上发送数据,可以理解的是,所述网卡30还可以接收 网络上的数据。所述网卡30在接收到网络上的数据包时,由于所述第一系统与所述第二系统共 用同一 IP地址,难以获知所述数据包是发送给所述第一系统的,还是发送给所述第二系统 的,因此,所述网卡30还需要具有一判断机制,用于判断来自于网络的数据包是发送给所 述第一系统的,还是发送给所述第二系统的。所述网卡30可以以下采用两种实施方式进行 判断。第一种实施方式为所述网卡30可以在发送所述第一系统或所述第二系统发送 给网络上的数据包时,记录所述数据包的发送方标识,在接收到网络对所述数据包的反馈 数据包时,将所述发送方标识添加到反馈数据包中,从而,通过分析所述反馈数据包的标识 信息,确定所述反馈数据包是发送给所述第一系统的,还是发送给所述第二系统的。另外一种实施方式为所述网卡30可以在发送所述第一系统或所述第二系统发 送给网络上的数据包时,在所述数据包中添加发送方的标识信息,并将添加发送方的标识 信息的数据包发送给网络,即通过网络发送给上述实施例中提到的所述第三系统,从而,所 述第三系统可以在对所述数据包进行反馈时,将所述标识信息添加到反馈数据包中。所述 网卡30在获得所述反馈数据包时,可以在通过分析所述反馈数据包中的标识信息,确定所 述反馈数据包是发送给所述第一系统的,还是发送给所述第二系统的。S卩,上述实施例中的发送模块33进一步用于当所述分析结果表示所述数据包属 于与所述第三系统时,在所述数据包中添加发送方的标识信息,并将添加发送方的标识信 息的数据包通过所述网络发送给所述第三系统;其中,所述发送方的标识信息用于在所述 第三系统对所述数据包进行反馈时,添加到反馈数据包中。另外,如果所述网卡30接收到的网络上的第三系统发送的数据包,并非所述反馈 数据包,而是所述第三系统主动向所述第一系统或所述第二系统发送的数据包时,所述网 卡30可以依据以下预定规则对所述数据包进行处理。所述预定规则为所述网卡30在获得所述第三系统发送的数据包时,可以随机为 所述数据包添加所述第一系统和所述第二系统中任意一个系统的标识信息,并存储于所述 系统对应的缓存区中,所述系统可以在接收到所述数据包时,对所述数据包进行分析,如果 确认不是发送给自身的数据包,则通过上述实施例中的数据交换方法将所述数据包发送给
另一系统。所述预定规则还可以为所述网卡30可以首先确定当前处于工作状态的系统是 第一系统还是第二系统,将所述数据包添加所述当前处于工作状态的系统的标识信息,从 而通过分析所述数据包的标识信息,确定将所述数据包存储于所述第一缓存区或所述第二 缓存区中。所述预定规则还可以为所述网卡30可以首先确定用户设置的接收方系统,将所述数据包添加所述用户设置的接收方系统的标识信息,从而可以通过分析所述数据包的标 识信息,确定将所述数据包存储于所述第一缓存区或所述第二缓存区中。即,上述实施例中的获得模块31进一步用于在获得所述数据包时,依据预定规则 为所述数据包添加标识信息。另外,上述实施例中,所述网卡30也可以在接收到网络上的第三系统发送的数据 包时,判断所述数据包中是否具有接收方的标识信息,如果没有,所述网卡30可以直接将 所述数据包存储于当前处于工作状态的系统对应的缓存区中、或者随机选取的系统对应的 缓存区中、或者用户设置的接收方系统对应的缓存区中,而无需为所述数据包添加标识信息。如图6所示为本发明实施例的数据交换方法的流程示意图,所述方法应用于一具 有第一系统和第二系统的电子设备中,所述第一系统,包括一第一硬件系统,所述第一硬件 系统用于支持一第一操作系统的运行;所述第二系统,包括一第二硬件系统,所述第二硬件 系统用于支持一第二操作系统的运行,所述第一系统与所述第二系统通过一网卡连接,所 述网卡通过一网络与第三系统连接,所述第三系统与所述电子设备相互独立;所述数据交 换方法包括以下步骤步骤61,获得数据包;所述数据包可以是来自于计算机内部(所述第一系统或所 述第二系统)的数据包,也可以是来自于计算机外部(所述第三系统)的数据包。步骤62,分析所述数据包的标识信息,产生一分析结果;步骤63,当所述分析结果表示所述数据包属于所述第一系统时,将所述数据包存 储于第一缓冲区;步骤64,当所述分析结果表示所述数据包属于所述第二系统时,将所述数据包存 储于第二缓冲区。其中,所述第一缓存区用于存储提供给所述第一系统的数据;所述第二缓存区用 于存储提供给所述第二系统的数据。可以理解的是,上述实施例中,通过所述网卡实现所述第一系统和所述第二系统 之间的数据交换的条件是所述第一系统和所述第二系统均将需要发送给对方的数据,发 送给所述网卡,而非通过其他路径发送。通过上述实施例提供的数据交换方法,在计算机中的双系统之间需要交换的数据 时,可以将需要交换的数据通过双系统的共享网卡实现交换,本发明实施例可满足双系统 之间所有类型的数据的交换,无需扩充多种类型的交换接口,降低了计算机的生产成本和 设计难度。由于所述网卡获得的数据包可能是需要发送给所述第三系统的数据包,因此,上 述步骤62之后,还包括当所述分析结果表示所述数据包属于与所述第三系统时,通过所 述网络向所述第三系统发送所述数据包的步骤。所述第三系统为网络上的一个独立计算机系统,通过网络与本发明实施例中的计 算机连接,所述第三系统具有一 IP地址,当所述分析结果表示所述数据包属于与所述第三 系统时,所述网卡可以根据所述第三系统的IP地址,将所述数据包发送给所述第三系统。上述实施例中的第一系统和第二系统可以分别具有一 IP地址,也可以共同一 IP 地址,在上述两种情况下,所述网卡对获得的数据包的处理方法也有所不同,下面将分别进行详细描述。(1)所述第一系统和所述第二系统可以分别具有一 IP地址,此时,可以将每个系 统各自IP地址作为每个系统各自的标识信息。所述第一系统可以在需要发送给所述第二系统或所述第三系统的数据包中携带 接收方IP地址,同样的,所述第二系统也可以在需要发送给所述第一系统或所述第三系统 的数据包中携带接收方IP地址。所述网卡在获得数据包时,分析所述数据包中携带的接收方IP地址,所述数据包 可以是来自于所述第一系统、所述第二系统或所述第三系统的数据包,根据所述接收方IP 地址,判断所述数据包是属于所述第一系统、所述第二系统还是所述第三系统。(2)所述第一系统和所述第二系统共用一 IP地址时,为了区分,可以分别为所述 第一系统、所述第二系统设置标识信息,假设所述第一系统的标识信息为1,所述第二系统 的标识信息为2。此时,所述第一系统在需要发送给所述第二系统的数据包中携带所述第二系统的 标识信息,同样的,所述第二系统也可以在需要发送给所述第一系统的数据包中携带所述 第一系统的标识信息。所述网卡在获得数据包时,分析所述数据包的标识信息。如果分析出所述数据包 的标识信息为1,则表示所述数据包属于所述第一系统,将所述数据包存储于所述第一缓存 区中;如果分析出所述数据包的标识信息为2,则表示所述数据包属于所述第二系统,将所 述数据包存储于所述第二缓存区中。另外,所述第一系统或所述第二系统在需要向网络上发送数据时,S卩,需要向上述 实施例中提到的所述第三系统发送数据时,可以在需要发送的数据包中携带一标识信息, 所述标识信息不同于所述第一系统和所述第二系统的标识信息,其用于标识所述数据包是 发送给所述第三系统,例如,所述标识信息为3。所述网卡在获得所述数据包时,分析所述数据包的标识信息,如果分析出所述数 据包的标识信息为3,则表示所述数据包属于所述第三系统,所述网卡则解析出所述数据包 中携带的所述第三系统的IP地址,根据所述IP地址,将所述数据包通过网络发送给所述第 三系统。所述网卡不仅可以向网络上发送数据,可以理解的是,所述网卡还可以接收网络 上的数据。所述网卡在接收到网络上的数据包时,由于所述第一系统与所述第二系统共用同 一 IP地址,难以获知所述数据包是发送给所述第一系统的,还是发送给所述第二系统的, 因此,所述网卡还需要具有一判断机制,用于判断来自于网络的数据包是发送给所述第一 系统的,还是发送给所述第二系统的。所述网卡可以以下采用两种实施方式进行判断。第一种实施方式为所述网卡可以在发送所述第一系统或所述第二系统发送给 网络上的数据包时,记录所述数据包的发送方标识,在接收到网络对所述数据包的反馈数 据包时,将所述发送方标识添加到反馈数据包中,从而,通过分析所述反馈数据包的标识信 息,确定所述反馈数据包是发送给所述第一系统的,还是发送给所述第二系统的。另外一种实施方式为所述网卡可以在发送所述第一系统或所述第二系统发送给 网络上的数据包时,在所述数据包中添加发送方的标识信息,并将添加发送方的标识信息的数据包发送给网络,即通过网络发送给上述实施例中提到的所述第三系统,从而,所述第 三系统可以在对所述数据包进行反馈时,将所述标识信息添加到反馈数据包中。所述网卡 在获得所述反馈数据包时,可以在通过分析所述反馈数据包中的标识信息,确定所述反馈 数据包是发送给所述第一系统的,还是发送给所述第二系统的。即,上述步骤62之后,还包括当所述分析结果表示所述数据包属于与所述第三 系统时,在所述数据包中添加发送方的标识信息,并将添加发送方的标识信息的数据包通 过所述网络发送给所述第三系统的步骤;其中,所述发送方的标识信息用于在所述第三系 统对所述数据包进行反馈时,添加到反馈数据包中。另外,如果所述网卡接收到的网络上的第三系统发送的数据包,并非所述反馈数 据包,而是所述第三系统主动向所述第一系统或所述第二系统发送的数据包时,所述网卡 可以依据以下预定规则对所述数据包进行处理。所述预定规则为所述网卡在获得所述第三系统发送的数据包时,可以随机为所 述数据包添加所述第一系统和所述第二系统中任意一个系统的标识信息,并存储于所述系 统对应的缓存区中,所述系统可以在接收到所述数据包时,对所述数据包进行分析,如果确 认不是发送给自身的数据包,则通过上述实施例中的数据交换方法将所述数据包发送给另 一系统。所述预定规则还可以为所述网卡可以首先确定当前处于工作状态的系统是第一 系统还是第二系统,将所述数据包添加所述当前处于工作状态的系统的标识信息,从而通 过分析所述数据包的标识信息,确定将所述数据包存储于所述第一缓存区或所述第二缓存 区中。所述预定规则还可以为所述网卡可以首先确定用户设置的接收方系统,将所述 数据包添加所述用户设置的接收方系统的标识信息,从而可以通过分析所述数据包的标识 信息,确定将所述数据包存储于所述第一缓存区或所述第二缓存区中。即,上述实施例中的步骤61之后还包括依据预定规则为所述数据包添加标识信 息。另外,上述实施例中,所述网卡也可以在接收到网络上的第三系统发送的数据包 时,判断所述数据包中是否具有接收方的标识信息,如果没有,所述网卡可以直接将所述数 据包存储于当前处于工作状态的系统对应的缓存区中、或者随机选取的系统对应的缓存区 中、或者用户设置的接收方系统对应的缓存区中,而无需为所述数据包添加标识信息。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种计算机,其特征在于,包括第一系统,包括一第一硬件系统,所述第一硬件系统用于支持一第一操作系统的运行;第二系统,包括一第二硬件系统,所述第二硬件系统用于支持一第二操作系统的运行;网卡,分别与所述第一系统和所述第二系统连接,通过一网络与第三系统连接;所述第三系统与所述计算机相互独立;所述网卡包括获得模块,用于获得数据包;处理模块,用于分析所述数据包的标识信息,产生一分析结果;当所述分析结果表示所述数据包属于所述第一系统时,将所述数据包存储于第一缓冲区;当所述分析结果表示所述数据包属于所述第二系统时,将所述数据包存储于第二缓冲区;其中,所述第一缓存区用于存储提供给所述第一系统的数据;所述第二缓存区用于存储提供给所述第二系统的数据。
2.根据权利要求1所述的计算机,其特征在于,所述网卡还包括发送模块,用于当所述分析结果表示所述数据包属于与所述第三系统时,通过所述网 络向所述第三系统发送所述数据包。
3.根据权利要求2所述的计算机,其特征在于,所述发送模块进一步用于当所述分析 结果表示所述数据包属于与所述第三系统时,在所述数据包中添加发送方的标识信息,并 将添加发送方的标识信息的数据包通过所述网络发送给所述第三系统;其中,所述发送方的标识信息用于在所述第三系统对所述数据包进行反馈时,添加到 反馈数据包中。
4.根据权利要求1所述的计算机,其特征在于,所述获得模块进一步用于在获得所述 数据包时,依据预定规则为所述数据包添加标识信息。
5.一种网卡,其特征在于分别与第一系统和第二系统连接,通过一网络与第三系统连接;所述第三系统与所述 计算机相互独立;所述第一系统,包括一第一硬件系统,所述第一硬件系统用于支持一第一操作系统的 运行;所述第二系统,包括一第二硬件系统,所述第二硬件系统用于支持一第二操作系统的 运行;所述网卡包括获得模块,用于获得数据包;处理模块,用于分析所述数据包的标识信息,产生一分析结果;当所述分析结果表示 所述数据包属于所述第一系统时,将所述数据包存储于第一缓冲区;当所述分析结果表示 所述数据包属于所述第二系统时,将所述数据包存储于第二缓冲区;其中,所述第一缓存区 用于存储提供给所述第一系统的数据;所述第二缓存区用于存储提供给所述第二系统的数 据。
6.根据权利要求5所述的网卡,其特征在于,还包括发送模块,用于当所述分析结果表示所述数据包属于与所述第三系统时,通过所述网络向所述第三系统发送所述数据包。
7.根据权利要求6所述的网卡,其特征在于,所述发送模块进一步用于当所述分析结 果表示所述数据包属于与所述第三系统时,在所述数据包中添加发送方的标识信息,并将 添加发送方的标识信息的数据包通过所述网络发送给所述第三系统;其中,所述发送方的标识信息用于在所述第三系统对所述数据包进行反馈时,添加到 反馈数据包中。
8.根据权利要求5所述的网卡,其特征在于,所述获得模块进一步用于在获得所述数 据包时,依据预定规则为所述数据包添加标识信息。
9.一种数据交换方法,其特征在于,所述方法应用于一具有第一系统和第二系统的电 子设备中,所述第一系统,包括一第一硬件系统,所述第一硬件系统用于支持一第一操作系 统的运行;所述第二系统,包括一第二硬件系统,所述第二硬件系统用于支持一第二操作系 统的运行,所述第一系统与所述第二系统通过一网卡连接,所述网卡通过一网络与第三系 统连接,所述第三系统与所述电子设备相互独立;所述方法包括获得数据包;分析所述数据包的标识信息,产生一分析结果;当所述分析结果表示所述数据包属于所述第一系统时,将所述数据包存储于第一缓冲 区;当所述分析结果表示所述数据包属于所述第二系统时,将所述数据包存储于第二缓冲 区;其中,所述第一缓存区用于存储提供给所述第一系统的数据;所述第二缓存区用于存 储提供给所述第二系统的数据。
10.根据权利要求9所述的数据交换方法,其特征在于,所述分析所述数据包的标识信 息,产生一分析结果之后,还包括当所述分析结果表示所述数据包属于与所述第三系统时,通过所述网络向所述第三系 统发送所述数据包。
11.根据权利要求10所述的数据交换方法,其特征在于,所述通过所述网络向所述第 三系统发送所述数据包之前,还包括在所述数据包中添加发送方的标识信息;其中,所述发送方的标识信息用于在所述第三系统对所述数据包进行反馈时,添加到 反馈数据包中。
12.根据权利要求9所述的数据交换方法,其特征在于,在获得所述数据包之后,还包括依据预定规则为所述数据包添加标识信息。
全文摘要
本发明提供一种计算机、网卡和数据交换方法,所述计算机包括第一系统;第二系统;网卡,分别与所述第一系统和所述第二系统连接,通过一网络与第三系统连接;所述第三系统与所述计算机相互独立;所述网卡包括获得模块,用于获得数据包;处理模块,用于分析所述数据包的标识信息,产生一分析结果;当所述分析结果表示所述数据包属于所述第一系统时,将所述数据包存储于第一缓冲区;当所述分析结果表示所述数据包属于所述第二系统时,将所述数据包存储于第二缓冲区;其中,所述第一缓存区用于存储提供给所述第一系统的数据;所述第二缓存区用于存储提供给所述第二系统的数据。本发明通过网卡实现计算机中的双系统之间的数据交换。
文档编号H04L12/56GK101997932SQ200910091899
公开日2011年3月30日 申请日期2009年8月28日 优先权日2009年8月28日
发明者柯海滨 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1