[go: up one dir, main page]

CN111431757B - Virtual network flow acquisition method and device - Google Patents

Virtual network flow acquisition method and device Download PDF

Info

Publication number
CN111431757B
CN111431757B CN202010098775.2A CN202010098775A CN111431757B CN 111431757 B CN111431757 B CN 111431757B CN 202010098775 A CN202010098775 A CN 202010098775A CN 111431757 B CN111431757 B CN 111431757B
Authority
CN
China
Prior art keywords
acquisition module
kernel
address
ring buffer
buffer area
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
CN202010098775.2A
Other languages
Chinese (zh)
Other versions
CN111431757A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202010098775.2A priority Critical patent/CN111431757B/en
Publication of CN111431757A publication Critical patent/CN111431757A/en
Priority to PCT/CN2020/119067 priority patent/WO2021164262A1/en
Application granted granted Critical
Publication of CN111431757B publication Critical patent/CN111431757B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Systems (AREA)

Abstract

The invention discloses a method and a device for acquiring flow of a virtual network, relates to the technical field of virtual machines, and aims to solve the problem of excessive flow acquisition overhead in the prior art. The method mainly comprises the following steps: initializing a software running environment for flow acquisition; establishing a communication channel; the user mode acquisition module applies for a large page of memory and creates an annular cache region on the large page of memory; the kernel acquisition module receives a physical address of a large page of memory, maps the physical address of the large page of memory into a linear address of a kernel address space, and acquires a buffer area address of an annular buffer area in the kernel acquisition module; the kernel acquisition module acquires the data packet received by the virtual switch and stores the data packet into a ring buffer according to the address of the buffer; and if monitoring that the ring buffer area is updated, the user state acquisition module accesses the ring buffer area and acquires a data packet, and counts the data flow flowing through the virtual switch. The method is mainly applied to the flow acquisition process.

Description

