CN113691466B - Data transmission method, intelligent network card, computing device and storage medium - Google Patents

Data transmission method, intelligent network card, computing device and storage medium Download PDF

Info

Publication number
CN113691466B
CN113691466B CN202010426297.3A CN202010426297A CN113691466B CN 113691466 B CN113691466 B CN 113691466B CN 202010426297 A CN202010426297 A CN 202010426297A CN 113691466 B CN113691466 B CN 113691466B
Authority
CN
China
Prior art keywords
forwarding
virtual
data
transmitted
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010426297.3A
Other languages
Chinese (zh)
Other versions
CN113691466A (en
Inventor
吕怡龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010426297.3A priority Critical patent/CN113691466B/en
Publication of CN113691466A publication Critical patent/CN113691466A/en
Application granted granted Critical
Publication of CN113691466B publication Critical patent/CN113691466B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

The embodiment of the application provides a data transmission method, an intelligent network card, a computing device and a storage medium, wherein data transmission between virtual equipment and external equipment in the computing device is realized through forwarding hardware in the computing device; and sending the data to be transmitted to the virtual equipment or the external equipment through forwarding hardware according to the determined forwarding path. Since the forwarding hardware is the hardware arranged in the transmission device, the hardware can have the function of independently processing data transmission, and the data transmission is not dependent on the computing resource of the computing device, so that the performance of the computing device is greatly improved. Meanwhile, the computing device can transmit a large amount of data by utilizing forwarding hardware without solely depending on software, so that the forwarding performance of the computing device is improved.

Description

Data transmission method, intelligent network card, computing device and storage medium
Technical Field
The present application relates to the field of computer technologies, and in particular, to a data transmission method, an intelligent network card, a computing device, and a storage medium.
Background
Along with the development of the internet, the traditional IT (Internet Technology) information technology architecture solution also carries out migration and conversion to a cloud architecture with more flexibility and quick response, and the cloud computing era is entered.
Cloud computing, which may also be referred to as "cloud", provides a service that is an internet-based, enterprise-oriented, file storage, access, backup, sharing, management, collaboration service based on cloud storage technology. As cloud computing continues to evolve, cloud storage-based services have become the dominant choice for enterprise practice. Enterprises and individuals can conveniently and rapidly acquire required IT resources from services provided by cloud computing through the Internet, so that the cost is reduced, and the service requirements of flexible deployment and high efficiency are met. However, as the number of user services increases, network bandwidth needs to be increased to support, and how to meet network demands becomes particularly important in face of the increase in network bandwidth.
Disclosure of Invention
Aspects of the present application provide a data transmission method, an intelligent network card, a computing device, and a storage medium, so as to improve network forwarding performance and reduce consumption of computing resources.
The embodiment of the application provides a data transmission method which is suitable for computing equipment, wherein the computing equipment comprises transmission equipment and at least one virtual equipment, and the transmission equipment comprises forwarding hardware; the method comprises the following steps: receiving data to be transmitted, which are transmitted between the at least one virtual device and an external device, through the forwarding hardware; determining a forwarding path of the data to be transmitted through the forwarding hardware; and sending out the data to be transmitted according to the forwarding path through the forwarding hardware.
The embodiment of the application also provides a data transmission method which is suitable for transmission equipment with forwarding hardware; the method comprises the following steps: receiving data to be transmitted, which are transmitted between at least one virtual device and an external device in the computing device, through the forwarding hardware; determining a forwarding path of the data to be transmitted through the forwarding hardware; and sending out the data to be transmitted according to the forwarding path through the forwarding hardware.
The embodiment of the application also provides a data transmission method which is suitable for forwarding hardware; the method comprises the following steps: receiving data to be transmitted, which is transmitted between at least one virtual device and an external device in the computing device; determining a forwarding path of the data to be transmitted; and sending out the data to be transmitted according to the forwarding path.
The embodiment of the application also provides an intelligent network card, which is arranged on the computing equipment, wherein the computing equipment comprises at least one virtual equipment; the intelligent network card comprises: forwarding hardware; the intelligent network card receives data to be transmitted, which are transmitted between at least one virtual device and external devices in the computing device, through the forwarding hardware; determining a forwarding path of the data to be transmitted through the forwarding hardware; and sending out the data to be transmitted according to the forwarding path through the forwarding hardware.
The embodiment of the application also provides a computing device comprising the intelligent network card.
The embodiment of the application also provides a computing device, which comprises a transmission device and at least one virtual device, wherein the transmission device comprises forwarding hardware; the computing device further includes: a memory and a processor; the memory is used for storing a computer program; a processor for executing a computer program for: receiving data to be transmitted, which are transmitted between the at least one virtual device and an external device, through the forwarding hardware; determining a forwarding path of the data to be transmitted through the forwarding hardware; and sending out the data to be transmitted according to the forwarding path through the forwarding hardware.
The embodiment of the application also provides an electronic device, which comprises a storage unit and a logic unit; the storage unit is used for storing an electronic device program; the logic unit is configured to execute a logic function of the electronic device program for: receiving data to be transmitted, which is transmitted between at least one virtual device and an external device in the computing device; determining a forwarding path of the data to be transmitted; and sending out the data to be transmitted according to the forwarding path.
Embodiments of the present application also provide a computer-readable storage medium storing a computer program which, when executed by one or more processors, causes the one or more processors to implement the steps in the above-described method.
In the embodiment of the application, the data transmission between the virtual equipment and the external equipment in the computing equipment is realized through forwarding hardware in the computing equipment; and sending the data to be transmitted to the virtual equipment or the external equipment through forwarding hardware according to the determined forwarding path. Because the forwarding hardware is the hardware arranged in the transmission device, the hardware can have the function of independently processing data transmission, and the data transmission is not dependent on the computing resource of the computing device, so that the performance of the computing device is greatly improved. Meanwhile, the computing device can transmit a large amount of data by utilizing forwarding hardware without solely depending on software, so that the forwarding performance of the computing device is improved.
Under the condition that the transmission equipment also has independent computing resources, the forwarding hardware does not depend on the computing resources of the transmission equipment, and meanwhile, the computing resources of the transmission equipment can be saved, and the transmission performance of the transmission equipment is improved.
Drawings
The accompanying drawings, which are included to provide a further understanding of the application and are incorporated in and constitute a part of this specification, illustrate embodiments of the application and together with the description serve to explain the application and do not constitute a limitation on the application. In the drawings:
fig. 1A is a schematic structural diagram of a data transmission system according to an exemplary embodiment of the present application;
fig. 1B is a schematic structural diagram of a data transmission system according to an exemplary embodiment of the present application;
FIG. 2 is a flow chart of a method for transmitting data according to an exemplary embodiment of the application;
FIG. 3 is a schematic diagram of a forwarding mode of data according to yet another exemplary embodiment of the present application;
FIG. 4 is a schematic diagram of a data transmission method according to an exemplary embodiment of the present application;
FIG. 5 is a schematic diagram of a data transmission method according to an exemplary embodiment of the present application;
fig. 6 is a schematic diagram of a forwarding path according to an exemplary embodiment of the present application;
FIG. 7 is a schematic diagram showing the effect of data transmission according to an exemplary embodiment of the present application;
FIG. 8 is a flow chart of a method for transmitting data according to an exemplary embodiment of the application;
FIG. 9 is a flow chart of a method for transmitting data according to an exemplary embodiment of the application;
Fig. 10 is a schematic structural diagram of a data transmission device according to another exemplary embodiment of the present application;
fig. 11 is a schematic structural diagram of a data transmission device according to another exemplary embodiment of the present application;
fig. 12 is a schematic structural diagram of a data transmission device according to another exemplary embodiment of the present application;
FIG. 13 is a schematic diagram of a computing device according to an exemplary embodiment of the present application;
FIG. 14 is a schematic diagram of a computing device according to an exemplary embodiment of the present application;
fig. 15 is a schematic structural diagram of a computing device according to an exemplary embodiment of the present application.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the technical solutions of the present application will be clearly and completely described below with reference to specific embodiments of the present application and corresponding drawings. It will be apparent that the described embodiments are only some, but not all, embodiments of the application. All other embodiments, which can be made by those skilled in the art based on the embodiments of the application without making any inventive effort, are intended to be within the scope of the application.
Virtualization is used as a key ring of a cloud computing infrastructure, and the number of physical servers can be effectively reduced. Virtualization saves space and operating overhead occupied by a data center through efficient integration of physical infrastructure and application programs. By virtualization technology, multiple virtual machines can be generated on one physical server, and overall isolation between the virtual machines can be achieved. And the user acquires resources on the cloud computing through the virtual machines.
In recent years, due to the increase of network function virtualization NFV (Network Functions Virtualization) applications on the cloud, the requirements of users on network performance are also increasing, and with the gradual popularization of 100G network cards, the network card performance and bandwidth are continuously improved, although a CPU (central processing unit ) and a NIC (network interface controller, network interface controller) may also be called network cards, several mechanisms are provided to improve the efficiency of I/O (Input/Output) processing, for example, introducing data directly into a CPU LLC (Last Level Cache), and improving scalability by reducing Cache contention between CPU cores and reducing interrupt frequency. However, even with these enhancements, pure software forwarding cannot meet the ever-increasing network demands, and only the number of CPUs is ever increasing for network forwarding.
If both front and back ends use DPDK (data plane development kit ) PMD (Poll Mode Driver) on the cloud, and only do the simplest forwarding. To achieve true zero packet loss, the single core forwarding performance is only 2.17Mpps (packets per second), and this also requires very deep code tuning, as well as extensive system and configuration optimization. In addition, if a small amount of other processing is added to the forwarding logic, a significant drop in forwarding performance may result. It is therefore a very challenging task to achieve high performance forwarding by pure software, even with sufficient CPU resources.
In the embodiment of the application, the data transmission between the virtual equipment and the external equipment in the computing equipment is realized through the forwarding hardware in the computing equipment; and sending the data to be transmitted to the virtual equipment or the external equipment through forwarding hardware according to the determined forwarding path. Because the forwarding hardware is the hardware arranged in the transmission device, the hardware can have the function of independently processing data transmission, and the data transmission is not dependent on the computing resource of the computing device, so that the performance of the computing device is greatly improved. Meanwhile, the computing device can transmit a large amount of data by utilizing forwarding hardware without solely depending on software, so that the forwarding performance of the computing device is improved.
Under the condition that the transmission equipment also has independent computing resources, the forwarding hardware does not depend on the computing resources of the transmission equipment, and meanwhile, the computing resources of the transmission equipment can be saved, and the transmission performance of the transmission equipment is improved.
The following describes in detail the technical solutions provided by the embodiments of the present application with reference to the accompanying drawings.
Fig. 1A is a schematic structural diagram of a data transmission system according to an exemplary embodiment of the present application. As shown in fig. 1A, the transmission system 100A may include: a first device 101 and a second device 102.
The first device 101 may be a device with a certain computing power, and may implement a function of sending transmission data to the second device 102, where the transmission data may belong to data to be transmitted for the second device 102. The transmission data may require some data processing by the second device 102. The basic structure of the first device 101 may include: at least one processor. The number of processors may depend on the configuration and type of device with some computing power. Devices with some computing power may also include Memory, which may be volatile, such as RAM, or nonvolatile, such as Read-Only Memory (ROM), flash Memory, etc., or both. The memory typically stores an Operating System (OS), one or more application programs, program data, and the like. In addition to the processing unit and the memory, the device with certain computing power also includes some basic configurations, such as a network card chip, an IO bus, a display component, and some peripheral devices. Alternatively, some peripheral devices may include, for example, a keyboard, a stylus, and the like. Other peripheral devices are well known in the art and are not described in detail herein. Alternatively, the first device 101 may be a smart terminal, for example, a mobile phone, a desktop computer, a notebook computer, a tablet computer, or the like.
The second device 102 may be a device that may provide a computing service in a network virtual environment, and may be a device that performs data transmission and data processing using a network. In a physical implementation, the second device 102 may be any device capable of providing computing services, responding to service requests, and performing data processing, such as a cloud server, a cloud host, a virtual center, a conventional server, and so on. The second device 102 is constructed substantially as a processor, hard disk, memory, system bus, etc., similar to a general purpose computer architecture.
In the embodiment of the present application, the first device 101 sends transmission data to be processed to the second device 102; the second device 102 receives the transmission data (for the second device 102, the transmission data is also data to be transmitted) through the transmission device, and sends the transmission data to the corresponding virtual device in the second device 102 through forwarding hardware in the transmission device.
After receiving the transmission data, the virtual device may perform data processing on the transmission data, and send the processed data to the forwarding hardware, and return the processed data to the first device 101 through the forwarding hardware.
In addition, based on the system 100A, an exemplary embodiment of the present application further provides a structural schematic diagram of a data transmission system. As shown in fig. 1B, the transmission system 100B may include: a first device 101, a second device 102 and a third device 103.
Since the first device 101 and the second device 102 have been described in detail above, the description is repeated here.
Wherein the third device 103 is similar to the second device 102. The third device 103 may also refer to a device that can provide a computing service in a network virtual environment, and may refer to a device that performs data transmission and data processing using a network. In a physical implementation, the third device 103 may be any device capable of providing a computing service, responding to a service request, and performing data processing, for example, may be a cloud server, a cloud host, a virtual center, a conventional server, and so on. The third device 103 is configured to include mainly a processor, a hard disk, a memory, a system bus, and the like, similarly to a general-purpose computer architecture.
Based on the description in the system 100A, after receiving the transmission data, the virtual device in the second device 102 may send, through forwarding hardware, the transmission data to the third device 103 (for the third device 103, the transmission data may also be the data to be transmitted) in a data processing procedure. The transmission device in the third device 103 receives the transmission data, and the forwarding hardware in the transmission device sends the transmission data to the corresponding virtual device, and the virtual device performs data processing on the transmission data and returns the processed data to the corresponding virtual device of the second device 102, so that the corresponding virtual device of the second device 102 performs data processing based on the received processed data and returns the processed data to the first device 101.
In addition, for the third device 103, the third device 103 may have no virtual device and no forwarding hardware, and after the transmission device of the third device 103 receives the transmission data, the third device 103 may directly perform data processing on the received transmission data, and return the data processing result to the second device 102.
The number of the devices involved in each system may be plural. E.g. a plurality of different first devices 101 access one or more different second devices 102, etc.
In the application scenario of the embodiment of the present application, a user stores a video file to a second device 102, such as a cloud server, through a first device 101, such as a computer. A user accesses a web network interface of the second device 102 providing a storage service through a browser installed at the first device 101. The first device 101, in response to an operation of storing a video file by a user, acquires the video file as transmission data (i.e., data to be transmitted), and sends the video file to a transmission device, such as a network card, of the second device 102. After receiving the video file, the transmission device sends the video file to forwarding hardware in the transmission device, such as an FPGA (Field Programmable Gate Array ), or directly, the FPGA in the network card receives the video file first, queries a forwarding path of the video file through the forwarding hardware, and sends the video file to a virtual device in the second device 102, such as a virtual machine, according to the forwarding path, to store the file. After the virtual device stores the video file, the information that the video is successfully stored can be forwarded to the first device 101 through forwarding hardware, so that the first device 101 can display the information to a user through a web interface after receiving the information.
In addition, when the forwarding hardware cannot find the forwarding path of the video file, the video file is uploaded to a virtual forwarding device, such as a virtual switch, where the virtual forwarding device may be set on the network card, that is, a software virtual forwarding device running on the network card CPU, or the virtual forwarding device may also be set on the second device 102, that is, a software virtual forwarding device running on, for example, a cloud server CPU. The first layer virtual forwarding device in the virtual forwarding devices receives the video file, determines a forwarding path of the video file, and sends the video file to the corresponding virtual device according to the forwarding path.
When the first layer virtual forwarding device cannot determine the forwarding path, the first layer virtual forwarding device uploads the video file to a second layer virtual forwarding device in the virtual forwarding devices, and the second layer virtual forwarding device determines the forwarding path to send the video file to the corresponding virtual device.
In addition, the user may also obtain the file from the second device 102 through the first device 101. The first device 101 sends an acquisition request to the second device 102, the second device 102 sends the acquisition request to the corresponding virtual device through forwarding hardware, and the virtual device can acquire a file corresponding to the acquisition request from the third device 103 based on the acquisition request. The process of obtaining the file is similar to the process of sending the data from the first device 101 to the second device, and will not be described herein. After receiving the file, the virtual device corresponding to the second device 102 returns the file to the first device 101.
It should be noted that the above system may also be applied in other scenarios, for example, website building, cloud service sales, etc., which will not be described in detail herein.
In the present embodiment described above, the first device 101, the second device 102, and the third device 103 make network connection, which may be wireless connection. If the first device 101, the second device 102, and the third device 103 are in communication connection, the network system of the mobile network may be any of 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), 4G (LTE), 4g+ (lte+), wiMax, 5G, and the like.
The following describes the data transmission process in detail with reference to the method embodiment.
Fig. 2 is a flow chart of a data transmission method according to an exemplary embodiment of the application. The method 200 provided by the embodiment of the present application is performed by a computing device, i.e., the second device 102 described above, such as a cloud server. The computing device includes a transmitting device including forwarding hardware and at least one virtual device. The method 200 includes the steps of:
201: and receiving data to be transmitted, which are transmitted between the at least one virtual device and the external device, through forwarding hardware.
202: and determining a forwarding path of the data to be transmitted through forwarding hardware.
203: and sending out the data to be transmitted according to the forwarding path through forwarding hardware.
The following is a detailed description of the above steps:
201: and receiving data to be transmitted, which are transmitted between the at least one virtual device and the external device, through forwarding hardware.
The forwarding hardware refers to forwarding hardware with processing capability, and the hardware can forward data, wherein the data can be transmitted in a message form. The hardware may be an editable electronic device with processing functions, such as an FPGA, an integrated circuit with processing functions, such as an ASIC (Application SpecificIntegrated Circuit ), or an editable chip with processing functions, such as a tofenoprofeno chip.
It should be understood that each type of forwarding hardware may implement the logic of the forwarding function through programmed logic.
Virtual devices refer to devices that rely on computing devices (e.g., physical servers, cloud servers, etc.) to create independent operating environments. Such as a virtual machine. May be created on a computing device through virtual techniques. In the case of computing device support, the virtual device may also be a container dock, as the computing device may suffice to provide multiple transport devices.
The external device refers to a device other than the computing device, and is in network communication with a virtual device in the computing device. Such as a user's computer.
For example, according to the foregoing, the user's computer sends the video file to the cloud server through the network for storage, and the cloud server receives the video file through the network card configured with the video file. After the network card receives the video file, it is determined that the video file is sent to a certain virtual machine on the cloud server, and the video file can be sent to the FPGA forwarding hardware.
In addition, when at least one virtual machine on the cloud server is to send a message to the computer of the user, the virtual machine sends the message to the FPGA forwarding hardware, and the FPGA forwarding hardware sends the message to the computer of the user through the network card.
It should be noted that the forwarding hardware may be provided in a transmission device, and the transmission device may perform a network transmission function, such as a physical network card, an intelligent network card, and so on. The forwarding hardware can also exist independently and is not arranged in the network card, but can be connected with the network card so as to complete the forwarding function, and at the moment, the transmission equipment can be directly forwarding hardware, such as an FPGA.
202: and determining a forwarding path of the data to be transmitted through forwarding hardware.
The forwarding paths refer to information of destination to be sent in the next step of data to be transmitted, and may be recorded through a flowtable flow table, where a plurality of forwarding paths may be recorded in the flow table, and each forwarding path may also be referred to as a flow direction of data, or a flow. In forwarding hardware, the forwarding hardware cannot support forwarding of all paths due to limitation of hardware resources, and forwarding paths which can be supported by the forwarding hardware need to be forwarded according to the hardware resources.
Some information may be recorded in each forwarding path, such as a match field, an action set, and a counter, etc. The matching field may have address information, such as a source address, for matching information carried by data to be transmitted, and when the matching is successful, a forwarding action may be performed according to an action in the action set, so that the counter may count once.
The method for determining the forwarding path of the data to be transmitted may include: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and under the matching result, determining a matched forwarding path.
The matching between the data to be transmitted and at least one forwarding path in the forwarding hardware comprises the following steps: and matching the field data in the data to be transmitted with the corresponding field data in at least one forwarding path. It should be understood that this field data is the matching field described above.
For example, according to the foregoing, after the FPGA (i.e., FPGA forwarding hardware) receives the video file, the video file is sent in a message form, and the FPGA parses the message to obtain a matching field carried by the message, such as source address information, identification information pointing to the virtual device, and so on. When the matching field of the message is the same as the matching field in any forwarding path of the flow table record in the FPGA, the matched forwarding path can be determined.
203: and sending out the data to be transmitted according to the forwarding path through forwarding hardware.
For example, after the FPGA determines that there is a matching forwarding path according to the foregoing, the video file may be forwarded to the corresponding virtual machine according to the forwarding action in the forwarding path.
Under the condition that the external device sends data to at least one virtual device, sending the data to be transmitted according to a forwarding path through forwarding hardware, wherein the method comprises the following steps: determining corresponding virtual equipment according to the forwarding path through forwarding hardware; and sending the data to be transmitted to the virtual equipment through forwarding hardware.
For example, after the FPGA determines that there is a matched forwarding path according to the foregoing description, the virtual machine may be determined according to the identifier of the corresponding virtual machine recorded in the forwarding path, so as to send the video file to the corresponding virtual machine.
It should be noted that, when the virtual device sends the data to be transmitted to the external device, the process of sending the data to be transmitted to the virtual device by the external device is similar to or the reverse process of sending the data to be transmitted to the virtual device by the external device, which will not be described herein. It should be understood that when the virtual device, such as the virtual machine, sends the data to be transmitted to the FPGA, the virtual device may determine a forwarding path to perform forwarding.
Specifically, by the forwarding hardware, determining, according to the forwarding path, the corresponding virtual device may include: determining, by the forwarding hardware, a first virtual transmission device according to the virtual transmission identifier in the forwarding path, the first virtual transmission device being created based on the transmission device; and determining corresponding virtual equipment according to the first virtual transmission equipment through forwarding hardware.
The first virtual transmission device is a virtual device, such as a virtual network card, for transmitting data between the virtual device and forwarding hardware. The virtual transmission equipment and the virtual equipment have one-to-one correspondence, such as one-to-one correspondence between the virtual network card and the virtual machine. The correspondence is generated when the virtual device is created in the computing device, and after the virtual device is created, a virtual forwarding device identifier (e.g., a virtual network card ID) is assigned to each virtual device. At this point the virtual forwarding device has not yet been established.
The virtual transport identifier refers to information capable of uniquely determining a virtual transport device, such as a virtual network card ID.
The first virtual transmission device being created based on the transmission device means that the virtual transmission device may be created based on a hardware resource partition of the transmission device (e.g., a smart network card).
The first virtual transmission device may also be created based on the forwarding hardware in the transmission device when the forwarding hardware is provided in the transmission device. The first virtual transmission device created by the forwarding hardware may also be forwarded when the forwarding hardware is set alone, i.e. not in the transmission device.
For example, according to the foregoing, the virtual network card is established through an intelligent network card (on the premise that the transmission device is an intelligent network card, here, an intelligent network card is illustrated as an example) or an FPGA. The number of virtual network cards in the corresponding relation is determined by the intelligent network card or the FPGA, for example, 10 virtual network cards exist, and 10 equivalent divisions can be performed according to hardware resources of the intelligent network card or the FPGA, such as CPU resources, memory resources and the like, or logic units, storage units and the like, and the intelligent network card or the FPGA of each hardware resource is used as the virtual network card.
After the FPGA determines the matching forwarding path, the hardware virtual network card can be determined according to the virtual network card ID recorded in the forwarding path, and the determined hardware virtual network card sends the video file to the determined virtual machine in an interrupt transmission mode through the virtual IO equipment.
The virtual IO (Input, output, input and Output) device refers to a virtual device that can implement an IO operation, such as a virtual IO device. The virtual IO device is directly built on the hardware device through a program, such as forwarding hardware, so that the virtual IO device can be regarded as a hardware virtual IO device.
In order to reduce the computational resource occupation of the computing device, data transmission may also be performed by way of DMA (Direct Memory Access ).
At this time, the forwarding hardware may be disposed in a transmission device, and the transmission device is an intelligent network card, where the intelligent network card has a DMA controller. The intelligent network card also has a processor, and a processor CPU may contain multiple DMA controllers. The DMA controller will include an address bus, a data bus and control registers. The DMA controller has the ability to access the resources it needs without intervention by the processor CPU itself, which can generate the interrupt.
When the data is transmitted in a DMA mode, the virtual network card stores the video file into the buffer area through the virtual IO equipment, and the DMA controller on the intelligent network card stores the video file in the buffer area into a storage address in the virtual machine.
It should be noted that when the forwarding hardware is sufficiently advanced, it may have a DMA controller, so that the DMA mode of sending data is implemented independently.
When at least one virtual device sends data to an external device, sending the data to be transmitted according to a forwarding path through forwarding hardware, including: determining corresponding external equipment according to the forwarding path through forwarding hardware; and sending the data to be transmitted to the external equipment through forwarding hardware.
Since the foregoing description has been made about the case where the virtual device sends data to the external device, the description is omitted here.
In addition, in the case where the at least one virtual device transmits data to the external device, the method 200 further includes: the data to be transmitted from the at least one virtual device is sent to the forwarding hardware by a first virtual transmission device, which is created on the basis of the transmission device.
When the virtual device sends data to the external device, the virtual device sends the data to be transmitted to the forwarding hardware through the corresponding first virtual transmission device, and then the forwarding hardware sends the data. Since this process is similar to or the reverse of the case where the external device sends to the virtual device, it will not be described here.
Based on the data, the computing device can realize the forwarding of the data through the forwarding hardware, the forwarding does not occupy the computing resources of the computing device, and the data is realized by the forwarding hardware, so that the computing resources of the computing device are saved. Meanwhile, as the computing device needs to forward a large amount of data, most of the data forwarding can be shared through the forwarding hardware, so that the computing device is helped to reduce the data forwarding amount, and the forwarding performance of the computing device is improved. In order to better implement the embodiment, forwarding hardware, such as an FPGA, is preferably disposed in a network card, where the network card may be a normal network card or an intelligent network card.
However, forwarding of all data cannot be achieved because the forwarding hardware is affected by its hardware resources. In order to solve the problem that a small part of data cannot be forwarded by forwarding hardware, the embodiment of the application further has the following scheme:
the computing device further includes: the first processing unit is provided with a first virtual forwarding device in a running mode; wherein the method 200 further comprises: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment through forwarding hardware under the unmatched result, and forwarding the data.
Wherein the first processing unit refers to a processor, such as a CPU, on the computing device. A first virtual forwarding device may be run on the processor.
The first virtual forwarding device refers to a virtual network transmission device, and is configured to forward corresponding data received on a physical transmission device (i.e. the transmission device described above) to a virtual device in the computing device. Such as Virtual Switches (VS). The virtual forwarding device running on the CPU processor of the computing device may be created on the computing device by virtual techniques, which are described in detail herein as they are of the prior art.
It should be noted that, for data forwarding in this case, the computing device may have a common physical network card Nic.
For a common physical network card, especially when the common physical network card is used as a transmission device, the forwarding hardware may be disposed in the common physical network card. Alternatively, the transmission device may be said to include a normal physical network card and forwarding hardware as a network device of the computing device, such as an integrated network card. At this time, for a general physical network card, the forwarding hardware may be an ASIC. For this case, the first virtual forwarding device is provided on a CPU on the computing device (which may also be referred to as Host), i.e. it runs on the CPU, such as on the CPU of the cloud server. Then it is possible for the forwarding structure to be as shown in figure 3. For example, according to the foregoing, when forwarding hardware, such as an ASIC, receives a video file and determines that the video file does not match a forwarding path in a flow table in the ASIC, the ASIC is required to send the video file to a first layer virtual switch (Host VS) of a Host through Nic, i.e., a first virtual forwarding device, which may also be referred to as a VS fastpath (virtual switch fast path). It runs on the CPU of Host and belongs to software equipment. The forwarding of the video file is performed by the VS fastpath.
Specifically, the data to be transmitted is sent to the first virtual forwarding device through forwarding hardware to perform data forwarding, including: receiving data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
It should be noted that, since VS fastpath belongs to a software device, it can handle data forwarding that cannot be handled by forwarding hardware. The software device requires the consumption of computational resources, in particular of the computing device, but this consumption is considerably less than the computational resources of pure software forwarding data. The VS fastpath also stores a flow table in which a plurality of forwarding paths and the like are also recorded.
For example, after receiving a video file according to the foregoing description, the VS fastpath parses the packet of the video file to obtain a matching field of the packet, matches the matching field with a forwarding path in the VS fastpath, determines the matched forwarding path, and may forward the video file according to the virtual device pointed in the forwarding path.
Note that, the process of matching a forwarding path and the process of forwarding in the VS fastpath are similar to the process of matching a forwarding path and forwarding in the forwarding hardware, so the detailed description thereof will not be made here, and reference is made to the foregoing detailed implementation process.
In the case that the external device sends data to at least one virtual device, sending the data to be transmitted according to the forwarding path may include: determining, by the first virtual forwarding device, a second virtual transmission device according to the virtual transmission identifier in the forwarding path, the second virtual transmission device running on the first processing unit; and determining corresponding virtual equipment according to the second virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
Wherein the second virtual transmission device is similar to, or the same as, the first virtual transmission device. The second transmission device refers to a virtual device, such as a virtual network card, for transmitting data between the virtual device and the first virtual forwarding device. The virtual transmission equipment and the virtual equipment have one-to-one correspondence, such as one-to-one correspondence between the virtual network card and the virtual machine. The correspondence is generated when creating virtual devices in the computing device, and after the virtual devices are created, each virtual device is assigned a virtual forwarding device identifier (e.g., a virtual network card ID or address). The second virtual transmission device can be created on the Host by a virtual technology, and the second virtual transmission device is operated by the Host CPU, namely, the second virtual transmission device belongs to the software virtual transmission device. In addition, the second virtual transmission device may be created on the forwarding hardware according to the hardware resource of the forwarding hardware, where the second virtual transmission device is the same as the first virtual transmission device.
For example, according to the foregoing, after the VS fastpath determines the matching forwarding path, the virtual network card may be determined according to the virtual network card ID or the virtual network card address recorded in the forwarding path, and the determined virtual network card may send, through the virtual IO device, the video file to the determined virtual machine in an interrupt transmission manner or in a DMA manner.
When the virtual network card is set on the forwarding hardware, the VS fastpath needs to send the video file to the corresponding virtual network card on the forwarding hardware, and the video file is sent to the corresponding virtual machine in the computing device by the virtual network card. When the virtual network card is arranged on the computing equipment, the virtual network card can be directly sent to the software virtual network card by the VSfastpath on the software. The video file is sent through the hardware virtual transmission device, so that the computing resource of the computing device can be saved.
In addition, when the virtual device sends data to be transmitted to the external device, the process is similar, and a detailed description is not shown here.
However, for the software VS fastpath, there may be data that cannot be processed, so the method 200 may further include: and sending the data to be transmitted to a third virtual forwarding device running on the first processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
The third virtual forwarding device refers to a virtual network transmission device, and is configured to forward corresponding data received on a physical transmission device (i.e. the transmission device) to a virtual device in the computing device. Such as Virtual Switches (VS). The virtual forwarding device running on the CPU processor of the computing device may be created on the computing device by virtual techniques, which are described in detail herein as they are of the prior art. The third virtual forwarding appliance is similar to the first virtual forwarding appliance. But the third virtual forwarding device is more powerful than the first virtual forwarding device. The third virtual forwarding device may store a plurality of flow tables, each flow table having a plurality of forwarding paths recorded therein. The data to be transmitted may be diverted from one flow table to the next until finally forwarded. At this time, as shown in fig. 3, the forwarding structure uploads the data to be transmitted to the second virtual forwarding device, which may also be referred to as a second layer virtual forwarding device, that is, a VS slow path (virtual machine slow path), when the VS fastpath cannot process the data to be transmitted, and the VS slow path processes and forwards the data to be transmitted.
For example, according to the foregoing, after the VS fastpath cannot determine the matching forwarding path, the video file is sent to the VS slow path. And after receiving the video file, the VSslow transmits the video file.
Specifically, the VS slow determines a forwarding path, and forwards data to be transmitted according to the forwarding path.
For example, according to the foregoing, the VS slow parses the packet of the video file, obtains the matching field, determines a final forwarding path according to the multiple flow tables, and forwards the video file according to the forwarding path.
It should be noted that, the forwarding process of the VS slow path is similar to the forwarding process of the VS fastpath, and will not be described herein. The final forwarding path may be a set of multiple matched paths.
In addition, if the VS slow path also does not find the forwarding path of the video file, packet loss or other processing can be directly performed.
In order to improve the forwarding hardware and the data forwarding capabilities of the first virtual forwarding device. The method 200 may further include: matching the data to be transmitted with at least one forwarding path in the third virtual forwarding device, and determining the matched forwarding path; generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted; and sending at least one forwarding path to be updated to the first virtual forwarding device and forwarding hardware.
For example, according to the foregoing, after forwarding a plurality of data to be transmitted, the VS slow may obtain a plurality of forwarding paths, where each forwarding path may be obtained from a plurality of matching forwarding paths to which a corresponding one of the data to be transmitted is matched. The VS slow takes the obtained multiple forwarding paths as forwarding paths to be updated, and transmits the forwarding paths to the forwarding hardware ASIC and the VS fastpath, so that the forwarding paths of the ASIC and the VS fastpath are updated, and the flow tables of the ASICs and the VS fastpath are enriched, so that more data to be transmitted can be processed and forwarded, and further unnecessary occupation of calculation resources is reduced.
Since the forwarding hardware is affected by hardware resources and cannot handle all data, not all forwarding paths can be executed, so the third virtual forwarding device also needs to send forwarding paths to the forwarding hardware that it can execute.
Accordingly, the method 200 may further include: generating at least one forwarding path to be updated meeting the processing of forwarding hardware according to at least one forwarding path determined for at least one data to be transmitted; and sending the processable at least one forwarding path to be updated to forwarding hardware.
For example, according to the foregoing, the VS slow path may generate a forwarding path to be updated directly to the VS fastpath. When aiming at the forwarding hardware, the VS slow needs to determine which forwarding paths cannot be executed by the forwarding hardware according to the hardware resources of the forwarding hardware, so that the paths which cannot be executed can be deleted from the generated forwarding paths to be updated, and the forwarding paths to be updated after the deletion processing are sent to the forwarding hardware. Or the VSslow directly generates a plurality of forwarding paths executable by the forwarding hardware for the forwarding hardware and transmits the forwarding paths to the forwarding hardware.
When the third virtual forwarding hardware issues the final forwarding path to be updated to the forwarding hardware, in order to achieve the issue more conveniently and rapidly, the path issue can be performed by the following ways:
transmitting at least one forwarding path to be updated to forwarding hardware, including: transmitting the forwarding path to be updated to the first conversion equipment through the third virtual forwarding equipment; and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through the first conversion equipment, and sending the forwarding path to the forwarding hardware.
The first conversion device is used for converting the forwarding path to be updated into a forwarding path identifiable by forwarding hardware according to the type of the forwarding hardware, and issuing the forwarding path. The first translation device is a software device running on the computing device CPU, which may also be referred to as an xflow abstraction layer. As shown in fig. 5, the xflow may be provided on a network architecture platform netframe, which is also a software device running on the CPU of the computing device. And interfacing with a third virtual forwarding appliance.
For example, according to the foregoing, the VS slow issues the forwarding path to be updated to the xflow abstraction layer through the preset transmission protocol, and after the xflow abstraction layer receives the forwarding path to be updated, the xflow abstraction layer converts the forwarding path to be updated into a forwarding path that can be identified by the forwarding hardware of the corresponding type based on the conversion logic corresponding to the forwarding hardware of the type according to the forwarding hardware type facing the forwarding hardware, such as FPGA, ASIC, etc. After conversion, the xflow abstract layer issues the converted forwarding path to be updated to forwarding hardware, so that the corresponding forwarding hardware can identify the forwarding path to be updated, and update the forwarding path.
It should be noted that, the conversion logic of the forwarding hardware of different types is provided by the manufacturer of the forwarding hardware for production or development, and is used as the instruction of the forwarding hardware. In addition, the xflow abstract layer can be updated continuously according to the type of the forwarding hardware, and the conversion function of the new forwarding hardware is added.
Therefore, the software logic implementation and the hardware platform can be decoupled, the software VS shields the difference between the types of forwarding hardware by the aid of the platform capability of xflow in the netframe, and the xflow abstraction layer is used for shielding forwarding path management related operations related to the forwarding hardware.
Since each forwarding path has its own aging time, i.e. no data passes through the forwarding path for a certain time, the forwarding path needs to be deleted to make more room for storing more other forwarding paths. But the aging times may be much different for different forwarding paths. For software-managed forwarding paths, these paths can be managed better. However, due to the limited hardware resources of the forwarding hardware and the long development period of the forwarding hardware, the forwarding hardware is not suitable for realizing complex or frequently-changed logic, and forwarding paths with different aging times cannot be flexibly managed like software. But the service form carried by VS is various, so it is better to tell the hardware a simple instruction by which to determine what processing actions to do for what traffic (or data). In contrast, forwarding hardware may manage forwarding paths at the same aging time, i.e., forwarding paths within forwarding hardware belong to the same aging time, and may have different start times, but the existing times are the same.
Thus, to better adapt the forwarding hardware, the method 200 further comprises: acquiring a current network connection state from data to be transmitted through forwarding hardware; and sending the data to be transmitted which cannot be processed by the forwarding hardware to the first virtual forwarding equipment according to the network connection state, and sending the data.
The network connection state refers to a network connection condition, and can be divided into a network initial connection state, a network stable connection state, and a network end connection state. Because of the most common state among the network connection states, the forwarding hardware needs to be maintained in the network connection state, i.e., the aging time of each forwarding path thereof corresponds to the network connection state. The forwarding paths in the initial network connection state and the final network connection state also have corresponding aging times, and the aging times are different in different states.
For example, according to the foregoing, the ASIC receives a message, parses the message, obtains some information of the message, and obtains a network state identifier carried by the message, so as to determine that the message is an initial connection message of a network. For example, the sync bit SYN in the header of the message should be set to 1, and a sequence number x is selected, indicating that the sequence number of the first data byte at the time of the subsequent data transfer is x. The message is considered a TCP (Transmission Control Protocol ) connection request message. At this time, after the ASIC determines the message, whether the message matches the forwarding path therein or not, it is uploaded to the software VS, such as VS fastpath, which processes the message. Similarly, for the termination bit FIN of the header in the message set to 1, the sequence number u is equal to the sequence number of the last byte of the transmitted data plus 1. The ASIC determines that the message is a request network connection termination message, and uploads the message to software VS, such as VS fastpath, which processes the message.
To flexibly process the aging times of different forwarding paths, the method 200 further includes: after the data to be transmitted is sent through the first virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the first virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
For example, after the VS fastpath finishes processing the packet according to the foregoing, if the packet indicates that the network ends the connection state, the VS fastpath also needs to delete the corresponding forwarding path in the ASIC, and may delete the forwarding path by sending a delete message. If the ASIC does not have a corresponding path, then no deletion is required.
It should be noted that, whether the packet indicates the initial connection state of the network or the packet indicates the end connection state of the network, the VS fastpath may notify the ASIC to delete the corresponding forwarding path. However, since the aging time of the forwarding path corresponding to the network end connection state is shorter than that of the forwarding path corresponding to the network stable connection state, the corresponding forwarding path in the forwarding hardware needs to be actively deleted, so that the forwarding path does not excessively occupy the storage space of the forwarding hardware, and room is made for other forwarding paths. If the aging time of the forwarding path corresponding to the network initial connection state is longer than the aging time of the forwarding path corresponding to the network stable connection state, deletion can be omitted, and the storage space of forwarding hardware is not excessively occupied.
When the first virtual forwarding device cannot process the reported message indicating the network state, the method 200 may further include: if the first virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to the third virtual forwarding device; after the data to be transmitted is sent through the third virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the third virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
For example, according to the foregoing, if the VS fastpath cannot process the packet, the packet is uploaded to the VS slow, and the VS slow processes the packet. After the processing is finished, if the message indicates that the network is in a connection state, the corresponding forwarding path in the ASIC needs to be deleted by the VS slow path, and the deleting message can be sent to delete the forwarding path. If the ASIC does not have a corresponding path, then no deletion is required. The specific process is similar to the VS fastpath process, and will not be described here again.
In addition, when the VS slow issues the forwarding path to the forwarding hardware, only the forwarding path corresponding to the network stable connection state is issued, and the forwarding path is issued in the network stable connection state. The forwarding hardware processes the message corresponding to the stable connection state of the network, thereby realizing data forwarding according to the foregoing.
It should be noted that similar problems are numerous, many service types require abstraction and modification for forwarding hardware, and each service type is not simply converted, but must be sufficiently generic, or otherwise meaningless.
In addition, the creation of the forwarding path by software is performed directly on the forwarding CPU (e.g., the forwarding CPU of the computing device), but the forwarding path also needs to be issued onto forwarding hardware. The CPU is required to issue and this performance is poor if each CPU independently issues a lock. To solve this problem, it can also be achieved by:
specifically, sending at least one forwarding path to be updated to forwarding hardware includes: transmitting, by at least one first processing unit, at least one forwarding path to be updated to a queue; at least one forwarding path to be updated in the queue is sent to the forwarding hardware by a first processing unit.
For example, as shown in fig. 6, when the VS slow issues the forwarding path to be updated to the ASIC, the multiple data plane CPUs of the computing device store the forwarding path in the queue ring according to the foregoing description. There may be multiple queue rings. A control plane CPU of the computing device polls the queue ring and once the queue ring is polled, a forwarding path exists in the queue ring, the forwarding path is issued to the ASIC.
When the CPU issues the forwarding path, the CPU may also issue the converted forwarding path to the forwarding hardware through the xflow abstraction layer along the xflow abstraction layer. Meanwhile, time expenditure and resource expenditure caused by locking can be reduced.
In order to save more computing resources of the computing device and forward data which cannot be processed by the forwarding hardware, the embodiment of the application is realized by adopting the following scheme:
specifically, the transmission device further includes: the independent second processing unit is provided with a second virtual forwarding device in an operation mode; wherein the method 200 further comprises: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and sending the data to be transmitted to the second virtual forwarding equipment through forwarding hardware under the unmatched result, and forwarding the data.
The transmission device may further include a hardware device having an independent processing unit (i.e., the second processing unit), such as a hardware device having an independent CPU, where the hardware device may further include an independent core, a memory, and a DMA (Direct Memory Access ) controller, etc., and may be regarded as a small-sized independent smart terminal. The method can be used for receiving the data to be transmitted sent by the external device or sending the data to be transmitted sent by the virtual device to the external device. The hardware device may be a smart network card, which may be a SoC (System-on-a-Chip) with a CPU. The transmission device may also be a smart FPGA chip with the above configuration.
The second processing unit refers to a processor, such as a CPU, on the transmission device. A second virtual forwarding device may be run on the processor.
The second virtual forwarding device refers to a virtual network transmission device, and is configured to forward corresponding data received on a physical transmission device (i.e. the above-mentioned intelligent network card) to a virtual device in the computing device. Such as Virtual Switches (VS). The virtual forwarding device running on the CPU processor of the intelligent network card may be created on the computing device by a virtual technology, which is described in detail herein since it belongs to the prior art.
For the intelligent network card, especially when the transmission device further includes an intelligent network card, the forwarding hardware may be an FPGA. Alternatively, the transmission device may be an intelligent network card, and the forwarding hardware may be disposed in the network card. For the above case, the first virtual forwarding device is provided on the CPU on the intelligent network card, i.e. it runs on the CPU. Then the forwarding flow may be as shown in figure 4. For example, according to the foregoing, the transmission device includes forwarding hardware as well as a smart network card. When forwarding hardware, such as FPGA, receives a video file through serial interface SERDES (SERializer/DESerializer) and determines that the video file does not match with a forwarding path in a flow table in FPGA, the FPGA is required to return the video file to SERDES, and the video file is sent to a first layer virtual switch (MocVS) on the intelligent network card by SERDES, that is, a second virtual forwarding device, which may also be referred to as VS fastpath (virtual switch fast path). The method runs on the CPU of the intelligent network card and belongs to software equipment. The forwarding of the video file is performed by the VS fastpath. The second virtual forwarding device receives the video file through the ixgbe program driver.
It should be noted that, since the transmission device includes the intelligent network card with the independent computing unit, the transmission device sends the data to be transmitted, which does not occupy excessive computing resources of the cloud server, such as CPU resources, that is, computing resources shared by the virtual devices in the cloud server, so that the computing resources shared by the virtual devices are effectively improved.
The data to be transmitted is sent to the second virtual forwarding device through forwarding hardware to forward the data, and the method comprises the following steps: receiving data to be transmitted through the second virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the second virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path through the second virtual forwarding equipment.
It should be noted that, the process of performing path matching and forwarding by the second virtual forwarding device is similar to the process of performing path matching and forwarding by the first virtual forwarding device, and will not be described herein. It should be understood that the second virtual forwarding appliance is implemented here on the intelligent network card, in particular on the CPU of the intelligent network card.
In the case that the external device transmits data to at least one virtual device, transmitting the data to be transmitted according to the forwarding path, including: determining, by the second virtual forwarding device, a first virtual transmission device according to the virtual transmission identifier in the forwarding path, the first virtual transmission device being created based on the transmission device; and determining corresponding virtual equipment according to the first virtual transmission equipment through the second virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
For example, as shown in fig. 4, according to the foregoing, the VS fastpath sends the video file to the virtual network card through the iohub interface according to the determined forwarding path. Because the second virtual forwarding device sends data to the virtual device according to the first virtual transmission device, the process of sending data to the virtual device by the second virtual forwarding device according to the first virtual transmission device is similar to that of sending data to the virtual device by the first virtual forwarding device, and the description is omitted herein, and only different places are described.
It should be appreciated that the first virtual transport device may be created based on hardware resources of the forwarding hardware or may be created based on hardware resources of the intelligent network card.
The method 200 may further include, upon a result of the unsuccessful match: and sending the data to be transmitted to a fourth virtual forwarding device running on the second processing unit through the second virtual forwarding device to forward the data.
The fourth virtual forwarding device refers to a virtual network transmission device, and is configured to forward corresponding data received on a physical transmission device (i.e. an intelligent network card) to a virtual device in the computing device. Such as Virtual Switches (VS). The virtual forwarding device running on the CPU processor of the intelligent network card may be created on the computing device by a virtual technology, which is described in detail herein since it belongs to the prior art. The fourth virtual forwarding appliance is similar to the second virtual forwarding appliance. But the fourth virtual forwarding appliance is more powerful than the second virtual forwarding appliance. The fourth virtual forwarding device may store a plurality of flow tables, each flow table having a plurality of forwarding paths recorded therein. The data to be transmitted may be diverted from one flow table to the next until finally forwarded. At this time, as shown in fig. 4, if the data to be transmitted cannot be processed in the VS fastpath, the data to be transmitted is uploaded to a fourth virtual forwarding device, which may also be referred to as a second layer virtual forwarding device, i.e., a VS slow path, where the data to be transmitted is processed and forwarded. The forwarding process of the fourth virtual forwarding device is the same as that of the third virtual forwarding device, and will not be described herein. Only the fourth virtual forwarding device sends the video file to the virtual network card through the iohub interface, and the video file is sent to the corresponding virtual machine by the virtual network card.
Likewise, to increase the processing power of the forwarding hardware, the method 200 may further include: matching the data to be transmitted with at least one forwarding path in the fourth virtual forwarding device, and determining the matched forwarding path; generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted; and transmitting at least one forwarding path to be updated to the second virtual forwarding device and forwarding hardware.
It should be noted that, the process of generating the forwarding path by the fourth virtual forwarding device is similar to the process of generating the forwarding path by the third virtual forwarding device, and will not be described herein. The process of issuing the forwarding path by the fourth virtual forwarding device is similar to the process of issuing the forwarding path by the third virtual forwarding device, and will not be described herein. By way of illustration only, the issuing process in this example is that the fourth virtual forwarding device in the intelligent network card issues to the second virtual forwarding device, and the fourth virtual forwarding device in the intelligent network card issues to the forwarding hardware.
Since the forwarding hardware is affected by hardware resources, not all forwarding paths can be performed, in order to not have the invalid forwarding paths occupy too much space of the forwarding hardware and reduce the occurrence of such a situation that forwarding cannot be performed, the method 200 may further include: generating at least one forwarding path to be updated meeting the processing of forwarding hardware according to at least one forwarding path determined for at least one data to be transmitted; and sending the processable at least one forwarding path to be updated to forwarding hardware.
Since the foregoing has described in detail how to generate at least one forwarding path to be updated and issue the path, which satisfy the forwarding hardware, a detailed description is omitted herein.
Transmitting at least one forwarding path to be updated to forwarding hardware, including: transmitting the forwarding path to be updated to the second conversion equipment through the fourth virtual forwarding equipment; and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through second conversion equipment, and sending the forwarding path to the forwarding hardware.
The second conversion device is used for converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware, and issuing the forwarding path. The second conversion device is a software device running on the intelligent network card CPU, and may also be referred to as an xflow abstraction layer. As shown in fig. 5, the xflow may be provided on a network architecture platform netframe, which is also a software device running on the CPU of the intelligent network card. And interfacing with a fourth virtual forwarding appliance.
The process of forwarding paths through the second switching device is similar to that of forwarding paths through the first switching device, and will not be described again here. The second switching device may also be updated continuously as the first switching device. Therefore, the software logic implementation and the hardware platform can be decoupled, the software VS shields the difference between the types of forwarding hardware by the aid of the platform capability of xflow in the netframe, and the xflow abstraction layer is used for shielding forwarding path management related operations related to the forwarding hardware.
Likewise, to better adapt the forwarding hardware, the method 200 further comprises: acquiring a current network connection state from data to be transmitted through forwarding hardware; and sending the data to be transmitted which cannot be processed by the forwarding hardware to the second virtual forwarding equipment according to the network connection state, and sending the data.
The specific embodiment of the data forwarding according to the network connection state has been described in detail in the foregoing, and will not be described herein again, but only the description is provided here, where the forwarding hardware, such as the second virtual forwarding device, such as the VS fastpath, sent to the intelligent network card by the FPGA. And carrying out data forwarding by the VS fastpath in the intelligent network card.
Also, to flexibly process the aging times of different forwarding paths, the method 200 further includes: after the data to be transmitted is sent through the second virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the second virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
The specific process of deleting the forwarding path is already described above, and is further described herein. Merely by way of illustration, the forwarding path of the forwarding hardware is deleted here by the second virtual forwarding device. The deletion message or instruction may be sent by the second virtual forwarding device to the forwarding hardware for deletion. So that the forwarding hardware makes more room to store other forwarding paths.
In the event that the second virtual forwarding appliance is unable to process data that is forwarded by the hardware due to the network connection status, the method 200 may further include: if the second virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to the fourth virtual forwarding device; and after the data to be transmitted is sent by the fourth virtual forwarding equipment, deleting the corresponding forwarding path existing in forwarding hardware by the fourth virtual forwarding equipment according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
The specific process of deleting the forwarding path is already described above, and is further described herein. Merely by way of illustration, the forwarding path of the forwarding hardware is deleted here by the fourth virtual forwarding device. The deletion message or instruction may be sent by the fourth virtual forwarding device to the forwarding hardware for deletion. So that the forwarding hardware makes more room to store other forwarding paths.
In order to reduce the resource consumption when the software VS on the intelligent network card sends a forwarding path to forwarding hardware, the method can be implemented by the following steps:
specifically, sending at least one forwarding path to be updated to forwarding hardware includes: transmitting, by at least one second processing unit, at least one forwarding path to be updated to a queue; and sending at least one forwarding path to be updated in the queue to forwarding hardware through a second processing unit.
For example, as shown in fig. 6, according to the foregoing description, when the VS slow in the intelligent network card issues the forwarding path to be updated to the FPGA, the multiple data plane CPUs of the intelligent network card store the forwarding path in the queue ring. There may be multiple queue rings. A control surface CPU of the intelligent network card polls the queue ring, and once the forwarding path exists in the queue ring, the forwarding path is issued to the FPGA.
It should be noted that, the intelligent network card may also have a plurality of CPUs, and when the CPU issues the forwarding path, the CPU may also issue the converted forwarding path to the forwarding hardware through the xflow abstraction layer along the xflow abstraction layer. Meanwhile, time expenditure and resource expenditure caused by locking can be reduced.
Based on the data forwarding, the intelligent network card carries the forwarding task of the software VS, and meanwhile, the data flow is forwarded through forwarding hardware such as an FPGA, namely, the data forwarding is completely executed by the transmission equipment hardware, namely, the intelligent network card and the forwarding hardware, so that CPU forwarding resources on the computing equipment are not consumed any more, and the CPU performance of the computing equipment is greatly improved. Meanwhile, forwarding performance can be improved by several times through forwarding hardware and software VS (such as VS arranged on an intelligent network card or VS arranged on a computing device), and delay is also greatly reduced. As shown in fig. 7, the rectangles in each virtual frame represent VS pure software forwarding (i.e. only set on the CPU of the computing device) in turn from left to right, and the AWS (amazon cloud service, 2×25g network scenario) and the forwarding hardware and the performance comparison of the software VS acceleration in the embodiment of the present application can be seen that the embodiment of the present application is significantly better than other forwarding modes in terms of performance.
The embodiment of the application improves the forwarding performance of the virtual switch through the forwarding hardware and improves the flexibility of the virtual switch.
Based on the same inventive concept described above, fig. 8 shows a flowchart of yet another data transmission method according to another exemplary embodiment of the present application. The method 800 provided by the embodiment of the present application is performed by a transmission device, such as an intelligent network card, having forwarding hardware. The method 800 includes the steps of:
step 801: and receiving data to be transmitted, which is transmitted between at least one virtual device and an external device in the computing device, through forwarding hardware.
Step 802: and determining a forwarding path of the data to be transmitted through forwarding hardware.
Step 803: and sending out the data to be transmitted according to the forwarding path through forwarding hardware.
Wherein the transmission device is provided in the computing device and the forwarding hardware is hardware with processing capabilities.
Furthermore, the transmission apparatus further includes: the system comprises an independent processing unit, wherein a first virtual forwarding device is operated on the processing unit; wherein the method 800 further comprises: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment through forwarding hardware under the unmatched result, and forwarding the data.
The method for forwarding the data to be transmitted to the first virtual forwarding device through forwarding hardware comprises the following steps: receiving data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
Wherein, when the external device sends data to at least one virtual device, sending the data to be transmitted according to the forwarding path includes: determining, by the first virtual forwarding device, a virtual transmission device according to a virtual transmission identifier in the forwarding path, the virtual transmission device being created based on the transmission device; and determining corresponding virtual equipment according to the virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
In addition, the method 800 further includes: and sending the data to be transmitted to a second virtual forwarding device running on the processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
In addition, the method 800 further includes: matching the data to be transmitted with at least one forwarding path in the second virtual forwarding equipment, and determining the matched forwarding path; generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted; and sending at least one forwarding path to be updated to the first virtual forwarding device and forwarding hardware.
Wherein sending at least one forwarding path to be updated to forwarding hardware includes: transmitting the forwarding path to be updated to the conversion equipment through the second virtual forwarding equipment; and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through the conversion equipment, and sending the forwarding path to the forwarding hardware.
In addition, the method 800 further includes: acquiring a current network connection state from data to be transmitted through forwarding hardware; and sending the data to be transmitted which cannot be processed by the forwarding hardware to the first virtual forwarding equipment according to the network connection state, and sending the data.
In addition, the method 800 further includes: after the data to be transmitted is sent through the first virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the first virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
In addition, the method 800 further includes: if the first virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to the second virtual forwarding device; after the data to be transmitted is sent through the second virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the second virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
Wherein sending at least one forwarding path to be updated to forwarding hardware includes: transmitting, by at least one processing unit, at least one forwarding path to be updated to a queue; and sending at least one forwarding path to be updated in the queue to forwarding hardware through a processing unit.
Under the condition that the external device sends data to at least one virtual device, sending the data to be transmitted according to a forwarding path through forwarding hardware, wherein the method comprises the following steps: determining corresponding virtual equipment according to the forwarding path through forwarding hardware; and sending the data to be transmitted to the virtual equipment through forwarding hardware.
The method for determining the corresponding virtual equipment according to the forwarding path through forwarding hardware comprises the following steps: determining virtual transmission equipment according to the virtual transmission identification in the forwarding path through forwarding hardware, wherein the virtual transmission equipment is created based on the transmission equipment; and determining corresponding virtual equipment according to the virtual transmission equipment through forwarding hardware.
Since the foregoing detailed description of the steps of the process has been provided, the detailed description thereof will be omitted. In addition, the method 800 may not be described in detail, and reference may be made to the steps of the method 200. Merely to illustrate, the first virtual forwarding device in the method 800 refers to the VS fastpath in the intelligent network card, and the second virtual forwarding device refers to the VS slow path in the intelligent network card.
Based on the same inventive concept described above, fig. 9 shows a flowchart of yet another data transmission method according to another exemplary embodiment of the present application. The method 900 provided by embodiments of the present application is performed by hardware with forwarding, such as an FPGA or ASIC. The method 900 includes the steps of:
step 901: data to be transmitted is received for transmission between at least one virtual device in the computing device and an external device.
Step 902: and determining a forwarding path of the data to be transmitted.
Step 903: and sending out the data to be transmitted according to the forwarding path.
It should be appreciated that the forwarding hardware has processing capabilities.
Under the condition that the external device sends data to at least one virtual device, sending the data to be transmitted according to the forwarding path, wherein the method comprises the following steps: determining corresponding virtual equipment according to the forwarding path; and sending the data to be transmitted to the virtual equipment.
The method for determining the corresponding virtual equipment according to the forwarding path comprises the following steps: determining virtual transmission equipment according to the virtual transmission identification in the forwarding path, wherein the virtual transmission equipment is created based on transmission hardware; and determining corresponding virtual equipment according to the virtual transmission equipment through forwarding hardware.
Wherein the forwarding hardware is disposed in a transmission device disposed in the computing device; the transmission device further includes: the system comprises an independent processing unit, wherein a first virtual forwarding device is operated on the processing unit; wherein, the method 900 further comprises: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment to forward the data under the unmatched result.
The method for forwarding the data to be transmitted to the first virtual forwarding device comprises the following steps: receiving data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
Wherein, when the external device sends data to at least one virtual device, the sending the data to be transmitted according to the forwarding path includes: determining, by the first virtual forwarding device, a virtual transmission device according to the virtual transmission identifier in the forwarding path; and determining corresponding virtual equipment according to the virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
In addition, the method 900 further includes: and sending the data to be transmitted to a second virtual forwarding device running on the processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
Since the foregoing detailed description of the steps of the process has been provided, the detailed description thereof will be omitted. In addition, the method 900 may not be described in detail, and reference may be made to the steps of the method 200 described above. Merely by way of illustration, the virtual transmission apparatus in the present method 900 refers to the first virtual transmission apparatus in the method 200. The first virtual forwarding appliance in the present method 900 may refer to the second virtual forwarding appliance in the method 200. The second virtual forwarding appliance in the present method 900 may refer to the fourth virtual forwarding appliance in the method 200.
Based on the same inventive concept described above, another exemplary embodiment of the present application provides an intelligent network card, which is provided on a computing device, the computing device including at least one virtual device; the intelligent network card comprises: forwarding hardware, such as FPGA.
The intelligent network card receives data to be transmitted, which are transmitted between at least one virtual device and an external device in the computing device, through forwarding hardware.
The intelligent network card determines a forwarding path of data to be transmitted through forwarding hardware.
The intelligent network card sends out the data to be transmitted according to the forwarding path through forwarding hardware.
In addition, the intelligent network card also comprises: the system comprises an independent processing unit, wherein a first virtual forwarding device is operated on the processing unit; forwarding hardware, which matches the data to be transmitted with at least one forwarding path in the forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment to forward the data under the unmatched result.
The first virtual forwarding equipment receives data to be transmitted and matches the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path.
Under the condition that the external equipment sends data to at least one virtual equipment, the first virtual forwarding equipment determines virtual transmission equipment according to a virtual transmission identifier in a forwarding path, and the virtual transmission equipment is created based on the intelligent network card; and determining corresponding virtual equipment according to the virtual transmission equipment, and sending the data to be transmitted to the corresponding virtual equipment.
In addition, under the result of unsuccessful matching, the first virtual forwarding device sends the data to be transmitted to the second virtual forwarding device running on the processing unit to forward the data.
Wherein the forwarding hardware is hardware with processing capability, comprising: FPGA hardware, ASIC hardware, and tofeno hardware. Virtual devices refer to devices that rely on a computing device to create an independent operating environment.
Since the foregoing detailed description of the specific embodiment of the present intelligent network card has been described in detail, the detailed description thereof will be omitted. In addition, the intelligent network card may refer to the steps in the method 200. Merely by way of illustration, a first virtual forwarding appliance in the intelligent network card may refer to a second virtual forwarding appliance in method 200. The second virtual forwarding device in the intelligent network card may refer to the fourth virtual forwarding device in method 200.
It should be appreciated that the present intelligent network card also has a processor and memory for storing computer programs. And the processor is used for executing the calculation program.
Based on the same inventive concepts described above, another exemplary embodiment of the present application provides a computing device, such as a cloud server. The computing device includes the intelligent network card.
Fig. 10 is a schematic structural diagram of a data transmission device according to an exemplary embodiment of the present application. The apparatus 1000 may be applied in a computing device, e.g., a cloud server, comprising a transmitting device and at least one virtual device, the transmitting device comprising forwarding hardware; the apparatus 1000 comprises a receiving module 1001, a determining module 1002 and a transmitting module 1003; the functions of the respective modules are explained in detail below:
the receiving module 1001 is configured to receive, through forwarding hardware, data to be transmitted, which is transmitted between at least one virtual device and an external device.
A determining module 1002, configured to determine, by using forwarding hardware, a forwarding path of data to be transmitted.
And the sending module 1003 is configured to send out the data to be transmitted according to the forwarding path through forwarding hardware.
Furthermore, the computing device further includes: the first processing unit is provided with a first virtual forwarding device in a running mode; wherein the apparatus 1000 further comprises: the matching module is used for matching the data to be transmitted with at least one forwarding path in forwarding hardware; and the sending module 1003 is further configured to send, by using forwarding hardware, the data to be transmitted to the first virtual forwarding device to forward the data, under the result of the mismatch.
In addition, the transmission apparatus further includes: the independent second processing unit is provided with a second virtual forwarding device in an operation mode; the matching module is further used for matching the data to be transmitted with at least one forwarding path in forwarding hardware; and the sending module 1003 is further configured to send, by using forwarding hardware, the data to be transmitted to the second virtual forwarding device to forward the data, under the result of the mismatch.
The determining module 1002 includes: the first matching unit is used for matching the data to be transmitted with at least one forwarding path in forwarding hardware; and the first determining unit is used for determining the matched forwarding paths under the matching result.
The first matching unit is used for matching the field data in the data to be transmitted with the corresponding field data in at least one forwarding path.
Wherein, in the case where the external device transmits data to at least one virtual device, the transmission module 1003 includes: the second determining unit is used for determining corresponding virtual equipment according to the forwarding path through forwarding hardware; and the sending unit is used for sending the data to be transmitted to the virtual equipment through the forwarding hardware.
The second determining unit is used for determining a first virtual transmission device according to the virtual transmission identifier in the forwarding path through forwarding hardware, and the first virtual transmission device is created based on the transmission device; and determining corresponding virtual equipment according to the first virtual transmission equipment through forwarding hardware.
Wherein, when at least one virtual device sends data to an external device, the second determining unit is configured to determine, through forwarding hardware, a corresponding external device according to a forwarding path; and the sending unit is used for sending the data to be transmitted to the external equipment through the forwarding hardware.
In addition, the sending module 1003 is further configured to send, to forwarding hardware, data to be transmitted from at least one virtual device through a first virtual transmission device, where the first virtual transmission device is created based on the transmission device.
Further, the transmission module 1003 includes: the second matching unit is used for receiving the data to be transmitted through the first virtual forwarding equipment and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; the second determining unit is used for determining a matched forwarding path under the result of successful matching; and the sending unit is used for sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
The transmission unit is used for determining a second virtual transmission device through the first virtual forwarding device according to the virtual transmission identifier in the forwarding path under the condition that the external device transmits data to at least one virtual device, and the second virtual transmission device runs on the first processing unit; and determining corresponding virtual equipment according to the second virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
The second matching unit is used for receiving the data to be transmitted through the second virtual forwarding equipment and matching the data to be transmitted with at least one forwarding path in the second virtual forwarding equipment; the second determining unit is used for determining a matched forwarding path under the result of successful matching; and the sending unit is used for sending the data to be transmitted according to the forwarding path through the second virtual forwarding equipment.
The transmission unit is used for determining a first virtual transmission device through the second virtual forwarding device according to the virtual transmission identifier in the forwarding path, and the first virtual transmission device is created based on the transmission device; and determining corresponding virtual equipment according to the first virtual transmission equipment through the second virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
In addition, the apparatus 1000 further includes: and the sending unit is used for sending the data to be transmitted to a third virtual forwarding device running on the first processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
In addition, the matching module is further configured to match the data to be transmitted with at least one forwarding path in the third virtual forwarding device, and determine a matched forwarding path; the apparatus 1000 further comprises: the generating module is used for generating at least one forwarding path to be updated according to the at least one forwarding path determined for the at least one data to be transmitted; and the sending module 1003 is configured to send at least one forwarding path to be updated to the first virtual forwarding device and the forwarding hardware.
In addition, the generating module is used for generating at least one forwarding path to be updated which meets the processing requirement of forwarding hardware according to the at least one forwarding path determined for the at least one data to be transmitted; the sending module 1003 is further configured to send the at least one forwarding path to be updated that can be processed to forwarding hardware.
In addition, the sending module 1003 is further configured to send, through the second virtual forwarding device, data to be transmitted to a fourth virtual forwarding device running on the second processing unit, to forward the data, where the result of unsuccessful matching is achieved.
In addition, the matching module is further configured to match the data to be transmitted with at least one forwarding path in the fourth virtual forwarding device, and determine a matched forwarding path; the generating module is used for generating at least one forwarding path to be updated according to the at least one forwarding path determined for the at least one data to be transmitted; the sending module 1003 is further configured to send at least one forwarding path to be updated to the second virtual forwarding device and to forwarding hardware.
The generating module is used for generating at least one forwarding path to be updated which meets the requirement of the forwarding hardware for processing according to the at least one forwarding path determined for the at least one data to be transmitted; the sending module 1003 is further configured to send the at least one forwarding path to be updated that can be processed to forwarding hardware.
The transmission unit is used for transmitting the forwarding path to be updated to the first conversion equipment through the third virtual forwarding equipment; the sending module 1003 further includes a converting unit, configured to convert, by the first converting device, the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to a type of the forwarding hardware, and send the forwarding path to the forwarding hardware.
In addition, a transmitting unit is configured to transmit, through a fourth virtual forwarding device, a forwarding path to be updated to the second conversion device; the conversion unit is used for converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through the second conversion equipment, and sending the forwarding path to the forwarding hardware.
In addition, the apparatus 1000 further includes: the acquisition module is used for acquiring the current network connection state from the data to be transmitted through the forwarding hardware; the sending module 1003 is further configured to send, according to the network connection state, data to be transmitted that cannot be processed by the forwarding hardware to the first virtual forwarding device, and send the data.
In addition, the acquisition module is used for acquiring the current network connection state from the data to be transmitted through forwarding hardware; the sending module 1003 is further configured to send, according to the network connection state, data to be transmitted that cannot be processed by the forwarding hardware to the second virtual forwarding device, and send the data.
In addition, the apparatus 1000 further includes: and the deleting module is used for deleting the corresponding forwarding paths existing in the forwarding hardware through the first virtual forwarding equipment according to the network connection state after the data to be transmitted are sent through the first virtual forwarding equipment, and the corresponding forwarding paths belong to the forwarding paths of the data to be transmitted.
In addition, the sending module 1003 is further configured to send the data to be transmitted to the third virtual forwarding device if the first virtual forwarding device does not have a forwarding path of the data to be transmitted; and the deleting module is used for deleting the corresponding forwarding paths existing in the forwarding hardware through the third virtual forwarding equipment according to the network connection state after the data to be transmitted are sent through the third virtual forwarding equipment, and the corresponding forwarding paths belong to the forwarding paths of the data to be transmitted.
In addition, the deletion module is further configured to: after the data to be transmitted is sent through the second virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the second virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
In addition, the sending module 1003 is further configured to send the data to be transmitted to the fourth virtual forwarding device if the second virtual forwarding device does not have a forwarding path of the data to be transmitted; the deletion module is further used for: after the data to be transmitted is sent by the fourth virtual forwarding device, deleting the corresponding forwarding path existing in the forwarding hardware by the fourth virtual forwarding device according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
Furthermore, the transmitting unit is further configured to: transmitting, by at least one first processing unit, at least one forwarding path to be updated to a queue; at least one forwarding path to be updated in the queue is sent to the forwarding hardware by a first processing unit.
Furthermore, the transmitting unit is further configured to: transmitting, by at least one second processing unit, at least one forwarding path to be updated to a queue; and sending at least one forwarding path to be updated in the queue to forwarding hardware through a second processing unit.
In addition, the apparatus 1000 further includes: the creation module is used for creating a first virtual transmission device corresponding to the virtual device according to the device hardware resources of the transmission device.
The transmission equipment comprises a network card; the forwarding hardware comprises editable electronics with processing functions, an integrated circuit with processing functions or an editable chip with processing functions.
The transmission device includes forwarding hardware with processing capabilities, and the virtual device refers to a device that creates an independent operating environment depending on the computing device.
For the content of the apparatus 1000 that cannot be described in detail, reference may be made to the content of the method 200 described above.
Fig. 11 is a schematic diagram showing a structural framework of a further data transmission device according to a further exemplary embodiment of the present application. The apparatus 1100 may be applied to a transmission device having forwarding hardware, such as a smart network card; the apparatus 1100 comprises: the functions of the receiving module 1101, the determining module 1102, and the transmitting module 1103 are described in detail below:
the receiving module 1101: and receiving data to be transmitted, which is transmitted between at least one virtual device and an external device in the computing device, through forwarding hardware.
Determination module 1102: and determining a forwarding path of the data to be transmitted through forwarding hardware.
A sending module 1103: and sending out the data to be transmitted according to the forwarding path through forwarding hardware.
Wherein the transmission device is disposed in the computing device. The forwarding hardware is hardware with processing capabilities, such as an FPGA.
Furthermore, the transmission apparatus further includes: the system comprises an independent processing unit, wherein a first virtual forwarding device is operated on the processing unit; wherein, the apparatus 1100 further comprises: the matching module is used for matching the data to be transmitted with at least one forwarding path in forwarding hardware; the sending module 1103 is further configured to send, by using forwarding hardware, the data to be transmitted to the first virtual forwarding device to forward the data, under the result of the mismatch.
The sending module 1103 includes: the matching unit is used for receiving the data to be transmitted through the first virtual forwarding equipment and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; a determining unit, configured to determine a matched forwarding path according to a result of successful matching; and the sending unit is used for sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
The transmission unit is used for determining a virtual transmission device according to a virtual transmission identifier in a forwarding path through the first virtual forwarding device under the condition that the external device transmits data to at least one virtual device, and the virtual transmission device is created based on the transmission device; and determining corresponding virtual equipment according to the virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
In addition, the sending module 1103 is further configured to: and sending the data to be transmitted to a second virtual forwarding device running on the processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
Furthermore, the matching unit is further configured to: matching the data to be transmitted with at least one forwarding path in the second virtual forwarding equipment, and determining the matched forwarding path; the apparatus 1100 further includes a generating module configured to generate at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted; the sending module 1103 is further configured to send at least one forwarding path to be updated to the first virtual forwarding device and forwarding hardware.
The transmission unit is used for transmitting the forwarding path to be updated to the conversion equipment through the second virtual forwarding equipment; and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through the conversion equipment, and sending the forwarding path to the forwarding hardware.
In addition, the apparatus 1100 further includes: the acquisition module is used for acquiring the current network connection state from the data to be transmitted through forwarding hardware; the sending module 1103 is further configured to send, according to the network connection state, data to be transmitted, which cannot be processed by the forwarding hardware, to the first virtual forwarding device, so as to send the data.
In addition, the apparatus 1100 further includes: and the deleting module is used for deleting the corresponding forwarding paths existing in the forwarding hardware through the first virtual forwarding equipment according to the network connection state after the data to be transmitted are sent through the first virtual forwarding equipment, and the corresponding forwarding paths belong to the forwarding paths of the data to be transmitted.
In addition, the sending module 1103 is further configured to send the data to be transmitted to the second virtual forwarding device if the first virtual forwarding device does not have a forwarding path of the data to be transmitted; and the deleting module is also used for deleting the corresponding forwarding paths existing in the forwarding hardware through the second virtual forwarding equipment according to the network connection state after the data to be transmitted are sent through the second virtual forwarding equipment, and the corresponding forwarding paths belong to the forwarding paths of the data to be transmitted.
The transmission unit is used for transmitting at least one forwarding path to be updated to the queue through at least one processing unit; and sending at least one forwarding path to be updated in the queue to forwarding hardware through a processing unit.
The transmission unit is used for determining the corresponding virtual equipment according to the forwarding path through forwarding hardware under the condition that the external equipment transmits data to at least one virtual equipment; and sending the data to be transmitted to the virtual equipment through forwarding hardware.
The transmission unit is used for determining virtual transmission equipment according to the virtual transmission identification in the forwarding path through forwarding hardware, and the virtual transmission equipment is created based on the transmission equipment; and determining corresponding virtual equipment according to the virtual transmission equipment through forwarding hardware.
For a portion of the content that cannot be mentioned by the apparatus 1100, reference may be made to the content of the apparatus 1000 described above.
Fig. 12 is a schematic diagram showing a structural framework of a further data transmission apparatus according to a further exemplary embodiment of the present application. The apparatus 1200 may be applied to forwarding hardware such as an FPGA or ASIC. The apparatus 1200 includes: the functions of the receiving module 1201, the determining module 1202 and the sending module 1203 are described in detail below:
A receiving module 1201 is configured to receive data to be transmitted, which is transmitted between at least one virtual device and an external device in the computing device.
Determination module 1202: for determining a forwarding path for data to be transmitted.
The sending module 1203: and the data transmission module is used for sending the data to be transmitted according to the forwarding path.
Wherein, in the case where the external device transmits data to at least one virtual device, the transmitting module 1203 includes: the determining unit is used for determining corresponding virtual equipment according to the forwarding path; and the sending unit is used for sending the data to be transmitted to the virtual equipment.
The determining unit is used for determining virtual transmission equipment according to the virtual transmission identification in the forwarding path, and the virtual transmission equipment is created based on transmission hardware; and determining corresponding virtual equipment according to the virtual transmission equipment through forwarding hardware.
Wherein the forwarding hardware is disposed in a transmission device disposed in the computing device; the transmission device further includes: the system comprises an independent processing unit, wherein a first virtual forwarding device is operated on the processing unit; wherein the apparatus 1200 further comprises: the matching module is used for matching the data to be transmitted with at least one forwarding path in forwarding hardware; and the sending module 1203 is configured to send the data to be transmitted to the first virtual forwarding device to forward the data under the unmatched result.
The sending module 1203 includes: the matching unit is used for receiving the data to be transmitted through the first virtual forwarding equipment and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; a determining unit, configured to determine a matched forwarding path according to a result of successful matching; and the sending unit is used for sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
The transmission unit is used for determining the virtual transmission equipment according to the virtual transmission identification in the transmission path through the first virtual transmission equipment under the condition that the external equipment transmits data to at least one virtual equipment; and determining corresponding virtual equipment according to the virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
Furthermore, the transmitting unit is further configured to: and sending the data to be transmitted to a second virtual forwarding device running on the processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
Wherein the forwarding hardware is hardware with processing capabilities.
For a part of the content that cannot be mentioned by the apparatus 1200, reference may be made to the content of the apparatus 1000 described above.
The internal functions and structures of the transmission apparatus 1000 shown in fig. 10 are described above, and in one possible design, the structure of the transmission apparatus 1000 shown in fig. 10 may be implemented as a computing device, such as a cloud server, including a transmission device and at least one virtual device, where the transmission device includes forwarding hardware; as shown in fig. 13, the apparatus 1300 may further include: memory 1301 and processor 1302;
a memory 1301 for storing a computer program;
a processor 1302 for executing a computer program for: receiving data to be transmitted, which are transmitted between at least one virtual device and an external device, through forwarding hardware; determining a forwarding path of data to be transmitted through forwarding hardware; and sending out the data to be transmitted according to the forwarding path through forwarding hardware.
Furthermore, the computing device 1300 further includes: the first processing unit is provided with a first virtual forwarding device in a running mode; wherein, the processor 1302 is further configured to: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment through forwarding hardware under the unmatched result, and forwarding the data.
In addition, the transmission apparatus further includes: the independent second processing unit is provided with a second virtual forwarding device in an operation mode; wherein, the processor 1302 is further configured to: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and sending the data to be transmitted to the second virtual forwarding equipment through forwarding hardware under the unmatched result, and forwarding the data.
The processor 1302 is specifically configured to: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and under the matching result, determining a matched forwarding path.
The processor 1302 is specifically configured to: and matching the field data in the data to be transmitted with the corresponding field data in at least one forwarding path.
Wherein, in the case that the external device transmits data to at least one virtual device, the processor 1302 is specifically configured to: determining corresponding virtual equipment according to the forwarding path through forwarding hardware; and sending the data to be transmitted to the virtual equipment through forwarding hardware.
The processor 1302 is specifically configured to: determining, by the forwarding hardware, a first virtual transmission device according to the virtual transmission identifier in the forwarding path, the first virtual transmission device being created based on the transmission device; and determining corresponding virtual equipment according to the first virtual transmission equipment through forwarding hardware.
Wherein, in the case that the at least one virtual device sends data to the external device, the processor 1302 is specifically configured to: determining corresponding external equipment according to the forwarding path through forwarding hardware; and sending the data to be transmitted to the external equipment through forwarding hardware.
Further, the processor 1302 is further configured to: the data to be transmitted from the at least one virtual device is sent to the forwarding hardware by a first virtual transmission device, which is created on the basis of the transmission device.
Further, the processor 1302 is specifically configured to: receiving data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
Wherein, in the case that the external device transmits data to at least one virtual device, the processor 1302 is specifically configured to: determining, by the first virtual forwarding device, a second virtual transmission device according to the virtual transmission identifier in the forwarding path, the second virtual transmission device running on the first processing unit; and determining corresponding virtual equipment according to the second virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
The processor 1302 is specifically configured to: receiving data to be transmitted through the second virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the second virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path through the second virtual forwarding equipment.
The processor 1302 is specifically configured to: determining, by the second virtual forwarding device, a first virtual transmission device according to the virtual transmission identifier in the forwarding path, the first virtual transmission device being created based on the transmission device; and determining corresponding virtual equipment according to the first virtual transmission equipment through the second virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
Further, the processor 1302 is further configured to: and sending the data to be transmitted to a third virtual forwarding device running on the first processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
Further, the processor 1302 is further configured to: matching the data to be transmitted with at least one forwarding path in the third virtual forwarding device, and determining the matched forwarding path; generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted; and sending at least one forwarding path to be updated to the first virtual forwarding device and forwarding hardware.
Further, the processor 1302 is further configured to: generating at least one forwarding path to be updated meeting the processing of forwarding hardware according to at least one forwarding path determined for at least one data to be transmitted; and sending the processable at least one forwarding path to be updated to forwarding hardware.
Further, the processor 1302 is further configured to: and sending the data to be transmitted to fourth virtual forwarding equipment running on the second processing unit through the second virtual forwarding equipment under the result of unsuccessful matching, and forwarding the data.
Further, the processor 1302 is further configured to: matching the data to be transmitted with at least one forwarding path in the fourth virtual forwarding device, and determining the matched forwarding path; generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted; and sending at least one forwarding path to be updated to the second virtual forwarding device and forwarding hardware.
The processor 1302 is specifically configured to: generating at least one forwarding path to be updated meeting the processing of forwarding hardware according to at least one forwarding path determined for at least one data to be transmitted; the processor 1302 is further configured to send the at least one forwarding path to be updated to forwarding hardware.
The processor 1302 is specifically configured to: transmitting the forwarding path to be updated to the first conversion equipment through the third virtual forwarding equipment; and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through the first conversion equipment, and sending the forwarding path to the forwarding hardware.
Further, the processor 1302 is specifically configured to: transmitting the forwarding path to be updated to the second conversion equipment through the fourth virtual forwarding equipment; and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through second conversion equipment, and sending the forwarding path to the forwarding hardware.
Further, the processor 1302 is further configured to: acquiring a current network connection state from data to be transmitted through the forwarding hardware; and sending the data to be transmitted which cannot be processed by the forwarding hardware to the first virtual forwarding equipment according to the network connection state, and sending the data.
Further, the processor 1302 is specifically configured to: acquiring a current network connection state from data to be transmitted through forwarding hardware; the processor 1302 is further configured to: and sending the data to be transmitted which cannot be processed by the forwarding hardware to the second virtual forwarding equipment according to the network connection state, and sending the data.
Further, the processor 1302 is further configured to: after the data to be transmitted is sent through the first virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the first virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
Further, the processor 1302 is further configured to: if the first virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to the third virtual forwarding device; and the deleting module is used for deleting the corresponding forwarding paths existing in the forwarding hardware through the third virtual forwarding equipment according to the network connection state after the data to be transmitted are sent through the third virtual forwarding equipment, and the corresponding forwarding paths belong to the forwarding paths of the data to be transmitted.
Further, the processor 1302 is further configured to: after the data to be transmitted is sent through the second virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the second virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
Further, the processor 1302 is further configured to: if the second virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to the fourth virtual forwarding device; after the data to be transmitted is sent by the fourth virtual forwarding device, deleting the corresponding forwarding path existing in the forwarding hardware by the fourth virtual forwarding device according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
Further, the processor 1302 is further configured to: transmitting, by at least one first processing unit, at least one forwarding path to be updated to a queue; at least one forwarding path to be updated in the queue is sent to the forwarding hardware by a first processing unit.
Further, the processor 1302 is further configured to: transmitting, by at least one second processing unit, at least one forwarding path to be updated to a queue; and sending at least one forwarding path to be updated in the queue to forwarding hardware through a second processing unit.
Further, the processor 1302 is further configured to: and creating a first virtual transmission device corresponding to the virtual device according to the device hardware resources of the transmission device.
The transmission equipment comprises a network card; the forwarding hardware comprises editable electronics with processing functions, an integrated circuit with processing functions or an editable chip with processing functions.
The transmission device includes forwarding hardware with processing capabilities, and the virtual device refers to a device that creates an independent operating environment depending on the computing device.
It should be noted that, for the content of the apparatus 1300 which cannot be described in detail, reference may be made to the content of the method 200 described above.
In addition, embodiments of the present invention provide a computer storage medium, which when executed by one or more processors, causes the one or more processors to implement the steps of the method for transmitting data in the embodiment of the method of fig. 2.
The internal functions and structures of the transmission apparatus 1100 shown in fig. 11 are described above, and in one possible design, the structure of the transmission apparatus 1100 shown in fig. 11 may be implemented as a transmission device having forwarding hardware, i.e., a computing device (hereinafter may also be referred to as a transmission device), such as a smart network card. As shown in fig. 14, the computing device 1400 may include: memory 1401 and processor 1402;
a memory 1401 for storing a computer program;
a processor 1402 for executing a computer program for: receiving data to be transmitted, which are transmitted between at least one virtual device and an external device in the computing device, through forwarding hardware; determining a forwarding path of data to be transmitted through forwarding hardware; and sending out the data to be transmitted according to the forwarding path through forwarding hardware.
Wherein the computing device 1400 is disposed in a cloud computing device. The forwarding hardware is hardware with processing capabilities, such as an FPGA.
In addition, the computing device 1400 further includes: the system comprises an independent processing unit, wherein a first virtual forwarding device is operated on the processing unit; wherein the processor 1402 is further configured to: matching the data to be transmitted with at least one forwarding path in forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment through forwarding hardware under the unmatched result, and forwarding the data.
The processor 1402 is specifically configured to: receiving data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
Wherein, in the case that the external device sends data to at least one virtual device, the processor 1402 is specifically configured to: determining, by the first virtual forwarding device, a virtual transmission device based on the virtual transmission identification in the forwarding path, the virtual transmission device created based on the computing device 1400; and determining corresponding virtual equipment according to the virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
Further, the processor 1402 is further configured to: and sending the data to be transmitted to a second virtual forwarding device running on the processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
Further, the processor 1402 is further configured to: matching the data to be transmitted with at least one forwarding path in the second virtual forwarding equipment, and determining the matched forwarding path; generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted; and sending at least one forwarding path to be updated to the first virtual forwarding device and forwarding hardware.
The processor 1402 is specifically configured to: transmitting the forwarding path to be updated to the conversion equipment through the second virtual forwarding equipment; and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through the conversion equipment, and sending the forwarding path to the forwarding hardware.
Further, the processor 1402 is further configured to: acquiring a current network connection state from data to be transmitted through forwarding hardware; and sending the data to be transmitted which cannot be processed by the forwarding hardware to the first virtual forwarding equipment according to the network connection state, and sending the data.
Further, the processor 1402 is further configured to: after the data to be transmitted is sent through the first virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the first virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
Further, the processor 1402 is further configured to: if the first virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to the second virtual forwarding device; after the data to be transmitted is sent through the second virtual forwarding device, deleting the corresponding forwarding paths existing in the forwarding hardware through the second virtual forwarding device according to the network connection state, wherein the corresponding forwarding paths belong to forwarding paths of the data to be transmitted.
The processor 1402 is specifically configured to: transmitting, by at least one processing unit, at least one forwarding path to be updated to a queue; and sending at least one forwarding path to be updated in the queue to forwarding hardware through a processing unit.
Wherein, in the case that the external device sends data to at least one virtual device, the processor 1402 is specifically configured to: determining corresponding virtual equipment according to the forwarding path through forwarding hardware; and sending the data to be transmitted to the virtual equipment through forwarding hardware.
The processor 1402 is specifically configured to: determining, by the forwarding hardware, a virtual transmission device based on the virtual transmission identifier in the forwarding path, the virtual transmission device created based on the computing device 1300; and determining corresponding virtual equipment according to the virtual transmission equipment through forwarding hardware.
Note that, for a part of the content which the apparatus 1400 fails to mention, reference may be made to the content of the apparatus 1300 described above.
In addition, embodiments of the present invention provide a computer storage medium, which when executed by one or more processors, causes the one or more processors to implement the steps of the method for transmitting data in the embodiment of the method of fig. 8.
The internal functions and structures of the transmission apparatus 1200 shown in fig. 12 are described above, and in one possible design, the structure of the transmission apparatus 1200 shown in fig. 12 may be implemented as forwarding hardware, i.e., a computing device (hereinafter may also be referred to as forwarding hardware), such as an FPGA or an ASIC. As shown in fig. 15, the computing device 1500 may include: a memory 1501 and a processor 1502;
a memory 1501 for storing a computer program;
a processor 1502 for executing a computer program for: receiving data to be transmitted, which is transmitted between at least one virtual device and an external device in the computing device; determining a forwarding path of data to be transmitted; and sending out the data to be transmitted according to the forwarding path.
Wherein, in the case that the external device sends data to at least one virtual device, the processor 1502 is specifically configured to: determining corresponding virtual equipment according to the forwarding path; and sending the data to be transmitted to the virtual equipment.
Wherein the processor 1502 is specifically configured to: determining virtual transmission equipment according to the virtual transmission identification in the forwarding path, wherein the virtual transmission equipment is created based on transmission hardware; and determining corresponding virtual equipment according to the virtual transmission equipment through forwarding hardware.
Wherein the computing device 1500 is disposed in a transmitting device disposed in the computing device; the transmission device further includes: the system comprises an independent processing unit, wherein a first virtual forwarding device is operated on the processing unit; wherein the processor 1502 is further configured to: matching data to be transmitted with at least one forwarding path in the computing device 1500; and sending the data to be transmitted to the first virtual forwarding equipment to forward the data under the unmatched result.
Wherein the processor 1502 is specifically configured to: receiving data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment; under the result of successful matching, determining a matched forwarding path; and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
Wherein, in the case that the external device sends data to at least one virtual device, the processor 1502 is specifically configured to: determining, by the first virtual forwarding device, a virtual transmission device according to the virtual transmission identifier in the forwarding path; and determining corresponding virtual equipment according to the virtual transmission equipment through the first virtual forwarding equipment, and sending the data to be transmitted to the corresponding virtual equipment.
Further, the processor 1502 is further configured to: and sending the data to be transmitted to a second virtual forwarding device running on the processing unit through the first virtual forwarding device under the result of unsuccessful matching, and forwarding the data.
Wherein the forwarding hardware is hardware with processing capabilities.
For a part of the content that the apparatus 1500 fails to mention, reference may be made to the content of the apparatus 1300 described above.
In addition, embodiments of the present application provide a computer storage medium, which when executed by one or more processors, causes the one or more processors to implement the steps of the method for transmitting data in the embodiment of the method of fig. 9.
Based on the same inventive concept as described above, another exemplary embodiment of the present application provides an electronic device, such as an FPGA or an ASIC. The electronic device includes a memory cell and a logic cell;
A storage unit for storing an electronic device program;
a logic unit for executing logic functions of the electronic device program for: receiving data to be transmitted, which is transmitted between at least one virtual device and an external device in the computing device; determining a forwarding path of data to be transmitted; and sending out the data to be transmitted according to the forwarding path.
It should be noted that, for details not described in the electronic device, reference is made to the computing device 1400.
In addition, in some of the above embodiments and the flows described in the drawings, a plurality of operations appearing in a specific order are included, but it should be clearly understood that the operations may be performed out of the order in which they appear herein or performed in parallel, the sequence numbers of the operations such as 201, 202, 203, etc. are merely used to distinguish between the various operations, and the sequence numbers themselves do not represent any order of execution. In addition, the flows may include more or fewer operations, and the operations may be performed sequentially or in parallel. It should be noted that, the descriptions of "first" and "second" herein are used to distinguish different messages, devices, modules, etc., and do not represent a sequence, and are not limited to the "first" and the "second" being different types.
The apparatus embodiments described above are merely illustrative, wherein the elements illustrated as separate elements may or may not be physically separate, and the elements shown as elements may or may not be physical elements, may be located in one place, or may be distributed over a plurality of network elements. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art will understand and implement the present invention without undue burden.
From the above description of the embodiments, it will be apparent to those skilled in the art that the embodiments may be implemented by adding necessary general purpose hardware platforms, or may be implemented by a combination of hardware and software. Based on such understanding, the foregoing aspects, in essence and portions contributing to the art, may be embodied in the form of a computer program product, which may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable multimedia data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable multimedia data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable multimedia data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable multimedia data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
Finally, it should be noted that: the above embodiments are only for illustrating the technical solution of the present invention, and are not limiting; although the invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims (61)

