CN1435773A - 基于多处理机的虚拟网卡系统及其通信方法 - Google Patents

基于多处理机的虚拟网卡系统及其通信方法 Download PDF

Info

Publication number
CN1435773A
CN1435773A CN 02110763 CN02110763A CN1435773A CN 1435773 A CN1435773 A CN 1435773A CN 02110763 CN02110763 CN 02110763 CN 02110763 A CN02110763 A CN 02110763A CN 1435773 A CN1435773 A CN 1435773A
Authority
CN
China
Prior art keywords
processor
packet
interface card
network
network interface
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.)
Granted
Application number
CN 02110763
Other languages
English (en)
Other versions
CN100373374C (zh
Inventor
童小九
吴晨
李强
李斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai No 2 Research Institute of ZTE Corp
Original Assignee
Shanghai No 2 Research Institute of ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai No 2 Research Institute of ZTE Corp filed Critical Shanghai No 2 Research Institute of ZTE Corp
Priority to CNB021107637A priority Critical patent/CN100373374C/zh
Publication of CN1435773A publication Critical patent/CN1435773A/zh
Application granted granted Critical
Publication of CN100373374C publication Critical patent/CN100373374C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种基于多处理机的虚拟网卡系统及其通信方法,通过一个网卡、主处理机、处理机之间的通信装置以及多个其它处理机构建成整个虚拟网卡系统;外部数据包通过网卡、网卡驱动模块、主处理机的通信驱动模块,并按照数据包的目的地址分发到目的处理机;各处理机的网络协议栈将上层应用部分的数据转换成数据包通过通信驱动模块、处理机之间的通信装置、主处理机的通信驱动模块、网卡驱动模块以及网卡向外部发送。本发明广泛适用于嵌入式通讯设备中多处理机系统的设计,使用本发明能够降低系统硬件的成本、节约系统空间,并能方便地通过网卡完成系统调试,以提高系统的开发速度。

Description

基于多处理机的虚拟网卡系统及其通信方法
所属领域
本发明涉及嵌入式系统领域,特别是涉及大型嵌入式设备中多处理机系统的设计。
背景技术
为了满足大型嵌入式系统计算量非常大和实时性的要求,充分利用系统的分布式计算的特点,分布式多处理机系统是经常被选择的方案。在这种多处理机系统中,处理机之间通信方法一般有以太网通信和总线通信。
参考图1所示的以太网络通信方式示意图,虽然具有易扩充性、可靠性高、易实现性、较宽带宽,而且嵌入式系统开发平台普遍支持通过网络调试目标程序等优点,但是实现网络通信必须给每个处理机配置一块网卡,增加了硬件体积、系统芯片数量,进而增加了系统的硬件成本。特别是对于嵌入式系统,由于系统空间上的限制,要求尽可能地减少嵌入式系统的体积,所以不适合采用以太网通信方式。
采用总线通信方式实现,如采用PCI、VME总线通信方式,参考图2所示的采用PCI总线通信方式的示意图,将一块网卡和所有的处理机都直接连接在PCI总线上,通过网卡实现系统中多处理机之间的通信(通信带宽达到132MB/s)。这种方式可以节省芯片数量和硬件体积,减少硬件成本。但是现行的嵌入式软件开发平台是通过网络或串口调试目标程序的,由于不支持通过总线通信调试目标程序的嵌入式系统开发平台来说,增加了调试和排错的难度,影响软件开发进度。而目前的方法是为每个处理机增加一个串口作为调试的手段。但是这些串口在系统正常运行时是空闲的,造成系统资源的浪费,而且串口通信的带宽也限制了软件调试进度。
发明内容
本发明克服了现有技术的上述不足,提供了一种基于多处理机的虚拟网卡系统,实现只用一块网卡进行模拟分别被不同处理机使用,节省了系统硬件的设计空间和成本。
还提供了一种基于多处理机的虚拟网卡系统的通信方法,增加软件开发和调试的方便性,加快了软件开发的进度。
本发明提供的一种基于多处理机的虚拟网卡系统,包括:
一个主处理机,用于对网卡进行初始化和维护其它处理机的网络配置信息;将网卡接收到的数据包通过处理机之间的通信装置分发到目的处理机,将各处理机通过处理机之间的通信装置送来的数据包发送到网卡上;
多个其它处理机,用于将上层应用部分接收到的数据转换成数据包转发到主处理机,将从主处理机接收到的数据包转换成数据发送到上层应用部分;
网卡,用于将主处理机发送来的数据包转发到外部,将接收到的数据包转发到主处理机;
处理机之间的通信装置,用于主处理机与其它处理机之间的通信。
所述的主处理机包括:
网络协议栈,用于实现网络协议,将上层应用部分接收到的数据按照网络协议转换成数据包,将接收到的数据包转换成数据传送给上层应用部分;
通信驱动模块,用于将网络协议栈和其它处理机送来的数据包转发到网卡驱动模块,将网卡驱动模块接收到的数据包按照数据包的目的地址转发到网络协议栈或其它处理机;
网卡驱动模块,用于接收网卡发来的数据包和转发通信驱动模块发送的数据包到网卡。
所述的其它处理机包括:
网络协议栈,用于实现网络协议,将上层应用部分接收到的数据按照网络协议转换成数据包,将接收到的数据包转换成数据传送给上层应用部分;
通信驱动模块,用于将网络协议栈送来的数据包转发到主处理机,将主处理机发送来的数据包转发到网络协议栈。
所述的处理机之间的通信装置是PCI总线。
所述的处理机之间的通信装置还可以是VME总线。
本发明提出的一种基于多处理机的虚拟网卡通信方法,包括以下步骤:
一、系统设置:
  1)    主处理机启动并初始化网卡,将网络配置信息通知主
        处理机的通信驱动模块,将网卡设置成接受任何数据
        包模式;
  2)    其它处理机启动,将网络配置信息通过本处理机的通
        信驱动模块和处理机之间的通信装置发送到主处理机
        的通信驱动模块;
  3)    主处理机的通信驱动模块维护所有处理机的网络配置
        信息;