Virtual network flow acquisition method and device
Technical Field
The invention relates to the technical field of virtual machines, in particular to a method and a device for acquiring flow of a virtual network.
Background
For data center network performance management and network optimization, traffic needs to be collected and analyzed, and network traffic is changed from invisible to visible. As virtualization and cloud applications become wider, more network traffic occurs between virtual machines on the same host, even though network traffic between virtual machines has taken up 80% of the total traffic to the data center.
In the prior art, a preferred user mode acquisition unit performs network PACKET monitoring on a target virtual network card in a shared memory by calling an AF _ PACKET socket interface through a system, then a kernel acquisition unit maps newly added network PACKETs to the shared memory by mmap-placing the received network PACKETs, and finally, the user mode unit acquires the newly added network PACKETs when detecting that the newly added network PACKETs exist in the shared memory, thereby completing flow acquisition.
In the prior art, the user mode unit calls the AF _ PACKET interface for each network PACKET, the system call cost is large, the call frequency is high, the consumed resources are more, the memory mmap of each network PACKET is shared, the cost is large, and the memory is scattered and is difficult to manage. The network flow between the virtual machines has too much traffic, so that the overhead is too large when the traffic is collected.
Disclosure of Invention
In view of this, the present invention provides a method and an apparatus for acquiring traffic of a virtual network, and mainly aims to solve the problem of excessive overhead of acquiring traffic in the prior art.
According to an aspect of the present invention, there is provided a traffic collection method for a virtual network, including:
initializing a software running environment for flow collection of a user state collection module and a kernel collection module;
establishing a communication channel, wherein the communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module;
the user mode acquisition module applies for a large-page memory, creates an annular cache region on the large-page memory, and transmits a physical address of the large-page memory to the kernel acquisition module through the communication channel;
the kernel acquisition module receives the physical address of the large-page memory, maps the physical address of the large-page memory into a linear address of a kernel address space, and acquires the address of the ring buffer in the buffer area of the kernel acquisition module;
the kernel acquisition module acquires a data packet received by a virtual switch, stores the data packet into the ring buffer according to the buffer address and updates the write pointer position of the ring buffer;
and if monitoring that the ring buffer area is updated, the user state acquisition module accesses the ring buffer area and acquires the data packet, counts the data flow passing through the virtual switch, and updates the position of a read pointer of the ring buffer area.
According to another aspect of the present invention, there is provided a traffic collection apparatus for a virtual network, including:
the initialization unit is used for initializing the software running environment for flow acquisition of the user state acquisition module and the kernel acquisition module;
the channel establishing unit is used for establishing a communication channel, and the communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module;
the cache creating unit is used for the user mode acquisition module to apply for a large-page memory, create an annular cache region on the large-page memory and transmit a physical address of the large-page memory to the kernel acquisition module through the communication channel;
the address acquisition unit is used for receiving the physical address of the large-page memory by the kernel acquisition module, mapping the physical address of the large-page memory into a linear address of a kernel address space and acquiring the buffer area address of the annular buffer area in the kernel acquisition module;
the data storage unit is used for acquiring a data packet received by the virtual switch by the kernel acquisition module, storing the data packet to the ring buffer according to the address of the buffer, and updating the position of a write pointer of the ring buffer;
and the flow counting unit is used for accessing the ring buffer area and acquiring the data packet if the user state acquisition module monitors that the ring buffer area is updated, counting the data flow flowing through the virtual switch and updating the position of a reading pointer of the ring buffer area.
According to another aspect of the present invention, a storage medium is provided, where at least one executable instruction is stored in the storage medium, and the executable instruction causes a processor to perform an operation corresponding to the traffic collection method of the virtual network.
According to still another aspect of the present invention, there is provided a computer apparatus comprising:
the system comprises a processor, a memory, a communication interface and a communication bus, wherein the processor, the memory and the communication interface complete mutual communication through the communication bus;
the memory is used for storing at least one executable instruction, and the executable instruction enables the processor to execute the operation corresponding to the flow acquisition method of the virtual network.
By the technical scheme, the technical scheme provided by the embodiment of the invention at least has the following advantages:
the invention provides a method and a device for acquiring flow of a virtual network, which comprises the steps of firstly initializing a software running environment for acquiring flow, then establishing a communication channel between a user mode acquisition module and a kernel acquisition module, then applying for a large page memory by the user mode acquisition module, creating a ring buffer area on the large page memory, transmitting a physical address of the large page memory to the kernel acquisition module through the communication channel, mapping the physical address of the large page memory into a linear address of a kernel address space by the kernel acquisition module, acquiring a buffer area address of the ring buffer area in the kernel acquisition module, acquiring a data packet received by a virtual switch by the kernel acquisition module, storing the data packet to the ring buffer area according to the buffer area address, updating a write pointer position of the ring buffer area, and finally accessing the ring buffer area and acquiring the data packet if the user mode acquisition module monitors that the ring area is updated, counting data flow flowing through the virtual switch, and updating a read pointer position of the ring buffer area. Compared with the prior art, the embodiment of the invention directly reads the acquired data packet through the annular buffer area by the user mode acquisition module, has no copying overhead and system calling overhead, and has extremely low resource consumption. The kernel acquisition module transmits the acquisition data packet to the user state acquisition module through the annular buffer area, and the kernel acquisition module and the user state acquisition module reduce the system overhead through the synchronization of the write pointer position and the read pointer position in the annular buffer area. In the flow collection process, the minimum granularity of the monitoring object is a virtual switch, and the virtual machine and the network performance are monitored under the condition that the virtual machine is not invaded to ensure the safety and the performance of the virtual network.
The foregoing description is only an overview of the technical solutions of the present invention, and the embodiments of the present invention are described below in order to make the technical means of the present invention more clearly understood and to make the above and other objects, features, and advantages of the present invention more clearly understandable.
Drawings
Various other advantages and benefits will become apparent to those of ordinary skill in the art upon reading the following detailed description of the preferred embodiments. The drawings are only for purposes of illustrating the preferred embodiments and are not to be construed as limiting the invention. Also, like reference numerals are used to refer to like parts throughout the drawings. In the drawings:
fig. 1 shows a flow chart of a traffic collection method for a virtual network according to an embodiment of the present invention;
fig. 2 is a flowchart illustrating a traffic collection method for another virtual network according to an embodiment of the present invention;
fig. 3 is a block diagram illustrating a flow collection apparatus of a virtual network according to an embodiment of the present invention;
fig. 4 is a block diagram illustrating a flow collection apparatus of another virtual network according to an embodiment of the present invention;
fig. 5 is a schematic structural diagram of a computer device according to an embodiment of the present invention.
Detailed Description
Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
The traffic collection environment of the embodiment of the invention can be between the virtual machines on the same host machine or between the virtual machines on different host machines. The embodiment of the invention relates to a software method running on a host machine, which mainly comprises a user mode acquisition module, an annular buffer area and a kernel acquisition module. The kernel acquisition module is mainly used for acquiring data packets received by the virtual switch and storing the data packets to the ring buffer area, and the user mode acquisition module is mainly used for acquiring the data packets in the ring buffer area so as to count the flow flowing through the virtual switch. An embodiment of the present invention provides a method for acquiring traffic of a virtual network, and as shown in fig. 1, the method includes:
101. initializing software running environments for flow collection of the user mode collection module and the kernel collection module.
The initialization of the software running environment refers to the software environment, the function library and the carrying running environment used for loading the user mode acquisition module and the kernel acquisition module.
102. A communication channel is established.
The communication channel is a data transmission channel, and in the embodiment of the present invention, the communication channel is a logical channel, specifically, a logical channel implemented by both sides of sending and receiving signals through an intermediate node on the basis of a physical channel. The communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module. And establishing a communication channel, namely establishing a logic path between the user mode acquisition module and the kernel acquisition module.
103. The user mode acquisition module applies for a large-page memory, creates an annular cache region on the large-page memory, and transmits the physical address of the large-page memory to the kernel acquisition module through the communication channel.
If a large-page memory is used in the system, the number of memory pages is reduced, so that fewer page tables are needed, the memory amount occupied by the page tables is saved, the required address translation is also reduced, the number of times of TLB cache invalidation is reduced, and the memory access performance is improved. In addition, because the information required by address translation is generally stored in the cache of the CPU, the use of the large-page memory reduces the address translation information, thereby reducing the use of the cache of the CPU, relieving the pressure of the cache of the CPU, enabling the cache of the CPU to be more used for the data cache of the application program, and also improving the performance of the system as a whole. Especially, the performance of the host machine can be obviously improved by using the large-page memory in the host machine of the memory access intensive virtual machine. The large-page memory is beneficial to virtual memory management of a Linux system, can define the page size of 1GB, and can reserve part of memory for an application program. The reserved large page memory is reserved all the time and cannot be swapped out of the memory unless the memory configuration is modified. The large-page memory applied by the user mode acquisition module, namely the large-page memory belongs to the user mode acquisition module.
A circular buffer is a data structure used to represent a fixed-size, head-to-tail vector buffer, suitable for buffering data streams, for storing data sent and received in a communication. The ring buffer is a first-in-first-out circular buffer that provides the communication program with mutually exclusive access to the buffer. And creating a ring buffer area on the large-page memory, wherein the position of the ring buffer area can be determined according to the relative position relation between the large-page memory and the ring buffer area. If the physical address of the large page of memory can be determined, after the ring buffer is created, the physical address of the ring buffer can be determined. The physical address of the large page of the memory applied by the user mode acquisition module is transmitted to the kernel acquisition module through the communication channel, which is equivalent to that the kernel acquisition module can receive the physical address of the large page of the memory and can calculate the physical address of the annular buffer area at the same time.
104. And the kernel acquisition module receives the physical address of the large-page memory, maps the physical address of the large-page memory into a linear address of a kernel address space, and acquires the buffer area address of the annular buffer area in the kernel acquisition module.
The kernel acquisition module receives the physical address of the large-page memory, maps the large-page memory into a linear address according to the physical address of the large-page memory, the physical address of the ring buffer area and the kernel address space, and maps the ring buffer area into a buffer area address.
105. And the kernel acquisition module acquires a data packet received by the virtual switch, stores the data packet to the ring buffer according to the buffer address, and updates the write pointer position of the ring buffer.
When the kernel acquisition module acquires the data packet received by the virtual switch, the sampling proportion of the kernel acquisition module may be 1:1, or 1: and n, determining the sampling proportion according to the subsequent flow acquisition effect, wherein the sampling proportion is not limited in the embodiment of the invention. The kernel acquisition module acquires data packets received by the virtual switch and stores the data packets to the ring buffer area, and each data packet corresponds to one acquisition record and occupies a fixed-size space of the ring buffer area. In the process of collecting the data packet, the header of the data packet can be collected, and the whole data packet can also be collected.
106. And if monitoring that the annular buffer area is updated, the user state acquisition module accesses the annular buffer area and acquires the data packet, counts the data flow flowing through the virtual switch, and updates the position of a read pointer of the annular buffer area.
After the user state acquisition module acquires the data packets in the annular buffer area, the data flow can be counted, the number of the data packets can be counted, and the data flow can be analyzed in detail. The virtual network is monitored according to the data traffic to improve network performance, improve network transmission capability, analyze network channel utilization, and the like.
The invention provides a flow acquisition method of a virtual network, which comprises the steps of initializing a software running environment for flow acquisition, establishing a communication channel between a user mode acquisition module and a kernel acquisition module, applying for a large page memory by the user mode acquisition module, creating a ring cache region on the large page memory, transmitting a physical address of the large page memory to the kernel acquisition module through the communication channel, mapping the physical address of the large page memory into a linear address of a kernel address space by the kernel acquisition module, acquiring a buffer region address of the ring buffer region in the kernel acquisition module, acquiring a data packet received by a virtual switch by the kernel acquisition module, storing the data packet to the ring buffer region according to the buffer region address, updating a write pointer position of the ring buffer region, accessing the ring buffer region and acquiring the data packet if the user mode acquisition module monitors that the ring buffer region is updated, counting data flow flowing through the virtual switch, and updating a read pointer position of the ring buffer region. Compared with the prior art, the embodiment of the invention directly reads the acquired data packet through the annular buffer area by the user mode acquisition module, has no copying overhead and system calling overhead, and has extremely low resource consumption. The kernel acquisition module transmits the acquisition data packet to the user state acquisition module through the annular buffer area, and the kernel acquisition module and the user state acquisition module reduce the system overhead through the synchronization of the write pointer position and the read pointer position in the annular buffer area. In the flow collection process, the minimum granularity of the monitoring object is a virtual switch, and the virtual machine and the network performance are monitored under the condition that the virtual machine is not invaded to ensure the safety and the performance of the virtual network.
An embodiment of the present invention provides another method for acquiring a traffic of a virtual network, and as shown in fig. 2, the method includes:
201. initializing software running environments for flow collection of the user mode collection module and the kernel collection module.
The initialization of the software running environment refers to the software environment, the function library and the carrying running environment used for loading the user mode acquisition module and the kernel acquisition module.
202. A communication channel is established.
The communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module. And establishing a communication channel, namely establishing a logic path between the user mode acquisition module and the kernel acquisition module. The communication channel may be a Netlink channel, a pipe channel, or a Socket channel. The Netlink channel is a special Socket channel, and the two channels are established in a similar manner.
If the communication channel is a Netlink channel, establishing the communication channel, including: creating a socket according to a socket creating function; setting a local address and a destination address of the socket, wherein the local address is a physical address of the user mode acquisition module, and the destination address is a physical address of the kernel acquisition module; and if the first monitoring function monitors that the socket receives a connection request, establishing the communication channel.
The Netlink socket is a special inter-process communication (IPC) for realizing communication between a user process and a kernel process, and is the most common interface for a network application program to communicate with the kernel. The netlink channel is easily applied by socket (), bind (), connect (), list (), sendmsg (), recvmsg () and close (). netlink is contained in the header file linux/netlink. Where socket () is used to create a socket. bind () is used to specify a local address. A socket is created with socket () that has not actually been associated with any particular local or destination address. Once a socket is created, a local address must be established for the socket using the bind () system call. connect () is used to connect the socket to the destination address. listen () is used to set the wait for connection state. For a server program, after applying for a socket and calling bind () to the local address, it should wait for a client program to request a connection. list () is a function that sets a socket to this state. sendmsg () and recvmsg () are used to transmit and receive data. In the data flow mode, after a connection is established, or in the datagram mode, after connection () is called to bind a socket and a destination address, functions of sendmsg () and recvmsg () can be called to perform data transmission. clossocket () is used to close the socket.
If the communication channel is a pipe channel, establishing a communication channel, including: establishing the pipeline channel according to a creating function in the user mode acquisition module; and if the second monitoring function monitors that the kernel acquisition module sends a connection request, connecting the user mode acquisition module and the kernel acquisition module through the pipeline channel.
When a pipeline channel is created, a page size is allocated to a buffer area, a plain byte stream is transmitted by the pipeline, and a reading party and a writing party of the pipeline are required to define the format of data in advance. The creation process uses the specific function creation to which the pipe channel belongs, such as creating function CreateNamedPipe (), listening function ConnectNamedPipe (), data transfer function ReadFile () and WriteFile (), and closing function CloseHandle ().
203. The user mode acquisition module applies for a large-page memory, creates an annular cache region on the large-page memory, and transmits the physical address of the large-page memory to the kernel acquisition module through the communication channel.
In a multi-core and NUMA architecture server, large pages of memory may be allocated in local memory for each NUMA, creating a separate ring buffer for each CPU core. In virtual memory management, a kernel maintains a table that maps virtual memory addresses to physical addresses, and for each page operation, the kernel needs to load the relevant mappings. If the memory pages are small, the number of pages to be loaded is large, resulting in more mapping tables being loaded by the kernel and reducing performance. With "large memory pages", fewer pages are required. Therefore, the number of mapping tables loaded by the kernel is greatly reduced, the performance of the kernel level is improved, and the performance of the application program is finally facilitated. In short, by enabling "large memory pages," the system has to process fewer page mapping tables, thereby reducing the overhead of accessing/maintaining them.
And searching a data transmission function corresponding to the type of the communication channel, and transmitting the physical address of the large-page memory to the kernel acquisition module according to the data transmission function. Illustratively, sendmg () in Netlink sockets, writeFile in pipe communication, and send () and sendto () in socket are used to send the physical address.
204. And the kernel acquisition module receives the physical address of the large-page memory and acquires the memory allocation relation between the host machine and the virtual machine.
When the user mode acquisition module and the kernel acquisition module receive and transmit data, a response mechanism can be set, and effective transmission of the physical address is also ensured. For example, after the kernel acquisition module receives the physical address of the large-page memory, the received message needs to be fed back to the user mode acquisition module, the received message may carry header information of the physical address, and the user mode module may correct whether the received message is correct after receiving the feedback message of the kernel acquisition module.
In order to store the data packet in the large-page memory, in this step, a memory allocation relationship between the host and the virtual machine needs to be obtained, where the allocation relationship is already formed when the virtual machine is established in the host, and only needs to be obtained in a path for storing the allocation relationship.
205. And the kernel acquisition module maps the physical address of the large-page memory into a linear address of the kernel address space according to the memory allocation relation.
206. And the kernel acquisition module calculates the buffer area address of the annular buffer area in the kernel acquisition module according to the address allocation relation of the linear address, the large-page memory and the annular buffer area.
The kernel acquisition module maps the large-page memory into a linear address according to the physical address of the large-page memory, the physical address of the ring buffer and the kernel address space, and maps the ring buffer into a buffer address.
207. And the kernel acquisition module acquires a data packet received by the virtual switch, stores the data packet to the ring buffer according to the buffer address, and updates the write pointer position of the ring buffer.
When the kernel acquisition module acquires the data packet received by the virtual switch, the sampling proportion of the kernel acquisition module may be 1:1, or 1: and n, determining the sampling proportion according to the subsequent flow acquisition effect, wherein the sampling proportion is not limited in the embodiment of the invention. The kernel acquisition module acquires data packets received by the virtual switch and stores the data packets to the ring buffer area, and each data packet corresponds to one acquisition record and occupies a fixed-size space of the ring buffer area. In the process of collecting the data packet, the header of the data packet can be collected, and the whole data packet can also be collected.
Actually, the virtual switch has multiple types, so the kernel acquisition module acquires the data packet received by the virtual switch, and specifically includes: judging the type of the virtual switch, wherein the type comprises Linux Bridge and OpenvSwitch; if the type of the virtual switch is Linux Bridge, the kernel acquisition module registers a hook function, switches into the kernel acquisition module according to the hook function, and acquires a data packet received by the virtual switch; and if the type of the virtual switch is OpenvSwitch, the kernel acquisition module executes an acquisition action in the management operation flow by using a flow table structure ovs datapath, and acquires the data packet received by the virtual switch.
When saving the data packet, the method specifically comprises the following steps: acquiring the position of the write pointer; and storing the data packet in the ring buffer area from the write pointer position in the buffer area address, and updating the write pointer position. The write pointer refers to the location in the ring buffer where data is to be written.
208. And if monitoring that the ring buffer area is updated, the user state acquisition module accesses the ring buffer area and acquires the data packet, counts the data flow passing through the virtual switch, and updates the position of a read pointer of the ring buffer area.
The obtaining of the data packet specifically comprises: acquiring the current write pointer position and storing the current write pointer position; and if the current write pointer position is different from the write pointer position stored last time, accessing and acquiring a data packet in the ring buffer, wherein the data packet is stored between the read pointer position and the current write pointer position of the ring buffer.
The ring buffer is monitored for the presence of an update packet by detecting the position of the write pointer in the ring buffer. The location of the packet in the ring buffer that has not been counted is indicated by the location of the read pointer. By means of the writing pointer and the reading pointer, on the premise of reducing system overhead, the data packet is guaranteed not to be covered in the storage process and not to be read repeatedly in the reading process, and accuracy of counting quantity and flow is improved.
The invention provides a flow acquisition method of a virtual network, which comprises the steps of initializing a software running environment for flow acquisition, establishing a communication channel between a user mode acquisition module and a kernel acquisition module, applying for a large page memory by the user mode acquisition module, creating a ring cache region on the large page memory, transmitting a physical address of the large page memory to the kernel acquisition module through the communication channel, mapping the physical address of the large page memory into a linear address of a kernel address space by the kernel acquisition module, acquiring a buffer region address of the ring buffer region in the kernel acquisition module, acquiring a data packet received by a virtual switch by the kernel acquisition module, storing the data packet to the ring buffer region according to the buffer region address, updating a write pointer position of the ring buffer region, accessing the ring buffer region and acquiring the data packet if the user mode acquisition module monitors that the ring buffer region is updated, counting data flow flowing through the virtual switch, and updating a read pointer position of the ring buffer region. Compared with the prior art, the embodiment of the invention directly reads the acquired data packet through the annular buffer area by the user mode acquisition module, has no copying overhead and system calling overhead, and has extremely low resource consumption. The kernel acquisition module transmits the acquired data packet to the user mode acquisition module through the annular buffer area, and the kernel acquisition module and the user mode acquisition module are synchronized through the write pointer position and the read pointer position in the annular buffer area, so that the system overhead is reduced. In the flow collection process, the minimum granularity of the monitoring object is a virtual switch, and the virtual machine and the network performance are monitored under the condition that the virtual machine is not invaded to ensure the safety and the performance of the virtual network.
Further, as an implementation of the method shown in fig. 1, an embodiment of the present invention provides a traffic collection device for a virtual network, and as shown in fig. 3, the device includes:
the initialization unit 31 is configured to initialize software operating environments for flow acquisition of the user mode acquisition module and the kernel acquisition module;
a channel establishing unit 32, configured to establish a communication channel, where the communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module;
a cache creating unit 33, configured to apply for a large-page memory by the user mode acquisition module, create an annular cache region on the large-page memory, and transmit a physical address of the large-page memory to the kernel acquisition module through the communication channel;
an address obtaining unit 34, configured to receive, by the kernel acquisition module, a physical address of the large-page memory, map the physical address of the large-page memory to a linear address of a kernel address space, and obtain a buffer address of the ring buffer in the kernel acquisition module;
the data storage unit 35 is configured to collect, by the kernel acquisition module, a data packet received by a virtual switch, store the data packet in the ring buffer according to the buffer address, and update a write pointer position of the ring buffer at the same time;
and a flow counting unit 36, configured to, if the user mode acquisition module monitors that the ring buffer is updated, access the ring buffer and obtain the data packet, count the data flow flowing through the virtual switch, and update the position of the read pointer in the ring buffer.
The invention provides a flow acquisition device of a virtual network, which comprises the steps of initializing a software running environment for flow acquisition, establishing a communication channel between a user mode acquisition module and a kernel acquisition module, applying for a large page memory by the user mode acquisition module, creating an annular cache region on the large page memory, transmitting a physical address of the large page memory to the kernel acquisition module through the communication channel, mapping the physical address of the large page memory into a linear address of a kernel address space by the kernel acquisition module, acquiring a buffer region address of the annular cache region in the kernel acquisition module, acquiring a data packet received by a virtual switch by the kernel acquisition module, storing the data packet to the annular cache region according to the buffer region address, updating a write pointer position of the annular cache region, accessing the annular cache region and acquiring the data packet if the user mode acquisition module monitors that the annular cache region is updated, counting data flow flowing through the virtual switch, and updating a read pointer position of the annular cache region. Compared with the prior art, the embodiment of the invention directly reads the acquired data packet through the annular buffer area by the user mode acquisition module, has no copying overhead and system calling overhead, and has extremely low resource consumption. The kernel acquisition module transmits the acquisition data packet to the user state acquisition module through the annular buffer area, and the kernel acquisition module and the user state acquisition module reduce the system overhead through the synchronization of the write pointer position and the read pointer position in the annular buffer area. In the flow collection process, the minimum granularity of the monitoring object is a virtual switch, and the virtual machine and the network performance are monitored under the condition that the virtual machine is not invaded to ensure the safety and the performance of the virtual network.
Further, as an implementation of the method shown in fig. 2, an embodiment of the present invention provides another traffic collection device for a virtual network, and as shown in fig. 4, the device includes:
the initialization unit 41 is configured to initialize software operating environments for flow acquisition of the user mode acquisition module and the kernel acquisition module;
a channel establishing unit 42, configured to establish a communication channel, where the communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module;
a cache creating unit 43, configured to apply for a large-page memory by the user mode acquisition module, create an annular cache region on the large-page memory, and transmit a physical address of the large-page memory to the kernel acquisition module through the communication channel;
an address obtaining unit 44, configured to receive the physical address of the large page memory by the kernel acquisition module, map the physical address of the large page memory into a linear address of a kernel address space, and obtain a buffer address of the ring buffer in the kernel acquisition module;
the data storage unit 45 is used for acquiring a data packet received by the virtual switch by the kernel acquisition module, storing the data packet to the ring buffer according to the address of the buffer, and updating the position of a write pointer of the ring buffer;
and a flow counting unit 46, configured to, if the user mode acquisition module monitors that the ring buffer is updated, access the ring buffer and obtain the data packet, count the data flow flowing through the virtual switch, and update the position of the read pointer in the ring buffer.
Further, the communication channel is a Netlink channel;
the channel establishing unit 42 includes:
a creating subunit 421 configured to create a socket according to the socket creating function;
a setting subunit 422, configured to set a local address and a destination address of the socket, where the local address is a physical address of the user mode acquisition module, and the destination address is a physical address of the kernel acquisition module;
a connection subunit 423, configured to establish the communication channel if the first listening function listens to the socket that the socket receives the connection request.
Further, the communication channel is a pipe channel;
the channel establishing unit 42 includes:
the creating subunit 421 is further configured to, at the user mode acquiring module, create the pipeline channel according to a creating function;
the connection subunit 423 is configured to connect the user mode acquisition module and the kernel acquisition module through the pipeline channel if the second monitoring function monitors that the kernel acquisition module sends a connection request.
Further, the cache creating unit 43 includes:
a searching subunit 431, configured to search for a transfer function corresponding to the communication channel;
a transmission subunit 432, configured to transmit the physical address of the large-page memory to the kernel acquisition module according to the transmission function.
Further, the address obtaining unit 44 includes:
an obtaining subunit 441, configured to obtain a memory allocation relationship between the host and the virtual machine;
a mapping subunit 442, configured to map, according to the memory allocation relationship, a physical address of the large-page memory to a linear address of the kernel address space;
and the computing subunit 443 is configured to compute a buffer address of the ring buffer in the kernel acquisition module according to the address allocation relationship among the linear address, the large page memory, and the ring buffer.
Further, the data storage unit 45 includes:
a determining subunit 451, configured to determine a type of the virtual switch, where the type includes Linux Bridge and OpenvSwitch;
the acquisition subunit 452 is configured to register, by the kernel acquisition module, a hook function if the type of the virtual switch is Linux Bridge, switch in the kernel acquisition module according to the hook function, and acquire a data packet received by the virtual switch;
the acquiring subunit 452 is configured to, if the type of the virtual switch is OpenvSwitch, execute an acquisition action in the management operation flow by using a flow table structure ovs datapath, and acquire a data packet received by the virtual switch.
Further, the data storage unit 45 includes:
an acquisition subunit 453 configured to acquire the write pointer position;
a storing subunit 454, configured to store the data packet in the ring buffer from the write pointer position in the buffer address, and update the write pointer position.
Further, the flow statistical unit 46 is configured to:
acquiring the current write pointer position and storing the current write pointer position;
and if the current write pointer position is different from the write pointer position stored last time, accessing and acquiring a data packet in the ring buffer, wherein the data packet is stored between the read pointer position and the current write pointer position of the ring buffer.
The invention provides a flow acquisition device of a virtual network, which comprises the steps of initializing a software running environment for flow acquisition, establishing a communication channel between a user mode acquisition module and a kernel acquisition module, applying for a large page memory by the user mode acquisition module, creating an annular cache region on the large page memory, transmitting a physical address of the large page memory to the kernel acquisition module through the communication channel, mapping the physical address of the large page memory into a linear address of a kernel address space by the kernel acquisition module, acquiring a buffer region address of the annular cache region in the kernel acquisition module, acquiring a data packet received by a virtual switch by the kernel acquisition module, storing the data packet to the annular cache region according to the buffer region address, updating a write pointer position of the annular cache region, accessing the annular cache region and acquiring the data packet if the user mode acquisition module monitors that the annular cache region is updated, counting data flow flowing through the virtual switch, and updating a read pointer position of the annular cache region. Compared with the prior art, the embodiment of the invention directly reads the acquired data packet through the annular buffer area by the user mode acquisition module, has no copying overhead and system calling overhead, and has extremely low resource consumption. The kernel acquisition module transmits the acquisition data packet to the user state acquisition module through the annular buffer area, and the kernel acquisition module and the user state acquisition module reduce the system overhead through the synchronization of the write pointer position and the read pointer position in the annular buffer area. In the flow collection process, the minimum granularity of the monitoring object is a virtual switch, and the virtual machine and the network performance are monitored under the condition that the virtual machine is not invaded to ensure the safety and the performance of the virtual network.
According to an embodiment of the present invention, a storage medium is provided, where the storage medium stores at least one executable instruction, and the computer executable instruction may execute the method for acquiring traffic of a virtual network in any method embodiment described above.
Further, fig. 5 is a schematic structural diagram illustrating a traffic collection device of a virtual network according to an embodiment of the present invention, and the specific embodiment of the present invention does not limit the specific implementation of the traffic collection device of the virtual network.
As shown in fig. 5, the traffic collection apparatus of the virtual network may include: a processor (processor) 502, a communication interface (Commun I cat I ons I interface) 504, a memory 506, and a communication bus 508.
Wherein: the processor 502, communication interface 504, and memory 506 communicate with each other via a communication bus 508.
A communication interface 504 for communicating with network elements of other devices, such as clients or other servers.
The processor 502 is configured to execute the program 510, and may specifically execute relevant steps in the foregoing embodiment of the method for acquiring traffic of the virtual network.
In particular, program 510 may include program code that includes computer operating instructions.
The processor 502 may be a central processing unit CPU, or a specific integrated circuit AS IC (App I cat I on Spec I f I C I integrated Ci rcuit), or one or more integrated circuits configured to implement embodiments of the present invention. The computer device includes one or more processors, which may be the same type of processor, such as one or more CPUs; or may be different types of processors such as one or more CPUs and one or more ASI cs.
And a memory 506 for storing a program 510. The memory 506 may comprise high-speed RAM memory, and may also include non-volatile memory (non-vo at i e memory), such as at least one disk memory.
The program 510 may be specifically configured to cause the processor 502 to perform the following operations:
initializing a software running environment for flow collection of a user state collection module and a kernel collection module;
establishing a communication channel, wherein the communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module;
the user mode acquisition module applies for a large-page memory, creates an annular cache region on the large-page memory, and transmits a physical address of the large-page memory to the kernel acquisition module through the communication channel;
the kernel acquisition module receives the physical address of the large-page memory, maps the physical address of the large-page memory into a linear address of a kernel address space, and acquires the address of the ring buffer in the buffer area of the kernel acquisition module;
the kernel acquisition module acquires a data packet received by the virtual switch, stores the data packet to the ring buffer according to the buffer address, and updates the write pointer position of the ring buffer;
and if monitoring that the ring buffer area is updated, the user state acquisition module accesses the ring buffer area and acquires the data packet, counts the data flow passing through the virtual switch, and updates the position of a read pointer of the ring buffer area.
It will be apparent to those skilled in the art that the modules or steps of the present invention described above may be implemented by a general purpose computing device, they may be centralized on a single computing device or distributed across a network of multiple computing devices, and alternatively, they may be implemented by program code executable by a computing device, such that they may be stored in a storage device and executed by a computing device, and in some cases, the steps shown or described may be performed in an order different than that described herein, or they may be separately fabricated into individual integrated circuit modules, or multiple ones of them may be fabricated into a single integrated circuit module. Thus, the present invention is not limited to any specific combination of hardware and software.
The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (10)