1. A method of data transmission, characterized in that it is applied to a computing device, said computing device comprising a transmission device and at least one virtual device, said transmission device comprising forwarding hardware; the method comprises the following steps:
receiving data to be transmitted, which are transmitted between the at least one virtual device and an external device, through the forwarding hardware;
determining a forwarding path of the data to be transmitted through the forwarding hardware;
sending out the data to be transmitted according to the forwarding path through the forwarding hardware;
the computing device further includes: the first processing unit is provided with a first virtual forwarding device in a running mode; wherein the method further comprises: matching the data to be transmitted with at least one forwarding path in the forwarding hardware; transmitting the data to be transmitted to the first virtual forwarding equipment through the forwarding hardware under the unmatched result, and forwarding the data; or alternatively, the process may be performed,
The transmission apparatus further includes: the single second processing unit is provided with a second virtual forwarding device in an operation mode; wherein the method further comprises: matching the data to be transmitted with at least one forwarding path in the forwarding hardware; and sending the data to be transmitted to the second virtual forwarding equipment through the forwarding hardware under the unmatched result, and forwarding the data.
2. The method of claim 1, wherein the determining, by the forwarding hardware, a forwarding path for the data to be transmitted comprises:
the data to be transmitted is matched with at least one forwarding path in the forwarding hardware;
and under the matching result, determining a matched forwarding path.
3. The method of claim 2, wherein the matching of the data to be transmitted with at least one forwarding path in the forwarding hardware comprises:
and matching the field data in the data to be transmitted with the corresponding field data in at least one forwarding path.
4. The method according to claim 1, wherein, in case the external device sends data to the at least one virtual device, the sending, by the forwarding hardware, the data to be transmitted according to the forwarding path, comprises:
Determining corresponding virtual equipment according to the forwarding path through the forwarding hardware;
and sending the data to be transmitted to the virtual equipment through the forwarding hardware.
5. The method of claim 4, wherein said determining, by said forwarding hardware, a corresponding virtual device from said forwarding path comprises:
determining, by the forwarding hardware, a first virtual transmission device according to a virtual transmission identifier in the forwarding path, where the first virtual transmission device is created based on the transmission device;
and determining the corresponding virtual equipment according to the first virtual transmission equipment through the forwarding hardware.
6. The method according to claim 1, wherein in case at least one virtual device sends data to the external device, the sending, by the forwarding hardware, the data to be transmitted according to the forwarding path, comprises:
determining corresponding external equipment according to the forwarding path through the forwarding hardware;
and sending the data to be transmitted to the external equipment through the forwarding hardware.
7. The method of claim 6, wherein the method further comprises:
And sending data to be transmitted from at least one virtual device to the forwarding hardware through a first virtual transmission device, wherein the first virtual transmission device is created based on the transmission device.
8. The method according to claim 1, wherein the sending, by the forwarding hardware, the data to be transmitted to the first virtual forwarding device for data forwarding includes:
receiving the data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment;
under the result of successful matching, determining a matched forwarding path;
and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
9. The method according to claim 8, wherein in case the external device sends data to the at least one virtual device, the sending the data to be transmitted according to the forwarding path comprises:
determining, by the first virtual forwarding device, a second virtual transmission device according to a virtual transmission identifier in the forwarding path, where the second virtual transmission device operates on the first processing unit;
And determining the corresponding virtual device according to the second virtual transmission device through the first virtual forwarding device, and sending the data to be transmitted to the corresponding virtual device.
10. The method according to claim 1, wherein the sending, by the forwarding hardware, the data to be transmitted to the second virtual forwarding device for data forwarding includes:
receiving the data to be transmitted through the second virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the second virtual forwarding equipment;
under the result of successful matching, determining a matched forwarding path;
and sending the data to be transmitted according to the forwarding path through the second virtual forwarding equipment.
11. The method according to claim 10, wherein in case the external device sends data to the at least one virtual device, the sending the data to be transmitted according to the forwarding path comprises:
determining, by the second virtual forwarding device, a first virtual transmission device according to a virtual transmission identifier in the forwarding path, where the first virtual transmission device is created based on the transmission device;
And determining the corresponding virtual device according to the first virtual transmission device through the second virtual forwarding device, and sending the data to be transmitted to the corresponding virtual device.
12. The method of claim 11, wherein the method further comprises:
and under the result of unsuccessful matching, the data to be transmitted is sent to a third virtual forwarding device running on the first processing unit through the first virtual forwarding device, and data forwarding is carried out.
13. The method according to claim 12, wherein the method further comprises:
matching the data to be transmitted with at least one forwarding path in the third virtual forwarding device, and determining a matched forwarding path;
generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted;
and sending the at least one forwarding path to be updated to the first virtual forwarding device and the forwarding hardware.
14. The method of claim 13, wherein the method further comprises:
generating at least one forwarding path to be updated meeting the processing of the forwarding hardware according to at least one forwarding path determined for at least one data to be transmitted;
And sending the processable at least one forwarding path to be updated to the forwarding hardware.
15. The method according to claim 10, wherein the method further comprises:
and under the result of unsuccessful matching, the data to be transmitted is sent to a fourth virtual forwarding device running on the second processing unit through the second virtual forwarding device, and data forwarding is carried out.
16. The method of claim 15, wherein the method further comprises:
matching the data to be transmitted with at least one forwarding path in the fourth virtual forwarding device, and determining a matched forwarding path;
generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted;
and sending the at least one forwarding path to be updated to the second virtual forwarding device and the forwarding hardware.
17. The method of claim 16, wherein the method further comprises:
generating at least one forwarding path to be updated meeting the processing of the forwarding hardware according to at least one forwarding path determined for at least one data to be transmitted;
And sending the processable at least one forwarding path to be updated to the forwarding hardware.
18. The method of claim 13, wherein said sending the at least one forwarding path to be updated into the forwarding hardware comprises:
transmitting the forwarding path to be updated to a first conversion device through the third virtual forwarding device;
and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware by the first conversion equipment, and sending the forwarding path to the forwarding hardware.
19. The method of claim 16, wherein said sending the at least one forwarding path to be updated into the forwarding hardware comprises:
transmitting the forwarding path to be updated to a second conversion device through the fourth virtual forwarding device;
and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware by the second conversion equipment, and sending the forwarding path to the forwarding hardware.
20. The method according to claim 1, wherein the method further comprises:
Acquiring a current network connection state from the data to be transmitted through the forwarding hardware;
and according to the network connection state, sending the data to be transmitted which cannot be processed by the forwarding hardware to the first virtual forwarding equipment for data sending.
21. The method according to claim 1, wherein the method further comprises:
acquiring a current network connection state from the data to be transmitted through the forwarding hardware;
and according to the network connection state, sending the data to be transmitted which cannot be processed by the forwarding hardware to the second virtual forwarding equipment for data sending.
22. The method of claim 20, wherein the method further comprises:
and after the data to be transmitted is sent by the first virtual forwarding device, deleting a corresponding forwarding path existing in the forwarding hardware by the first virtual forwarding device according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
23. The method of claim 22, wherein the method further comprises:
if the first virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to a third virtual forwarding device;
And after the data to be transmitted is sent by the third virtual forwarding device, deleting a corresponding forwarding path existing in the forwarding hardware by the third virtual forwarding device according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
24. The method of claim 21, wherein the method further comprises:
and after the data to be transmitted is sent by the second virtual forwarding device, deleting a corresponding forwarding path existing in the forwarding hardware by the second virtual forwarding device according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
25. The method of claim 24, wherein the method further comprises:
if the second virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to a fourth virtual forwarding device;
and after the data to be transmitted is sent by the fourth virtual forwarding device, deleting a corresponding forwarding path existing in the forwarding hardware by the fourth virtual forwarding device according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
26. The method of claim 13, wherein said sending the at least one forwarding path to be updated into the forwarding hardware comprises:
transmitting, by at least one of the first processing units, the at least one forwarding path to be updated to a queue;
and sending the at least one forwarding path to be updated in the queue to forwarding hardware through one first processing unit.
27. The method of claim 16, wherein said sending the at least one forwarding path to be updated into the forwarding hardware comprises:
transmitting, by at least one of the second processing units, the at least one forwarding path to be updated to a queue;
and sending the at least one forwarding path to be updated in the queue to forwarding hardware through the second processing unit.
28. The method of claim 11, wherein the method further comprises:
and creating a first virtual transmission device corresponding to the virtual device according to the device hardware resources of the transmission device.
29. The method of any of claims 1-28, wherein the transmission device comprises a network card; the forwarding hardware comprises an editable electronic device with processing functionality, an integrated circuit with processing functionality or an editable chip with processing functionality.
30. The method of any of claims 1-28, wherein the transmitting device comprises forwarding hardware with processing capabilities, and wherein the virtual device is a device that creates a separate operating environment in dependence on the computing device.
31. A data transmission method, characterized in that it is suitable for a transmission device with forwarding hardware; the method comprises the following steps:
receiving data to be transmitted, which are transmitted between at least one virtual device and an external device in the computing device, through the forwarding hardware;
determining a forwarding path of the data to be transmitted through the forwarding hardware;
sending out the data to be transmitted according to the forwarding path through the forwarding hardware;
the transmission apparatus further includes: the system comprises an independent processing unit, a first virtual forwarding device and a second virtual forwarding device, wherein the first virtual forwarding device runs on the processing unit; wherein the method further comprises: matching the data to be transmitted with at least one forwarding path in the forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment through the forwarding hardware under the unmatched result, and forwarding the data.
32. The method of claim 31, wherein the transmission device is disposed in the computing device.
33. The method of claim 31, wherein the sending the data to be transmitted to the first virtual forwarding appliance via the forwarding hardware for data forwarding comprises:
receiving the data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment;
under the result of successful matching, determining a matched forwarding path;
and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
34. The method according to claim 33, wherein in case the external device sends data to the at least one virtual device, the sending the data to be transmitted according to the forwarding path comprises:
determining, by the first virtual forwarding device, a virtual transmission device according to a virtual transmission identifier in the forwarding path, where the virtual transmission device is created based on the transmission device;
and determining the corresponding virtual device according to the virtual transmission device through the first virtual forwarding device, and sending the data to be transmitted to the corresponding virtual device.
35. The method of claim 33, wherein the method further comprises:
and under the result of unsuccessful matching, the data to be transmitted is sent to a second virtual forwarding device running on the processing unit through the first virtual forwarding device, and data forwarding is carried out.
36. The method of claim 35, wherein the method further comprises:
matching the data to be transmitted with at least one forwarding path in the second virtual forwarding device, and determining a matched forwarding path;
generating at least one forwarding path to be updated according to at least one forwarding path determined for at least one data to be transmitted;
and sending the at least one forwarding path to be updated to the first virtual forwarding device and the forwarding hardware.
37. The method of claim 36, wherein said sending the at least one forwarding path to be updated into the forwarding hardware comprises:
transmitting the forwarding path to be updated to a conversion device through the second virtual forwarding device;
and converting the forwarding path to be updated into a forwarding path identifiable by the forwarding hardware according to the type of the forwarding hardware through the conversion equipment, and sending the forwarding path to the forwarding hardware.
38. The method of claim 33, wherein the method further comprises:
acquiring a current network connection state from the data to be transmitted through the forwarding hardware;
and according to the network connection state, sending the data to be transmitted which cannot be processed by the forwarding hardware to the first virtual forwarding equipment for data sending.
39. The method of claim 38, wherein the method further comprises:
and after the data to be transmitted is sent by the first virtual forwarding device, deleting a corresponding forwarding path existing in the forwarding hardware by the first virtual forwarding device according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
40. The method of claim 39, further comprising:
if the first virtual forwarding device does not have a forwarding path of the data to be transmitted, the data to be transmitted is sent to a second virtual forwarding device;
and after the data to be transmitted is sent by the second virtual forwarding device, deleting a corresponding forwarding path existing in the forwarding hardware by the second virtual forwarding device according to the network connection state, wherein the corresponding forwarding path belongs to the forwarding path of the data to be transmitted.
41. The method of claim 36, wherein said sending the at least one forwarding path to be updated into the forwarding hardware comprises:
transmitting, by at least one processing unit, the at least one forwarding path to be updated to a queue;
and sending the at least one forwarding path to be updated in the queue to forwarding hardware through one processing unit.
42. The method of claim 31, wherein, in the case where the external device sends data to the at least one virtual device, the sending, by the forwarding hardware, the data to be transmitted according to the forwarding path includes:
determining corresponding virtual equipment according to the forwarding path through the forwarding hardware;
and sending the data to be transmitted to the virtual equipment through the forwarding hardware.
43. The method of claim 42, wherein said determining, by said forwarding hardware, a corresponding virtual device from said forwarding path comprises:
determining, by the forwarding hardware, a virtual transmission device according to a virtual transmission identifier in the forwarding path, where the virtual transmission device is created based on the transmission device;
And determining the corresponding virtual equipment according to the virtual transmission equipment through the forwarding hardware.
44. The method of claim 31, wherein the forwarding hardware is hardware with processing capabilities.
45. A method of data transmission, characterized in that it is adapted to forwarding hardware; the forwarding hardware is arranged in a transmission device, and the transmission device is arranged in a computing device; the transmission apparatus further includes: the system comprises an independent processing unit, a first virtual forwarding device and a second virtual forwarding device, wherein the first virtual forwarding device runs on the processing unit; the method comprises the following steps:
receiving data to be transmitted, which is transmitted between at least one virtual device and an external device in the computing device;
determining a forwarding path of the data to be transmitted;
sending out the data to be transmitted according to the forwarding path;
wherein the method further comprises: matching the data to be transmitted with at least one forwarding path in the forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment to forward the data under the unmatched result.
46. The method of claim 45, wherein, in the case where the external device sends data to the at least one virtual device, sending the data to be transmitted according to the forwarding path includes:
Determining corresponding virtual equipment according to the forwarding path;
and sending the data to be transmitted to the virtual equipment.
47. The method of claim 46, wherein said determining a corresponding virtual device from said forwarding path comprises:
determining virtual transmission equipment according to the virtual transmission identification in the forwarding path, wherein the virtual transmission equipment is created based on the transmission equipment;
and determining the corresponding virtual equipment according to the virtual transmission equipment through the forwarding hardware.
48. The method of claim 45, wherein the sending the data to be transmitted to the first virtual forwarding appliance for data forwarding comprises:
receiving the data to be transmitted through the first virtual forwarding equipment, and matching the data to be transmitted with at least one forwarding path in the first virtual forwarding equipment;
under the result of successful matching, determining a matched forwarding path;
and sending the data to be transmitted according to the forwarding path through the first virtual forwarding equipment.
49. The method of claim 48, wherein, in the case where the external device sends data to the at least one virtual device, the sending the data to be transmitted according to the forwarding path includes:
Determining, by the first virtual forwarding device, a virtual transmission device according to a virtual transmission identifier in the forwarding path;
and determining the corresponding virtual device according to the virtual transmission device through the first virtual forwarding device, and sending the data to be transmitted to the corresponding virtual device.
50. The method of claim 48, further comprising:
and under the result of unsuccessful matching, the data to be transmitted is sent to a second virtual forwarding device running on the processing unit through the first virtual forwarding device, and data forwarding is carried out.
51. The method of claim 45, wherein the forwarding hardware is hardware with processing capabilities.
52. An intelligent network card, characterized in that the intelligent network card is arranged on a computing device, and the computing device comprises at least one virtual device; the intelligent network card comprises: forwarding hardware, an independent processing unit, wherein a first virtual forwarding device is operated on the processing unit;
the intelligent network card receives data to be transmitted, which are transmitted between at least one virtual device and external devices in the computing device, through the forwarding hardware;
Determining a forwarding path of the data to be transmitted through the forwarding hardware;
sending out the data to be transmitted according to the forwarding path through the forwarding hardware;
the forwarding hardware matches the data to be transmitted with at least one forwarding path in the forwarding hardware; and sending the data to be transmitted to the first virtual forwarding equipment to forward the data under the unmatched result.
53. The intelligent network card of claim 52, wherein the first virtual forwarding appliance receives the data to be transmitted and matches the data to be transmitted with at least one forwarding path in the first virtual forwarding appliance;
under the result of successful matching, determining a matched forwarding path;
and sending the data to be transmitted according to the forwarding path.
54. The intelligent network card according to claim 53, wherein in the case where the external device sends data to the at least one virtual device, the first virtual forwarding device determines a virtual transmission device according to a virtual transmission identifier in the forwarding path, the virtual transmission device being created based on the intelligent network card;
And determining the corresponding virtual equipment according to the virtual transmission equipment, and sending the data to be transmitted to the corresponding virtual equipment.
55. The intelligent network card according to claim 53, wherein,
and under the result of unsuccessful matching, the first virtual forwarding device sends the data to be transmitted to a second virtual forwarding device running on the processing unit to forward the data.
56. The intelligent network card of any one of claims 52-55, wherein the forwarding hardware comprises: FPGA hardware, ASIC hardware, and tofeno hardware.
57. The intelligent network card of claim 56, wherein said forwarding hardware is hardware with processing capabilities; the virtual device refers to a device that creates an independent operating environment depending on the computing device.
58. A computing device comprising the intelligent network card of any of claims 52-57.
59. A computing device comprising a transmitting device and at least one virtual device, the transmitting device comprising forwarding hardware; the computing device further includes: a memory and a processor;
the memory is used for storing a computer program;
Processor for executing a computer program for performing the method of transmitting data according to claim 1.
60. An electronic device, comprising a memory unit and a logic unit;
the storage unit is used for storing an electronic device program;
the logic unit is configured to execute a logic function of an electronic device program for executing the data transmission method of claim 45.
61. A computer readable storage medium storing a computer program, which when executed by one or more processors causes the one or more processors to implement the steps in the method of any one of claims 1-51.
CN202010426297.3A 2020-05-19 2020-05-19 Data transmission method, intelligent network card, computing device and storage medium Active CN113691466B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010426297.3A CN113691466B (en) 2020-05-19 2020-05-19 Data transmission method, intelligent network card, computing device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010426297.3A CN113691466B (en) 2020-05-19 2020-05-19 Data transmission method, intelligent network card, computing device and storage medium