二、接收外部数据包:
  1)    网卡将接收到的外部数据包转发到主处理机的通信驱
        动模块;
  2)    主处理机的通信驱动模块根据数据包的目的地址转发
    c数据包;
三、向外部发送数据包:
  1)    主处理机的网络协议栈将上层应用部分的数据转换成
        数据包转发到主处理机的通信驱动模块;
  2)    其它处理机的网络协议栈将上层应用部分的数据转换
        成数据包通过本处理机的通信驱动模块和处理机之间
        的通信装置发送到主处理机的通信驱动模块;
  3)    主处理机的通信驱动模块将接收到的数据包通过网卡
        驱动模块和网卡向外部转发数据包。
所述步骤二中主处理机的通信驱动模块转发数据包:
如果数据包的目的地址是广播地址,则将数据包通过处理机之间的通信装置转发到其它处理机的通信驱动模块中,并经由所有处理机的通信驱动模块将数据包转发到所有处理机的网络协议栈中进行处理;
如果数据包的目的地址不是广播地址,则根据数据包的MAC地址将数据包转发到目的处理机。
由于本发明采用一块网卡完成多块网卡的虚拟工作,使得系统不需要为每个处理器都配置一个独立网卡,减少了系统中硬件芯片的数量,节省成本。
由于本发明的虚拟系统对外部调试而言,可以认为是每个处理器在独立使用一块网卡,增加了软件调试的方便性,加快开发进度。
附图说明
图1是现有技术采用以太网通信方式实现的网卡系统示意图。
图2是现有技术采用PCI总线通信方式实现的网卡系统示意图。
图3是本发明的基于多处理机的虚拟网卡系统示意图。
图4是本发明的虚拟网卡系统中的处理机结构示意图。
具体实施方式
如图1所示的以太网通信方式的多处理机系统,每个处理机都连接一个网卡,造成系统的体积比较和硬件成本高等问题,不适合嵌入式多处理机系统。
如图2所示的PCI总线通信方式的多处理机系统,虽然只使用一个网卡,但这个网卡的功能只是用于多个处理机之间的通信,在系统调试时还需要给每一个处理机配置一个额外的串口进行调试。这些串口只在调试的时候使用,所以仍然是不可取的。
而本发明提出的一种虚拟网卡的多处理机系统,如图3所示,网卡31直接与主处理机32相连,主处理机32与其它处理机33之间通过处理机之间的通信装置34进行数据包的交互。
下面具体介绍各处理机内部的结构,如图4所示,主处理机中包括:网络协议栈321、通信驱动模块322、网卡驱动模块323各一;其它处理机中包括:网络协议栈331与通信驱动模块332各一。主处理机的网络协议栈321和其它处理机的网络协议栈331向上连接到与各处理机相连的上层应用部分,向下与各处理机的通信驱动模块(通信驱动模块322合通信驱动模块332)相连。主处理机的通信驱动模块322和其它处理机的通信驱动模块332都连接到处理机之间的通信装置34上。主处理机的通信驱动模块322还通过网卡驱动模块323连接到网卡31上。
以下再介绍本发明提出的一种基于多处理机的虚拟网卡通信方法的具体实现过程。
网卡驱动模块323主要是完成网卡31的初始化,收发数据包。各处理机的通信驱动模块(通信驱动模块322和通信驱动模块332)通过处理机之间硬件通信装置34收发数据包和配置信息,每个处理机拥有自己的mac地址。
实现本发明的具体步骤如下: 在各处理机的网络协议栈(网络协议栈321和网络协议栈331)
下面实现处理机的通信驱动模块(通信驱动模块322和通信驱动
模块332),网络协议栈通过处理机的驱动模块收发数据包; 主处理机32初始化网卡驱动模块323时,将主处理机配置(包括
mac)通告给通信驱动模块322,将网卡31设置成接受任何数据
包的模式(promiscous); 其它处理机33初始化时将本处理机配置(包括mac)通告给通信
驱动模块332,然后通信驱动模块332通过处理机间通信装置34
通告给主处理机的通信驱动模块322;
Figure A0211076300101
 主处理机通信驱动模块322维护所有处理机的网络配置信息; 网卡31接收到mac数据包,交给主处理机的通信驱动模块322