1. A method for collecting flow of a virtual network is characterized by comprising the following steps:
initializing software operating environments of flow collection of a user state collection module and a kernel collection module;
establishing a communication channel, wherein the communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module;
the user mode acquisition module applies for a large-page memory, creates an annular cache region on the large-page memory, and transmits a physical address of the large-page memory to the kernel acquisition module through the communication channel;
the kernel acquisition module receives the physical address of the large-page memory, maps the physical address of the large-page memory into a linear address of a kernel address space, and acquires the address of the ring buffer in the buffer area of the kernel acquisition module;
the kernel acquisition module acquires a data packet received by the virtual switch, stores the data packet to the ring buffer according to the buffer address, and updates the write pointer position of the ring buffer;
and if monitoring that the ring buffer area is updated, the user state acquisition module accesses the ring buffer area and acquires the data packet, counts the data flow passing through the virtual switch, and updates the position of a read pointer of the ring buffer area.
2. The method of claim 1, wherein the communication channel is a Netlink channel;
the establishing of the communication channel comprises:
creating a socket according to a socket creating function;
setting a local address and a destination address of the socket, wherein the local address is a physical address of the user mode acquisition module, and the destination address is a physical address of the kernel acquisition module;
and if the first monitoring function monitors that the socket receives a connection request, establishing the communication channel.
3. The method of claim 1, wherein the communication channel is a pipe channel;
the establishing of the communication channel comprises:
establishing the pipeline channel according to a creating function in the user mode acquisition module;
and if the second monitoring function monitors that the kernel acquisition module sends a connection request, connecting the user mode acquisition module and the kernel acquisition module through the pipeline channel.
4. The method of claim 1, wherein transmitting the physical address of the large page of memory to the kernel acquisition module via the communication channel comprises:
searching a transmission function corresponding to the communication channel;
and transmitting the physical address of the large-page memory to the kernel acquisition module according to the transmission function.
5. The method as claimed in claim 1, wherein said mapping the physical address of the large page memory to a linear address of a kernel address space and obtaining the buffer address of the ring buffer at the kernel acquisition module comprises:
acquiring a memory allocation relation between a host machine and a virtual machine;
mapping the physical address of the large-page memory into a linear address of the kernel address space according to the memory allocation relation;
and calculating the buffer area address of the annular buffer area in the kernel acquisition module according to the address allocation relation of the linear address, the large-page memory and the annular buffer area.
6. The method of claim 1, wherein the kernel collection module collects data packets received by a virtual switch, comprising:
judging the type of the virtual switch, wherein the type comprises Linux Bridge and OpenvSwitch;
if the type of the virtual switch is Linux Bridge, the kernel acquisition module registers a hook function, switches into the kernel acquisition module according to the hook function, and acquires a data packet received by the virtual switch;
and if the type of the virtual switch is OpenvSwitch, the kernel acquisition module executes an acquisition action in the management operation flow by using a flow table structure ovs datapath, and acquires the data packet received by the virtual switch.
7. The method of claim 1, wherein said saving the packet to the ring buffer based on the buffer address while updating a write pointer location of the ring buffer comprises:
acquiring the position of the write pointer;
and storing the data packet in the ring buffer area from the write pointer position in the buffer area address, and updating the write pointer position.
8. A flow collection device for a virtual network, comprising:
the initialization unit is used for initializing the software running environment for flow acquisition of the user state acquisition module and the kernel acquisition module;
the channel establishing unit is used for establishing a communication channel, and the communication channel is a data transmission channel between the user mode acquisition module and the kernel acquisition module;
the cache creating unit is used for the user mode acquisition module to apply for a large-page memory, creating an annular cache region on the large-page memory and transmitting the physical address of the large-page memory to the kernel acquisition module through the communication channel;
the address acquisition unit is used for receiving the physical address of the large-page memory by the kernel acquisition module, mapping the physical address of the large-page memory into a linear address of a kernel address space, and acquiring the buffer area address of the annular buffer area in the kernel acquisition module;
the data storage unit is used for acquiring a data packet received by the virtual switch by the kernel acquisition module, storing the data packet to the ring buffer according to the address of the buffer, and updating the position of a write pointer of the ring buffer;
and the flow counting unit is used for accessing the ring buffer area and acquiring the data packet if the user state acquisition module monitors that the ring buffer area is updated, counting the data flow flowing through the virtual switch and updating the position of a reading pointer of the ring buffer area.
9. A storage medium having at least one executable instruction stored therein, the executable instruction causing a processor to perform operations corresponding to the traffic collection method of the virtual network according to any one of claims 1 to 7.
10. A computer device, comprising: the system comprises a processor, a memory, a communication interface and a communication bus, wherein the processor, the memory and the communication interface complete mutual communication through the communication bus;
the memory is used for storing at least one executable instruction, and the executable instruction causes the processor to execute the operation corresponding to the traffic collection method of the virtual network according to any one of claims 1-7.
CN202010098775.2A 2020-02-18 2020-02-18 Virtual network flow acquisition method and device Active CN111431757B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010098775.2A CN111431757B (en) 2020-02-18 2020-02-18 Virtual network flow acquisition method and device
PCT/CN2020/119067 WO2021164262A1 (en) 2020-02-18 2020-09-29 Traffic collection method and apparatus for virtual network, and computer device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010098775.2A CN111431757B (en) 2020-02-18 2020-02-18 Virtual network flow acquisition method and device

