Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA FORWARDING METHOD, DEVICE AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2015/013920
Kind Code:
A1
Abstract:
The present invention relates to the technical field of communications, solves the problem that the loss is great when an application in a virtual machine communicates with a physical machine. Provided are a data forwarding method, device and system. The method specifically comprises: a host receives first notification information sent by network equipment, the first notification information comprising a memory address of a packet of the network equipment stored in a memory; according to a mapping table of the relationship between a logical channel number and a communication entity, a virtual machine that communicates with the network equipment is obtained, the logical channel number being a logical channel number that the network equipment communicates with the virtual machine; according to the first notification information, second notification information is obtained, the second notification information comprising the logical channel number and the memory address of the packet; and the second notification information is sent to the virtual machine, so that the virtual machine obtains the packet according to the memory address of the packet, the virtual machine receiving the second notification information through a connection module on the virtual machine. The present invention is used in data transmission.

Inventors:
ZHANG, Fengzhe (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
WU, Hongning (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
DUAN, Xiaoxiang (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
LIU, Xiangbin (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
ZANG, Hongyong (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
Application Number:
CN2013/080527
Publication Date:
February 05, 2015
Filing Date:
July 31, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECHNOLOGIES CO., LTD. (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
International Classes:
G06F9/455; G06F12/02
Foreign References:
CN102591702A
CN101158924A
CN101667144A
CN103176833A
Attorney, Agent or Firm:
BEIJING ZBSD PATENT&TRADEMARK AGENT LTD. (501/B, Fortune BuildingNo.17 Daliushu Road, Haidian District, Beijing 1, 100081, CN)
Download PDF:
Claims:
权 利 要 求 书

1、 一种数据转发方法, 其特征在于, 包括:

主机接收网络设备发送的第一通知信息; 其中, 所述第一通知信 息中包括所述网络设备存储在内存中的数据包的内存地址;

根据逻辑通道号与通讯实体的关系映射表获取与所述网络设备 通信的虚拟机; 其中, 所述逻辑通道号是所述网络设备与所述虚拟机 通信的逻辑通道号;

根据所述第一通知信息获得第二通知信息; 其中, 所述第二通知 信息包括所述逻辑通道号和所述数据包的内存地址;

发送所述第二通知信息至所述虚拟机,以便于所述虚拟机根据所 述数据包的内存地址获得所述数据包; 其中, 所述虚拟机是通过所述 虚拟机上的连接模块接收所述第二通知信息的。

2、 根据权利要求 1 所述的方法, 其特征在于, 所述根据所述第 一通知信息获得第二通知信息, 包括:

解析所述第一通知信息获得所述数据包的内存地址;

将所述数据包的内存地址的形式转换为标准形式;

根据转换为标准形式的所述数据包的内存地址和所述逻辑通道 号获得所述第二通知信息。

3、 根据权利要求 1或 2所述的方法, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

4、 根据权利要求 1或 2所述的方法, 其特征在于,

所述逻辑通道号与通讯实体的关系映射表可以根据通讯实体的 变化进行实时更新。

5、 根据权利要求 1或 2所述的方法, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

6、 一种数据转发方法, 其特征在于, 包括: 虚拟机通过所述虚拟机上的连接模块接收主机发送的第二通知 信息; 其中, 所述第二通知信息是根据第一通知信息获得的, 包括网 络设备与所述虚拟机通信的逻辑通道号和数据包的内存地址; 所述第 一通知信息是所述网络设备发送至所述主机的, 包括所述网络设备存 储在内存中的所述数据包的内存地址;

根据所述数据包的内存地址在内存中获取所述数据包。

7、 根据权利要求 6所述的方法, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

8、 根据权利要求 6所述的方法, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

9、 一种数据转发方法, 其特征在于, 包括:

主机接收虚拟机发送的第二通知信息; 其中, 所述第二通知信息 包括逻辑通道号和所述虚拟机存储在内存中的数据包的内存地址; 所 述逻辑通道号为所述虚拟机与网络设备通信的逻辑通道号; 所述虚拟 机是通过所述虚拟机上的连接模块发送所述第二通知信息的;

根据所述逻辑通道号与通讯实体的关系映射表获取与所述虚拟 机通信的网络设备;

根据所述第二通知信息获得第一通知信息; 其中, 所述第一通知 信息包括所述数据包的内存地址;

发送所述第一通知信息至所述网络设备,以便于所述网络设备根 据所述数据包的内存地址获得所述数据包。

10、 根据权利要求 9所述的方法, 其特征在于, 所述根据所述第 二通知信息获得第一通知信息, 包括:

解析所述第二通知信息获得所述数据包的内存地址;

将所述数据包的内存地址的格式转换为所述网络设备可以识别 的格式; 根据转换的所述数据包的内存地址获得所述第一通知信息。

1 1、 根据权利要求 9或 10所述的方法, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

12、 根据权利要求 9或 10所述的方法, 其特征在于,

所述逻辑通道号与通讯实体的关系映射表可以根据通讯实体的 变化进行实时更新。

13、 根据权利要求 9或 10所述的方法, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

14、 一种数据转发方法, 其特征在于, 包括:

虚拟机存储数据包至内存中;

通过所述虚拟机上的连接模块发送第二通知信息至主机,以便于 所述主机根据所述第二通知信息获得第一通知信息, 并发送至网络设 备使得所述网络设备根据所述第一通知信息获得所述数据包; 其中, 所述第二通知信息中包括所述网络设备与所述虚拟机通信的逻辑通 道号和数据包的内存地址。

15、 根据权利要求 14所述的方法, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

16、 根据权利要求 14所述的方法, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

17、 一种主机, 其特征在于, 包括:

接收单元, 用于接收网络设备发送的第一通知信息; 其中, 所述 第一通知信息中包括所述网络设备存储在内存中的数据包的内存地 获取单元,用于根据逻辑通道号与通讯实体的关系映射表获取与 所述网络设备通信的虚拟机; 其中, 所述逻辑通道号是所述网络设备 与所述虚拟机通信的逻辑通道号;

所述获取单元,还用于根据所述接收单元接收到的所述第一通知 信息获得第二通知信息; 其中, 所述第二通知信息包括所述逻辑通道 号和所述数据包的内存地址;

发送单元,用于发送所述获取单元获取到的所述第二通知信息至 所述虚拟机, 以便于所述虚拟机根据所述数据包的内存地址获得所述 数据包; 其中, 所述虚拟机是通过所述虚拟机上的连接模块接收所述 第二通知信息的。

18、 根据权利要求 17所述的主机, 其特征在于, 所述获取单元 包括:

解析模块,用于解析所述第一通知信息获得所述数据包的内存地 址;

转换模块,用于将所述解析模块获得的所述数据包的内存地址的 形式转换为标准形式;

获取模块,用于根据所述转换模块转换为标准形式的数据包的内 存地址和所述逻辑通道号获得所述第二通知信息。

19、 根据权利要求 17或 18所述的主机, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

20、 根据权利要求 17或 18所述的主机, 其特征在于,

所述逻辑通道号与通讯实体的关系映射表可以根据通讯实体的 变化进行实时更新。

21、 根据权利要求 17或 18所述的主机, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

22、 一种虚拟机, 其特征在于, 包括: 接收单元,用于通过所述虚拟机上的连接模块接收所述主机发送 的第二通知信息; 其中, 所述第二通知信息是根据第一通知信息获得 的, 包括所述网络设备与所述虚拟机通信的逻辑通道号和数据包的内 存地址; 所述第一通知信息是所述网络设备发送至所述主机的, 包括 所述网络设备存储在内存中的所述数据包的内存地址;

获取单元,用于根据所述接收单元接收到的所述数据包的内存地 址在内存中获取所述数据包。

23、 根据权利要求 22所述的虚拟机, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

24、 根据权利要求 22所述的虚拟机, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

25、 一种主机, 其特征在于, 包括:

接收单元, 用于接收虚拟机发送的第二通知信息; 其中, 所述第 二通知信息包括逻辑通道号和所述虚拟机存储在内存中的数据包的 内存地址; 所述逻辑通道号为所述虚拟机与网络设备通信的逻辑通道 号; 所述虚拟机是通过所述虚拟机上的连接模块发送所述第二通知信 息的;

获取单元,用于根据所述逻辑通道号与通讯实体的关系映射表获 取与所述虚拟机通信的网络设备;

所述获取单元,还用于根据所述接收单元接收到的所述第二通知 信息获得第一通知信息; 其中, 所述第一通知信息包括所述数据包的 内存地址;

发送单元,用于发送所述第一通知信息至所述获取单元获取的所 述网络设备, 以便于所述网络设备根据所述数据包的内存地址获得所 述数据包。

26、 根据权利要求 25所述的主机, 其特征在于, 所述获取单元 包括:

解析模块,用于解析所述第二通知信息获得所述数据包的内存地 址;

转换模块,用于将所述解析模块得到的所述数据报的内存地址的 形式转换为所述网络设备可以识别的形式;

获取模块,用于根据所述转换模块转换的所述数据包的内存地址 获得所述第一通知信息。

27、 根据权利要求 25或 26所述的主机, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

28、 根据权利要求 25或 26所述的主机, 其特征在于,

所述逻辑通道号与通讯实体的关系映射表可以根据通讯实体的 变化进行实时更新。

29、 根据权利要求 25或 26所述的主机, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

30、 一种虚拟机, 其特征在于, 包括:

处理单元, 用于存储数据包至内存中;

发送单元,用于通过所述虚拟机上的连接模块发送第二通知信息 至主机, 以便于所述主机根据所述第二通知信息获得第一通知信息, 并发送至网络设备使得所述网络设备根据所述第一通知信息获得所 述数据包; 其中, 所述第二通知信息中包括所述网络设备与所述虚拟 机通信的逻辑通道号和数据包的内存地址。

3 1、 根据权利要求 30所述的虚拟机, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

32、 根据权利要求 30所述的虚拟机, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

33、 一种主机, 其特征在于, 包括: 至少一个处理器、 存储器、 通信接口和总线, 所述至少一个处理器、 存储器和通信接口通过总线 连接并完成相互间的通信, 所述存储器用于存储程序代码, 其中: 所述处理器,用于调用存储器中的程序代码,用以执行以下操作: 接收网络设备发送的第一通知信息; 其中, 所述第一通知信息中 包括所述网络设备存储在内存中的数据包的内存地址;

根据逻辑通道号与通讯实体的关系映射表获取与所述网络设备 通信的虚拟机; 其中, 所述逻辑通道号是所述网络设备与所述虚拟机 通信的逻辑通道号;

根据所述第一通知信息获得第二通知信息; 其中, 所述第二通知 信息中包括所述逻辑通道号和所述数据包的内存地址;

发送所述第二通知信息至所述虚拟机,以便于所述虚拟机根据所 述数据包的内存地址获得所述数据包; 其中, 所述虚拟机是通过所述 虚拟机上的连接模块接收所述第二通知信息的。

34、 根据权利要求 33 所述的主机, 其特征在于, 所述处理器具 体用于:

解析所述第一通知信息获得所述数据包的内存地址;

将所述数据包的内存地址的形式转换为标准形式;

根据转换为标准形式的所述数据包的内存地址和所述逻辑通道 号获得所述第二通知信息。

35、 根据权利要求 33或 34所述的主机, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

36、 根据权利要求 33或 34所述的主机, 其特征在于,

所述逻辑通道号与通讯实体的关系映射表可以根据通讯实体的 变化进行实时更新。

37、 根据权利要求 33或 34所述的主机, 其特征在于, 所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

38、 一种虚拟机, 其特征在于, 包括: 至少一个处理器、 存储器、 通信接口和总线, 所述至少一个处理器、 存储器和通信接口通过总线 连接并完成相互间的通信, 所述存储器用于存储程序代码, 其中: 所述处理器,用于调用存储器中的程序代码,用以执行以下操作: 通过所述虚拟机上的连接模块接收所述主机发送的第二通知信 息; 其中, 所述第二通知信息是根据第一通知信息获得的, 包括所述 网络设备与所述虚拟机通信的逻辑通道号和数据包的内存地址; 所述 第一通知信息是所述网络设备发送至所述主机的, 包括所述网络设备 存储在内存中的所述数据包的内存地址;

根据所述数据包的内存地址在内存中获取所述数据包。

39、 根据权利要求 38所述的虚拟机, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

40、 根据权利要求 38所述的虚拟机, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

41、 一种主机, 其特征在于, 包括: 至少一个处理器、 存储器、 通信接口和总线, 所述至少一个处理器、 存储器和通信接口通过总线 连接并完成相互间的通信, 所述存储器用于存储程序代码, 其中: 所述处理器,用于调用存储器中的程序代码,用以执行以下操作: 接收虚拟机发送的第二通知信息; 其中, 所述第二通知信息包括 逻辑通道号和所述虚拟机存储在内存中的数据包的内存地址; 所述逻 辑通道号为所述虚拟机与网络设备通信的逻辑通道号; 所述虚拟机是 通过所述虚拟机上的连接模块发送所述第二通知信息的;

根据所述逻辑通道号与通讯实体的关系映射表获取与所述虚拟 机通信的网络设备;

根据所述第二通知信息获得第一通知信息; 其中, 所述第一通知 信息包括所述数据包的内存地址;

发送所述第一通知信息至所述网络设备,以便于所述网络设备根 据所述数据包的内存地址获得所述数据包。

42、 根据权利要求 41 所述的主机, 其特征在于, 所述处理器具 体用于:

解析所述第二通知信息获得所述数据包的内存地址;

将所述数据报的内存地址的形式转换为所述网络设备可以识别 的形式;

根据转换的所述数据包的内存地址获得所述第一通知信息。

43、 根据权利要求 41或 42所述的主机, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

44、 根据权利要求 41或 42所述的主机, 其特征在于,

所述逻辑通道号与通讯实体的关系映射表可以根据通讯实体的 变化进行实时更新。

45、 根据权利要求 41或 42所述的主机, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

46、 一种虚拟机, 其特征在于, 包括: 至少一个处理器、 存储器、 通信接口和总线, 所述至少一个处理器、 存储器和通信接口通过总线 连接并完成相互间的通信, 所述存储器用于存储程序代码, 其中: 所述处理器,用于调用存储器中的程序代码,用以执行以下操作: 存储数据包至内存中;

通过所述虚拟机上的连接模块发送第二通知信息至主机,以便于 所述主机根据所述第二通知信息获得第一通知信息, 并发送至网络设 备使得所述网络设备根据所述第一通知信息获得所述数据包; 其中, 所述第二通知信息中包括所述网络设备与所述虚拟机通信的逻辑通 道号和数据包的内存地址。

47、 根据权利要求 46所述的虚拟机, 其特征在于,

所述第二通知信息中的数据包的内存地址以标准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的格式。

48、 根据权利要求 46所述的虚拟机, 其特征在于,

所述第一通知信息传输数据的接口根据所述网络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所述标准形式。

49、 一种数据转发系统, 其特征在于, 包括: 主机、 虚拟机和网 络设备, 其中:

所述主机为权利要求 17〜21所述的任一主机,所述虚拟机为权利 要求 22〜24所述的任一虚拟机;

或, 所述主机为权利要求 33〜37所述的任一主机, 所述虚拟机为 权利要求 38〜40所述的任一虚拟机;

所述网络设备, 用于发送数据包至所述虚拟机。

50、 一种数据转发系统, 其特征在于, 包括: 主机、 虚拟机和网 络设备, 其中:

所述主机为权利要求 25〜29所述的任一主机,所述虚拟机为权利 要求 30〜32所述的任一虚拟机;

或, 所述主机为权利要求 41〜45所述的任一主机, 所述虚拟机为 权利要求 46〜48所述的任一虚拟机;

所述网络设备, 用于接收所述虚拟机发送的数据包。

Description:
一种数据转发方法、 装置及系统 技术领域

本发明涉及通讯技术领域, 尤其涉及一种数据转发方法、 装置 及系统。 背景技术

虚拟化技术 ( Virtualization ) 使用软件技术在一台物理计算机 上模拟产生多个虚拟计算机( Virtual Machine , 简称 VM ) , 每个 VM 可以和物理计算机一样安装操作系统、 安装应用软件、 运行各种程 序。 多个 VM可以同时在一台物理计算机上运行, 互相之间不感知 对方, 彼此隔离, 只能通过网络互相通讯, 就如同两台物理计算机 一样。 多个 VM的性能总和不超过其所在的物理计算机。

在虚拟化技术中, 一台物理计算机上模拟多个 VM的软件叫虚 拟监控器 ( Virtual Machine Monitor , 简称 VMM )。 由于虚拟技术引 入了 VMM这一中间层, VM 内运行的应用程序的性质不同, 虚拟化 带来的性能损耗也不同。 进行大量 CPU运算的应用程序, 其在 VM 中运行时性能损失较小。 与外界进行大量输入 /输出 ( Input/Output , 简称 I/O ) 通讯的应用程序 (例如网络通讯或磁盘读写 ), 其在 VM 中运行时性能损失较大。 由于虚拟化技术能够带来更好的综合成本 优势, 无线通讯行业开始大规模釆用虚拟化技术。 但是在无线通讯 设备中, 应用程序往往需要进行大量的网络通讯, 有大量的数据吞 吐, 因此应用程序在 VM中的运行性能会大幅下降。

现有技术中是釆用标准虚拟化 I/O通讯机制通过 VM 内部和外 部的通讯两端的配合, 以高效的接口实现数据的交换, 简化了虚拟 硬件的模拟过程降低了 I/O 过程的损耗。 但是这种方案虽然降低了 损耗,但是损耗还是很大。现有技术中又引用 单根 I/O虚拟化( Single Root I/O Virtualization , 简称 SR-IOV ) 硬件直通技术将物理计算机 上的硬件直接交给 VM使用而不是由 VMM虚拟出来的虚拟硬件。 这种技术中 VM 中的驱动程序可以直接驱动物理网卡, 进行收发包 操作。 VM直接使用物理硬件而旁路了 VMM的中间过程, 使得性能 损耗减至最小。 但是由于 VM 需要感知不同的物理硬件, 为不同的 硬件安装对应的驱动程序,硬件升级或变更时 VM也需要一同变动, 对 VM 的开发、 维护、 部署等产生较大影响, 使得工作效率降低, 实际操作起来也比较麻烦。 发明内容

本发明的实施例提供一种数据转发方法、 装置及系统, 解决了 虚拟机中的应用程序与物理机通信时损耗大问 题, 同时提高了工作 效率, 操作方便。

为达到上述目的, 本发明的实施例釆用如下技术方案:

第一方面, 提供一种数据转发方法, 包括:

主机接收网络设备发送的第一通知信息; 其中, 所述第一通知 信息中包括所述网络设备存储在内存中的数据 包的内存地址;

根据逻辑通道号与通讯实体的关系映射表获取 与所述网络设备 通信的虚拟机; 其中, 所述逻辑通道号是所述网络设备与所述虚拟 机通信的逻辑通道号;

根据所述第一通知信息获得第二通知信息; 其中, 所述第二通 知信息包括所述逻辑通道号和所述数据包的内 存地址;

发送所述第二通知信息至所述虚拟机, 以便于所述虚拟机根据 所述数据包的内存地址获得所述数据包; 其中, 所述虚拟机是通过 所述虚拟机上的连接模块接收所述第二通知信 息的。

在第一种可能的实现方式中, 结合第一方面, 所述根据所述第 一通知信息获得第二通知信息, 包括:

解析所述第一通知信息获得所述数据包的内存 地址;

将所述数据包的内存地址的形式转换为标准形 式;

根据转换为标准形式的所述数据包的内存地址 和所述逻辑通道 号获得所述第二通知信息。

在第二种可能的实现方式中, 结合第一方面或第一种可能的实 现方式,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第三种可能的实现方式中, 结合第一方面或第一种可能的实 现方式,

所述逻辑通道号与通讯实体的关系映射表可以 根据通讯实体的 变化进行实时更新。

在第四种可能的实现方式中, 结合第一方面或第一种可能的实 现方式,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第二方面, 提供一种数据转发方法, 包括:

虚拟机通过所述虚拟机上的连接模块接收所述 主机发送的第二 通知信息; 其中, 所述第二通知信息是根据第一通知信息获得的 , 包括网络设备与所述虚拟机通信的逻辑通道号 和数据包的内存地 址; 所述第一通知信息是所述网络设备发送至所述 主机的, 包括所 述网络设备存储在内存中的所述数据包的内存 地址;

根据所述数据包的内存地址在内存中获取所述 数据包。

在第一种可能的实现方式中, 结合第二方面,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第二种可能的实现方式中, 结合第二方面,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第三方面, 提供数据转发方法, 包括: 主机接收虚拟机发送的第二通知信息; 其中, 所述第二通知信 息包括逻辑通道号和所述虚拟机存储在内存中 的数据包的内存地 址; 所述逻辑通道号为所述虚拟机与网络设备通信 的逻辑通道号; 所述虚拟机是通过所述虚拟机上的连接模块发 送所述第二通知信息 的;

根据所述逻辑通道号与通讯实体的关系映射表 获取与所述虚拟 机通信的网络设备;

根据所述第二通知信息获得第一通知信息; 其中, 所述第一通 知信息包括所述数据包的内存地址;

发送所述第一通知信息至所述网络设备, 以便于所述网络设备 根据所述数据包的内存地址获得所述数据包。

在第一种可能的实现方式中, 结合第三方面, 所述根据所述第 二通知信息获得第一通知信息, 包括:

解析所述第二通知信息获得所述数据包的内存 地址;

将所述数据报的内存地址的形式转换为所述网 络设备可以识别 的形式;

根据转换的所述数据包的内存地址获得所述第 一通知信息。 在第二种可能的实现方式中, 结合第三方面或第一种可能的实 现方式,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第三种可能的实现方式中, 结合第三方面或第一种可能的实 现方式,

所述逻辑通道号与通讯实体的关系映射表可以 根据通讯实体的 变化进行实时更新。

在第四种可能的实现方式中, 结合第三方面或第一种可能的实 现方式,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同; 所述第二通知信息传输数据的接口的形式为所 述标准形式。 第四方面, 提供一种数据转发方法, 包括:

虚拟机存储数据包至内存中;

通过所述虚拟机上的连接模块发送第二通知信 息至主机, 以便 于所述主机根据所述第二通知信息获得第一通 知信息, 并发送至网 络设备使得所述网络设备根据所述第一通知信 息获得所述数据包; 其中, 所述第二通知信息中包括所述网络设备与所述 虚拟机通信的 逻辑通道号和数据包的内存地址。

在第一种可能的实现方式中, 结合第四方面,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第二种可能的实现方式中, 结合第四方面,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第五方面, 提供一种主机, 包括:

接收单元, 用于接收网络设备发送的第一通知信息; 其中, 所 述第一通知信息中包括所述网络设备存储在内 存中的数据包的内存 地址;

获取单元, 用于根据逻辑通道号与通讯实体的关系映射表 获取 与所述网络设备通信的虚拟机; 其中, 所述逻辑通道号是所述网络 设备与所述虚拟机通信的逻辑通道号;

所述获取单元, 还用于根据所述接收单元接收到的所述第一通 知信息获得第二通知信息; 其中, 所述第二通知信息包括所述逻辑 通道号和所述数据包的内存地址;

发送单元, 用于发送所述获取单元获取到的所述第二通知 信息 至所述虚拟机, 以便于所述虚拟机根据所述数据包的内存地址 获得 所述数据包; 其中, 所述虚拟机是通过所述虚拟机上的连接模块接 收所述第二通知信息的。 在第一种可能的实现方式中, 结合第五方面, 所述获取单元包 括:

解析模块, 用于解析所述第一通知信息获得所述数据包的 内存 地址;

转换模块, 用于将所述解析模块获得的所述数据包的内存 地址 的形式转换为标准形式;

获取模块, 用于根据所述转换模块转换为标准形式的数据 包的 内存地址和所述逻辑通道号获得所述第二通知 信息。

在第二种可能的实现方式中, 结合第五方面或第一种可能的实 现方式,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第三种可能的实现方式中, 结合第五方面或第一种可能的实 现方式,

所述逻辑通道号与通讯实体的关系映射表可以 根据通讯实体的 变化进行实时更新。

在第四种可能的实现方式中, 结合第五方面或第一种可能的实 现方式,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第六方面, 提供一种虚拟机, 包括:

接收单元, 用于通过所述虚拟机上的连接模块接收所述主 机发 送的第二通知信息; 其中, 所述第二通知信息是根据第一通知信息 获得的, 包括网络设备与所述虚拟机通信的逻辑通道号 和数据包的 内存地址; 所述第一通知信息是所述网络设备发送至所述 主机的, 包括所述网络设备存储在内存中的所述数据包 的内存地址;

获取单元, 用于根据所述接收单元接收到的所述数据包的 内存 地址在内存中获取所述数据包。 在第一种可能的实现方式中, 结合第六方面,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第二种可能的实现方式中, 结合第六方面,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第七方面, 提供一种主机, 包括:

接收单元, 用于接收虚拟机发送的第二通知信息; 其中, 所述 第二通知信息包括逻辑通道号和所述虚拟机存 储在内存中的数据包 的内存地址; 所述逻辑通道号为所述虚拟机与网络设备通信 的逻辑 通道号; 所述虚拟机是通过所述虚拟机上的连接模块发 送所述第二 通知信息的;

获取单元, 用于根据所述逻辑通道号与通讯实体的关系映 射表 获取与所述虚拟机通信的网络设备;

所述获取单元, 还用于根据所述接收单元接收到的所述第二通 知信息获得第一通知信息; 其中, 所述第一通知信息包括所述数据 包的内存地址;

发送单元, 用于发送所述第一通知信息至所述获取单元获 取的 所述网络设备, 以便于所述网络设备根据所述数据包的内存地 址获 得所述数据包。

在第一种可能的实现方式中, 结合第七方面, 所述获取单元包 括:

解析模块, 用于解析所述第二通知信息获得所述数据包的 内存 地址;

转换模块, 用于将所述解析模块得到的所述数据报的内存 地址 的形式转换为所述网络设备可以识别的形式;

获取模块, 用于根据所述转换模块转换的所述数据包的内 存地 址获得所述第一通知信息。 在第二种可能的实现方式中, 结合第七方面或第一种可能的实 现方式,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第三种可能的实现方式中, 结合第七方面或第一种可能的实 现方式,

所述逻辑通道号与通讯实体的关系映射表可以 根据通讯实体的 变化进行实时更新。

在第四种可能的实现方式中, 结合第七方面或第一种可能的实 现方式,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第八方面, 提供一种虚拟机, 包括:

处理单元, 用于存储数据包至内存中;

发送单元, 用于通过所述虚拟机上的连接模块发送第二通 知信 息至主机, 以便于所述主机根据所述第二通知信息获得第 一通知信 息, 并发送至网络设备使得所述网络设备根据所述 第一通知信息获 得所述数据包; 其中, 所述第二通知信息中包括所述网络设备与所 述虚拟机通信的逻辑通道号和数据包的内存地 址。

在第一种可能的实现方式中, 结合第八方面,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第二种可能的实现方式中, 结合第八方面,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第九方面, 提供一种主机, 包括: 至少一个处理器、 存储器、 通信接口和总线, 所述至少一个处理器、 存储器和通信接口通过总 线连接并完成相互间的通信, 所述存储器用于存储程序代码, 其中: 所述处理器, 用于调用存储器中的程序代码, 用以执行以下操 作:

接收网络设备发送的第一通知信息; 其中, 所述第一通知信息 中包括所述网络设备存储在内存中的数据包的 内存地址;

根据逻辑通道号与通讯实体的关系映射表获取 与所述网络设备 通信的虚拟机; 其中, 所述逻辑通道号是所述网络设备与所述虚拟 机通信的逻辑通道号;

根据所述第一通知信息获得第二通知信息; 其中, 所述第二通 知信息中包括所述逻辑通道号和所述数据包的 内存地址;

发送所述第二通知信息至所述虚拟机, 以便于所述虚拟机根据 所述数据包的内存地址获得所述数据包; 其中, 所述虚拟机是通过 所述虚拟机上的连接模块接收所述第二通知信 息的。

在第一种可能的实现方式中, 结合第九方面, 所述处理器具体 用于:

解析所述第一通知信息获得所述数据包的内存 地址;

将所述数据包的内存地址的形式转换为标准形 式;

根据转换为标准形式的所述数据包的内存地址 和所述逻辑通道 号获得所述第二通知信息。

在第二种可能的实现方式中, 结合第九方面或第一种可能的实 现方式,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第三种可能的实现方式中, 结合第九方面或第一种可能的实 现方式,

所述逻辑通道号与通讯实体的关系映射表可以 根据通讯实体的 变化进行实时更新。

在第四种可能的实现方式中, 结合第九方面或第一种可能的实 现方式, 所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第十方面, 提供一种虚拟机, 包括: 至少一个处理器、 存储器、 通信接口和总线, 所述至少一个处理器、 存储器和通信接口通过总 线连接并完成相互间的通信, 所述存储器用于存储程序代码, 其中: 所述处理器, 用于调用存储器中的程序代码, 用以执行以下操 作:

通过所述虚拟机上的连接模块接收所述主机发 送的第二通知信 息; 其中, 所述第二通知信息是根据第一通知信息获得的 , 包括所 述网络设备与所述虚拟机通信的逻辑通道号和 所述数据包的内存地 址; 所述第一通知信息是所述网络设备发送至所述 主机的, 包括所 述网络设备存储在内存中的所述数据包的内存 地址;

根据所述数据包的内存地址在内存中获取所述 数据包。

在第一种可能的实现方式中, 结合第十方面,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第二种可能的实现方式中, 结合第十方面,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第十一方面, 提供一种主机, 包括: 至少一个处理器、 存储器、 通信接口和总线, 所述至少一个处理器、 存储器和通信接口通过总 线连接并完成相互间的通信, 所述存储器用于存储程序代码, 其中: 所述处理器, 用于调用存储器中的程序代码, 用以执行以下操 作:

主机接收虚拟机发送的第二通知信息; 其中, 所述第二通知信 息包括逻辑通道号和所述虚拟机存储在内存中 的数据包的内存地 址; 所述逻辑通道号为所述虚拟机与网络设备通信 的逻辑通道号; 所述虚拟机是通过所述虚拟机上的连接模块发 送所述第二通知信息 的;

根据所述逻辑通道号与通讯实体的关系映射表 获取与所述虚拟 机通信的网络设备;

根据所述第二通知信息获得第一通知信息; 其中, 所述第一通 知信息包括所述数据包的内存地址;

发送所述第一通知信息至所述网络设备, 以便于所述网络设备 根据所述数据包的内存地址获得所述数据包。

在第一种可能的实现方式中, 结合第十一方面, 所述处理器具 体用于:

解析所述第二通知信息获得所述数据包的内存 地址;

将所述数据报的内存地址的形式转换为所述网 络设备可以识别 的形式;

根据转换的所述数据包的内存地址获得所述第 一通知信息。 在第二种可能的实现方式中, 结合第十一方面或第一种可能的 实现方式,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第三种可能的实现方式中, 结合第十一方面或第一种可能的 实现方式,

所述逻辑通道号与通讯实体的关系映射表可以 根据通讯实体的 变化进行实时更新。

在第四种可能的实现方式中, 结合第九方面或第十一种可能的 实现方式,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第十二方面, 提供一种虚拟机, 包括: 至少一个处理器、 存储 器、 通信接口和总线, 所述至少一个处理器、 存储器和通信接口通 过总线连接并完成相互间的通信, 所述存储器用于存储程序代码, 其巾:

所述处理器, 用于调用存储器中的程序代码, 用以执行以下操 作:

存储数据包至内存中;

通过所述虚拟机上的连接模块发送第二通知信 息至主机, 以便 于所述主机根据所述第二通知信息获得第一通 知信息, 并发送至网 络设备使得所述网络设备根据所述第一通知信 息获得所述数据包; 其中, 所述第二通知信息中包括所述网络设备与所述 虚拟机通信的 逻辑通道号和数据包的内存地址。

在第一种可能的实现方式中, 结合第十二方面,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第二种可能的实现方式中, 结合第十二方面,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第十三方面, 提供一种数据转发系统, 包括: 主机、 虚拟机和 网络设备, 其中:

所述主机, 用于接收网络设备发送的第一通知信息; 其中, 所 述第一通知信息中包括所述网络设备存储在内 存中的数据包的内存 地址; 根据逻辑通道号与通讯实体的关系映射表获取 与所述网络设 备通信的虚拟机; 其中, 所述逻辑通道号是所述网络设备与所述虚 拟机通信的逻辑通道号; 根据所述第一通知信息获得第二通知信息; 其中, 所述第二通知信息包括所述逻辑通道号和所述 数据包的内存 地址; 发送所述第二通知信息至所述虚拟机, 以便于所述虚拟机根 据所述数据包的内存地址获得所述数据包; 其中, 所述虚拟机是通 过所述虚拟机上的连接模块接收所述第二通知 信息的;

所述网络设备, 用于发送所述数据包至所述主机并将所述数据 包存储在内存中;

所述虚拟机, 用于通过所述虚拟机上的连接模块接收主机发 送 的第二通知信息; 其中, 所述第二通知信息是根据第一通知信息获 得的, 包括网络设备与所述虚拟机通信的逻辑通道号 和数据包的内 存地址; 所述第一通知信息是所述网络设备发送至所述 主机的, 包 括所述网络设备存储在内存中的所述数据包的 内存地址; 根据所述 数据包的内存地址在内存中获取所述数据包。

在第一种可能的实现方式中, 结合第十三方面,

所述主机, 还用于解析所述第一通知信息获得所述数据包 的内 存地址; 将所述数据包的内存地址的形式转换为标准形 式; 根据转 换为标准形式的所述数据包的内存地址和所述 逻辑通道号获得所述 第二通知信息。

在第二种可能的实现方式中, 结合第十三方面或第一种可能的 实现方式,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第三种可能的实现方式中, 结合第十三方面或第一种可能的 实现方式,

所述逻辑通道号与通讯实体的关系映射表可以 根据通讯实体的 变化进行实时更新。

在第四种可能的实现方式中, 结合第十三方面或第一种可能的 实现方式,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 第十四方面, 提供一种数据转发系统, 包括: 主机、 虚拟机和 网络设备, 其中:

所述虚拟机, 用于存储数据包至内存中; 通过所述虚拟机上的 连接模块发送第二通知信息至主机, 以便于所述主机根据所述第二 通知信息获得第一通知信息, 并发送至网络设备使得所述网络设备 根据所述第一通知信息获得所述数据包; 其中, 所述第二通知信息 中包括所述网络设备与所述虚拟机通信的逻辑 通道号和数据包的内 存地址;

所述主机, 用于接收虚拟机发送的第二通知信息; 其中, 所述 第二通知信息包括逻辑通道号和所述虚拟机存 储在内存中的数据包 的内存地址; 所述逻辑通道号为所述虚拟机与网络设备通信 的逻辑 通道号; 所述虚拟机是通过所述虚拟机上的连接模块发 送所述第二 通知信息的; 根据所述逻辑通道号与通讯实体的关系映射表 获取与 所述虚拟机通信的网络设备; 根据所述第二通知信息获得第一通知 信息; 其中, 所述第一通知信息包括所述数据包的内存地址 ; 发送 所述第一通知信息至所述网络设备, 以便于所述网络设备根据所述 数据包的内存地址获得所述数据包;

所述网络设备, 用于接收所述主机发送的第一通知信息; 根据 所述数据包的内存地址获得所述数据包。

在第一种可能的实现方式中, 结合第十四方面,

所述主机, 还用于解析所述第二通知信息获得所述数据包 的内 存地址; 将所述数据包的内存地址的格式转换为所述网 络设备可以 识别的格式; 根据转换的所述数据包的内存地址获得所述第 一通知 信息。

在第二种可能的实现方式中, 结合第十四方面或第一种可能的 实现方式,

所述第二通知信息中的数据包的内存地址以标 准形式存在; 其 中, 所述标准形式指的是预先与所述虚拟机约定的 格式。

在第三种可能的实现方式中, 结合第十四方面或第一种可能的 实现方式,

所述逻辑通道号与通讯实体的关系映射表可以 根据通讯实体的 变化进行实时更新。

在第四种可能的实现方式中, 结合第十四方面或第一种可能的 实现方式,

所述第一通知信息传输数据的接口根据所述网 络设备的不同而 不同;

所述第二通知信息传输数据的接口的形式为所 述标准形式。 本发明的实施例提供的数据转发方法、 装置及系统, 通过将网 络设备发送的信息的内存地址的形式转换为标 准形式, 并将该标准 形式的信息的内存地址发送至虚拟机上的应用 程序, 解决了虚拟机 中的应用程序与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。 附图说明

为了更清楚地说明本发明实施例或现有技术中 的技术方案, 下 面将对实施例或现有技术描述中所需要使用的 附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例 , 对于 本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附图。

图 1 为本发明的实施例提供的一种数据转发方法的 流程示意 图;

图 2为本发明的实施例提供的另一种数据转发方 的流程示意 图;

图 3 为本发明的实施例提供的又一种数据转发方法 的流程示意 图;

图 4为本发明的另一实施例提供的一种数据转发 法的流程示 意图;

图 5为本发明的另一实施例提供的另一种数据转 方法的流程 示意图;

图 6为本发明的另一实施例提供的又一种数据转 方法的流程 示意图;

图 7为本发明的实施例提供的一种主机的结构示 图; 图 8为本发明的实施例提供的另一种主机的结构 意图; 图 9为本发明的实施例提供的一种虚拟机的结构 意图; 图 10为本发明的实施例提供的又一种主机的结构 意图; 图 1 1为本发明的另一实施例提供的一种主机的结 示意图; 图 12为本发明的实施例提供的另一种虚拟机的结 示意图; 图 13为本发明的另一实施例提供的另一种主机的 构示意图; 图 14为本发明的实施例提供的又一种虚拟机的结 示意图; 图 15为本发明的另一实施例提供的又一种主机的 构示意图; 图 16为本发明的另一实施例提供的一种虚拟机的 构示意图; 图 17 为本发明的实施例提供的一种数据转发系统的 结构示意 图;

图 18 为本发明的实施例提供的另一种数据转发系统 的结构示 意图。 具体实施方式

下面将结合本发明实施例中的附图, 对本发明实施例中的技术 方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明 一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本 领域普通技术人员在没有作出创造性劳动前提 下所获得的所有其他 实施例, 都属于本发明保护的范围。

本发明的实施例提供一种数据转发方法, 应用于物理机上的硬 件向虚拟机上的应用程序发送信息的过程中, 参照图 1 所示, 该方 法包括以下步骤:

101、 主机接收网络设备发送的第一通知信息。

其中, 第一通知信息中包括网络设备存储在内存中的 数据包的 内存地址。

102、主机根据逻辑通道号与通讯实体的关系映 射表获取与网络 设备通信的虚拟机。

其中, 逻辑通道号是网络设备与虚拟机通信的逻辑通 道号。 103、 主机根据第一通知信息获得第二通知信息。

其中, 第二通知信息包括该逻辑通道号和数据包的内 存地址。

104、 主机发送第二通知信息至虚拟机, 以便于该虚拟机根据数 据包的内存地址获得数据包。

其中,虚拟机是通过虚拟机上的连接模块接收 第二通知信息的。 本发明的实施例提供的数据转发方法, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种数据转发方法, 应用于物理机上的硬 件向虚拟机上的应用程序发送信息的过程中, 参照图 2 所示, 包括 以下步骤:

201、虚拟机通过虚拟机上的连接模块接收主机 发送的第二通知 信息。

其中, 所述第二通知信息是根据第一通知信息获得的 , 包括主 机与虚拟机通信的逻辑通道号和数据包的内存 地址; 第一通知信息 是网络设备发送至主机的, 包括网络设备存储在内存中的数据包的 内存地址。

202、 虚拟机根据数据包的内存地址在内存中获取数 据包。

本发明的实施例提供的数据转发方法, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种数据转发方法,应用 于物理机上的硬 件向虚拟机上的应用程序发送信息的过程中, 参照图 3 所示, 包括 以下步骤:

301、 主机接收网络设备发送的第一通知信息。 其中, 第一通知信息中包括网络设备存储在内存中的 数据包的 内存地址。

具体的, 网络设备需要发送数据包至虚拟机上的应用程 序, 则 网络设备需要将该数据包存储在内存中, 然后发送该数据包的地址 至虚拟机, 虚拟机根据接收到的地址获得所需的数据包。 但是由于 不同的网络设备具有各自的地址格式, 如果网络设备发生变换时, 则对应的虚拟机需要重新识别新的格式, 操作起来比较麻烦。 因此, 本实施例中先将数据包的地址携带在第一通知 信息中发送至主机。

该第一通知信息中还可以包括数据包的个数等 信息, 第一数据 包的格式根据网络设备的的不同而不同。 其中, 网络设备优选的可 以为物理网卡。

302、主机根据逻辑通道号与通讯实体的关系映 射表获取与网络 设备通信的虚拟机。

其中, 逻辑通道号是网络设备与虚拟机通信的逻辑通 道号。 逻辑通道号与通讯实体的关系映射表可以根据 通讯实体的变化 进行实时更新。

当网络设备需要与虚拟机上的应用程序通信时 , 需要预先从主 机上获取逻辑通道号, 主机允许其通信时, 会在自 己的逻辑通道号 与通讯实体的关系映射表中增加相应的内容, 并告知双方一个逻辑 通道号。 则逻辑通道号与通讯实体的关系映射表会根据 互相通信双 方的变化而不断的更新。

303、 主机解析第一通知信息获得数据包的内存地址 。

304、 主机将数据包的内存地址的形式转换为标准形 式。

305、主机根据转换为标准形式的数据包的内存 地址和逻辑通道 号获得第二通知信息。

其中, 第二通知信息中包括网络设备与虚拟机通信的 逻辑通道 号和数据包的内存地址。

第二通知信息中的数据包的内存地址以标准形 式存在, 该标准 形式指的是预先与虚拟机约定的格式。 具体的, 主机通过主机上的软交换中心将第一通知信息 转换为 第二通知信息, 从而使得虚拟机上的应用程序可以接收任何网 络设 备发送的数据包, 避免耦合问题的产生。

306、 主机发送第二通知信息至虚拟机, 以便于虚拟机根据数据 包的内存地址获得数据包。

具体的,主机是通过主机上的软件换中心发送 第二通知信息的。 该软交换中心是通过软件来实现的。

307、虚拟机通过虚拟机上的连接模块接收主机 发送的第二通知 信息。

其中, 虚拟机上的连接模块是通过软件的形式实现的 。

308、 虚拟机根据数据包的内存地址在内存中获取数 据包。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

在本实施例中, 虚拟机获取的数据包最终会发送至虚拟机上的 应用程序, 主机上的所有操作都是通过主机上的软交换中 心实现的。 由于不同的网络设备会产生不同的第一通知信 息的格式, 因此需要 通过主机上运行的软交换中心具有适配功能, 适应不同硬件的差异。 同时, 第二通知信息的格式是预先与虚拟机约定的标 准格式, 则只 要主机将第一通知信息转换为第二通知信息, 虚拟机上的应用程序 不需要任何的改动就可以处理第二通知信息, 而不存在与网络设备 耦合的问题。 虚拟机可以从一台物理计算机迁移到另一台物 理计算 机上, 不需要对虚拟机中的软件作任何的改动。

本发明的实施例提供的数据转发方法, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例, 提供一种数据转发方法, 应用于虚拟机上的 应用程序向网络设备发送数据包的过程中, 参照图 4 所示, 包括以 下步骤:

401、 主机接收虚拟机发送的第二通知信息。

其中, 第二通知信息包括逻辑通道号和虚拟机存储在 内存中的 数据包的内存地址; 逻辑通道号为虚拟机与网络设备通信的逻辑通 道号; 虚拟机是通过虚拟机上的连接模块发送第二通 知信息的。

402、主机根据逻辑通道号与通讯实体的关系映 射表获取与虚拟 机通信的网络设备。

403、 主机根据第二通知信息获得第一通知信息。

其中, 第一通知信息包括数据包的内存地址。

404、 主机发送第一通知信息至网络设备, 以便于网络设备根据 数据包的内存地址获得数据包。

本发明的实施例提供的数据转发方法, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例, 提供一种数据转发方法, 虚拟机上的应用程 序向网络设备发送数据包的过程中, 参照图 5所示, 包括以下步骤:

501、 虚拟机存储数据包至内存中。

502、 虚拟机通过虚拟机上的连接模块发送第二通知 信息至主 机, 以便于主机根据第二通知信息获得第一通知信 息, 并发送至网 络设备使得网络设备根据第一通知信息获得数 据包。

其中, 第二通知信息中包括网络设备与虚拟机通信的 逻辑通道 号和数据包的内存地址。

本发明的实施例提供的数据转发方法, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种数据转发方法, 虚拟机上的应用程序 向网络设备发送数据包的过程中, 参照图 6所示, 包括以下步骤: 601、 虚拟机存储数据包至内存中。

602、 虚拟机通过虚拟机上的连接模块发送第二通知 信息至主 机。

其中, 第二通知信息包括逻辑通道号和虚拟机存储在 内存中的 数据包的内存地址; 逻辑通道号为虚拟机与网络设备通信的逻辑通 道号。

第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机约定的格式。

具体的, 虚拟机上的连接模块是通过软件的方式实现的 , 用于 通过主机上的软交换中心与主机进行通信, 该软交换中心也是通过 软件形式实现的。

603、 主机接收虚拟机发送的第二通知信息。

604、主机根据逻辑通道号与通讯实体的关系映 射表获取与虚拟 机通信的网络设备。

逻辑通道号与通讯实体的关系映射表可以根据 通讯实体的变化 进行实时更新。

当虚拟机上的应用程序需要与网络设备通信时 , 需要预先从主 机上获取逻辑通道号, 主机允许其通信时, 会在自 己的逻辑通道号 与通讯实体的关系映射表中增加相应的内容, 并告知双方一个逻辑 通道号。 则逻辑通道号与通讯实体的关系映射表会根据 互相通信双 方的变化而不断的更新。

605、 主机解析第二通知信息获得数据包的内存地址 。

606、主机将数据包的内存地址的形式转换为网 络设备可以识别 的形式。

607、 主机根据转换的数据包的内存地址获得第一通 知信息。 其中, 第一通知信息包括数据包的内存地址。

具体的, 主机通过主机上的软交换中心将第二通知信息 转换为 第一通知信息, 从而使得网络设备可以接收虚拟机上的应用程 序发 送的数据包, 避免耦合问题的产生。 不同的网络设备只能识别与 自 己格式相同的信息。

608、 主机发送第一通知信息至网络设备, 以便于网络设备根据 数据包的内存地址获得数据包。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

在本实施例中虚拟机发送的数据包是由虚拟机 上的应用程序提 供的, 主机上的所有操作都是通过主机上的软件换中 心进行的。 本 实施例中与上述实施例中相同的操作与上述实 施例中的解释相同, 此处不再赘述。

本发明的实施例提供的数据转发方法, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。

当然, 上述实施例中的虚拟机上的应用程序与物理设 备之间的 通信还包括多个虚拟机上的应用程序与多个物 理设备通信的情况, 具体的操作方法与上述实施例中的一个虚拟机 上的应用程序与一个 物理设备通信的方法的过程相同, 此处不再赘述。

对于上述的实施例, 应用本发明中系统, 还可以扩展为釆用类 似的方法进行不同的网络设备之间的通信。 此时, 只需要网络设备 发送第一通知信息至主机, 主机需要将第一通知信息转换为另 ―网 络设备可识别的形式的通知信息, 发送至另一网络设备。 还可以为 扩展为虚拟机上不同的应用程序之间的通信: 此时, 主机不需要进 行任何的操作只需要将虚拟机上的应用程序发 送的第二通知信息转 发至另一应用程序上即可。 还可以扩展为不同虚拟机之间的通信。 还可以扩展为主机上的应用程序与网络设备之 间的通信, 此时, 主 机只需要直接接收网络设备发送的第一通知信 息即可, 不需要做任 何额定操作。 还包括: 主机上的应用程序之间的通信、 主机上的应 用程序与虚拟机上的应用程序之间的通信, 具体的步骤参照本发明 上述实施例中与相应设备相关的步骤操作即可 , 此处不再——列出。 其中, 一个第一通知信息对应多个第二通知信息, 一个第二通知信 息对应多个第一通知信息, 一个第二通知信息对应多个应用程序, 一个应用程序可以对应多个第二通知信息。 本发明的实施例提供一种主机 7 , 参照图 7所示, 该主机包括: 接收单元 71 , 获取单元 72和发送单元 73 , 其中:

接收单元 7 1 , 用于接收网络设备发送的第一通知信息。

其中, 第一通知信息中包括网络设备存储在内存中的 数据包的 内存地址。

获取单元 72 , 用于根据逻辑通道号与通讯实体的关系映射表 获 取与网络设备通信的虚拟机。

其中, 逻辑通道号是主机与虚拟机通信的逻辑通道号 。

获取单元 72 , 还用于根据接收单元 71 接收到的第一通知信息 获得第二通知信息。

其中, 第二通知信息包括逻辑通道号和数据包的内存 地址。 发送单元 73 , 用于发送获取单元 72 获取到的第二通知信息至 虚拟机, 以便于虚拟机根据数据包的内存地址获得数据 包。

其中,虚拟机是通过虚拟机上的软件模块接收 第二通知信息的。 本发明的实施例提供的主机, 通过将网络设备发送的信息的内 存地址的形式转换为标准形式, 并将该标准形式的信息的内存地址 发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理机 通信时损耗大问题, 同时提高了工作效率, 操作方便。

具体的, 参照图 8所示, 该获取单元 72 包括: 解析模块 721、 转换模块 722和获取模块 723 , 其中:

解析模块 721 , 用于解析第一通知信息获得数据包的内存地址 。 转换模块 722 , 用于将解析模块 721 获得的数据包的内存地址 的形式转换为标准形式。 获取模块 723 , 用于根据转换模块 722 转换为标准形式的数据 包的内存地址和逻辑通道号获得第二通知信息 。

第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机约定的格式。

逻辑通道号与通讯实体的关系映射表可以根据 通讯实体的变化 进行实时更新。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的主机, 通过将网络设备发送的信息的内 存地址的形式转换为标准形式, 并将该标准形式的信息的内存地址 发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理机 通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种虚拟机 8 , 参照图 9 所示, 该虚拟机 包括: 接收单元 81和获取单元 82 , 其中:

接收单元 8 1 , 用于通过虚拟机上的软件模块接收主机发送的 第 二通知信息。

其中, 第二通知信息是根据第一通知信息获得的, 包括主机与 虚拟机通信的逻辑通道号和数据包的内存地址 ; 第一通知信息是网 络设备发送至主机的, 包括网络设备存储在内存中的数据包的内存 地址。

获取单元 82 , 用于根据接收单元 81 接收到的数据包的内存地 址在内存中获取数据包。

第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机约定的格式。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的虚拟机, 通过将网络设备发送的信息的 内存地址的形式转换为标准形式, 并将该标准形式的信息的内存地 址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理 机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种主机 9 , 参照图 10所示, 包括: 接收 单元 91、 获取单元 92和发送单元 93 , 其中:

接收单元 91 , 用于接收虚拟机发送的第二通知信息。

其中, 第二通知信息包括逻辑通道号和虚拟机存储在 内存中的 数据包的内存地址; 逻辑通道号为虚拟机与网络设备通信的逻辑通 道号; 虚拟机是通过虚拟机上的连接模块发送第二通 知信息的。

获取单元 92 , 用于根据逻辑通道号与通讯实体的关系映射表 获 取与虚拟机通信的网络设备。

获取单元 92 , 还用于根据接收单元 91 接收到的第二通知信息 获得第一通知信息。

其中, 第一通知信息包括数据包的内存地址。

发送单元 93 , 用于发送第一通知信息至获取单元 92 获取的网 络设备, 以便于网络设备根据数据包的内存地址获得数 据包。

进一步, 参照图 1 1所示, 该获取单元 92 包括: 解析模块 921、 转换模块 922和获取模块 923 , 其中:

解析模块 921 , 用于解析第二通知信息获得数据包的内存地址 。 转换模块 922 , 用于将解析模块 921 得到的数据报的内存地址 的形式转换为网络设备可以识别的形式。

获取模块 923 , 用于根据转换模块 922 转换的数据包的内存地 址获得第一通知信息。

第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机约定的格式。

逻辑通道号与通讯实体的关系映射表可以根据 通讯实体的变化 进行实时更新。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。 本发明的实施例提供的主机, 通过将网络设备发送的信息的内 存地址的形式转换为标准形式, 并将该标准形式的信息的内存地址 发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理机 通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种虚拟机 10, 参照图 12 所示, 包括: 处理单元 1001和发送单元 1002, 其中:

处理单元 1001, 用于存储数据包至内存中。

发送单元 1002, 用于通过虚拟机上的连接模块发送第二通知信 息至主机, 以便于主机根据第二通知信息获得第一通知信 息, 并发 送至网络设备使得网络设备根据第一通知信息 获得数据包。

其中, 第二通知信息中包括网络设备与虚拟机通信的 逻辑通道 号和数据包的内存地址。

第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机约定的格式。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的虚拟机, 通过将网络设备发送的信息的 内存地址的形式转换为标准形式, 并将该标准形式的信息的内存地 址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理 机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种主机 11, 参照图 13 所示, 包括: 至 少一个处理器 1101、 存储器 1102、 通信接口 1103和总线 1104, 至 少一个处理器 1101、 存储器 1102 和通信接口 1103 通过总线 1104 连接并完成相互间的通信, 存储器 1102用于存储程序代码, 其中: 该总线 1104 可以是工业标准体系结构 ( Industry Standard Architecture,简称为 ISA )总线、夕卜部设备互连( Peripheral Component Interconnect, 简称为 PCI )总线或扩展工业标准体系结构 ( Extended Industry Standard Architecture, 简称为 EISA ) 总线等。 该总线 1104 可以分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 13 中 仅用一条粗线表示, 但并不表示仅有一根总线或一种类型的总线。 其巾:

存储器 1102用于存储程序代码, 该程序代码包括操作指令。 存 储器 1102可能包含高速 RAM存储器, 也可能还包括非易失性存储 器 ( non-volatile memory ), 例如至少一个磁盘存 4诸器。

处理器 1101可能是一个中央处理器 ( Central Processing Unit, 简称为 CPU), 或者是特定集成电路( Application Specific Integrated Circuit, 简称为 ASIC ), 或者是被配置成实施本发明实施例的一个 或多个集成电路。

通信接口 1103, 主要用于实现本实施例中的装置之间的通信。 处理器 1101, 还用于调用存储器 1102 中的程序代码, 用以执 行以下操作:

接收网络设备发送的第一通知信息。

其中, 第一通知信息中包括网络设备存储在内存中的 数据包的 内存地址。

根据逻辑通道号与通讯实体的关系映射表获取 与网络设备通信 的虚拟机。 其中, 该逻辑通道号是主机与虚拟机通信的逻辑通道 号。

根据第一通知信息获得第二通知信息。

其中, 第二通知信息中包括逻辑通道号和数据包的内 存地址。 发送第二通知信息至虚拟机, 以便于虚拟机根据数据包的内存 地址获得数据包。

其中,虚拟机是通过虚拟机上的软件模块接收 第二通知信息的。 处理器 1101具体用于执行以下操作:

解析第一通知信息获得数据包的内存地址。

将数据包的内存地址的形式转换为标准形式。

根据转换为标准形式的数据包的内存地址和逻 辑通道号获得第 二通知信息。 第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机约定的格式。

逻辑通道号与通讯实体的关系映射表可以根据 通讯实体的变化 进行实时更新。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的主机, 通过将网络设备发送的信息的内 存地址的形式转换为标准形式, 并将该标准形式的信息的内存地址 发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理机 通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种虚拟机 12 , 参照图 14 所示, 包括: 至少一个处理器 1201、 存储器 1202、 通信接口 1203和总线 1204 , 至少一个处理器 1201、存储器 1202和通信接口 1203通过总线 1204 连接并完成相互间的通信, 存储器 1202用于存储程序代码, 其中: 该总线 1204 可以是工业标准体系结构 ( Industry Standard Architecture ,简称为 ISA )总线、夕卜部设备互连( Peripheral Component Interconnect , 简称为 PCI )总线或扩展工业标准体系结构 ( Extended Industry Standard Architecture , 简称为 EISA ) 总线等。 该总线 1204 可以分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 14 中 仅用一条粗线表示, 但并不表示仅有一根总线或一种类型的总线。 其巾:

存储器 1202用于存储程序代码, 该程序代码包括操作指令。 存 储器 1202可能包含高速 RAM存储器, 也可能还包括非易失性存储 器 ( non-volatile memory ) , 例如至少一个磁盘存 4诸器。

处理器 1201可能是一个中央处理器 ( Central Processing Unit , 简称为 CPU ) , 或者是特定集成电路( Application Specific Integrated Circuit , 简称为 ASIC ) , 或者是被配置成实施本发明实施例的一个 或多个集成电路。 通信接口 1203 , 主要用于实现本实施例中的装置之间的通信。 处理器 1201 , 还用于调用存储器 1202 中的程序代码, 用以执 行以下操作:

通过虚拟机上的软件模块接收主机发送的第二 通知信息。

其中, 第二通知信息是根据第一通知信息获得的, 包括主机与 虚拟机通信的逻辑通道号和数据包的内存地址 ; 第一通知信息是网 络设备发送至主机的, 包括网络设备存储在内存中的数据包的内存 地址。

根据数据包的内存地址在内存中获取数据包。

第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机约定的格式。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的虚拟机, 通过将网络设备发送的信息的 内存地址的形式转换为标准形式, 并将该标准形式的信息的内存地 址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理 机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种主机 13 , 参照图 15 所示, 包括: 至 少一个处理器 1301、 存储器 1302、 通信接口 1303和总线 1304 , 至 少一个处理器 1301、 存储器 1302 和通信接口 1303 通过总线 1304 连接并完成相互间的通信, 存储器 1302用于存储程序代码, 其中: 该总线 1304 可以是工业标准体系结构 ( Industry Standard Architecture ,简称为 ISA )总线、夕卜部设备互连( Peripheral Component Interconnect , 简称为 PCI )总线或扩展工业标准体系结构 ( Extended Industry Standard Architecture , 简称为 EISA ) 总线等。 该总线 1304 可以分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 15 中 仅用一条粗线表示, 但并不表示仅有一根总线或一种类型的总线。 其巾: 存储器 1302用于存储程序代码, 该程序代码包括操作指令。 存 储器 1302可能包含高速 RAM存储器, 也可能还包括非易失性存储 器 ( non-volatile memory ) , 例如至少一个磁盘存 4诸器。

处理器 1301可能是一个中央处理器 ( Central Processing Unit , 简称为 CPU ) , 或者是特定集成电路( Application Specific Integrated Circuit , 简称为 ASIC ) , 或者是被配置成实施本发明实施例的一个 通信接口 1303 , 主要用于实现本实施例中的装置之间的通信。 处理器 1301 , 还用于调用存储器 1302 中的程序代码, 用以执 行以下操作:

接收虚拟机发送的第二通知信息。

其中, 第二通知信息包括逻辑通道号和虚拟机存储在 内存中的 数据包的内存地址; 逻辑通道号为虚拟机与网络设备通信的逻辑通 道号; 虚拟机是通过虚拟机上的连接模块发送第二通 知信息的。

根据逻辑通道号与通讯实体的关系映射表获取 与虚拟机通信的 网络设备。

根据第二通知信息获得第一通知信息。

其中, 第一通知信息包括数据包的内存地址。

发送第一通知信息至网络设备, 以便于网络设备根据数据包的 内存地址获得数据包。

进一步, 处理器 1301具体用于执行以下步骤:

解析第二通知信息获得数据包的内存地址。

将数据报的内存地址的形式转换为网络设备可 以识别的形式。 根据转换的数据包的内存地址获得第一通知信 息。

具体的,第二通知信息中的数据包的内存地址 以标准形式存在。 其中, 标准形式指的是预先与虚拟机约定的格式。

逻辑通道号与通讯实体的关系映射表可以根据 通讯实体的变化 进行实时更新。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的主机, 通过将网络设备发送的信息的内 存地址的形式转换为标准形式, 并将该标准形式的信息的内存地址 发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理机 通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种虚拟机 14 , 参照图 16 所示, 包括: 至少一个处理器 1401、 存储器 1402、 通信接口 1403和总线 1404 , 至少一个处理器 1401、存储器 1402和通信接口 1403通过总线 1404 连接并完成相互间的通信, 存储器 1402用于存储程序代码, 其中: 该总线 1404 可以是工业标准体系结构 ( Industry Standard Architecture ,简称为 ISA )总线、夕卜部设备互连( Peripheral Component Interconnect , 简称为 PCI )总线或扩展工业标准体系结构 ( Extended Industry Standard Architecture , 简称为 EISA ) 总线等。 该总线 1404 可以分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 16 中 仅用一条粗线表示, 但并不表示仅有一根总线或一种类型的总线。 其巾:

存储器 1402用于存储程序代码, 该程序代码包括操作指令。 存 储器 1302可能包含高速 RAM存储器, 也可能还包括非易失性存储 器 ( non-volatile memory ) , 例如至少一个磁盘存 4诸器。

处理器 1401可能是一个中央处理器 ( Central Processing Unit , 简称为 CPU ) , 或者是特定集成电路( Application Specific Integrated Circuit , 简称为 ASIC ) , 或者是被配置成实施本发明实施例的一个 或多个集成电路。

通信接口 1403 , 主要用于实现本实施例中的装置之间的通信。 处理器 1401 , 还用于调用存储器 1402 中的程序代码, 用以执 行以下操作:

存储数据包至内存中。

通过虚拟机上的连接模块发送第二通知信息至 主机, 以便于主 机根据第二通知信息获得第一通知信息, 并发送至网络设备使得网 络设备根据第一通知信息获得数据包。

其中, 第二通知信息中包括网络设备与虚拟机通信的 逻辑通道 号和数据包的内存地址。

第二通知信息中的数据包的内存地址以标准形 式存在。

其中, 标准形式指的是预先与虚拟机约定的格式。

第一通知信息传输数据的接口根据网络设备的 不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的虚拟机, 通过将网络设备发送的信息的 内存地址的形式转换为标准形式, 并将该标准形式的信息的内存地 址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序与物理 机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种数据转发系统,参照 图 17所示,包括: 主机 a、 虚拟机 b和网络设备 c , 其中:

网络设备 c , 用于发送第一通知信息至主机 a 并存储数据在内 存中。

主机 a , 用于接收网络设备 c 发送的第一通知信息; 其中, 第 一通知信息中包括网络设备 c 存储在内存中的数据包的内存地址; 根据逻辑通道号与通讯实体的关系映射表获取 与网络设备通信的虚 拟机 b ; 其中, 逻辑通道号是网络设备 c与虚拟机 b通信的逻辑通道 号; 根据第一通知信息获得第二通知信息; 其中, 第二通知信息包 括逻辑通道号和数据包的内存地址; 发送第二通知信息至虚拟机 b , 以便于虚拟机 b根据数据包的内存地址获得数据包; 其中, 虚拟机 b是通过虚拟机 b上的连接模块接收第二通知信息的。

虚拟机 b , 用于通过所述虚拟机上的连接模块接收主机发 送的 第二通知信息; 其中, 所述第二通知信息是根据第一通知信息获得 的, 包括网络设备与所述虚拟机通信的逻辑通道号 和数据包的内存 地址; 所述第一通知信息是所述网络设备发送至所述 主机的, 包括 所述网络设备存储在内存中的所述数据包的内 存地址; 根据所述数 据包的内存地址在内存中获取所述数据包。

具体的, 主机 a , 还用于解析第一通知信息获得数据包的内存 地址; 将数据包的内存地址的形式转换为标准形式; 根据转换为标 准形式的数据包的内存地址和逻辑通道号获得 第二通知信息。

第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机 b约定的格式。

逻辑通道号与通讯实体的关系映射表可以根据 通讯实体的变化 进行实时更新。

第一通知信息传输数据的接口根据网络设备的 不同而不同. 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的数据转发系统, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。 本发明的实施例提供一种数据转发系统,参照 图 1 8所示,包括: 主机 d、 虚拟机 e和网络设备 f, 其中:

虚拟机 e , 用于存储数据包至内存中; 通过虚拟机 e 上的连接 模块发送第二通知信息至主机 d , 以便于主机 d 根据第二通知信息 获得第一通知信息,并发送至网络设备 f使得网络设备 f根据第一通 知信息获得数据包; 其中, 第二通知信息中包括网络设备 f 与虚拟 机 e通信的逻辑通道号和数据包的内存地址。

主机 d , 用于接收虚拟机 e 发送的第二通知信息; 其中, 第二 通知信息包括逻辑通道号和虚拟机 e 存储在内存中的数据包的内存 地址; 逻辑通道号为虚拟机与网络设备通信的逻辑通 道号; 虚拟机 e是通过虚拟机 e上的连接模块发送第二通知信息的;根据逻 通道 号与通讯实体的关系映射表获取与虚拟机通信 的网络设备; 根据第 二通知信息获得第一通知信息; 其中, 第一通知信息包括数据包的 内存地址; 发送第一通知信息至网络设备 f , 以便于网络设备 f根据 数据包的内存地址获得数据包。

网络设备 f , 用于接收主机 d 发送的第一通知信息; 根据第一 通知信息中的数据包的内存地址获取数据包。

具体的, 主机 d , 还用于解析第二通知信息获得数据包的内存 地址; 将数据包的内存地址的格式转换为网络设备可 以识别的格式; 根据转换的数据包的内存地址获得第一通知信 息。

第二通知信息中的数据包的内存地址以标准形 式存在; 其中, 标准形式指的是预先与虚拟机 e约定的格式。

逻辑通道号与通讯实体的关系映射表可以根据 通讯实体的变化 进行实时更新。

第一通知信息传输数据的接口根据网络设备 f 的不同而不同。 第二通知信息传输数据的接口的形式为标准形 式。

本发明的实施例提供的数据转发系统, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。

所属领域的技术人员可以清楚地了解到,为描 述的方便和简洁, 仅以上述各功能模块的划分进行举例说明, 实际应用中, 可以根据 需要而将上述功能分配由不同的功能模块完成 , 即将装置的内部结 构划分成不同的功能模块, 以完成以上描述的全部或者部分功能。 上述描述的系统, 装置和单元的具体工作过程, 可以参考前述方法 实施例中的对应过程, 在此不再赘述。

在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统, 装置和方法, 可以通过其它的方式实现。 例如, 以上所描述的装置 实施例仅仅是示意性的, 例如, 所述模块或单元的划分, 仅仅为一 种逻辑功能划分, 实际实现时可以有另外的划分方式, 例如多个单 元或组件可以结合或者可以集成到另一个系统 , 或一些特征可以忽 略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接耦 合或通信连接可以是通过一些接口, 装置或单元的间接耦合或通信 连接, 可以是电性, 机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可 以不是物理上分 开的, 作为单元显示的部件可以是或者也可以不是物 理单元, 即可 以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实 际的需要选择其中的部分或者全部单元来实现 本实施例方案的 目 的。

另外, 在本申请各个实施例中的各功能单元可以集成 在一个处 理单元中, 也可以是各个单元单独物理存在, 也可以两个或两个以 上单元集成在一个单元中。 上述集成的单元既可以釆用硬件的形式 实现, 也可以釆用软件功能单元的形式实现。

以上所述, 以上实施例仅用以说明本申请的技术方案, 而非对 其限制; 尽管参照前述实施例对本申请进行了详细的说 明, 本领域 的普通技术人员应当理解: 其依然可以对前述各实施例所记载的技 术方案进行修改, 或者对其中部分技术特征进行等同替换; 而这些 修改或者替换, 并不使相应技术方案的本质脱离本申请各实施 例技 术方案的精神和范围。 因此, 本发明的保护范围应以所述权利要求 的保护范围为准。