分发;
Figure A0211076300103
 主处理机的通信驱动模块322根据数据包的目的mac地址决定:
(1)广播地址,分发到所有的处理机通信驱动模块(通信驱动模块322和通信驱动模块332),由其交给网络协议栈(网络协议栈321和网络协议栈331)处理;
(2)主播地址,查询mac表分发到相应的处理机;
(3)其它地址,查询mac表分发到相应的处理机;
Figure A0211076300104
 网络协议栈(网络协议栈321和网络协议栈331)发送的数据包
都传送给主处理机的通信驱动模块322; 主处理机的通信驱动模块322交给网卡驱动模块323发送。

Claims (7)

1.一种基于多处理机的虚拟网卡系统,其特征在于,包括:
一个主处理机(32),用于对网卡(31)进行初始化和维护其它处理机(33)的网络配置信息;将网卡(31)接收到的数据包通过处理机之间的通信装置(34)分发到目的处理机,将各处理机通过处理机之间的通信装置(34)送来的数据包发送到网卡(31)上;
多个其它处理机(33),用于将上层应用部分接收到的数据转换成数据包转发到主处理机(32),将从主处理机(32)接收到的数据包转换成数据发送到上层应用部分;
网卡(31),用于将主处理机(32)发送来的数据包转发到外部,将接收到的数据包转发到主处理机(32);
处理机之间的通信装置(34),用于主处理机(32)与其它处理机(33)之间的通信。
2.如权利要求1所述的一种基于多处理机的虚拟网卡系统,其特
征在于,所述的主处理机(32)包括:
网络协议栈(321),用于实现网络协议,将上层应用部分接收到的数据按照网络协议转换成数据包,将接收到的数据包转换成数据传送给上层应用部分;
通信驱动模块(322),用于将网络协议栈(321)和其它处理机(33)送来的数据包转发到网卡驱动模块(323),将网卡驱动模块(323)接收到的数据包按照数据包的目的地址转发到网络协议栈(321)或其它处理机(33);
网卡驱动模块(323),用于接收网卡(31)发来的数据包和转发通信驱动模块(322)发送的数据包到网卡(31)。
3.如权利要求1所述的一种基于多处理机的虚拟网卡系统,其特征在于,所述的其它处理机(33)包括:
网络协议栈(331),用于实现网络协议,将上层应用部分接收到的数据按照网络协议转换成数据包,将接收到的数据包转换成数据传送给上层应用部分;
通信驱动模块(332),用于将网络协议栈(331)送来的数据包转发到主处理机(32),将主处理机(32)发送来的数据包转发到网络协议栈(331)。
4.如权利要求1所述的一种基于多处理机的虚拟网卡系统,其特征在于,所述的处理机之间的通信装置(34)是PCI总线。
5.如权利要求1所述的一种基于多处理机的虚拟网卡系统,其特征在于,所述的处理机之间的通信装置(34)是VME总线。
6.一种基于多处理机的虚拟网卡通信方法,其特征在于,包括下列步骤:
一、系统设置:
  1)    主处理机(32)启动并初始化网卡(31),将网络配置
        信息通知主处理机的通信驱动模块(322),将网卡(31)
        设置成接受任何数据包模式;
  2)    其它处理机(33)启动,将网络配置信息通过本处理
        机的通信驱动模块(332)和处理机之间的通信装置
        (34)发送到主处理机的通信驱动模块(322);
  3)    主处理机的通信驱动模块(322)维护所有处理机的网
        络配置信息;