Publications (2)

Publication Number Publication Date
CN111431757A CN111431757A (en) 2020-07-17
CN111431757B true CN111431757B (en) 2023-03-24

Family

ID=71551573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010098775.2A Active CN111431757B (en) 2020-02-18 2020-02-18 Virtual network flow acquisition method and device

Country Status (2)

Country Link
CN (1) CN111431757B (en)
WO (1) WO2021164262A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111431757B (en) * 2020-02-18 2023-03-24 平安科技(深圳)有限公司 Virtual network flow acquisition method and device
CN113132349A (en) * 2021-03-12 2021-07-16 中国科学院信息工程研究所 Agent-free cloud platform virtual flow intrusion detection method and device
CN113300917B (en) * 2021-07-27 2021-10-15 苏州浪潮智能科技有限公司 Traffic monitoring method and device for Open Stack tenant network
CN113794605B (en) * 2021-09-10 2023-03-14 杭州谐云科技有限公司 Method, system and device for detecting kernel packet loss based on eBPF
CN113986811B (en) * 2021-09-23 2022-05-10 北京东方通网信科技有限公司 High-performance kernel mode network data packet acceleration method
CN115033407B (en) * 2022-08-09 2022-11-04 微栈科技(浙江)有限公司 System and method for collecting and identifying flow suitable for cloud computing
CN116915667B (en) * 2023-07-19 2024-03-08 上海螣龙科技有限公司 Network traffic acquisition method and device, electronic equipment and storage medium
CN117579386B (en) * 2024-01-16 2024-04-12 麒麟软件有限公司 Network traffic safety control method, device and storage medium
CN118885259B (en) * 2024-09-26 2025-02-07 济南浪潮数据技术有限公司 Data processing method, device, equipment and medium based on virtual machine

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
CN1925465A (en) * 2006-09-22 2007-03-07 中国科学院计算技术研究所 Method for realizing data packet catching based on sharing internal memory
CN102467473A (en) * 2010-11-03 2012-05-23 Tcl集团股份有限公司 Method and device for transmitting data between user space and kernel
CN103034684A (en) * 2012-11-27 2013-04-10 北京航空航天大学 Optimizing method for storing virtual machine mirror images based on CAS (content addressable storage)
CN104063267A (en) * 2014-07-11 2014-09-24 孙强强 Method and system for monitoring flow of virtual machine
CN108062253A (en) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 The communication means of a kind of kernel state and User space, device and terminal
CN108989151A (en) * 2018-07-20 2018-12-11 北京云杉世纪网络科技有限公司 For network or the flow collection method of application performance management
CN109889403A (en) * 2019-01-30 2019-06-14 北京云端智度科技有限公司 A kind of CDN network flow rate testing methods based on polling mechanism
CN109981403A (en) * 2019-03-05 2019-07-05 北京勤慕数据科技有限公司 Virtual machine network data traffic monitoring method and device
CN110380992A (en) * 2019-07-24 2019-10-25 南京中孚信息技术有限公司 Message processing method, device and network flow acquire equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351791B1 (en) * 1998-06-25 2002-02-26 International Business Machines Corporation Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses
CN108964959B (en) * 2017-05-27 2022-02-25 阿里巴巴集团控股有限公司 Network card direct connection system for virtualization platform and data packet supervision method
CN107294869A (en) * 2017-06-22 2017-10-24 郑州云海信息技术有限公司 A kind of method and system of Microsoft Loopback Adapter message crawl
CN111431757B (en) * 2020-02-18 2023-03-24 平安科技(深圳)有限公司 Virtual network flow acquisition method and device

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
CN1925465A (en) * 2006-09-22 2007-03-07 中国科学院计算技术研究所 Method for realizing data packet catching based on sharing internal memory
CN102467473A (en) * 2010-11-03 2012-05-23 Tcl集团股份有限公司 Method and device for transmitting data between user space and kernel
CN103034684A (en) * 2012-11-27 2013-04-10 北京航空航天大学 Optimizing method for storing virtual machine mirror images based on CAS (content addressable storage)
CN104063267A (en) * 2014-07-11 2014-09-24 孙强强 Method and system for monitoring flow of virtual machine
CN108062253A (en) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 The communication means of a kind of kernel state and User space, device and terminal
CN108989151A (en) * 2018-07-20 2018-12-11 北京云杉世纪网络科技有限公司 For network or the flow collection method of application performance management
CN109889403A (en) * 2019-01-30 2019-06-14 北京云端智度科技有限公司 A kind of CDN network flow rate testing methods based on polling mechanism
CN109981403A (en) * 2019-03-05 2019-07-05 北京勤慕数据科技有限公司 Virtual machine network data traffic monitoring method and device
CN110380992A (en) * 2019-07-24 2019-10-25 南京中孚信息技术有限公司 Message processing method, device and network flow acquire equipment