Publications (2)

Publication Number Publication Date
CN113691466A CN113691466A (en) 2021-11-23
CN113691466B true CN113691466B (en) 2023-08-18

Family

ID=78575918

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010426297.3A Active CN113691466B (en) 2020-05-19 2020-05-19 Data transmission method, intelligent network card, computing device and storage medium

Country Status (1)

Country Link
CN (1) CN113691466B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666363B (en) * 2022-02-25 2024-03-01 阿波罗智联(北京)科技有限公司 Information transmission method, device, electronic equipment, storage medium and product
CN114679349B (en) * 2022-03-29 2023-07-21 新华三技术有限公司 Data communication method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752147A (en) * 2012-07-17 2012-10-24 华为技术有限公司 Method and device for creating network equipment
CN110417683A (en) * 2019-07-24 2019-11-05 新华三大数据技术有限公司 Message processing method, device and server
CN110990116A (en) * 2019-11-21 2020-04-10 优刻得科技股份有限公司 Method, device and system for transmitting data between intelligent network card and virtual machine

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130138764A1 (en) * 2011-11-30 2013-05-30 Soumendu S. Satapathy Method and system for virtual machine data migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752147A (en) * 2012-07-17 2012-10-24 华为技术有限公司 Method and device for creating network equipment
CN110417683A (en) * 2019-07-24 2019-11-05 新华三大数据技术有限公司 Message processing method, device and server
CN110990116A (en) * 2019-11-21 2020-04-10 优刻得科技股份有限公司 Method, device and system for transmitting data between intelligent network card and virtual machine