二、接收外部数据包:
  1)    网卡(31)将接收到的外部数据包转发到主处理机的
        通信驱动模块(322);
  2)    主处理机的通信驱动模块(322)根据数据包的目的地
        址转发数据包;
三、向外部发送数据包:
  1)    主处理机的网络协议栈(321)将上层应用部分的数据
        转换成数据包转发到主处理机的通信驱动模块(322);
  2)    其它处理机的网络协议栈(331)将上层应用部分的数
        据转换成数据包通过本处理机的通信驱动模块(332)
        和处理机之间的通信装置(34)发送到主处理机的通
        信驱动模块(322);
  3)    主处理机的通信驱动模块(322)将接收到的数据包通
        过网卡驱动模块(323)和网卡(31)向外部转发数据
        包。
7.如权利要求6所述的一种基于多处理机的虚拟网卡通信方法,其特征在于,所述步骤二中主处理机的通信驱动模块(322)转发数据包:
如果数据包的目的地址是广播地址,则将数据包通过处理机之间的通信装置(34)转发到其它处理机的通信驱动模块(332)中,并经由所有处理机的通信驱动模块(322和332)将数据包转发到所有处理机的网络协议栈(321和331)中进行处理;
如果数据包的目的地址不是广播地址,则根据数据包的MAC地址将数据包转发到目的处理机。
CNB021107637A 2002-01-29 2002-01-29 基于多处理机的虚拟网卡系统及其通信方法 Expired - Fee Related CN100373374C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB021107637A CN100373374C (zh) 2002-01-29 2002-01-29 基于多处理机的虚拟网卡系统及其通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB021107637A CN100373374C (zh) 2002-01-29 2002-01-29 基于多处理机的虚拟网卡系统及其通信方法

Publications (2)

Publication Number Publication Date
CN1435773A true CN1435773A (zh) 2003-08-13
CN100373374C CN100373374C (zh) 2008-03-05

Family

ID=27628277

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021107637A Expired - Fee Related CN100373374C (zh) 2002-01-29 2002-01-29 基于多处理机的虚拟网卡系统及其通信方法

Country Status (1)

