CN1303054A - 虚拟网络装置及其通信方法 - Google Patents
虚拟网络装置及其通信方法 Download PDFInfo
- Publication number
- CN1303054A CN1303054A CN 99119882 CN99119882A CN1303054A CN 1303054 A CN1303054 A CN 1303054A CN 99119882 CN99119882 CN 99119882 CN 99119882 A CN99119882 A CN 99119882A CN 1303054 A CN1303054 A CN 1303054A
- Authority
- CN
- China
- Prior art keywords
- microsoft loopback
- loopback adapter
- virtual network
- user terminal
- data
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种虚拟网络装置,包括:虚拟网络协议层;包含虚拟网卡编号记录、虚拟网卡发送缓冲区、虚拟网卡接收缓冲区、虚拟网卡发送状态标志和虚拟网卡接收状态标志的虚拟网卡;虚拟网卡驱动器;虚拟网线装置,网络应用程序的数据经协议层打包成数据包后暂存于发送缓冲区,然后送往目的终端的虚拟网卡的接收缓冲区中,由虚拟网卡驱动器读取后经协议层传送给网络应用程序。本发明还提供一种虚拟网络通信方法。
Description
本发明涉及一种虚拟网络装置及其方法。
通常,一台计算机在运行Windows 95/98操作***时,只能由一个用户使用。在这种情况下,计算机的软硬件资源就只能为单个用户所独占,不能发挥其最佳效能。因此,一种基于Windows95/98操作平台的由一台计算机连接多个用户终端的***应运而生,一般称之为一机多用户***。
如图1所示,这类一机多用户***的一个终端是由多用户适配卡11、终端控制盒12、连接电缆13、键盘14、鼠标15及显示器16组成,多用户适配卡11插在计算机10的PCI插槽上,通过连接电缆13连接到终端控制盒12上,终端控制盒12上接驳了键盘14、鼠标15和显示器,组成一个用户终端。用户可使用此终端分享计算机10的CPU、硬盘等硬件设备,执行Windows 95/98操作及各种应用程序,就象每个用户拥有一***立的计算机一样。
由于在这种一机多用户***中,每个终端用户其实使用的都是同一台计算机,因此,在终端间没有网络设备把各个终端连接成网络,在各种终端之间也就没有网络通信的功能,终端用户无法使用在网络方面的各种应用。
因此,本发明的目的在于提供一种虚拟网络装置,它可应用于上述的一机多用户***,在这类一机多用户***中的各个终端之间架设一虚拟的局域网,使各个用户终端之间具备网络通信的功能。终端用户可以凭借虚拟局域网络进行各种网络应用。
根据本发明的上述目的,本发明提供一种虚拟网络装置,包括:
虚拟网络协议层,用于实现网络协议(包括TCP/IP协议和IPX/SPX协议),将从上层应用程序接收到的数据按网络协议转换成数据包,将从下层接收到的数据包转换成数据传送给上层应用程序;
虚拟网卡,包含下列数据记录:
虚拟网卡编号记录,记录所述虚拟网卡编号;
虚拟网卡发送缓冲区,暂存将要从所述虚拟网卡发送出去的数据;
虚拟网卡接收缓冲区,暂存所述虚拟网卡接收到的数据;
虚拟网卡发送状态标志,记录所述虚拟网卡的发送状态(包括:发送缓冲区上无数据的发送空闲和发送缓冲区被占用的发送忙);
虚拟网卡接收状态标志,记录所述虚拟网卡的接收状态(包括:同上)
虚拟网卡驱动器,根据网络驱动接口规范向上连接所述虚拟网络协议层,并与所述虚拟网卡相连,从所述虚拟网络协议层接收数据包,传送到所述虚拟网卡的发送缓冲区中,并将所述虚拟网卡发送状态标志设置为发送忙,从所述虚拟网卡的虚拟网卡接收缓冲区读取数据包,并传送给上层的所述虚拟网络协议层;
虚拟网线装置,连接不同用户终端的虚拟网卡,所述数据包包含有表示数据要发送的目的虚拟网卡的虚拟网卡编号,所述虚拟网卡驱动器根据所述数据包中的所述虚拟网卡编号,通过所述虚拟网线装置将一个用户终端内的虚拟网卡发送缓冲区中的数据传送给另一个用户终端内的虚拟网卡接收缓冲区。
本发明提供的虚拟网络通信方法,包含下列步骤:
(1)源用户终端的虚拟网络协议层根据网络协议从上层应用程序接收数据,并把所述数据转换成包含目的用户终端的虚拟网卡编号的数据包;
(2)虚拟网卡驱动器从所述虚拟网络协议层接收所述数据包,在虚拟网卡发送状态标志为发送空闲时,将所述数据包写入到虚拟网卡发送缓冲区;
(3)将虚拟网卡发送状态标志设置为发送忙;
(4)源用户终端的虚拟网卡驱动器根据包含在所述数据包中的目的用户终端的虚拟网卡编号通过虚拟网线装置向目的用户终端的虚拟网卡驱动器发送接收指令;
(5)目的用户终端的虚拟网卡驱动器接收到所述接收指令后,当其虚拟网卡接收状态标志为接收空闲时,将所述数据包从源用户终端的虚拟网卡发送缓冲区转移到其上的虚拟网卡接收缓冲区;
(6)目的用户终端的虚拟网卡驱动器把其的虚拟网卡接收状态标志设置为接收忙,把源用户终端的虚拟网卡发送状态标志设置为发送空闲;
(7)目的用户终端的虚拟网卡驱动器通知其虚拟网络协议层读取数据包;
(8)目的用户终端的虚拟网卡协议层从其虚拟网卡接收缓冲区读取数据包,并转换成数据传送给上层应用程序;
(9)将目的用户终端的虚拟网卡接收状态标志设置为接收空闲。
如上所述,本发明为一机多用户***提供了一种虚拟网络装置以及在这种一机多用户***中进行网络通信的方法,使这种一机多用户***能够进行局域网络通信。
下面结合附图详细描述本发明。
附图中:
图1是一机多用户***的结构示意图;
图2是本发明的虚拟网络装置的功能框图;
图3和图4示出了本发明的网络通信方法的流程图,其中图3为源用户终端发送数据的流程图;图4是目的用户终端接收数据的流程图。
如图2所示,图2的左部示出了一个用户终端内的虚拟网络装置的框图。一机多用户***中的每个用户终端内都有这样一组结构。为了便于说明一机多用户***中各个用户之间的通信情况,在图2中示出了两个用户终端内的虚拟网络装置,其中左部为发送数据的源用户终端5,右部为接收数据的目的用户终端6。
用户终端5中的虚拟网络装置包括有:虚拟网络协议层51、虚拟网卡驱动器52和虚拟网卡53组成。虚拟网络协议层51执行网络协议,网络协议可以包括TCP/IP协议(传输控制协议和互联网协议)和IPX协议(网间消息传递协议)/SPX(顺序包交换协议)。在Windows 95/98操作***中已包含了这些协议,因此,虚拟网络协议层51就利用Windows 95/98操作***中的协议元件。
如图2所示,在虚拟网络协议层51上层连接有网络应用程序50。这种应用程序可以是各种能在Windows 95/98上运行的网络软件。网络应用程序利用本发明提供的虚拟网络装置进行网络通信。在传送数据时,网络应用程序50把要传输的数据先传送给虚拟网络协议层51,由虚拟网络协议层51根据网络协议把数据转换成数据包。在接收数据时,虚拟网络协议层51把从其它用户终端传输来的数据包先根据网络协议转换成数据,再传送给上层网络应用程序50。
虚拟网卡驱动52根据网络驱动接口规范向上与虚拟网络协议层51连接,其下层连接虚拟网卡53。虚拟网卡53实际上是一组数据记录,包括有:
虚拟网卡编号记录53a,记录虚拟网卡编号,每个虚拟网卡都具有一个独一无二的编号,以便***识别;
虚拟网卡发送缓冲区53b,暂存要发送出去的数据;
虚拟网卡接收缓冲区53c,暂存接收到的数据;
虚拟网卡发送状态标志53d,记录虚拟网卡53的发送状态。如果虚拟网卡发送缓冲区53b中有要发送的数据,则该标志被设置为“发送忙”;如果虚拟网卡发送缓冲区53b中没有数据,或者数据已被发送,则该标志被设置为“发送空闲”;
虚拟网卡接收状态标志53e,记录虚拟网卡53的接收状态。如果虚拟网卡接收缓冲区53c中有接收到的数据,则该标志被设置为“接收忙”;如果虚拟网卡接收缓冲区53b中没有数据,或者数据已被传送到上层的应用程序,则该标志被设置为“接收空闲”。
虚拟网卡驱动器52从虚拟网络协议层51接收数据包,传送到虚拟网卡53的发送缓冲区53b中,并将虚拟网卡发送状态标志53d设置为发送忙,从虚拟网卡3的虚拟网卡接收缓冲区53c读取数据包,并传送给上层的虚拟网络协议层51。
图2右部的目的用户终端中的虚拟网络装置与左部的源用户终端中的虚拟网络装置一样包括虚拟网络协议层61、虚拟网卡驱动器62和虚拟网卡63,虚拟网卡63出包括下列数据记录:虚拟网卡编号记录63a;虚拟网卡发送缓冲区63b;虚拟网卡接收缓冲区63c;虚拟网卡发送状态标志63d和虚拟网卡接收状态标志63e。
两个用户终端5和6的虚拟网卡53和63之间通过虚拟网线7进行连接。
虽然在图2中把用户终端分为源用户终端5和目的用户终端6。但实际上源和目的用户终端之分是根据其是发送数据还是接收数据而来的。通常一个用户终端往往是即要发送数据,又要接收数据。在发送数据时,其为源用户终端。在接收数据时,其变为目的用户终端。因此,图2是定义只是为了便于说明。
下面参照图3和图4描述图2所示的虚拟网络装置的工作流程(也即本发明的虚拟网络通信方法)。
图3是源用户终端发送数据的流程图。如图3所示,源用户终端5的虚拟网络协议层51根据网络协议从上层网络应用程序50接收数据,并把数据转换成包含目的用户终端的虚拟网卡编号的数据包(S1);
虚拟网卡驱动器52从虚拟网络协议层51接收该数据包(S2)。
然后在步骤S3检测虚拟网卡发送状态标志53d,判断是否为发送空闲。
如果不为空闲,则流程进入到步骤S4等待,然后再进入到步骤S3。如果为空闲,则将数据包写入到虚拟网卡发送缓冲区53b。然后在步骤S6将虚拟网卡发送状态标志53d设置为发送忙。
然后源用户终端5的虚拟网卡驱动器52根据包含在数据包中的目的用户终端6的虚拟网卡编号63a通过虚拟网线7向目的用户终端6的虚拟网卡驱动器62发送接收指令(步骤S7)。
至此,在源用户终端5中的数据发送程序结束。
下面参照图4描述目的用户终端接收数据的流程。
目的用户终端6的虚拟网卡驱动器62接收到源用户终端发送的接收指令(S11)。然后,在步骤S12检测其虚拟网卡接收状态标志63d,判断是否为空闲。
如果不为空闲,则流程进入到步骤S13等,然后再进入到步骤S12。如果为空闲,则将数据包从源用户终端5的虚拟网卡发送缓冲区53b转移到目的用户终端6的虚拟网卡接收缓冲区63c(步骤S14)。
然后,目的用户终端6的虚拟网卡驱动器62把其的虚拟网卡接收状态标志63d设置为接收忙,把源用户终端5的虚拟网卡发送状态标志53d设置为发送空闲(步骤S15)。
流程进入到步骤S16,目的用户终端6的虚拟网卡驱动器62通知其虚拟网络协议层61读取数据包。然后目的用户终端6的虚拟网卡协议层62从其虚拟网卡接收缓冲区63c读取数据包,并转换成数据传送给上层应用程序60(步骤S17)。
在步骤S18,虚拟网卡驱动器62将目的用户终端6的虚拟网卡接收状态标志63e设置为接收空闲。
至此,在目的用户终端6中的数据接收程序结束。
以上详细描述了本发明的虚拟网络装置以及虚拟网络通信方法。本技术领域的技术人员应当理解,本发明的装置和方法可以采用软件或者软件与硬件相结合的方式来实现。上面描述仅是本发明的实施例,本发明的范围不应限于描述的实施例。
Claims (6)
1、一种虚拟网络装置,其特征在于,包括:
虚拟网络协议层,用于实现网络协议,将从上层应用程序接收到的数据按网络协议转换成数据包,将从下层接收到的数据包转换成数据传送给上层应用程序;
虚拟网卡,包含下列数据记录:
虚拟网卡编号记录,记录所述虚拟网卡编号;
虚拟网卡发送缓冲区,暂存将要从所述虚拟网卡发送出去的数据;
虚拟网卡接收缓冲区,暂存所述虚拟网卡接收到的数据;
虚拟网卡发送状态标志,记录所述虚拟网卡的发送状态;
虚拟网卡接收状态标志,记录所述虚拟网卡的接收状态;
虚拟网卡驱动器,根据网络驱动接口规范向上连接所述虚拟网络协议层,并与所述虚拟网卡相连,从所述虚拟网络协议层接收数据包,传送到所述虚拟网卡的发送缓冲区中,并将所述虚拟网卡发送状态标志设置为发送忙,从所述虚拟网卡的虚拟网卡接收缓冲区读取数据包,并传送给上层的所述虚拟网络协议层;
虚拟网线装置,连接不同用户终端的虚拟网卡,所述数据包包含有表示数据要发送的目的虚拟网卡的虚拟网卡编号,所述虚拟网卡驱动器根据所述数据包中的所述虚拟网卡编号,通过所述虚拟网线装置将一个用户终端内的虚拟网卡发送缓冲区中的数据传送给另一个用户终端内的虚拟网卡接收缓冲区。
2、如权利要求1所述的虚拟网络装置,其特征在于,所述网络协议包括TCP/IP协议和IPX/SPX协议。
3、如权利要求1或2所述的虚拟网络装置,其特征在于,所述虚拟网络协议层利用Windows 95/98操作***中的协议元件。
4、一种虚拟网络通信方法,其特征在于,包含下列步骤:
(1)源用户终端的虚拟网络协议层根据网络协议从上层应用程序接收数据,并把所述数据转换成包含目的用户终端的虚拟网卡编号的数据包;
(2)虚拟网卡驱动器从所述虚拟网络协议层接收所述数据包,在虚拟网卡发送状态标志为发送空闲时,将所述数据包写入到虚拟网卡发送缓冲区;
(3)将虚拟网卡发送状态标志设置为发送忙;
(4)源用户终端的虚拟网卡驱动器根据包含在所述数据包中的目的用户终端的虚拟网卡编号通过虚拟网线装置向目的用户终端的虚拟网卡驱动器发送接收指令;
(5)目的用户终端的虚拟网卡驱动器接收到所述接收指令后,当其虚拟网卡接收状态标志为接收空闲时,将所述数据包从源用户终端的虚拟网卡发送缓冲区转移到其上的虚拟网卡接收缓冲区;
(6)目的用户终端的虚拟网卡驱动器把其的虚拟网卡接收状态标志设置为接收忙,把源用户终端的虚拟网卡发送状态标志设置为发送空闲;
(7)目的用户终端的虚拟网卡驱动器通知其虚拟网络协议层读取数据包;
(8)目的用户终端的虚拟网卡协议层从其虚拟网卡接收缓冲区读取数据包,并转换成数据传送给上层应用程序;
(9)将目的用户终端的虚拟网卡接收状态标志设置为接收空闲。
如上所述,本发明为一机多用户***提供了一种虚拟网络装置以及在这种一机多用户***中进行网络通信的方法,使这种一机多用户***能够进行局域网络通信。
5、如权利要求4所述的虚拟网络通信方法,其特征在于,所述网络协议包括TCP/IP协议和IPX/SPX协议。
6、如权利要求3或4所述的虚拟网络通信方法,其特征在于,所述虚拟网络协议层利用Windows 95/98操作***中的协议元件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 99119882 CN1303054A (zh) | 1999-10-28 | 1999-10-28 | 虚拟网络装置及其通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 99119882 CN1303054A (zh) | 1999-10-28 | 1999-10-28 | 虚拟网络装置及其通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1303054A true CN1303054A (zh) | 2001-07-11 |
Family
ID=5281173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 99119882 Pending CN1303054A (zh) | 1999-10-28 | 1999-10-28 | 虚拟网络装置及其通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1303054A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1323520C (zh) * | 2002-05-30 | 2007-06-27 | 中兴通讯股份有限公司 | 一种宽带接入服务器拨号测试方法 |
CN100370788C (zh) * | 2005-11-21 | 2008-02-20 | 西安电子科技大学 | 在网络环境仿真中采用虚拟网卡实现数据通信的方法 |
CN100373374C (zh) * | 2002-01-29 | 2008-03-05 | 中兴通讯股份有限公司 | 基于多处理机的虚拟网卡***及其通信方法 |
CN100401699C (zh) * | 2002-12-26 | 2008-07-09 | 成都卫士通信息产业股份有限公司 | 利用网卡驱动在以太网上实现vlan的方法 |
CN100454260C (zh) * | 2006-04-20 | 2009-01-21 | 英业达股份有限公司 | 设备驱动层的虚拟驱动***及方法 |
CN100535886C (zh) * | 2007-11-21 | 2009-09-02 | 中国科学院计算技术研究所 | 一种节点之间的数据传输***和装置及方法 |
CN101867510A (zh) * | 2010-05-31 | 2010-10-20 | 江苏中科梦兰电子科技有限公司 | 板级双***互联方法 |
CN111580936A (zh) * | 2020-05-19 | 2020-08-25 | 山东超越数控电子股份有限公司 | 虚拟化数据处理方法和*** |
CN111726201A (zh) * | 2020-06-15 | 2020-09-29 | 哈工大机器人(合肥)国际创新研究院 | 一种airt-ros虚拟网卡丢包解决方法 |
CN113259994A (zh) * | 2021-04-20 | 2021-08-13 | 深圳震有科技股份有限公司 | 5g虚拟网元控制网卡收发数据包方法、设备及存储介质 |
-
1999
- 1999-10-28 CN CN 99119882 patent/CN1303054A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100373374C (zh) * | 2002-01-29 | 2008-03-05 | 中兴通讯股份有限公司 | 基于多处理机的虚拟网卡***及其通信方法 |
CN1323520C (zh) * | 2002-05-30 | 2007-06-27 | 中兴通讯股份有限公司 | 一种宽带接入服务器拨号测试方法 |
CN100401699C (zh) * | 2002-12-26 | 2008-07-09 | 成都卫士通信息产业股份有限公司 | 利用网卡驱动在以太网上实现vlan的方法 |
CN100370788C (zh) * | 2005-11-21 | 2008-02-20 | 西安电子科技大学 | 在网络环境仿真中采用虚拟网卡实现数据通信的方法 |
CN100454260C (zh) * | 2006-04-20 | 2009-01-21 | 英业达股份有限公司 | 设备驱动层的虚拟驱动***及方法 |
CN100535886C (zh) * | 2007-11-21 | 2009-09-02 | 中国科学院计算技术研究所 | 一种节点之间的数据传输***和装置及方法 |
CN101867510A (zh) * | 2010-05-31 | 2010-10-20 | 江苏中科梦兰电子科技有限公司 | 板级双***互联方法 |
CN111580936A (zh) * | 2020-05-19 | 2020-08-25 | 山东超越数控电子股份有限公司 | 虚拟化数据处理方法和*** |
CN111580936B (zh) * | 2020-05-19 | 2024-02-09 | 超越科技股份有限公司 | 虚拟化数据处理方法和*** |
CN111726201A (zh) * | 2020-06-15 | 2020-09-29 | 哈工大机器人(合肥)国际创新研究院 | 一种airt-ros虚拟网卡丢包解决方法 |
CN111726201B (zh) * | 2020-06-15 | 2023-09-12 | 合肥哈工轩辕智能科技有限公司 | 一种airt-ros虚拟网卡丢包解决方法 |
CN113259994A (zh) * | 2021-04-20 | 2021-08-13 | 深圳震有科技股份有限公司 | 5g虚拟网元控制网卡收发数据包方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1143229C (zh) | 基于通用串行总线的网络和输入/输出集线器 | |
US6708247B1 (en) | Extending universal serial bus to allow communication with USB devices at a remote location | |
US6651119B2 (en) | Method for allocating priorities to plurality of DMA engines for processing data packets based on bus phase and transactions status | |
CN1205562C (zh) | 总线***的分隔事务协议 | |
US6735658B1 (en) | System and method for combining computer video and remote universal serial bus in an extended cable | |
CN1647054A (zh) | 网络设备驱动体系结构 | |
CN1324856C (zh) | 一种基于多网卡的网络设备的数据传输方法和装置 | |
CN1303054A (zh) | 虚拟网络装置及其通信方法 | |
CN1267026A (zh) | 允许服务器远程访问计算机***资产信息的***和方法 | |
CN1878181A (zh) | 用于管理dns请求的方法和数据处理*** | |
CN1520122A (zh) | 数据通信的方法和数据通信的输入/输入装置 | |
US20020019860A1 (en) | Method and apparatus for distributed administration of thin client architecture | |
CN1881944A (zh) | 改进型分布式核心操作*** | |
CN1151231A (zh) | 用于无线通信的分组数据协议 | |
CN1842073A (zh) | 一种实现网络计算机的外部设备映射的方法 | |
CN1160908C (zh) | 网络控制器 | |
CN1761259A (zh) | 用于使用服务器消息块协议来打印数据的装置和方法 | |
CN1578280A (zh) | 用于基于消息的可伸缩的数据传输的***和方法 | |
CN1266316A (zh) | 使用在集成电路中的存储器的总线接口及方法 | |
JP3387466B2 (ja) | データ通信装置 | |
CN1941724A (zh) | 一种高速业务跨网通信建立方法和*** | |
CN1679015A (zh) | 用于独立于带宽延迟产品的tcp/ip卸载的***和方法 | |
CN1905476A (zh) | 一种对终端产品的管理***及方法 | |
CN1197296C (zh) | 信息交换机 | |
US6826634B2 (en) | Extended message block for network device drivers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |