WO2015013920A1 - 一种数据转发方法、装置及系统 - Google Patents
一种数据转发方法、装置及系统 Download PDFInfo
- Publication number
- WO2015013920A1 WO2015013920A1 PCT/CN2013/080527 CN2013080527W WO2015013920A1 WO 2015013920 A1 WO2015013920 A1 WO 2015013920A1 CN 2013080527 W CN2013080527 W CN 2013080527W WO 2015013920 A1 WO2015013920 A1 WO 2015013920A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- notification information
- virtual machine
- data packet
- memory address
- network device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004891 communication Methods 0.000 claims abstract description 158
- 238000013507 mapping Methods 0.000 claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 abstract description 43
- 230000008859 change Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Definitions
- the present invention relates to the field of communications technologies, and in particular, to a data forwarding method, apparatus, and system. Background technique
- Virtualization software uses software technology to simulate the creation of multiple virtual machines (VMs) on a single physical computer.
- VMs virtual machines
- Each VM can be installed with the operating system, installed application software, and runs various programs as a physical computer.
- Multiple VMs can run on a single physical computer at the same time. They don't perceive each other, are isolated from each other, and can communicate with each other only through the network, just like two physical computers. The combined performance of multiple VMs does not exceed the physical computer on which they reside.
- VMM Virtual Machine Monitor
- I/O input/output
- the standard virtualized I/O communication mechanism is used to exchange data between the internal and external communication ends of the VM, and the data is exchanged with an efficient interface, which simplifies the simulation process of the virtual hardware and reduces the loss of the I/O process. .
- This solution reduces the loss, the loss is still large.
- the prior art also refers to Single Root I/O Virtualization (SR-IOV).
- SR-IOV Single Root I/O Virtualization
- the hardware straight-through technology will be a physical computer. The hardware on it is handed over to the VM instead of the virtual hardware virtualized by the VMM.
- the driver in the VM can directly drive the physical network card to perform packet transmission and reception operations.
- the VM bypasses the intermediate process of the VMM directly using physical hardware, minimizing performance loss.
- Embodiments of the present invention provide a data forwarding method, apparatus, and system, which solve the problem of large loss in application communication between a virtual machine and a physical machine, and improve work efficiency and operation.
- a data forwarding method including:
- the host Receiving, by the host, the first notification information sent by the network device, where the first notification information includes a memory address of the data packet stored by the network device in the memory;
- a virtual machine that communicates with the network device according to a relationship between a logical channel number and a communication entity; wherein the logical channel number is a logical channel number that the network device communicates with the virtual machine;
- the second notification information includes the logical channel number and a memory address of the data packet
- the obtaining the second notification information according to the first notification information includes:
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship map between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data is different according to the network device
- the form of the interface of the second notification information transmission data is the standard form.
- a data forwarding method including:
- the virtual machine receives the second notification information sent by the host by using the connection module on the virtual machine, where the second notification information is obtained according to the first notification information, and includes logic for the network device to communicate with the virtual machine. a channel number and a memory address of the data packet; the first notification information is sent by the network device to the host, and includes a memory address of the data packet that is stored in the memory by the network device;
- the data packet is obtained in memory according to the memory address of the data packet.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data is different according to the network device
- the form of the interface of the second notification information transmission data is the standard form.
- the third aspect provides a data forwarding method, including: Receiving, by the host, the second notification information sent by the virtual machine, where the second notification information includes a logical channel number and a memory address of the data packet stored by the virtual machine in the memory; the logical channel number is the virtual machine and a logical channel number of the network device communication; the virtual machine sends the second notification information by using a connection module on the virtual machine;
- the obtaining the first notification information according to the second notification information includes:
- the first notification information is obtained according to the memory address of the converted data packet.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship map between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data is different according to the network device;
- the form of the interface of the second notification information transmission data is the standard form.
- the fourth aspect provides a data forwarding method, including:
- the virtual machine stores the data packet into the memory
- the notification information obtains the data packet; wherein the second notification information includes a logical channel number and a memory address of the data packet that the network device communicates with the virtual machine.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data is different according to the network device
- a host including:
- a receiving unit configured to receive first notification information that is sent by the network device, where the first notification information includes a memory address of the data packet that is stored in the memory by the network device;
- An acquiring unit configured to acquire a virtual machine that communicates with the network device according to a relationship between a logical channel number and a communication entity; where the logical channel number is a logical channel number that the network device communicates with the virtual machine;
- the obtaining unit is further configured to obtain second notification information according to the first notification information received by the receiving unit, where the second notification information includes the logical channel number and a memory address of the data packet ;
- the acquiring unit includes:
- a parsing module configured to parse the first notification information to obtain a memory address of the data packet
- a conversion module configured to convert a form of a memory address of the data packet obtained by the parsing module into a standard form
- an obtaining module configured to obtain the second notification information according to a memory address of the data packet converted into a standard form by the conversion module and the logical channel number.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship map between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data is different according to the network device
- the form of the interface of the second notification information transmission data is the standard form.
- a virtual machine including:
- a receiving unit configured to receive second notification information sent by the host by using a connection module on the virtual machine, where the second notification information is obtained according to the first notification information, including the network device and the virtual machine a logical channel number of the communication and a memory address of the data packet; the first notification information is sent by the network device to the host, and includes a memory address of the data packet stored in the memory by the network device;
- an obtaining unit configured to acquire the data packet in a memory according to a memory address of the data packet received by the receiving unit.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data is different according to the network device
- a host including:
- a receiving unit configured to receive second notification information that is sent by the virtual machine, where the second notification information includes a logical channel number and a memory address of a data packet that is stored in the virtual machine by the virtual machine; a logical channel number that the virtual machine communicates with the network device; the virtual machine sends the second notification information by using a connection module on the virtual machine;
- An acquiring unit configured to acquire, according to the relationship between the logical channel number and the communication entity, a network device that communicates with the virtual machine;
- the obtaining unit is further configured to obtain first notification information according to the second notification information that is received by the receiving unit, where the first notification information includes a memory address of the data packet;
- a sending unit configured to send the first notification information to the network device acquired by the acquiring unit, so that the network device obtains the data packet according to a memory address of the data packet.
- the acquiring unit includes:
- a parsing module configured to parse the second notification information to obtain a memory address of the data packet
- a conversion module configured to convert a form of a memory address of the datagram obtained by the parsing module into a form that the network device can recognize
- an obtaining module configured to obtain the first notification information according to a memory address of the data packet converted by the conversion module.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship map between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data is different according to the network device
- a virtual machine including:
- a processing unit configured to store a data packet into the memory
- a sending unit configured to send, by using a connection module on the virtual machine, second notification information to the host, so that the host obtains the first notification information according to the second notification information, and sends the information to the network device to enable the network device Obtaining the data packet according to the first notification information; where the second notification information includes a logical channel number and a memory address of the data packet that the network device communicates with the virtual machine.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data is different according to the network device
- a host comprising: at least one processor, a memory, a communication interface, and a bus, wherein the at least one processor, the memory, and the communication interface pass the total
- the lines are connected and complete communication with each other, the memory is used to store program code, where: the processor is configured to call program code in the memory to perform the following operations:
- the network device Receiving first notification information sent by the network device, where the first notification information includes a memory address of a data packet that is stored in the memory by the network device;
- a virtual machine that communicates with the network device according to a relationship between a logical channel number and a communication entity; wherein the logical channel number is a logical channel number that the network device communicates with the virtual machine;
- the second notification information includes the logical channel number and a memory address of the data packet
- the processor is specifically configured to:
- the second notification information is obtained according to a memory address of the data packet converted to a standard form and the logical channel number.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship map between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data is different according to the network device
- a virtual machine including: at least one processor, a memory, a communication interface, and a bus, wherein the at least one processor, the memory, and the communication interface are connected by a bus and complete communication with each other, and the memory is used for
- the program code is stored, wherein: the processor is configured to call program code in the memory to perform the following operations:
- connection module on the virtual machine And receiving, by the connection module on the virtual machine, the second notification information that is sent by the host, where the second notification information is obtained according to the first notification information, and includes logic for the network device to communicate with the virtual machine. a channel number and a memory address of the data packet; the first notification information is sent by the network device to the host, and includes a memory address of the data packet that is stored in the memory by the network device;
- the data packet is obtained in memory according to the memory address of the data packet.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data is different according to the network device
- a host comprising: at least one processor, a memory, a communication interface, and a bus, wherein the at least one processor, the memory, and the communication interface are connected by a bus and complete communication with each other, the memory being used for The program code is stored, wherein: the processor is configured to call program code in the memory to perform the following operations:
- the second notification information sent by the virtual machine receives, by the host, the second notification information sent by the virtual machine, where the second notification information includes a logical channel number and a memory address of the data packet stored by the virtual machine in the memory; the logical channel number is the virtual machine and The logical channel number of the network device communication; The virtual machine sends the second notification information by using a connection module on the virtual machine;
- the processor is specifically configured to:
- the first notification information is obtained according to the memory address of the converted data packet.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship map between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data is different according to the network device
- a virtual machine including: at least one processor, a memory, a communication interface, and a bus, wherein the at least one processor, the memory, and the communication interface are Through the bus connection and complete communication with each other, the memory is used to store the program code, and its towel:
- the processor is configured to call program code in the memory to perform the following operations:
- the notification information obtains the data packet; wherein the second notification information includes a logical channel number and a memory address of the data packet that the network device communicates with the virtual machine.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data is different according to the network device
- a thirteenth aspect provides a data forwarding system, including: a host, a virtual machine, and a network device, where:
- the host is configured to receive first notification information sent by the network device, where the first notification information includes a memory address of the data packet stored by the network device in the memory; and the relationship between the logical channel number and the communication entity
- the mapping table acquires a virtual machine that communicates with the network device, where the logical channel number is a logical channel number that the network device communicates with the virtual machine; and the second notification information is obtained according to the first notification information;
- the second notification information includes the logical channel number and a memory address of the data packet; sending the second notification information to the virtual machine, so that the virtual machine is obtained according to a memory address of the data packet.
- the data packet wherein the virtual machine receives the second notification information by using a connection module on the virtual machine;
- the network device configured to send the data packet to the host and the data
- the package is stored in memory
- the virtual machine is configured to receive, by using a connection module on the virtual machine, second notification information that is sent by the host, where the second notification information is obtained according to the first notification information, including the network device and the virtual machine. a logical channel number of the communication and a memory address of the data packet; the first notification information is sent by the network device to the host, and includes a memory address of the data packet that is stored in the memory by the network device; The memory address of the data packet is obtained in memory.
- the host is further configured to parse the first notification information to obtain a memory address of the data packet; convert a form of a memory address of the data packet into a standard form; according to the memory of the data packet converted into a standard form
- the second notification information is obtained by the address and the logical channel number.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship map between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data is different according to the network device
- a data forwarding system including: a host, a virtual machine, and a network device, where:
- the virtual machine is configured to store a data packet into the memory, and send, by using a connection module on the virtual machine, second notification information to the host, so that the host is configured according to the second
- the notification information is obtained by the first notification information, and is sent to the network device, so that the network device obtains the data packet according to the first notification information, where the second notification information includes the network device and the virtual machine
- the host is configured to receive second notification information that is sent by the virtual machine, where the second notification information includes a logical channel number and a memory address of a data packet that is stored in the virtual machine by the virtual machine; a logical channel number of the virtual machine communicating with the network device; the virtual machine sending the second notification information by using a connection module on the virtual machine; acquiring according to the relationship between the logical channel number and the communication entity a network device that communicates with the virtual machine; obtaining first notification information according to the second notification information; wherein, the first notification information includes a memory address of the data packet; and sending the first notification information to the a network device, so that the network device obtains the data packet according to a memory address of the data packet;
- the network device is configured to receive first notification information sent by the host, and obtain the data packet according to a memory address of the data packet.
- the host is further configured to parse the second notification information to obtain a memory address of the data packet; convert a format of the memory address of the data packet into a format that the network device can recognize; according to the converted data
- the first notification information is obtained by the memory address of the packet.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship map between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data is different according to the network device
- the form of the interface of the second notification information transmission data is the standard form.
- the data forwarding method, device and system provided by the embodiment of the present invention convert the form of the memory address of the information sent by the network device into a standard form, and send the memory address of the standard form information to the application on the virtual machine. It solves the problem of large loss when the application in the virtual machine communicates with the physical machine, and at the same time improves work efficiency and is convenient to operate.
- FIG. 1 is a schematic flow chart of a data forwarding method according to an embodiment of the present invention.
- FIG. 2 is a schematic flow chart of another data forwarding method according to an embodiment of the present invention.
- FIG. 3 is a schematic flow chart of still another data forwarding method according to an embodiment of the present invention.
- FIG. 4 is a schematic flowchart of a data forwarding method according to another embodiment of the present invention.
- FIG. 5 is a schematic flowchart of another data forwarding method according to another embodiment of the present invention.
- FIG. 6 is a schematic flowchart of still another data forwarding method according to another embodiment of the present invention.
- FIG. 7 is a schematic structural diagram of a host according to an embodiment of the present invention
- FIG. 8 is a schematic structural diagram of another host according to an embodiment of the present invention
- FIG. 9 is a schematic structural diagram of a virtual machine according to an embodiment of the present invention
- FIG. FIG. 1 is a schematic structural diagram of another host according to another embodiment of the present invention
- FIG. 12 is a schematic structural diagram of another virtual machine according to an embodiment of the present invention
- FIG. 14 is a schematic structural diagram of another virtual machine according to an embodiment of the present invention
- FIG. 15 is a schematic structural diagram of another host according to another embodiment of the present invention
- FIG. 16 is a schematic structural diagram of a virtual machine according to another embodiment of the present invention
- FIG. 17 is a schematic structural diagram of a data forwarding system according to an embodiment of the present invention
- FIG. 18 is a schematic structural diagram of another data forwarding system according to an embodiment of the present invention. detailed description
- An embodiment of the present invention provides a data forwarding method, which is applied to a process in which hardware on a physical machine sends information to an application on a virtual machine.
- the method includes the following steps:
- the host receives the first notification information sent by the network device.
- the first notification information includes a memory address of a data packet stored by the network device in the memory.
- the host acquires a virtual machine that communicates with the network device according to the relationship table between the logical channel number and the communication entity.
- the logical channel number is a logical channel number in which the network device communicates with the virtual machine. 103.
- the host obtains the second notification information according to the first notification information.
- the second notification information includes the logical channel number and a memory address of the data packet.
- the host sends the second notification information to the virtual machine, so that the virtual machine obtains the data packet according to the memory address of the data packet.
- the virtual machine receives the second notification information through a connection module on the virtual machine.
- the data forwarding method provided by the embodiment of the present invention converts the form of the memory address of the information sent by the network device into a standard form, and sends the standard form of the letter, the memory address of the standard form to the application on the virtual machine, to solve When the application in the virtual machine communicates with the physical machine, the loss is large, and the work efficiency is improved and the operation is convenient.
- Embodiments of the present invention provide a data forwarding method, which is applied to a process in which hardware on a physical machine sends information to an application on a virtual machine. Referring to FIG. 2, the following steps are included:
- the virtual machine receives the second notification information sent by the host by using a connection module on the virtual machine.
- the second notification information is obtained according to the first notification information, and includes a logical channel number of the host and the virtual machine and a memory address of the data packet.
- the first notification information is sent by the network device to the host, including network device storage.
- the memory address of the packet in memory.
- the virtual machine acquires a data packet in the memory according to the memory address of the data packet.
- the data forwarding method provided by the embodiment of the present invention converts the form of the memory address of the information sent by the network device into a standard form, and sends the standard form of the letter, the memory address of the standard form to the application on the virtual machine, to solve When the application in the virtual machine communicates with the physical machine, the loss is large, and the work efficiency is improved and the operation is convenient.
- the embodiment of the present invention provides a data forwarding method. When the hardware applied to the physical machine sends information to the application on the virtual machine, as shown in FIG. 3, the following steps are included:
- the host receives the first notification information sent by the network device.
- the first notification information includes a memory address of the data packet that the network device stores in the memory.
- the network device needs to send the data packet to the application on the virtual machine, and the network device needs to store the data packet in the memory, and then send the address of the data packet to the virtual machine, and the virtual machine obtains the location according to the received address.
- the required data packet since different network devices have their own address formats, if the network device changes, the corresponding virtual machine needs to re-recognize the new format, which is troublesome to operate. Therefore, in this embodiment, the address of the data packet is first carried in the first notification information and sent to the host.
- the first notification information may further include information such as the number of data packets, and the format of the first data packet varies according to the network device.
- the network device is a physical network card.
- the host acquires a virtual machine that communicates with the network device according to the relationship table between the logical channel number and the communication entity.
- the logical channel number is a logical channel number in which the network device communicates with the virtual machine.
- the relationship table between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the logical channel number needs to be obtained from the host in advance.
- the host allows the communication, the corresponding content is added in the relationship mapping table between the logical channel number and the communication entity. And tell both parties a logical channel number. Then, the relationship table between the logical channel number and the communication entity is continuously updated according to the changes of the mutual communication.
- the host parses the first notification information to obtain a memory address of the data packet.
- the host converts the form of the memory address of the data packet into a standard form.
- the host obtains the second notification information according to the memory address and the logical channel number of the data packet converted into the standard form.
- the second notification information includes a logical channel number of the network device and the virtual machine and a memory address of the data packet.
- the memory address of the data packet in the second notification information exists in a standard form, which refers to a format agreed in advance with the virtual machine. Specifically, the host converts the first notification information into the second notification information by using the softswitch center on the host, so that the application on the virtual machine can receive the data packet sent by any network device, thereby avoiding the coupling problem.
- the host sends the second notification information to the virtual machine, so that the virtual machine obtains the data packet according to the memory address of the data packet.
- the host sends the second notification information through the software switching center on the host.
- the softswitch center is implemented by software.
- the virtual machine receives the second notification information sent by the host by using a connection module on the virtual machine.
- connection module on the virtual machine is implemented in the form of software.
- the virtual machine acquires a data packet in the memory according to the memory address of the data packet.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the data packets acquired by the virtual machine are finally sent to the application on the virtual machine, and all operations on the host are implemented by the softswitch center on the host. Since different network devices generate different formats of the first notification information, the softswitch center running on the host needs to have an adaptation function to adapt to different hardware differences. Meanwhile, the format of the second notification information is a standard format agreed in advance with the virtual machine, and the application on the virtual machine can process the second notification without any modification as long as the host converts the first notification information into the second notification information. Information, without the problem of coupling with network devices. A virtual machine can be migrated from one physical machine to another without any changes to the software in the virtual machine.
- the data forwarding method provided by the embodiment of the present invention converts the form of the memory address of the information sent by the network device into a standard form, and sends the standard form of the letter, the memory address of the standard form to the application on the virtual machine, to solve When the application in the virtual machine communicates with the physical machine, the loss is large, and the work efficiency is improved and the operation is convenient.
- An embodiment of the present invention provides a data forwarding method, which is applied to a process in which an application on a virtual machine sends a data packet to a network device, as shown in FIG. Next steps:
- the host receives the second notification information sent by the virtual machine.
- the second notification information includes a logical channel number and a memory address of the data packet stored in the virtual machine by the virtual machine; the logical channel number is a logical channel number of the virtual machine communicating with the network device; the virtual machine is sent through the connection module on the virtual machine.
- the second notification message includes a logical channel number and a memory address of the data packet stored in the virtual machine by the virtual machine; the logical channel number is a logical channel number of the virtual machine communicating with the network device; the virtual machine is sent through the connection module on the virtual machine.
- the host acquires a network device that communicates with the virtual machine according to a relationship table between the logical channel number and the communication entity.
- the host obtains the first notification information according to the second notification information.
- the first notification information includes a memory address of the data packet.
- the host sends the first notification information to the network device, so that the network device obtains the data packet according to the memory address of the data packet.
- the data forwarding method provided by the embodiment of the present invention converts the form of the memory address of the information sent by the network device into a standard form, and sends the standard form of the letter, the memory address of the standard form to the application on the virtual machine, to solve When the application in the virtual machine communicates with the physical machine, the loss is large, and the work efficiency is improved and the operation is convenient.
- An embodiment of the present invention provides a data forwarding method. When an application on a virtual machine sends a data packet to a network device, as shown in FIG. 5, the method includes the following steps:
- the virtual machine stores the data packet into the memory.
- the virtual machine sends the second notification information to the host by using the connection module on the virtual machine, so that the host obtains the first notification information according to the second notification information, and sends the information to the network device, so that the network device obtains the data packet according to the first notification information.
- the second notification information includes a logical channel number of the network device and the virtual machine and a memory address of the data packet.
- the data forwarding method provided by the embodiment of the present invention converts the form of the memory address of the information sent by the network device into a standard form, and sends the standard form of the letter, the memory address of the standard form to the application on the virtual machine, to solve When the application in the virtual machine communicates with the physical machine, the loss is large, and the work efficiency is improved and the operation is convenient.
- An embodiment of the present invention provides a data forwarding method. In the process of sending a data packet to a network device by an application on a virtual machine, as shown in FIG. 6, the method includes the following steps: 601. The virtual machine stores a data packet into the memory.
- the virtual machine sends the second notification information to the host by using a connection module on the virtual machine.
- the second notification information includes a logical channel number and a memory address of the data packet stored by the virtual machine in the memory; the logical channel number is a logical channel number of the virtual machine communicating with the network device.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- connection module on the virtual machine is implemented by software, and is used to communicate with the host through a softswitch center on the host, and the softswitch center is also implemented by software.
- the host receives the second notification information sent by the virtual machine.
- the host acquires a network device that communicates with the virtual machine according to a relationship table between the logical channel number and the communication entity.
- the relationship table between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the logical channel number needs to be obtained from the host in advance.
- the host allows the communication, the corresponding content is added in the relationship mapping table between the logical channel number and the communication entity. And tell both parties a logical channel number. Then, the relationship table between the logical channel number and the communication entity is continuously updated according to the changes of the mutual communication.
- the host parses the second notification information to obtain a memory address of the data packet.
- the host converts the form of the memory address of the data packet into a form that the network device can recognize.
- the host obtains the first notification information according to the memory address of the converted data packet.
- the first notification information includes a memory address of the data packet.
- the host converts the second notification information into a softswitch center on the host by using The first notification information, so that the network device can receive the data packet sent by the application on the virtual machine to avoid the coupling problem.
- Different network devices can only recognize the same information as their own format.
- the host sends the first notification information to the network device, so that the network device obtains the data packet according to the memory address of the data packet.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the data packet sent by the virtual machine is provided by an application on the virtual machine, and all operations on the host are performed by software switching on the host.
- All operations on the host are performed by software switching on the host.
- the data forwarding method provided by the embodiment of the present invention converts the form of the memory address of the information sent by the network device into a standard form, and sends the standard form of the letter, the memory address of the standard form to the application on the virtual machine, to solve
- the application in the virtual machine communicates with the physical machine, the loss is large, and the work efficiency is improved and the operation is convenient.
- the communication between the application on the virtual machine and the physical device in the foregoing embodiment further includes the case where the application on the plurality of virtual machines communicates with the plurality of physical devices, and the specific operation method is the same as one of the foregoing embodiments.
- the process of the application on the virtual machine is the same as the method of communicating with one physical device, and will not be described here.
- the system of the present invention can be extended to perform communication between different network devices in a similar manner.
- the network device only needs to send the first notification information to the host, and the host needs to convert the first notification information into notification information in a form recognizable by another network device, and send the information to another network device.
- It can also be extended to communicate between different applications on the virtual machine: At this point, the host does not need to perform any operations, only need to forward the second notification information sent by the application on the virtual machine to another application. can. It can also be extended to communicate between different virtual machines. It can also be extended to the communication between the application on the host and the network device.
- the first notification information corresponds to the plurality of second notification information
- the second notification information corresponds to the plurality of first notification information
- the second notification information corresponds to the plurality of application programs
- the one application program can correspond to the plurality of second notification information.
- An embodiment of the present invention provides a host 7. Referring to FIG. 7, the host includes: a receiving unit 71, an obtaining unit 72, and a sending unit 73, where:
- the receiving unit 7 1 is configured to receive first notification information sent by the network device.
- the first notification information includes a memory address of a data packet stored by the network device in the memory.
- the obtaining unit 72 is configured to obtain a virtual machine that communicates with the network device according to the relationship table between the logical channel number and the communication entity.
- the logical channel number is the logical channel number of the host communicating with the virtual machine.
- the obtaining unit 72 is further configured to obtain the second notification information according to the first notification information received by the receiving unit 71.
- the second notification information includes a logical channel number and a memory address of the data packet.
- the sending unit 73 is configured to send the second notification information acquired by the obtaining unit 72 to the virtual machine, so that the virtual machine obtains the data packet according to the memory address of the data packet.
- the virtual machine receives the second notification information through a software module on the virtual machine.
- the host provided by the embodiment of the present invention solves the problem in the virtual machine by converting the form of the memory address of the information sent by the network device into a standard form, and sending the memory address of the standard form information to the application on the virtual machine.
- the application consumes a large problem when communicating with the physical machine, and at the same time improves work efficiency and is easy to operate.
- the obtaining unit 72 includes: a parsing module 721, a converting module 722, and an obtaining module 723, where:
- the parsing module 721 is configured to parse the first notification information to obtain a memory address of the data packet.
- the conversion module 722 is configured to convert the form of the memory address of the data packet obtained by the parsing module 721 into a standard form.
- the obtaining module 723 is configured to obtain second notification information according to the memory address and the logical channel number of the data packet converted by the conversion module 722 into a standard form.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship table between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the host provided by the embodiment of the present invention solves the problem in the virtual machine by converting the form of the memory address of the information sent by the network device into a standard form, and sending the memory address of the standard form information to the application on the virtual machine.
- the application consumes a large problem when communicating with the physical machine, and at the same time improves work efficiency and is easy to operate.
- An embodiment of the present invention provides a virtual machine 8. Referring to FIG. 9, the virtual machine includes: a receiving unit 81 and an obtaining unit 82, where:
- the receiving unit 8 1 is configured to receive, by using a software module on the virtual machine, the second notification information sent by the host.
- the second notification information is obtained according to the first notification information, and includes a logical channel number of the host and the virtual machine and a memory address of the data packet.
- the first notification information is sent by the network device to the host, where the network device is stored in the memory.
- the memory address of the packet in .
- the obtaining unit 82 is configured to obtain a data packet in the memory according to the memory address of the data packet received by the receiving unit 81.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the virtual machine provided by the embodiment of the present invention converts the form of the memory address of the information sent by the network device into a standard form, and stores the information in the standard form.
- the application sent to the virtual machine solves the problem of large loss in the communication between the application and the physical machine in the virtual machine, and improves the work efficiency and the operation convenience.
- An embodiment of the present invention provides a host 9, which is shown in FIG. 10, and includes: a receiving unit 91, an obtaining unit 92, and a sending unit 93, where:
- the receiving unit 91 is configured to receive second notification information sent by the virtual machine.
- the second notification information includes a logical channel number and a memory address of the data packet stored in the virtual machine by the virtual machine; the logical channel number is a logical channel number of the virtual machine communicating with the network device; the virtual machine is sent through the connection module on the virtual machine.
- the second notification message includes a logical channel number and a memory address of the data packet stored in the virtual machine by the virtual machine; the logical channel number is a logical channel number of the virtual machine communicating with the network device; the virtual machine is sent through the connection module on the virtual machine.
- the obtaining unit 92 is configured to obtain a network device that communicates with the virtual machine according to the relationship table between the logical channel number and the communication entity.
- the obtaining unit 92 is further configured to obtain the first notification information according to the second notification information received by the receiving unit 91.
- the first notification information includes a memory address of the data packet.
- the sending unit 93 is configured to send the first notification information to the network device acquired by the obtaining unit 92, so that the network device obtains the data packet according to the memory address of the data packet.
- the obtaining unit 92 includes: a parsing module 921, a converting module 922, and an obtaining module 923, where:
- the parsing module 921 is configured to parse the second notification information to obtain a memory address of the data packet.
- the conversion module 922 is configured to convert the form of the memory address of the datagram obtained by the parsing module 921 into a form recognizable by the network device.
- the obtaining module 923 is configured to obtain the first notification information according to the memory address of the data packet converted by the conversion module 922.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship table between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the host provided by the embodiment of the present invention solves the problem in the virtual machine by converting the form of the memory address of the information sent by the network device into a standard form, and sending the memory address of the standard form information to the application on the virtual machine.
- the application consumes a large problem when communicating with the physical machine, and at the same time improves work efficiency and is easy to operate.
- An embodiment of the present invention provides a virtual machine 10, as shown in FIG. 12, including: a processing unit 1001 and a sending unit 1002, where:
- the processing unit 1001 is configured to store the data packet into the memory.
- the sending unit 1002 is configured to send the second notification information to the host by using the connection module on the virtual machine, so that the host obtains the first notification information according to the second notification information, and sends the information to the network device, so that the network device obtains the data according to the first notification information. package.
- the second notification information includes a logical channel number of the network device and the virtual machine and a memory address of the data packet.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the virtual machine provided by the embodiment of the present invention solves the virtual machine by converting the form of the memory address of the information sent by the network device into a standard form, and transmitting the memory address of the standard form information to the application on the virtual machine.
- the application in the communication with the physical machine consumes a large problem, and at the same time, the work efficiency is improved and the operation is convenient.
- An embodiment of the present invention provides a host 11, which is shown in FIG. 13, and includes: at least one processor 1101, a memory 1102, a communication interface 1103, and a bus 1104. At least one processor 1101, a memory 1102, and a communication interface 1103 pass through a bus 1104.
- the memory 1102 is configured to store program code, where: the bus 1104 can be an Industry Standard Architecture (ISA) bus, and a Peripheral Component Interconnect (referred to as PCI) bus or extended industry standard architecture ( Extended Industry Standard Architecture, referred to as EISA) bus.
- ISA Industry Standard Architecture
- PCI Peripheral Component Interconnect
- EISA Extended Industry Standard Architecture
- the bus 1104 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 13, but it does not mean that there is only one bus or one type of bus. Its towel:
- the memory 1102 is for storing program code, the program code including an operation instruction.
- Memory 1102 may include high speed RAM memory and may also include non-volatile memory, such as at least one disk storage device.
- the processor 1101 may be a central processing unit (CPU), or an application specific integrated circuit (ASIC), or one or more configured to implement the embodiments of the present invention. integrated circuit.
- CPU central processing unit
- ASIC application specific integrated circuit
- the communication interface 1103 is mainly used to implement communication between devices in this embodiment.
- the processor 1101 is further configured to call the program code in the memory 1102 to perform the following operations:
- the first notification information includes a memory address of a data packet stored by the network device in the memory.
- the logical channel number is a logical channel number that the host communicates with the virtual machine.
- the second notification information is obtained according to the first notification information.
- the second notification information includes a logical channel number and a memory address of the data packet.
- the second notification message is sent to the virtual machine, so that the virtual machine obtains the data packet according to the memory address of the data packet.
- the virtual machine receives the second notification information through a software module on the virtual machine.
- the processor 1101 is specifically configured to perform the following operations:
- the first notification information is parsed to obtain the memory address of the data packet.
- the second notification information is obtained according to the memory address and the logical channel number of the data packet converted into the standard form.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the relationship table between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the host provided by the embodiment of the present invention solves the problem in the virtual machine by converting the form of the memory address of the information sent by the network device into a standard form, and sending the memory address of the standard form information to the application on the virtual machine.
- the application consumes a large problem when communicating with the physical machine, and at the same time improves work efficiency and is easy to operate.
- An embodiment of the present invention provides a virtual machine 12, as shown in FIG. 14, comprising: at least one processor 1201, a memory 1202, a communication interface 1203, and a bus 1204. At least one processor 1201, a memory 1202, and a communication interface 1203 pass through a bus.
- the bus 1204 connects and completes communication with each other, and the memory 1202 is configured to store program code
- the bus 1204 may be an Industry Standard Architecture (ISA) bus, and a Peripheral Component Interconnect (abbreviation). For PCI) bus or extended industry standard architecture (EISA) bus.
- ISA Industry Standard Architecture
- EISA extended industry standard architecture
- the bus 1204 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 14, but it does not mean that there is only one bus or one type of bus. Its towel:
- the memory 1202 is for storing program code, the program code including an operation instruction.
- Memory 1202 may include high speed RAM memory and may also include non-volatile memory, such as at least one disk storage device.
- the processor 1201 may be a central processing unit (CPU), or an application specific integrated circuit (ASIC), or one or more configured to implement the embodiments of the present invention. integrated circuit.
- the communication interface 1203 is mainly used to implement communication between devices in this embodiment.
- the processor 1201 is further configured to call the program code in the memory 1202 to perform the following operations:
- the second notification information sent by the host is received by the software module on the virtual machine.
- the second notification information is obtained according to the first notification information, and includes a logical channel number of the host and the virtual machine and a memory address of the data packet.
- the first notification information is sent by the network device to the host, where the network device is stored in the memory.
- the memory address of the packet in .
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the virtual machine provided by the embodiment of the present invention solves the virtual machine by converting the form of the memory address of the information sent by the network device into a standard form, and transmitting the memory address of the standard form information to the application on the virtual machine.
- the application in the communication with the physical machine consumes a large problem, and at the same time, the work efficiency is improved and the operation is convenient.
- An embodiment of the present invention provides a host 13, which is shown in FIG. 15, and includes: at least one processor 1301, a memory 1302, a communication interface 1303, and a bus 1304. At least one processor 1301, a memory 1302, and a communication interface 1303 pass through a bus 1304.
- the memory 1302 is configured to store program code, where: the bus 1304 may be an Industry Standard Architecture (ISA) bus, and a Peripheral Component Interconnect (abbreviated as PCI) bus or extended industry standard architecture (EISA) bus.
- the bus 1304 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 15, but it does not mean that there is only one bus or one type of bus. Its towel:
- the memory 1302 is for storing program code, and the program code includes an operation instruction.
- the memory 1302 may include a high speed RAM memory, and may also include a non-volatile memory such as at least one disk memory.
- the processor 1301 may be a central processing unit (CPU), or an application specific integrated circuit (ASIC), or a communication interface 1303 configured to implement the embodiment of the present invention. It is mainly used to implement communication between devices in this embodiment.
- the processor 1301 is further configured to call the program code in the memory 1302 to perform the following operations:
- the second notification information includes a logical channel number and a memory address of the data packet stored in the virtual machine by the virtual machine; the logical channel number is a logical channel number of the virtual machine communicating with the network device; the virtual machine is sent through the connection module on the virtual machine.
- the second notification message includes a logical channel number and a memory address of the data packet stored in the virtual machine by the virtual machine; the logical channel number is a logical channel number of the virtual machine communicating with the network device; the virtual machine is sent through the connection module on the virtual machine.
- the first notification information is obtained according to the second notification information.
- the first notification information includes a memory address of the data packet.
- the first notification message is sent to the network device, so that the network device obtains the data packet according to the memory address of the data packet.
- processor 1301 is specifically configured to perform the following steps:
- the second notification information is parsed to obtain the memory address of the data packet.
- the first notification information is obtained according to the memory address of the converted data packet.
- the memory address of the data packet in the second notification information exists in a standard form.
- the standard form refers to the format agreed with the virtual machine in advance.
- the relationship table between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- An embodiment of the present invention provides a virtual machine 14, which is shown in FIG. 16, and includes: at least one processor 1401, a memory 1402, a communication interface 1403, and a bus 1404. At least one processor 1401, a memory 1402, and a communication interface 1403 pass through a bus.
- the bus 1404 connects and completes communication with each other, and the memory 1402 is configured to store program code
- the bus 1404 can be an Industry Standard Architecture (ISA) bus, and a Peripheral Component Interconnect (abbreviation). For PCI) bus or extended industry standard architecture (EISA) bus.
- ISA Industry Standard Architecture
- EISA extended industry standard architecture
- the bus 1404 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 16, but it does not mean that there is only one bus or one type of bus. Its towel:
- the memory 1402 is for storing program code, the program code including an operation instruction.
- Memory 1302 may include high speed RAM memory and may also include non-volatile memory, such as at least one disk storage device.
- the processor 1401 may be a central processing unit (CPU), or an application specific integrated circuit (ASIC), or one or more configured to implement the embodiments of the present invention. integrated circuit.
- CPU central processing unit
- ASIC application specific integrated circuit
- the communication interface 1403 is mainly used to implement communication between devices in this embodiment.
- the processor 1401 is further configured to call the program code in the memory 1402 to perform the following operations:
- the machine obtains the first notification information according to the second notification information, and sends the information to the network device, so that the network device obtains the data packet according to the first notification information.
- the second notification information includes a logical channel number of the network device and the virtual machine and a memory address of the data packet.
- the memory address of the data packet in the second notification message exists in a standard form.
- the standard form refers to the format agreed with the virtual machine in advance.
- the interface of the first notification information transmission data differs depending on the network device.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the virtual machine provided by the embodiment of the present invention solves the virtual machine by converting the form of the memory address of the information sent by the network device into a standard form, and transmitting the memory address of the standard form information to the application on the virtual machine.
- the application in the communication with the physical machine consumes a large problem, and at the same time, the work efficiency is improved and the operation is convenient.
- An embodiment of the present invention provides a data forwarding system, as shown in FIG. 17, including: a host a, a virtual machine b, and a network device c, where:
- the network device c is configured to send the first notification information to the host a and store the data in the memory.
- the host a is configured to receive the first notification information sent by the network device c, where the first notification information includes a memory address of the data packet stored by the network device c in the memory; and the mapping table is obtained according to the relationship between the logical channel number and the communication entity.
- the logical channel number is a logical channel number that the network device c communicates with the virtual machine b; and the second notification information is obtained according to the first notification information; wherein the second notification information includes a logical channel number and The memory address of the data packet is sent to the virtual machine b, so that the virtual machine b obtains the data packet according to the memory address of the data packet; wherein the virtual machine b receives the second notification information through the connection module on the virtual machine b. of.
- the virtual machine b is configured to receive the second notification information sent by the host by using the connection module on the virtual machine, where the second notification information is obtained according to the first notification information, including the network device communicating with the virtual machine The logical channel number and the memory address of the data packet; the first notification information is sent by the network device to the host, including And storing, by the network device, a memory address of the data packet in a memory; acquiring the data packet in a memory according to a memory address of the data packet.
- the host a is further configured to parse the first notification information to obtain a memory address of the data packet; convert the form of the memory address of the data packet into a standard form; obtain the memory address and the logical channel number of the data packet converted into the standard form Second notification message.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine b.
- the relationship table between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data differs according to the network device.
- the interface of the second notification information transmission data is in a standard form.
- the data forwarding system converts the form of the memory address of the information sent by the network device into a standard form, and sends the standard form of the letter, the memory address of the standard to the application on the virtual machine, to solve When the application in the virtual machine communicates with the physical machine, the loss is large, and the work efficiency is improved and the operation is convenient.
- An embodiment of the present invention provides a data forwarding system, as shown in FIG. 18, including: a host d, a virtual machine e, and a network device f, where:
- the virtual machine e is configured to store the data packet into the memory; send the second notification information to the host d through the connection module on the virtual machine e, so that the host d obtains the first notification information according to the second notification information, and sends the first notification information to the network device.
- the network device f obtains the data packet according to the first notification information.
- the second notification information includes the logical channel number of the network device f and the virtual machine e and the memory address of the data packet.
- the host d is configured to receive the second notification information sent by the virtual machine e.
- the second notification information includes a logical channel number and a memory address of the data packet stored in the virtual machine e in the memory; the logical channel number is a virtual machine and a network device.
- the logical channel number of the communication; the virtual machine e sends the second notification information through the connection module on the virtual machine e; acquires the network device that communicates with the virtual machine according to the relationship table between the logical channel number and the communication entity; according to the second notification information Obtaining first notification information; wherein the first notification information includes a data packet The memory address; sending the first notification information to the network device f, so that the network device f obtains the data packet according to the memory address of the data packet.
- the network device f is configured to receive the first notification information sent by the host d, and obtain the data packet according to the memory address of the data packet in the first notification information.
- the host d is further configured to parse the second notification information to obtain a memory address of the data packet; convert the format of the memory address of the data packet into a format that the network device can recognize; and obtain the first notification according to the memory address of the converted data packet. information.
- the memory address of the data packet in the second notification information exists in a standard form; wherein the standard form refers to a format agreed in advance with the virtual machine e.
- the relationship table between the logical channel number and the communication entity can be updated in real time according to the change of the communication entity.
- the interface of the first notification information transmission data differs depending on the network device f.
- the form of the interface for transmitting information of the second notification information is a standard form.
- the data forwarding system converts the form of the memory address of the information sent by the network device into a standard form, and sends the standard form of the letter, the memory address of the standard to the application on the virtual machine, to solve
- the application in the virtual machine communicates with the physical machine, the loss is large, and the work efficiency is improved and the operation is convenient.
- the disclosed system, apparatus, and method may be implemented in other manners.
- the device embodiments described above are merely illustrative.
- the division of the modules or units is only a logical function division.
- there may be another division manner for example, multiple units or components may be used. Combined or can be integrated into another system, or some features can be ignored, or not executed.
- Another point, the mutual coupling or direct coupling shown or discussed The or communication connection may be an indirect coupling or communication connection through some interface, device or unit, and may be in electrical, mechanical or other form.
- the units described as separate components may or may not be physically separated, and the components displayed as the units may or may not be physical units, and may be located in one place or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the embodiment of the present embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例提供一种数据转发方法、装置及系统,涉及通讯技术领域解决了虚拟机中的应用程序与物理机通信时损耗大问题,同时提高了工作效率,操作方便。该方法具体包括:主机接收网络设备发送的第一通知信息;第一通知信息中包括网络设备存储在内存中的数据包的内存地址;根据逻辑通道号与通讯实体的关系映射表获取与网络设备通信的虚拟机;逻辑通道号是网络设备机与虚拟机通信的逻辑通道号;根据第一通知信息获得第二通知信息;第二通知信息包括逻辑通道号和数据包的内存地址;发送第二通知信息至虚拟机,以便于虚拟机根据数据包的内存地址获得数据包;虚拟机是通过虚拟机上的连接模块接收第二通知信息的。本发明应用于数据传输中。
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 的不同而不同。 第二通知信息传输数据的接口的形式为标准形式。
本发明的实施例提供的数据转发系统, 通过将网络设备发送的 信息的内存地址的形式转换为标准形式, 并将该标准形式的信, ¾的 内存地址发送至虚拟机上的应用程序, 解决了虚拟机中的应用程序 与物理机通信时损耗大问题, 同时提高了工作效率, 操作方便。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁, 仅以上述各功能模块的划分进行举例说明, 实际应用中, 可以根据 需要而将上述功能分配由不同的功能模块完成, 即将装置的内部结 构划分成不同的功能模块, 以完成以上描述的全部或者部分功能。 上述描述的系统, 装置和单元的具体工作过程, 可以参考前述方法 实施例中的对应过程, 在此不再赘述。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统, 装置和方法, 可以通过其它的方式实现。 例如, 以上所描述的装置 实施例仅仅是示意性的, 例如, 所述模块或单元的划分, 仅仅为一 种逻辑功能划分, 实际实现时可以有另外的划分方式, 例如多个单 元或组件可以结合或者可以集成到另一个系统, 或一些特征可以忽 略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接耦
合或通信连接可以是通过一些接口, 装置或单元的间接耦合或通信 连接, 可以是电性, 机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分 开的, 作为单元显示的部件可以是或者也可以不是物理单元, 即可 以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实 际的需要选择其中的部分或者全部单元来实现本实施例方案的 目 的。
另外, 在本申请各个实施例中的各功能单元可以集成在一个处 理单元中, 也可以是各个单元单独物理存在, 也可以两个或两个以 上单元集成在一个单元中。 上述集成的单元既可以釆用硬件的形式 实现, 也可以釆用软件功能单元的形式实现。
以上所述, 以上实施例仅用以说明本申请的技术方案, 而非对 其限制; 尽管参照前述实施例对本申请进行了详细的说明, 本领域 的普通技术人员应当理解: 其依然可以对前述各实施例所记载的技 术方案进行修改, 或者对其中部分技术特征进行等同替换; 而这些 修改或者替换, 并不使相应技术方案的本质脱离本申请各实施例技 术方案的精神和范围。 因此, 本发明的保护范围应以所述权利要求 的保护范围为准。
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所述的任一虚拟机;
所述网络设备, 用于接收所述虚拟机发送的数据包。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201380001388.0A CN104508632B (zh) | 2013-07-31 | 2013-07-31 | 一种数据转发方法、装置及系统 |
PCT/CN2013/080527 WO2015013920A1 (zh) | 2013-07-31 | 2013-07-31 | 一种数据转发方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/080527 WO2015013920A1 (zh) | 2013-07-31 | 2013-07-31 | 一种数据转发方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015013920A1 true WO2015013920A1 (zh) | 2015-02-05 |
Family
ID=52430858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/080527 WO2015013920A1 (zh) | 2013-07-31 | 2013-07-31 | 一种数据转发方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104508632B (zh) |
WO (1) | WO2015013920A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168768B (zh) * | 2016-03-08 | 2020-04-14 | 深信服科技股份有限公司 | 设备与虚拟机的映射方法和装置 |
CN107783722B (zh) * | 2016-08-25 | 2020-08-21 | 星辰天合(北京)数据科技有限公司 | 数据传输方法和数据转发装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158924A (zh) * | 2007-11-27 | 2008-04-09 | 北京大学 | 一种虚拟机管理器的动态内存映射方法 |
CN101667144A (zh) * | 2009-09-29 | 2010-03-10 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
CN102591702A (zh) * | 2011-12-31 | 2012-07-18 | 华为技术有限公司 | 虚拟化处理方法及相关装置和计算机系统 |
CN103176833A (zh) * | 2013-03-11 | 2013-06-26 | 华为技术有限公司 | 一种基于虚拟机的数据发送方法、接收方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317441B2 (en) * | 2011-12-22 | 2016-04-19 | Intel Cororation | Indexed page address translation to reduce memory footprint in virtualized environments |
CN102801729B (zh) * | 2012-08-13 | 2015-06-17 | 福建星网锐捷网络有限公司 | 虚拟机报文转发方法、网络交换设备及通信系统 |
-
2013
- 2013-07-31 WO PCT/CN2013/080527 patent/WO2015013920A1/zh active Application Filing
- 2013-07-31 CN CN201380001388.0A patent/CN104508632B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158924A (zh) * | 2007-11-27 | 2008-04-09 | 北京大学 | 一种虚拟机管理器的动态内存映射方法 |
CN101667144A (zh) * | 2009-09-29 | 2010-03-10 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
CN102591702A (zh) * | 2011-12-31 | 2012-07-18 | 华为技术有限公司 | 虚拟化处理方法及相关装置和计算机系统 |
CN103176833A (zh) * | 2013-03-11 | 2013-06-26 | 华为技术有限公司 | 一种基于虚拟机的数据发送方法、接收方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104508632A (zh) | 2015-04-08 |
CN104508632B (zh) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105579987B (zh) | 通用pci express端口 | |
US9100349B2 (en) | User selectable multiple protocol network interface device | |
CN111656336B (zh) | 一种pcie发送、接收方法及装置、设备和系统 | |
CN102323905B (zh) | 一种龙芯主板的远程监控系统 | |
US20110060859A1 (en) | Host-to-host software-based virtual system | |
US20110103389A1 (en) | Method and apparatus for switching traffic between virtual machines | |
US11586575B2 (en) | System decoder for training accelerators | |
CN101102305A (zh) | 管理网络信息处理的系统和方法 | |
CN110297797B (zh) | 异构协议转换装置和方法 | |
US11726951B2 (en) | Packet transmission method and apparatus | |
CN108021525B (zh) | 一种基于pcie总线多主互连的冗余交换系统 | |
CN103092676A (zh) | 虚拟机集群的模拟输入输出方法、装置及系统 | |
WO2014134947A1 (zh) | 控制信息的收发装置和方法 | |
CN113157624B (zh) | 一种串口通信方法、装置、设备及存储介质 | |
CN1976310B (zh) | 在网络中通过总线接口进行通信的方法 | |
WO2015013920A1 (zh) | 一种数据转发方法、装置及系统 | |
CN113285839A (zh) | 基于dpdk的可编程数据平面软件交换机的设计方法 | |
CN109189711B (zh) | 基于以太网的串行控制台接口及其应用方法 | |
WO2012019376A1 (zh) | 无线通信终端网络设备功能的实现方法及装置 | |
CN207676336U (zh) | 转接设备、远程通信系统 | |
CN118509398B (zh) | 一种基于rdma的虚拟机通信方法、系统、装置、设备及存储介质 | |
WO2023040330A1 (zh) | 数据处理的方法、装置以及系统 | |
TWI345711B (zh) | ||
CN101674219B (zh) | 因特网安全协议智能卡隧道模式下的通信方法和设备 | |
JP2024142542A (ja) | インタフェースモジュール、演算装置、通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13890428 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13890428 Country of ref document: EP Kind code of ref document: A1 |