Country Link
CN (1) CN100373374C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055774A (zh) * 2009-11-10 2011-05-11 腾讯科技(深圳)有限公司 基于包处理的http服务器及其数据处理方法
CN101533360B (zh) * 2009-04-13 2012-01-25 华为技术有限公司 多核环境下的数据处理方法及单板
CN102708091A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 一种基于虚拟网卡的双cpu系统通信方法
CN107770078A (zh) * 2017-10-13 2018-03-06 广州视源电子科技股份有限公司 交互智能平板、数据的传输方法、装置及存储介质
CN109194747A (zh) * 2018-09-10 2019-01-11 四川长虹电器股份有限公司 云环境下的流量镜像方法及系统
CN111045974A (zh) * 2019-11-19 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种基于交换结构的多处理器数据交互方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303054A (zh) * 1999-10-28 2001-07-11 英业达集团(上海)电子技术有限公司 虚拟网络装置及其通信方法
KR20010090037A (ko) * 2001-08-21 2001-10-18 (주) 대성디지탈테크 스마트카드가 구비된 무선 랜카드

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101533360B (zh) * 2009-04-13 2012-01-25 华为技术有限公司 多核环境下的数据处理方法及单板
CN102055774A (zh) * 2009-11-10 2011-05-11 腾讯科技(深圳)有限公司 基于包处理的http服务器及其数据处理方法
WO2011057525A1 (zh) * 2009-11-10 2011-05-19 腾讯科技(深圳)有限公司 基于包处理的http服务器及其数据处理方法
CN102055774B (zh) * 2009-11-10 2015-09-16 腾讯科技(深圳)有限公司 基于包处理的http服务器及其数据处理方法
CN102708091A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 一种基于虚拟网卡的双cpu系统通信方法
CN102708091B (zh) * 2012-05-15 2015-05-13 江苏中科梦兰电子科技有限公司 一种基于虚拟网卡的双cpu系统通信方法
CN107770078A (zh) * 2017-10-13 2018-03-06 广州视源电子科技股份有限公司 交互智能平板、数据的传输方法、装置及存储介质
CN109194747A (zh) * 2018-09-10 2019-01-11 四川长虹电器股份有限公司 云环境下的流量镜像方法及系统
CN111045974A (zh) * 2019-11-19 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种基于交换结构的多处理器数据交互方法

Also Published As

Publication number Publication date
CN100373374C (zh) 2008-03-05

Similar Documents

Publication Publication Date Title
CN1212574C (zh) 使用本地标识符的端节点分区
CN1315077C (zh) 有效处理网络数据的系统和方法
CN1647054A (zh) 网络设备驱动体系结构
CN1608256A (zh) 使用多个消息组的计算机系统中的代理之间的通信消息请求事务类型
CN1608255A (zh) 使用包括扩展类型/扩展长度字段的分组头部的计算机系统中的代理之间的通信事务类型
CN1859327A (zh) 一种消息传递的方法、装置和系统
CN101052013A (zh) 一种网络设备内部管理通道实现的方法及系统
CN1925453A (zh) 报文转发方法和装置
CN100343840C (zh) 总线系统、在总线系统中使用的站和总线接口
CN1435773A (zh) 基于多处理机的虚拟网卡系统及其通信方法
CN1863141A (zh) 一种ip分片报文传输处理方法
CN1949203A (zh) 小型计算机系统接口目标器的架构和数据传输方法
CN1798049A (zh) 一种移动在线游戏系统和方法
CN1293739C (zh) 高速数据链路控制协议发送处理模块及其数据处理方法
CN1324499C (zh) 处理不期望的完成分组和具有非成功完成状态的完成分组的方法
CN1925385A (zh) 数据发送及接收系统
CN101043446A (zh) 数据转发处理的方法和装置
CN1863140A (zh) 一种提高无线通信系统网络资源利用率的方法
CN1900903A (zh) 使用图形系统以实现多用户计算机系统
CN1905476A (zh) 一种对终端产品的管理系统及方法
CN1438582A (zh) 适用于电脑对电脑传输的usb控制电路及其作业方法
CN1131484C (zh) 消息传输总线系统
CN102004716A (zh) 实现设备共享的系统及其方法
CN1859251A (zh) 一种实现通信单元互连的方法
CN101060525A (zh) 一种sctp建链方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080305

Termination date: 20140129