Also Published As

Publication number Publication date
WO2021164262A1 (en) 2021-08-26
CN111431757A (en) 2020-07-17

Similar Documents

Publication Publication Date Title
CN111431757B (en) Virtual network flow acquisition method and device
US11500689B2 (en) Communication method and apparatus
US8484307B2 (en) Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8234407B2 (en) Network use of virtual addresses without pinning or registration
US7797588B2 (en) Mechanism to provide software guaranteed reliability for GSM operations
US7966454B2 (en) Issuing global shared memory operations via direct cache injection to a host fabric interface
Anderson et al. Cheating the I/O Bottleneck: Network Storage with Trapeze/Myrinet.
US7873879B2 (en) Mechanism to perform debugging of global shared memory (GSM) operations
US8239879B2 (en) Notification by task of completion of GSM operations at target node
CN110119304B (en) Interrupt processing method and device and server
CN103368848A (en) Information processing apparatus, arithmetic device, and information transferring method
US8255913B2 (en) Notification to task of completion of GSM operations by initiator node
CN109857545B (en) Data transmission method and device
US8214604B2 (en) Mechanisms to order global shared memory operations
US8275947B2 (en) Mechanism to prevent illegal access to task address space by unauthorized tasks
EP4421631A1 (en) Data migration method and apparatus, and electronic device
US8200910B2 (en) Generating and issuing global shared memory operations via a send FIFO
Afsahi et al. Efficient communication using message prediction for cluster of multiprocessors
US20240211392A1 (en) Buffer allocation
Marques et al. The distributed operating system of the SMD project
Khunjush et al. Comparing direct-to-cache transfer policies to TCP/IP and M-VIA during receive operations in mpi environments
JP2971119B2 (en) High-speed data transfer method in multiple processor system
CN118093225A (en) Subscription message transmission method and device, storage medium and electronic equipment
Yamada et al. Implementation and performance evaluation of a memory‐coupled scalable node architecture MESCAR for parallel and distributed processing
CN115344192A (en) Data processing method and device and electronic equipment

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
GR01 Patent grant
GR01 Patent grant