Also Published As

Publication number Publication date
CN113691466A (en) 2021-11-23

Similar Documents

Publication Publication Date Title
CN112422615B (en) Communication method and device
EP3057272B1 (en) Technologies for concurrency of cuckoo hashing flow lookup
US10621138B2 (en) Network communications using pooled memory in rack-scale architecture
US20210089236A1 (en) Network device intermediary for memory access requests
CN113746749A (en) Network connection device
CN113485822A (en) Memory management method, system, client, server and storage medium
CN113691466B (en) Data transmission method, intelligent network card, computing device and storage medium
US20200274832A1 (en) Rdma transport with hardware integration and out of order placement
US20200364080A1 (en) Interrupt processing method and apparatus and server
US20240152290A1 (en) Data writing method, data reading method, apparatus, device, system, and medium
CN112995261A (en) Configuration method and device of service table, network equipment and storage medium
CN115396528A (en) Quic data transmission method and device based on protocol family
CN114296646B (en) Caching method and device based on IO service, server and storage medium
CN115202573A (en) Data storage system and method
CN116501657B (en) Processing method, equipment and system for cache data
WO2023029485A1 (en) Data processing method and apparatus, computer device, and computer-readable storage medium
CN116032837A (en) Flow table unloading method and device
CN114595080A (en) Data processing method and device, electronic equipment and computer readable storage medium
CN113691465B (en) Data transmission method, intelligent network card, computing device and storage medium
CN116418848A (en) Method and device for processing configuration and access requests of network nodes
WO2018106392A1 (en) Technologies for multi-core wireless network data transmission
CN116346382A (en) Method and device for blocking malicious TCP connection and electronic equipment
CN116136790A (en) Task processing method and device
CN111865801B (en) Virtio port-based data transmission method and system
US10664407B2 (en) Dual first and second pointer for memory mapped interface communication with lower indicating process

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40062883

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant