CN112448826A - Multicast message communication method and device, readable medium and electronic equipment - Google Patents

Multicast message communication method and device, readable medium and electronic equipment Download PDF

Info

Publication number
CN112448826A
CN112448826A CN202011269890.8A CN202011269890A CN112448826A CN 112448826 A CN112448826 A CN 112448826A CN 202011269890 A CN202011269890 A CN 202011269890A CN 112448826 A CN112448826 A CN 112448826A
Authority
CN
China
Prior art keywords
multicast
multicast group
node
common
message
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.)
Granted
Application number
CN202011269890.8A
Other languages
Chinese (zh)
Other versions
CN112448826B (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.)
Hundsun Technologies Inc
Original Assignee
Hundsun Technologies Inc
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 Hundsun Technologies Inc filed Critical Hundsun Technologies Inc
Priority to CN202011269890.8A priority Critical patent/CN112448826B/en
Publication of CN112448826A publication Critical patent/CN112448826A/en
Application granted granted Critical
Publication of CN112448826B publication Critical patent/CN112448826B/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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The application provides a communication method, a device, a readable medium and electronic equipment for multicast messages, wherein the method comprises the steps of accessing an RDMA multicast message sending queue through a remote direct memory, and sending the multicast messages to a plurality of common multicast group nodes in a target multicast group; inquiring a multicast message sending result corresponding to each multicast group common node from an RDMA completion queue corresponding to the RDMA multicast message sending queue; screening all common nodes of the multicast group which do not successfully receive the multicast message sent by the multicast proxy node; and sending the multicast message to each screened common node of the multicast group through the RDMA multicast message sending queue, returning to execute the RDMA completion queue corresponding to the RDMA multicast message sending queue, and inquiring the multicast message sending result corresponding to each common node of the multicast group until each common node of the multicast group successfully receives the multicast message, thereby improving the reliability of the multicast message transmission process.

Description

Multicast message communication method and device, readable medium and electronic equipment
Technical Field
The present application relates to the field of communications technologies, and in particular, to a method and an apparatus for multicast message communication, a readable medium, and an electronic device.
Background
Multicast functionality refers to a type of network communication where a single sender corresponds to multiple recipients. In the prior art, the multicast function is usually realized by a router. Specifically, when a host needs to send a multicast message to a multicast group, the router duplicates the multicast message and sends the duplicated multicast message to the hosts in the multicast group through the switch.
However, in the existing multicast message transmission method, after the router transmits the multicast message to the hosts in the multicast group, some failures may occur during the transmission process, so that the hosts in some multicast groups may not receive the multicast message. The router cannot know which hosts do not receive the multicast message, and further cannot retransmit the multicast message to the hosts, so that the transmission reliability of the multicast message is low.
Disclosure of Invention
Based on the above deficiencies of the prior art, the present application provides a method, an apparatus, a readable medium, and an electronic device for multicast message communication, so as to implement retransmission of a multicast message to a node when the node does not receive the multicast message, so as to improve transmission reliability of the multicast message.
The first aspect of the present application discloses a communication method for multicast messages, which is applied to a multicast proxy node, and the communication method for multicast messages includes:
accessing an RDMA multicast message sending queue through a remote direct memory, and sending multicast messages to a plurality of common multicast group nodes in a target multicast group; wherein the target multicast group includes: the multicast proxy node and a plurality of common nodes of the multicast group;
inquiring a multicast message sending result corresponding to each multicast group common node from an RDMA completion queue corresponding to the RDMA multicast message sending queue; the multicast message sending result is used for explaining whether the common node of the multicast group successfully receives the multicast message sent by the multicast proxy node;
screening all multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node from the inquired multicast message sending result corresponding to each multicast group common node;
and sending the multicast message to each screened common multicast group node through the RDMA multicast message sending queue, returning to execute the RDMA completion queue corresponding to the RDMA multicast message sending queue, and inquiring the multicast message sending result corresponding to each common multicast group node until each common multicast group node successfully receives the multicast message sent by the multicast proxy node.
Optionally, in the above multicast message communication method, before sending the multicast message to a plurality of multicast group common nodes in the target multicast group through the remote direct memory access RDMA multicast message sending queue, the method further includes:
respectively generating a sending queue unit corresponding to each common node of the multicast group by using the message content address information of the multicast message and the node information of each common node of the multicast group;
and filling the generated sending queue unit corresponding to each common node of the multicast group into an RDMA multicast message sending queue.
Optionally, in the above communication method of multicast messages, the screening, from the multicast message transmission result corresponding to each queried multicast group common node, all multicast group common nodes that have not successfully received the multicast message transmitted by the multicast proxy node includes:
if the multicast message sending result for indicating that the multicast message sent by the multicast proxy node is not successfully received exists in the multicast message sending result corresponding to each inquired multicast group common node, recording the multicast message sending result corresponding to each multicast group common node into a target multicast group information table; the target multicast group information table comprises node information of each common node of the target multicast group;
traversing the recorded target multicast group information table, and screening all multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node from the target multicast group information table;
before the step of returning to execute the multicast message sending result corresponding to each multicast group common node in the completion queue corresponding to the multicast message sending queue and querying the multicast message sending result corresponding to each multicast group common node, the method further includes:
and clearing all multicast message sending results recorded in the multicast group information table.
Optionally, in the above multicast message communication method, before sending the multicast message to a plurality of multicast group common nodes in the target multicast group through the remote direct memory access RDMA multicast message sending queue, the method further includes:
responding to a local multicast initiating request, generating the multicast message, and storing the multicast message in a local message cache;
or, receiving the multicast message which is sent by the common node of the multicast group and needs to be multicast to the target multicast group, and storing the multicast message in the local message cache.
Optionally, in the above communication method of multicast messages, a process of joining the common node of the multicast group to the target multicast group includes:
receiving a target multicast group joining request sent by the common node of the multicast group; the target multicast group joining request sent by the common multicast group node carries identification information of an RDMA multicast queue pair of the common multicast group node; the RDMA multicast queue pair comprises: an RDMA multicast message sending queue and an RDMA multicast receiving queue; the RDMA multicast message sending queue is used for sending multicast messages; the RDMA multicast receiving queue is used for receiving multicast messages;
distributing corresponding queue pair key values for the identification information of the RDMA multicast queue pair of the common nodes of the multicast group, and recording the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key values into a target multicast group information table;
and returning the identification information of the RDMA multicast queue pair of the multicast proxy node and a queue pair key value distributed for the common multicast group node to the common multicast group node.
Optionally, in the above multicast message communication method, before sending the multicast message to a plurality of multicast group common nodes in the target multicast group through the remote direct memory access RDMA multicast message sending queue, the method further includes:
receiving a multicast message which is sent by the common node of the multicast group and needs to multicast the target multicast group; the multicast message carries identification information of an RDMA multicast queue pair of the common nodes of the multicast group and a corresponding queue pair key value;
judging whether the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key value carried in the multicast message are consistent with those recorded in the target multicast group information table or not;
and if the identification information of the RDMA multicast queue pair of the common multicast group nodes carried in the multicast message and the key value of the corresponding queue pair are consistent with those recorded in the target multicast group information table, executing the step of accessing the RDMA multicast message sending queue through the remote direct memory and sending the multicast message to a plurality of common multicast group nodes in the target multicast group.
Optionally, in the above communication method of multicast messages, a process that the common node of the multicast group exits the target multicast group includes:
receiving a target multicast group quitting request sent by the common node of the multicast group; the target multicast group exit request sent by the common multicast group node carries identification information of an RDMA multicast queue pair of the common multicast group node and a corresponding queue pair key value;
if the information which is consistent with the identification information of the RDMA multicast queue pair carried in the target multicast group exit request and the corresponding queue pair key value is inquired from the target multicast group information table, deleting the identification information of the RDMA multicast queue pair of the common node of the multicast group and the corresponding queue pair key value from the target multicast group information table;
and returning a response message for indicating that the common node of the multicast group successfully exits the target multicast group to the common node of the multicast group.
Optionally, in the above multicast message communication method, before sending the multicast message to each screened multicast group common node through the RDMA multicast message sending queue, the method further includes:
judging whether the total times of sending the multicast message exceeds a sending threshold value;
if the total times of sending the multicast messages do not exceed the sending threshold, executing the step of sending the multicast messages to each screened multicast group common node through the RDMA multicast message sending queue;
if the total times of sending the multicast message exceeds the sending threshold, finishing multicasting the multicast message.
The second aspect of the present application discloses a communication device for multicast messages, which is applied to a multicast proxy node, and the communication device for multicast messages includes:
the first sending unit is used for accessing the RDMA multicast message sending queue through the remote direct memory and sending the multicast message to a plurality of common multicast group nodes in a target multicast group; wherein the target multicast group includes: the multicast proxy node and a plurality of common nodes of the multicast group;
the query unit is used for querying a multicast message sending result corresponding to each multicast group common node from the RDMA completion queue corresponding to the RDMA multicast message sending queue; the multicast message sending result is used for explaining whether the common node of the multicast group successfully receives the multicast message sent by the multicast proxy node;
the screening unit is used for screening all the multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node from the inquired multicast message sending result corresponding to each multicast group common node;
and the second sending unit is used for sending the multicast message to each screened multicast group common node through the RDMA multicast message sending queue and returning to the query unit until each multicast group common node successfully receives the multicast message sent by the multicast proxy node.
Optionally, the communication device for multicast messages further includes:
a first generating unit, configured to generate a sending queue unit corresponding to each common node of the multicast group respectively by using the message content address information of the multicast message and the node information of each common node of the multicast group;
and the filling unit is used for filling the generated sending queue unit corresponding to each multicast group common node into an RDMA multicast message sending queue.
Optionally, in the communication device for multicast messages, the screening unit includes:
a recording subunit, configured to record, if a multicast message sending result indicating that the multicast message sent by the multicast proxy node is not successfully received exists in the multicast message sending result corresponding to each queried multicast group common node, the multicast message sending result corresponding to each multicast group common node into a target multicast group information table; the target multicast group information table comprises node information of each common node of the target multicast group;
the traversal subunit is configured to traverse the recorded target multicast group information table, and screen out all multicast group common nodes that do not successfully receive the multicast message sent by the multicast proxy node from the target multicast group information table;
wherein the communication device for multicasting the message further comprises:
and the clearing unit is used for clearing all multicast message sending results recorded in the multicast group information table.
Optionally, the communication device for multicast messages further includes:
the cache unit is used for responding to a local multicast initiating request, generating the multicast message and storing the multicast message in a local message cache; or, receiving the multicast message which is sent by the common node of the multicast group and needs to be multicast to the target multicast group, and storing the multicast message in the local message cache.
Optionally, the communication device for multicast messages further includes:
a first receiving unit, configured to receive a target multicast group join request sent by the common multicast group node; the target multicast group joining request sent by the common multicast group node carries identification information of an RDMA multicast queue pair of the common multicast group node; the RDMA multicast queue pair comprises: an RDMA multicast message sending queue and an RDMA multicast receiving queue; the RDMA multicast message sending queue is used for sending multicast messages; the RDMA multicast receiving queue is used for receiving multicast messages;
the distribution unit is used for distributing corresponding queue pair key values for the identification information of the RDMA multicast queue pair of the common nodes of the multicast group, and recording the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key values into a target multicast group information table;
and the first returning unit is used for returning the identification information of the RDMA multicast queue pair of the multicast proxy node and the queue pair key value distributed to the common multicast group node.
Optionally, the communication device for multicast messages further includes:
a second receiving unit, configured to receive a multicast message that needs to multicast the target multicast group and is sent by the common node of the multicast group; the multicast message carries identification information of an RDMA multicast queue pair of the common nodes of the multicast group and a corresponding queue pair key value;
a first judging unit, configured to judge whether identifier information of an RDMA multicast queue pair of the common node of the multicast group and a key value of a corresponding queue pair, which are carried in the multicast message, are consistent with those recorded in the target multicast group information table; and if the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the key value of the corresponding queue pair carried in the multicast message are consistent with those recorded in the target multicast group information table, returning to the first sending unit.
Optionally, the communication device for multicast messages further includes:
a third receiving unit, configured to receive a target multicast group quitting request sent by the common multicast group node; the target multicast group exit request sent by the common multicast group node carries identification information of an RDMA multicast queue pair of the common multicast group node and a corresponding queue pair key value;
a deleting unit, configured to delete, if information that is consistent with the identifier information of the RDMA multicast queue pair and the corresponding queue pair key value carried in the target multicast group exit request is queried from the target multicast group information table, the identifier information of the RDMA multicast queue pair and the corresponding queue pair key value of the common node of the multicast group from the target multicast group information table;
a second returning unit, configured to return a response message indicating that the multicast group common node has successfully exited the target multicast group to the multicast group common node.
Optionally, the communication device for multicast messages further includes:
a second judging unit, configured to judge whether a total number of times of sending the multicast message exceeds a sending threshold; if the total times of sending the multicast messages do not exceed the sending threshold, the screening unit executes sending the multicast messages to each screened common node of the multicast group through the RDMA multicast message sending queue; if the total times of sending the multicast message exceeds the sending threshold, finishing multicasting the multicast message.
A third aspect of the application discloses a computer readable medium having a computer program stored thereon, wherein the program when executed by a processor implements the method as described in any of the first aspects above.
The fourth aspect of the present application discloses an electronic device, comprising:
one or more processors;
a storage device having one or more programs stored thereon;
the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the method as in any one of the first aspects above.
It can be seen from the foregoing technical solutions that the multicast message communication method provided in the embodiments of the present application is applied to a multicast proxy node, and in the embodiments of the present application, the multicast proxy node accesses an RDMA multicast message transmission queue through a remote direct memory and transmits a multicast message to a plurality of common multicast group nodes in a target multicast group. Wherein, the target multicast group includes: a multicast proxy node and a plurality of multicast group common nodes. Therefore, the multicast message sending result corresponding to each multicast group common node can be inquired from the RDMA completion queue corresponding to the RDMA multicast message sending queue, then all the multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node are screened out from the RDMA multicast message sending queue, further, the step of sending the multicast message to each screened multicast group common node through the RDMA multicast message sending queue is realized, the step of inquiring the multicast message sending result corresponding to each multicast group common node in the RDMA completion queue corresponding to the RDMA multicast message sending queue is returned to be executed until each multicast group common node successfully receives the multicast message sent by the multicast proxy node. Therefore, in the application, due to the use of the RDMA protocol queue, the multicast proxy node can resend the multicast message to the common multicast group node when the common multicast group node in the target multicast group does not receive the multicast message, until each common multicast group node receives the multicast message, thereby improving the reliability of the multicast message transmission process.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the provided drawings without creative efforts.
Fig. 1 is a schematic structural diagram of a multicast communication system according to an embodiment of the present application;
fig. 2 is a schematic diagram of a connection between a multicast proxy node and a multicast group common node according to an embodiment of the present application;
fig. 3 is a schematic diagram of a multicast proxy node performing multicast in a secondary networking according to an embodiment of the present application;
fig. 4 is a schematic diagram of a multicast proxy node performing multicast in three-level networking according to an embodiment of the present application;
fig. 5 is a flowchart illustrating a method for communicating multicast messages according to an embodiment of the present application;
fig. 6 is a schematic diagram of a multicast message sending process according to an embodiment of the present application;
fig. 7 is a schematic diagram of another multicast message sending process according to an embodiment of the present application;
fig. 8 is a schematic flowchart of a process of adding a common node of a multicast group to a target multicast group according to an embodiment of the present application;
fig. 9 is a schematic flowchart of a process in which a common node in a multicast group exits a target multicast group according to an embodiment of the present application;
fig. 10 is a schematic diagram of a recording process of multicast message sending results according to an embodiment of the present application;
fig. 11 is a schematic flowchart of a process of screening out a common node of a multicast group that does not successfully receive a multicast message according to an embodiment of the present application;
fig. 12 is a flowchart illustrating another multicast message communication method according to an embodiment of the present application;
fig. 13 is a schematic structural diagram of a communication device for multicast messages according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Referring to fig. 1, an embodiment of the present application provides a multicast communication system 100, where the multicast communication system 100 includes: a multicast proxy node 101 and a plurality of multicast group common nodes 102. Wherein, the multicast proxy node 101 and the common multicast group node 102 are in the same target multicast group. The multicast proxy node 101 includes a multicast management service module, a multicast sending module, and a multicast forwarding and receiving module. The multicast group common node 102 includes a multicast management user module.
Specifically, the multicast communication process in the multicast communication system 100 is as follows: the multicast management service module in the multicast proxy node 101 receives a target multicast group join request sent by the multicast management user module in the multicast group common node 102. The multicast group join request sent by the multicast group common node 102 carries identification information of a Remote Direct Memory Access (RDMA) multicast queue pair of the multicast group common node, and the multicast management service module in the multicast proxy node 101 allocates a corresponding queue pair key value to the identification information of the RDMA multicast queue pair of the multicast group common node, and records the identification information of the RDMA multicast queue pair of the multicast group common node and the corresponding queue pair key value in the target multicast group information table. And the multicast forwarding receiving module receives a multicast message which is sent by the common node 102 and needs to multicast a target multicast group, then judges whether the identification information of the RDMA multicast queue pair of the common node of the multicast group and the key value of the corresponding queue pair carried in the multicast message are consistent with those recorded in the target multicast group information table, if the identification information of the RDMA multicast queue pair of the common node of the multicast group and the key value of the corresponding queue pair carried in the multicast message are consistent with those recorded in the target multicast group information table, the multicast sending module in the multicast proxy node 101 sends the multicast message to the common nodes 102 of a plurality of multicast groups in the target multicast group through the RDMA multicast message sending queue. Or the multicast proxy node 101 locally generates a multicast message, and then the multicast sending module in the multicast proxy node 101 sends the multicast message to the multiple multicast group common nodes 102 in the target multicast group through the RDMA multicast message sending queue. The multicast sending module in the multicast proxy node 101 queries the multicast message sending result corresponding to each multicast group common node 102 from the RDMA completion queue corresponding to the RDMA multicast message sending queue. The multicast message sending result is used to indicate whether the common node of the multicast group successfully receives the multicast message sent by the multicast proxy node 101. Then, all the multicast group common nodes 102 which do not successfully receive the multicast messages sent by the multicast proxy node are screened out from the inquired multicast message sending results corresponding to the common multicast groups, the multicast messages are sent to the screened common multicast group nodes through the RDMA multicast message sending queue, the multicast message sending results corresponding to the common multicast group nodes are inquired from the RDMA completion queue corresponding to the RDMA multicast message sending queue again until each common multicast group node 102 successfully receives the multicast messages sent by the multicast proxy node.
It should be noted that the multicast management service module of the multicast proxy node 101 may also receive a target multicast group exit request sent by the multicast management user module of the multicast group common node 102. The target multicast group exit request sent by the multicast group common node 102 carries the identification information of the RDMA multicast queue pair of the multicast group common node 102 and the key value of the corresponding queue pair. If the information which is consistent with the identification information of the RDMA multicast queue pair carried in the target multicast group exit request and the corresponding queue pair key value is inquired from the target multicast group information table, the identification information of the RDMA multicast queue pair of the multicast group common node 102 and the corresponding queue pair key value are deleted from the target multicast group information table, and then a response message for indicating that the multicast group common node 102 has successfully exited the target multicast group is returned to the multicast group common node 102.
It should be further noted that a reliable connection needs to be established between the multicast management service module of the multicast proxy node 101 and the multicast management user module of the multicast group common node 102, so as to exchange the identification information of the RDMA multicast queue pair. The RDMA protocol used when establishing a connection between nodes may be an RDMA over Converged Ethernet (RoCE) protocol or an RDMA protocol implemented on an InfiniBand-dedicated (InfiniBand) network. Optionally, with continued reference to fig. 1, if the connection is established by using the RoCE Protocol, a Transmission Control Protocol/internet Protocol (TCP/IP) Protocol may be simultaneously run to implement the connection. If InfiniBand is used to establish connection, the RDMA software stack is needed to establish connection because the InfiniBand is a special network. The multicast sending module and the multicast forwarding receiving module in the multicast proxy node 101 need to establish Unreliable Datagram (UD) communication with the normal node 102 of the multicast group. Unreliable datagram communication connection does not bind queues of two end nodes, and message transmission between one queue and a plurality of queues can be achieved.
Alternatively, with continued reference to fig. 1, if the multicast management service module in the multicast proxy node 101 establishes a connection with the multicast management user module in the multicast group common node 102 by using the RoCE protocol, it may pass through the path shown in fig. 1 (r): the multicast management service module and the multicast management user module establish TCP connection through a network programming (Sockets) interface, a TCP/IP protocol stack and an Ethernet card drive, and can also establish TCP connection through a path of (II): the reliable connection of the RoCE protocol is established between the multicast management service module and the multicast management user module through an RDMA transmission interface layer (Verbs), an open fabric Distribution (OFED) software stack and an RDMA network card driver. The multicast sending module in the multicast proxy node 101 establishes connection with the multicast management user module in the multicast group common node 102, and the connection can be established through a path shown in fig. 1 by: and the multicast sending module and the multicast management user module are enabled to use an unreliable datagram communication mode of a RoCE protocol through a Verbs interface, an OFED and an RDMA network card drive, so that the multicast message is sent to the common nodes 102 of a plurality of multicast groups. The multicast forwarding and receiving module and the normal node 102 of the multicast group pass through a path (r) shown in fig. 1: the Verbs interface, the OFED software stack and the RDMA network card driver apply an unreliable datagram communication mode of RoCE protocol, so as to receive the multicast message which is sent by the common node 102 of the multicast group and needs to be multicast. Because the unreliable datagram communication mode of the RoCE protocol does not bind the queues of the nodes at two ends, the message transmission between one queue and a plurality of queues can be realized.
Specifically, referring to fig. 2, when the multicast proxy node 201 sends a multicast message to a plurality of multicast group common nodes 202, or receives a multicast message that needs to be multicast and is sent by the multicast group common node 202, the multicast message is transmitted through Unreliable Datagram (UD) communication, and when the multicast proxy node 201 receives a target multicast group join request or a target multicast group exit request sent by the multicast group common node 202, a reliable connection needs to be established.
In the prior art, the multicast function is usually realized by a router. Specifically, when one host node needs to send a multicast message to a multicast group, the router duplicates the multicast message and sends the duplicated multicast message to a plurality of host nodes in the multicast group through the switch. When a transmission failure occurs during the process of sending the multicast message, some hosts in the multicast group cannot receive the multicast message. And because the router is only responsible for sending the multicast message, the router cannot know whether the multicast message is successfully received or not, and further cannot retransmit the multicast message to the host, so that the transmission reliability of the multicast message is low.
In the multicast communication system 100 according to the embodiment of the present application, the multicast sending module in the multicast proxy node 101 sends the multicast message to the multiple multicast group common nodes 102 in the target multicast group through the RDMA multicast message sending queue. Wherein, the target multicast group includes: a multicast proxy node 101 and a plurality of multicast group common nodes 102. Therefore, the multicast message sending result corresponding to each multicast group common node 102 can be queried from the RDMA completion queue corresponding to the RDMA multicast message sending queue, and then all the multicast group common nodes 102 which have not successfully received the multicast message sent by the multicast proxy node 101 are screened out from the RDMA multicast message sending queue, so that the multicast message is sent to each screened multicast group common node 102 through the RDMA multicast message sending queue, and the RDMA completion queue corresponding to the RDMA multicast message sending queue is re-executed to query the multicast message sending result corresponding to each multicast group common node until each multicast group common node 102 successfully receives the multicast message sent by the multicast proxy node 101. Therefore, in the present application, because the RDMA protocol queue is used, under the condition that the multicast message is not received by the multicast group common node 102 in the target multicast group, the multicast proxy node 101 can resend the multicast message to the multicast group common node 102 until each multicast group common node 102 receives the multicast message, thereby improving the reliability of the multicast message transmission process.
In addition, in the conventional multicast message transmission method, since the multicast function is completed by using a router, the method is only suitable for multicast message propagation in three-layer or more than three-layer networks. In the embodiment of the application, because the multicast proxy node is used for realizing the multicast function, the multicast message can be transmitted in the networking of two layers and more than two layers. Compared with the prior art, the multicast communication system 100 provided in the embodiment of the present application can also implement transmission of multicast messages in a two-layer networking, and the application range of the multicast function is wider.
For example, referring to fig. 3, in the two-layer networking shown in fig. 3, after receiving a multicast message (i) that needs to be multicast and is sent by a common node 1 of a multicast group, a multicast proxy node constructs a multicast message (ii), a multicast message (iii), and a multicast message (iv), and sends the multicast message (ii), the multicast message (iii), and the multicast message (iv) to the common node 2 of the multicast group, the common node 3 of the multicast group, and the common node 4 of the multicast group through a switch, respectively.
For another example, referring to fig. 4, in the three-layer networking shown in fig. 4, a multicast proxy node receives a multicast message (i) that needs to be multicast and is sent by a multicast group ordinary node 1 through a switch a, a router, and a switch B, then constructs a multicast message (ii), a multicast message (iii), and a multicast message (iv) according to the multicast message (i), and then sends the multicast message (ii) to a multicast group ordinary node 2 through the switch B. And respectively sending the multicast message (III) and the multicast message (IV) to the common multicast group node 3 and the common multicast group node 4 through the switch B and the switch C.
Specifically, the following describes a communication procedure of a multicast message in the multicast communication system 100 by using various embodiments.
Referring to fig. 5, an embodiment of the present application discloses a communication method for multicast messages, which is applied to a multicast proxy node, and specifically includes the following steps:
s501, sending the multicast message to a plurality of common multicast group nodes in the target multicast group through the RDMA multicast message sending queue.
Wherein, the target multicast group includes: a multicast proxy node and a plurality of multicast group common nodes. In the embodiment of the present application, the multicast function is realized by the multicast proxy node, and the multicast proxy node may be any node in the target multicast group. A multicast proxy node is a host, distinct from a router, which is a host capable of using the RDMA protocol. Therefore, when the multicast proxy node sends the multicast message to a plurality of common nodes of the multicast group, the multicast proxy node can be realized through an RDMA protocol.
The RDMA multicast message transmission queue mentioned in step S501 is a queue for transmitting multicast messages established based on the RDMA protocol. An RDMA multicast messaging queue consists of multiple send queue elements. The Sending Queue Element (SQE) carries the message content address information of the multicast message and the node information of the common node of the multicast group. The message content of the multicast message can be read at the address through the message content address information of the multicast message. Specifically, the multicast proxy node constructs a corresponding SQE for each common node of the multicast group that needs to receive the multicast message. And then filling each built SQE into an RDMA multicast message sending queue, and further sending the SQE corresponding to each common node of the multicast group to the common node of the multicast group aiming at each common node of the multicast group. Because the multicast message can be accessed and read through the message content address of the multicast message, when the multicast message is to be sent to a plurality of multicast group common nodes, the multicast message can be transmitted only by generating the SQE carrying the message content address information of the multicast message without copying the multicast message.
It should be noted that the multicast proxy node may send the multicast message to each common node of the target multicast group, or may send the multicast message only to the common node of the multicast group that needs to acquire the multicast message. For example, a multicast group common node a sends a multicast message that needs to be multicast to a multicast proxy node, and the multicast proxy node generates an SQE using a message content address of the multicast message and node information of a multicast group common node other than the multicast group common node a, and sends a corresponding SQE to the multicast group common node other than the multicast group common node a.
Optionally, in a specific embodiment of the present application, before performing step S501, the method further includes:
responding to the local multicast initiating request, generating a multicast message, and storing the multicast message in a local message cache, or receiving the multicast message which is sent by the common node of the multicast group and needs to multicast to the target multicast group, and storing the multicast message in the local message cache.
The local multicast initiating request of the multicast proxy node is used for requesting the multicast proxy node to locally generate the multicast message. Referring to fig. 6, after the multicast proxy node responds to the multicast initiation request, the multicast proxy node locally generates a multicast message corresponding to the multicast initiation request, and then stores the message content of the multicast message in a local message cache for subsequent multicast.
Alternatively, the message content of the multicast message may be obtained from a common node of the multicast group in the target multicast group. And the common multicast group node in the target multicast group locally initiates a local multicast initiating request, and then locally generates a multicast message needing to be multicast to the target multicast group. And then, sending the multicast message which needs to be multicast to the target multicast group to the multicast proxy node, so that the multicast proxy node performs multicast for the multicast proxy node. Referring to fig. 6, after receiving the multicast message initiated by the common node of the multicast group, the multicast proxy node will also store the message content of the multicast message in the local message cache, so as to use the multicast message for multicast in the following.
Alternatively, with continued reference to fig. 6, the multicast message received from the common node of the multicast group may be received via an RDMA receive queue in the multicast proxy node, the received multicast message is stored in a receive queue element RQE1 in the receive queue, and then the message content of the multicast message is stored in the message cache from RQE 1. If the receiving queue successfully receives the multicast message sent by the common node of the multicast group, the completion queue element CQE1 corresponding to RQE1 can be found in the corresponding completion queue. The CQE1 carries node information of the multicast group common node that sends the multicast message (i.e., identification information (QPN) of the RDMA multicast Queue pair of the multicast group common node and a corresponding Queue pair KEY value (Q-KEY)), so that the multicast agent node can determine which node in the target multicast group initiated the multicast through the QPN and Q-KEY recorded in the target multicast group information table, and may not send the multicast message to the multicast group common node in the subsequent multicast message sending.
Optionally, with continuing reference to fig. 6, in an embodiment of the present application, before performing step S501, the method further includes:
and respectively generating a sending queue unit SQE corresponding to each common multicast group node by using the message content address information of the multicast message and the node information of each common multicast group node, and filling the generated sending queue unit corresponding to each common multicast group node into the RDMA multicast message sending queue.
Referring to fig. 6, the message content address information of the message cache where the multicast proxy node locally stores the multicast message is the message content address information of the multicast message, and the message content address information of the multicast message and the node information of each common node of the multicast group in the target multicast group information table are used to generate a sending queue unit corresponding to each common node of the multicast group respectively. And then filling each generated sending queue unit into an RDMA multicast message sending queue, thereby realizing the purpose of sending each generated sending queue unit through the sending queue. For example, as shown in fig. 6, if it is desired to send a locally generated multicast message to node 1, node 2, … …, node n, the transmission queue unit SQE1 is generated using the node information of the node 1 in the target multicast group information table and the message content address information of the locally generated multicast message in the message cache, the transmission queue unit SQE2 is generated using the node information of the node 2 in the target multicast group information table and the message content address information of the locally generated multicast message in the message cache, and the transmission queue unit SQE3 … … is generated using the node information of the node n in the target multicast group information table and the message content address information of the locally generated multicast message in the message cache, and the transmission queue unit SQEn is generated using the node information of the node n in the target multicast group information table and the message content address information of the locally generated multicast message in the message cache. Similarly, with reference to fig. 6, if it is needed to send a multicast message initiated by the node 3 to the node 1, the nodes 2, … …, and the node n, the sending queue unit SQEn +1 is generated by using the node information of the node 1 in the target multicast group information table and the message content address information in the message cache of the received multicast message sent by the multicast group normal node, the sending queue units SQEn +2, … … are generated by using the node information of the node 2 in the target multicast group information table and the message content address information in the message cache of the received multicast message sent by the multicast group normal node, and the sending queue unit SQE2n-1 is generated by using the node information of the node n in the target multicast group information table and the message content address information in the message cache of the received multicast message sent by the multicast group normal node. Continuing to refer to fig. 6, the generated sending queue units SQE1, SQE2, … …, and SQE2n-1 are respectively filled in the RDMA multicast message sending queue, and then by the RDMA multicast message sending queue filled in the sending queue units, the sending of multicast messages to the node 1, the node 2, and the node … … n is realized, and the multicast function is realized. Here, since the node 3 is a node that initiates a multicast message, it is not necessary to generate a transmission queue unit corresponding to the node 3, that is, it is not necessary to transmit the multicast message to the node 3.
Optionally, with continued reference to fig. 6, the node information of the common node of the multicast group may include identification information (QPN) of RDMA multicast Queue pair of the common node of the multicast group, a corresponding Queue pair KEY value (Q-KEY), and a corresponding multicast message reception Status (Status) indicating whether the multicast message is successfully received.
Optionally, there may be one or more RDMA multicast messaging queues, for example, as shown in fig. 7, the multicast proxy node constructs the RDMA multicast messaging queue 1 and the RDMA multicast messaging queue 2 by using SQE1, SQE2, … …, SQEn generated by the message content address information of the multicast message in the message cache and the node information of each multicast group common node (node 1, node 2 … … node n, node n +1, … … node 2n) in the multicast group information table. The multicast proxy node can process a plurality of sending queues in parallel and accelerate the speed of sending the multicast messages.
Optionally, referring to fig. 8, in an embodiment of the present application, a process of a multicast group common node joining a target multicast group includes:
s801, receiving a target multicast group joining request sent by the common node of the multicast group.
The target multicast group joining request sent by the common node of the multicast group carries the identification information of the RDMA multicast queue pair of the common node of the multicast group. An RDMA multicast queue pair comprising: an RDMA multicast message send queue and an RDMA multicast receive queue. The RDMA multicast message sending queue is used for sending multicast messages, and the RDMA multicast receiving queue is used for receiving multicast messages.
The target multicast group joining request is used for requesting to join the target multicast group where the multicast proxy node is located. Before the common multicast group node is not added to the target multicast group, the common multicast group node cannot receive the multicast message sent by the multicast proxy node and cannot send the multicast message needing to be multicast to the target multicast group to the multicast proxy node, namely, the common multicast group node cannot multicast for the common multicast group node which is not added to the target multicast group. Therefore, if a common node of a multicast group wants to receive the multicast message sent by the multicast proxy node and/or wants to multicast for the common node through the multicast proxy node, a target multicast group join request is sent to the multicast proxy node.
Alternatively, the multicast proxy node may perform the process of step S801 such that the multicast proxy node locally allocates an RDMA multicast Queue Pair (Queue Pair, QP) for receiving and sending the multicast message in advance, and the multicast group common node locally allocates an RDMA multicast Queue Pair for receiving and sending the multicast message. After the RDMA multicast queue pair is generated by the common multicast group node, reliable connection is established between the common multicast group node and the multicast proxy node, and then a target multicast group joining request is sent to the multicast proxy node. The target multicast group joining request carries identification information of the RDMA multicast queue pair locally distributed by the common nodes of the multicast group. Wherein, the identification information of the RDMA multicast queue pair may be address information of the RDMA multicast queue pair.
S802, distributing corresponding queue pair key values for the identification information of the RDMA multicast queue pair of the common nodes of the multicast group, and recording the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key values into a target multicast group information table.
And the multicast proxy node receives the target multicast group joining request and distributes a corresponding queue pair key value for the identification information of the RDMA multicast queue pair of the common node of the multicast group. When a subsequent common multicast group node sends a message to a multicast proxy node, the sent message carries identification information of an RDMA multicast queue pair of the common multicast group node and also needs to carry a queue pair key value distributed by the multicast proxy node, so that the common multicast group node sending the message is really a node in a target multicast group, and the message transmission safety is improved. The identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key value are recorded in the target multicast group information table in an associated manner, and the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key value recorded in the target multicast group information table are needed to be used when the multicast message sent by the common nodes of the multicast group is subsequently received or sent to the common nodes of the multicast group.
Optionally, the process of the multicast proxy node executing step S802 may be that the multicast proxy node writes the identification information of the RDMA multicast queue pair of the multicast group common node carried in the target multicast group join request into the target multicast group information table, then allocates a corresponding queue pair key value to the multicast group common node, and also writes the allocated queue pair key value into the target multicast group information table, where the identification information of the RDMA multicast queue pair of the multicast group common node and the corresponding queue pair key value are recorded in the target multicast group information table in an associated manner.
Optionally, in an embodiment of the present application, before the step S802 is executed, the target multicast group join request may be verified, and after the verification is passed, the step S802 is executed. The verification of the target multicast group joining request means that whether the common node of the multicast group has the authority to join the target multicast group is verified through the target multicast group joining request, if so, the step S802 is executed, and if not, the joining request of the target multicast group is rejected.
And S803, returning the identification information of the RDMA multicast queue pair of the multicast proxy node and the key value of the queue pair distributed for the common multicast group node to the common multicast group node.
Specifically, the multicast proxy node sends the identification information of its own RDMA multicast queue pair to the common multicast group node, so that when the common multicast group node receives the multicast message sent by the multicast proxy node, it can determine that the message is the multicast message sent by the multicast proxy node through the identification information of the RDMA multicast queue pair of the multicast proxy node carried in the message. The multicast proxy node sends the queue pair key value allocated to the common multicast group node, so that the subsequent common multicast group node must carry the queue pair key value allocated to the common multicast group node when sending a message to the multicast proxy node, so that the multicast proxy node determines that the received message is the message sent by the common multicast group node belonging to the target multicast group through the queue pair key value.
When the common multicast group node receives the identification information of the RDMA multicast queue pair of the multicast proxy node and the queue pair key value distributed to the common multicast group node, the common multicast group node can know that the common multicast group node successfully joins the target multicast group, and then can subsequently receive the multicast message sent by the multicast proxy node, and can multicast the multicast message which needs to be multicast to the target multicast group through the multicast proxy node.
Optionally, in a specific embodiment of the present application, after the step S803 is executed, the method further includes:
and informing each common node of the multicast group in the target multicast group of the message that the common node of the multicast group successfully joins the target multicast group.
After the common multicast group node successfully joins the target multicast group, in order to make other common multicast group nodes in the target multicast group know the information of the node newly joining the target multicast group, the message that the common multicast group node has successfully joined the target multicast group can be notified to each common multicast group node in the target multicast group, and specifically, the node information of the common multicast group node newly joining the target multicast group can be notified to each common multicast group node in the target multicast group.
Optionally, referring to fig. 9, in an embodiment of the present application, a process of a common node of a multicast group exiting a target multicast group includes:
s901, receiving a target multicast group quitting request sent by a common node of the multicast group.
The target multicast group exit request sent by the common multicast group node carries the identification information of the RDMA multicast queue pair of the common multicast group node and the key value of the corresponding queue pair. When the common node of the target multicast group does not want to receive the multicast message multicast by the multicast proxy node and/or does not need the multicast proxy node to multicast for the common node, the common node of the target multicast group can send a target multicast group quitting request to the multicast proxy node. The target multicast group exit request needs to carry the identification information of the RDMA multicast queue pair of the common node of the multicast group and the corresponding queue pair key value, so that the multicast proxy node determines whether the common node of the multicast group is a node in the target multicast group through the identification information of the RDMA multicast queue pair of the common node of the multicast group and the corresponding queue pair key value.
S902, judging whether the information consistent with the identification information of the RDMA multicast queue pair carried in the target multicast group exit request and the key value of the corresponding queue pair can be inquired in the target multicast group information table.
As shown in fig. 8, when a common node of a multicast group joins a target multicast group, the identification information of the RDMA multicast queue pair of the common node of the multicast group and the corresponding queue pair key value are recorded in the target multicast group information table. Therefore, if the common node of the multicast group is a node in the target multicast group, the multicast proxy node can query, from the target multicast group information table, information that is consistent with the identifier information of the RDMA multicast queue pair carried in the target multicast group exit request and the key value of the corresponding queue pair, and then the multicast proxy node can process the target multicast group exit request, that is, execute step S903. However, if the common node of the multicast group is not a node in the target multicast group, the information which is consistent with the identification information of the RDMA multicast queue pair carried in the target multicast group exit request and the key value of the corresponding queue pair cannot be inquired from the target multicast group information table, that is, the process is ended, and the target multicast group exit request is not processed.
Judging whether the information which is consistent with the identification information of the RDMA multicast queue pair carried in the target multicast group exit request and the corresponding queue pair key value can be inquired in the target multicast group information table means that the identification information of the RDMA multicast queue pair carried in the target multicast group exit request can be inquired in the target multicast group, and the queue pair key value of the inquired identification information of the RDMA multicast queue pair in the target multicast group information table is also consistent with the queue pair key value carried in the target multicast group exit request.
S903, deleting the identification information of the RDMA multicast queue pair of the common node of the multicast group and the corresponding queue pair key value from the target multicast group information table.
The multicast proxy node deletes the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the key value of the corresponding queue pair from the target multicast group information table, namely, the information related to the common nodes of the multicast group is not recorded in the target multicast group.
It should be noted that, after the queue pair key value is deleted from the target multicast group information table, it may also be allocated to a subsequent multicast group common node that wants to join the target multicast group, and may be reused.
And S904, returning a response message for indicating that the common node of the multicast group successfully exits the target multicast group to the common node of the multicast group.
After the information of the common multicast group nodes in the target multicast group information table is successfully deleted, the response message for indicating that the common multicast group nodes successfully quit the target multicast group is returned to the common multicast group nodes, so that the common multicast group nodes determine that the common multicast group nodes successfully quit the target multicast group.
After the common node of the multicast group quits the target multicast group, the common node of the multicast group can not receive the multicast message sent by the multicast proxy node any more and can not carry out multicast through the multicast proxy node any more.
Optionally, the multicast proxy node may further notify each multicast group general node in the target multicast group of a message indicating that the multicast group general node has successfully exited the target multicast group.
S502, inquiring the multicast message sending result corresponding to each multicast group common node from the RDMA completion queue corresponding to the RDMA multicast message sending queue.
And the multicast message sending result is used for explaining whether the common nodes of the multicast group successfully receive the multicast message sent by the multicast proxy node. Because the step S501 is executed by using the multicast message sent through the RDMA multicast message sending queue, the RDMA protocol itself has a function that there exists an RDMA completion queue corresponding to the RDMA multicast message sending queue, and stores the multicast message sending result corresponding to each multicast group common node.
That is, in the embodiment of the present application, multicast is performed by using a multicast proxy node, so that in the embodiment of the present application, multicast can be performed by using an RDMA protocol that cannot be used by a router. And the RDMA completion queue corresponding to the RDMA multicast message sending queue has the multicast message sending result corresponding to each multicast group common node, and further by inquiring the RDMA completion queue corresponding to the RDMA multicast message sending queue, the target multicast group can be known which multicast group common nodes do not receive the multicast message and which multicast group common nodes successfully receive the multicast message.
Specifically, referring to fig. 10, the multicast proxy node generates an RDMA multicast message transmission queue according to the node information in the target multicast group information table, and transmits a multicast message to the node in the multicast group information table through the transmission queue. After the sending Queue units SQE1, SQE2, … …, SQEn +1 in the RDMA multicast message sending Queue complete sending, a corresponding Completion Queue unit (CQE) is generated in the corresponding Completion Queue. The completion queue unit corresponding to the sending queue unit SQE1 is CQE1, and the multicast message sending result corresponding to the description SQE1 is stored in the CQE 1. That is, if the SQE1 is used to send to node 1, the CQE1 indicates whether node 1 successfully received SQE 1. Similarly, the completion queue elements corresponding to the sending queue element SQE2 are CQEs 2 and … …, and the completion queue element corresponding to the sending queue element SQEn +1 is CQEn + 1. The multicast proxy node may query, through each completion queue unit in the completion queue shown in fig. 10, a multicast message transmission result corresponding to each common node of the multicast group by reading the multicast message transmission result in each completion unit.
In the prior art, since the router sends the multicast message, the router does not know whether the multicast message is successfully received by the node after sending the multicast message to the node. In the embodiment of the application, because the multicast message is sent by the multicast proxy node instead of the router, the RDMA protocol can be used for sending the multicast message to a plurality of common nodes of the multicast group through the RDMA multicast message sending queue, and further, the multicast message sending result corresponding to each common node of the multicast group can be inquired through the RDMA completion queue corresponding to the RDMA multicast message sending queue. The multicast proxy node can know which multicast group common nodes do not successfully receive the multicast message from the multicast message sending result corresponding to each multicast group common node, so that the multicast message can be retransmitted to the multicast group common nodes which do not successfully receive the multicast message, and the stability of multicast message transmission is improved.
S503, screening all the multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node from the inquired multicast message sending result corresponding to each multicast group common node.
Because the multicast message sending result can indicate whether the multicast group common node successfully receives the multicast message sent by the multicast proxy node, all the multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node can be screened out from the multicast message sending result corresponding to each inquired multicast group common node.
Optionally, after all the multicast group common nodes that have not successfully received the multicast message sent by the multicast proxy node are screened out, the multicast group common nodes that have not successfully received the multicast message sent by the multicast proxy node may also be recorded, so that the multicast message is retransmitted by the multicast group common nodes that have not successfully received the multicast message sent by the multicast proxy node in the following process. For example, as shown in fig. 10, the multicast proxy node may screen all the common multicast group nodes that do not successfully receive the multicast message sent by the multicast proxy node by reading the multicast message sending result in the completion queue element CQE from the completion queue, and then mark the multicast message receiving Status in the target multicast group information table of all the screened common multicast group nodes that do not successfully receive the multicast message sent by the multicast proxy node as abnormal, thereby recording all the common multicast group nodes that do not successfully receive the multicast message sent by the multicast proxy node in the target multicast group information table.
It should be noted that, if the multicast group common node that does not successfully receive the multicast message sent by the multicast proxy node is not screened out from the multicast message sending result corresponding to each queried multicast group common node, it is considered that each multicast group common node successfully receives the multicast message, and therefore the process may be ended.
Optionally, referring to fig. 11, in an embodiment of the present application, an implementation manner of performing step S503 includes:
s1101, if a multicast message sending result for indicating that the multicast message sent by the multicast proxy node is not successfully received exists in the multicast message sending result corresponding to each multicast group common node, recording the multicast message sending result corresponding to each multicast group common node into a target multicast group information table.
The target multicast group information table includes node information of each common node in the target multicast group.
If there is a multicast message transmission result that does not successfully receive the multicast message transmitted by the multicast proxy node in the multicast message transmission result corresponding to each multicast group common node queried in step S502, recording the multicast message transmission result corresponding to each multicast group common node into the target multicast group information table, and implementing the screening of all multicast group common nodes that do not successfully receive the multicast message transmitted by the multicast proxy node from the target multicast group information table.
It should be noted that, if there is no multicast message transmission result indicating that the multicast message transmitted by the multicast proxy node is not successfully received in the multicast message transmission result corresponding to each multicast group common node, it is considered that all multicast group common nodes successfully receive the multicast message, and the process may be ended.
For example, as shown in fig. 10, the multicast message receiving Status flag of the multicast group general node which is queried in the completion queue and does not successfully receive the multicast message in the target multicast group information table may be abnormal, and the multicast message receiving Status which is not marked as abnormal is defaulted to be a normal Status. The implementation of the embodiment of the present application is not affected by the difference of the ways of recording the multicast message transmission result.
And S1102, traversing the recorded target multicast group information table, and screening all the common multicast group nodes which do not successfully receive the multicast message sent by the multicast proxy node from the target multicast group information table.
Before executing step S504 and returning to step S502, the method further includes: and clearing all multicast message sending results recorded in the multicast group information table.
Specifically, the recorded target multicast group information table is traversed to obtain the multicast message sending result of each multicast group common node, and then all the multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node are screened out from the target multicast group information table.
However, before returning to step S502 in step S504, all multicast message transmission results recorded in the multicast group information table need to be cleared, and since the multicast message is retransmitted in step S504, it is necessary to re-record the multicast message transmission results after the multicast message is transmitted, and therefore, it is necessary to clear all multicast message transmission results currently recorded in order to re-record.
S504, sending the multicast message to each screened common node of the multicast group through the RDMA multicast message sending queue, and returning to the step S502 until each common node of the multicast group successfully receives the multicast message sent by the multicast proxy node.
Specifically, the node information of each multicast group common node screened in step S503 and the message content address information of the multicast message may be utilized to generate a send queue unit corresponding to each multicast group common node, then each send queue unit is filled into the RDMA multicast message send queue, and the multicast message is sent to each screened multicast group common node through the RDMA multicast message send queue.
After the transmission is completed, returning to step S502, executing to query the multicast message transmission result corresponding to each multicast group common node from the RDMA completion queue corresponding to the RDMA multicast message transmission queue until each multicast group common node successfully receives the multicast message transmitted by the multicast proxy node, and no longer transmitting the multicast message.
In the prior art, when a router sends a multicast message to a plurality of nodes, under the condition that a fault occurs in a transmission process, some nodes do not receive the multicast message. However, the router does not know which nodes have not received the multicast message, and further does not resend the multicast message to the nodes, so the reliability of the multicast function is not high.
In the embodiment of the application, because the multicast proxy node replaces the router for multicast, and the multicast proxy node is a node capable of using an RDMA protocol, the multicast proxy node can further access an RDMA multicast message sending queue through a remote direct memory and send the multicast message to a plurality of common multicast group nodes in a target multicast group. Wherein, the target multicast group includes: a multicast proxy node and a plurality of multicast group common nodes. Therefore, the multicast message sending result corresponding to each multicast group common node can be inquired from the RDMA completion queue corresponding to the RDMA multicast message sending queue, then all the multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node are screened out from the RDMA multicast message sending queue, further, the step of sending the multicast message to each screened multicast group common node through the RDMA multicast message sending queue is realized, the step of inquiring the multicast message sending result corresponding to each multicast group common node in the RDMA completion queue corresponding to the RDMA multicast message sending queue is returned to be executed until each multicast group common node successfully receives the multicast message sent by the multicast proxy node. Therefore, in the application, due to the use of the RDMA protocol queue, the multicast proxy node can resend the multicast message to the common multicast group node when the common multicast group node in the target multicast group does not receive the multicast message, until each common multicast group node receives the multicast message, thereby improving the reliability of the multicast message transmission process.
Optionally, referring to fig. 12, an embodiment of the present application provides another multicast message communication method, which is applied to a multicast proxy node, where the multicast message communication method specifically includes the following steps:
s1201, sending the multicast message to a plurality of common nodes of the multicast group in the target multicast group through the remote direct memory access RDMA multicast message sending queue.
The principle and the execution process of step S1201 are the same as those of step S501 shown in fig. 5, and may be referred to here, which is not described again.
S1202, inquiring the multicast message sending result corresponding to each multicast group common node from the RDMA completion queue corresponding to the RDMA multicast message sending queue.
The principle and the execution process of step S1202 are the same as step S502 shown in fig. 5, which can be referred to herein and are not described again.
S1203, screening all multicast group common nodes that have not successfully received the multicast message sent by the multicast proxy node from the multicast message sending result corresponding to each queried multicast group common node.
The principle and the execution process of step S1203 are the same as those of step S503 shown in fig. 5, and reference may be made to this step, which is not described herein again.
S1204, judge whether the total number of times of sending the multicast message exceeds sending the threshold value.
Wherein, the sending threshold is larger than the total number of the common nodes of the multicast group in the target multicast group. In the embodiment shown in fig. 12, the multicast message is retransmitted to the multicast group common node that does not successfully receive the multicast message sent by the multicast proxy node by screening out all the multicast group common nodes that do not successfully receive the multicast message sent by the multicast proxy node, but in order to avoid the occurrence of a situation that some multicast group common nodes cannot successfully receive the multicast message all the time and the multicast proxy node continuously retransmits the multicast message, the multicast proxy node presets a sending threshold, and specifies that step S1205 is not executed after the total number of times that the multicast proxy node sends the multicast message exceeds the sending threshold, and the multicast message is multicast. Optionally, after determining that the total number of times of the multicast message exceeds the sending threshold, all the multicast group common nodes that have not successfully received the multicast message sent by the multicast proxy node and are selected in step S1203 may also be reported to the module capable of processing the transmission failure.
If the total number of times of sending the multicast message does not exceed the sending threshold, it is proved that the multicast proxy node can still continue to resend the multicast message to all the common nodes of the multicast group that did not successfully receive the multicast message sent by the multicast proxy node, that is, step S1205 is executed.
And S1205, sending the multicast message to each screened common multicast group node through the RDMA multicast message sending queue, and returning to execute the step S1202 until each common multicast group node successfully receives the multicast message sent by the multicast proxy node.
The principle and the execution process of step S1205 are the same as those of step S504 shown in fig. 5, which can be referred to herein and are not described herein again.
In the embodiment of the present application, before step S1205 is executed, it is determined whether the total number of times of sending the multicast message exceeds the sending threshold, so that a problem that the multicast proxy node continuously resends the multicast message and pays a large amount of meaningless workload due to the fact that the existing multicast group common node cannot successfully receive the multicast message all the time can be avoided. If the common multicast node of the multicast group cannot successfully receive the multicast message all the time, it indicates that the common multicast node of the multicast group cannot successfully receive the multicast message by continuously and repeatedly sending the multicast message, and further can finish multicasting the multicast message, and reduce the workload of the multicast proxy node.
Referring to fig. 13, based on the above communication method of multicast message provided in the embodiment of the present application, the embodiment of the present application further discloses a communication device of multicast message correspondingly, which is applied to a multicast proxy node, where the communication device of multicast message includes: a first sending unit 1301, an inquiring unit 1302, a screening unit 1303, and a second sending unit 1304.
The first sending unit 1301 is configured to send, through the RDMA multicast message sending queue, a multicast message to a plurality of multicast group common nodes in a target multicast group. Wherein, the target multicast group includes: a multicast proxy node and a plurality of multicast group common nodes.
A querying unit 1302, configured to query, from an RDMA completion queue corresponding to the RDMA multicast message sending queue, a multicast message sending result corresponding to each multicast group common node. And the multicast message sending result is used for explaining whether the common nodes of the multicast group successfully receive the multicast message sent by the multicast proxy node.
And the screening unit 1303 is configured to screen out all multicast group common nodes that have not successfully received the multicast message sent by the multicast proxy node from the multicast message sending result corresponding to each queried multicast group common node.
Optionally, in an embodiment of the present application, the screening unit 1303 includes: a record subunit and a traverse subunit.
And the recording subunit is configured to record, if a multicast message sending result indicating that the multicast message sent by the multicast proxy node is not successfully received exists in the multicast message sending result corresponding to each queried multicast group common node, the multicast message sending result corresponding to each multicast group common node into the target multicast group information table. The target multicast group information table includes node information of each common node in the target multicast group.
And the traversal subunit is used for traversing the recorded target multicast group information table and screening all the multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node from the target multicast group information table. The communication device for multicasting the message further comprises: and the clearing unit is used for clearing all multicast message sending results recorded in the multicast group information table.
A second sending unit 1304, configured to send, through the RDMA multicast message sending queue, a multicast message to each screened multicast group common node, and return to the querying unit 1302 until each multicast group common node successfully receives the multicast message sent by the multicast proxy node.
Optionally, in an embodiment of the present application, a communication device for multicasting a message further includes: the device comprises a first generating unit and a filling unit.
And the first generating unit is used for respectively generating a sending queue unit corresponding to each multicast group common node by using the message content address information of the multicast message and the node information of each multicast group common node.
And the filling unit is used for filling the sending queue unit corresponding to each generated multicast group common node into the RDMA multicast message sending queue.
Optionally, in an embodiment of the present application, a communication device for multicasting a message further includes:
and the cache unit is used for responding to the local multicast initiating request, generating a multicast message and storing the multicast message in a local message cache, or receiving the multicast message which is sent by the common node of the multicast group and needs to be multicast to the target multicast group and storing the multicast message in the local message cache.
Optionally, in an embodiment of the present application, a communication device for multicasting a message further includes: the device comprises a first receiving unit, a distribution unit and a first return unit.
The first receiving unit is used for receiving a target multicast group joining request sent by a common node of a multicast group. The target multicast group joining request sent by the common node of the multicast group carries the identification information of the RDMA multicast queue pair of the common node of the multicast group, and the RDMA multicast queue pair comprises the following steps: the system comprises an RDMA multicast message sending queue and an RDMA multicast receiving queue, wherein the RDMA multicast message sending queue is used for sending multicast messages, and the RDMA multicast receiving queue is used for receiving multicast messages.
And the distribution unit is used for distributing the corresponding queue pair key value for the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and recording the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key value into a target multicast group information table.
And the first returning unit is used for returning the identification information of the RDMA multicast queue pair of the multicast proxy node and the queue pair key value distributed to the common multicast group node.
Optionally, in an embodiment of the present application, a communication device for multicasting a message further includes: a second receiving unit and a first judging unit.
And the second receiving unit is used for receiving the multicast message which is sent by the common node of the multicast group and needs to multicast the target multicast group. The multicast message carries identification information of the RDMA multicast queue pair of the common nodes of the multicast group and a corresponding queue pair key value.
A first determining unit, configured to determine whether the identifier information of the RDMA multicast queue pair of the multicast group common node and the corresponding queue pair key value carried in the multicast message are consistent with those recorded in the target multicast group information table, and if the identifier information of the RDMA multicast queue pair of the multicast group common node and the corresponding queue pair key value carried in the multicast message are consistent with those recorded in the target multicast group information table, return to the first sending unit 1301.
Optionally, in an embodiment of the present application, a communication device for multicasting a message further includes: a third receiving unit, a deleting unit and a second returning unit.
And the third receiving unit is used for receiving the target multicast group quitting request sent by the common node of the multicast group. The target multicast group exit request sent by the common multicast group node carries the identification information of the RDMA multicast queue pair of the common multicast group node and the key value of the corresponding queue pair.
And the deleting unit is used for deleting the identification information of the RDMA multicast queue pair of the common node of the multicast group and the corresponding queue pair key value from the target multicast group information table if the information which is consistent with the identification information of the RDMA multicast queue pair carried in the target multicast group exit request and the corresponding queue pair key value is inquired from the target multicast group information table.
And the second returning unit is used for returning a response message for explaining that the common node of the multicast group successfully exits the target multicast group to the common node of the multicast group.
Optionally, in an embodiment of the present application, a communication device for multicasting a message further includes:
and the second judgment unit is used for judging whether the total times of sending the multicast messages exceeds a sending threshold value or not, if the total times of sending the multicast messages does not exceed the sending threshold value, the screening unit executes an RDMA multicast message sending queue and sends the multicast messages to each screened common node of the multicast group, and if the total times of sending the multicast messages exceeds the sending threshold value, the multicasting of the multicast messages is finished.
The specific principle and the implementation process in the communication device for multicast messages disclosed in the embodiment of the present application are the same as those in the communication method for multicast messages disclosed in the embodiment of the present application, and reference may be made to corresponding parts in the communication method for multicast messages disclosed in the embodiment of the present application, which are not described herein again.
The communication device for multicast messages provided in the embodiment of the present application is applied to a multicast proxy node, and in the embodiment of the present application, a first sending unit 1301 sends a multicast message to a plurality of common nodes of a multicast group in a target multicast group through an RDMA multicast message sending queue. Wherein, the target multicast group includes: a multicast proxy node and a plurality of multicast group common nodes. Therefore, the query unit 1302 may query the multicast message sending result corresponding to each common multicast group node from the RDMA completion queue corresponding to the RDMA multicast message sending queue, then screen out all common multicast group nodes that have not successfully received the multicast message sent by the multicast proxy node, and further implement sending the multicast message to each screened common multicast group node through the RDMA multicast message sending queue, and return to execute the step of querying the multicast message sending result corresponding to each common multicast group node in the RDMA completion queue corresponding to the RDMA multicast message sending queue until each common multicast group node successfully receives the multicast message sent by the multicast proxy node. Therefore, in the application, due to the use of the RDMA protocol queue, the multicast proxy node can resend the multicast message to the common multicast group node when the common multicast group node in the target multicast group does not receive the multicast message, until each common multicast group node receives the multicast message, thereby improving the reliability of the multicast message transmission process.
The embodiments of the present application further provide a computer-readable medium, on which a computer program is stored, where the program, when executed by a processor, implements the communication method for multicast messages according to the embodiments.
An embodiment of the present application further provides an electronic device, including: one or more processors, a storage device, having one or more programs stored thereon, which when executed by the one or more processors, cause the one or more processors to implement a method of communicating multicast messages as described in the various embodiments.
Those skilled in the art can make or use the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
It is further noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.

Claims (10)

1. A communication method of multicast messages is applied to a multicast proxy node, and the communication method of multicast messages comprises the following steps:
accessing an RDMA multicast message sending queue through a remote direct memory, and sending multicast messages to a plurality of common multicast group nodes in a target multicast group; wherein the target multicast group includes: the multicast proxy node and a plurality of common nodes of the multicast group;
inquiring a multicast message sending result corresponding to each multicast group common node from an RDMA completion queue corresponding to the RDMA multicast message sending queue; the multicast message sending result is used for explaining whether the common node of the multicast group successfully receives the multicast message sent by the multicast proxy node;
screening all multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node from the inquired multicast message sending result corresponding to each multicast group common node;
and sending the multicast message to each screened common multicast group node through the RDMA multicast message sending queue, returning to execute the RDMA completion queue corresponding to the RDMA multicast message sending queue, and inquiring the multicast message sending result corresponding to each common multicast group node until each common multicast group node successfully receives the multicast message sent by the multicast proxy node.
2. The method of claim 1, wherein prior to sending the multicast message to the plurality of multicast group common nodes in the target multicast group via the remote direct memory access RDMA multicast messaging queue, further comprising:
respectively generating a sending queue unit corresponding to each common node of the multicast group by using the message content address information of the multicast message and the node information of each common node of the multicast group;
and filling the generated sending queue unit corresponding to each common node of the multicast group into an RDMA multicast message sending queue.
3. The method according to claim 1, wherein the screening out all multicast group common nodes that have not successfully received the multicast message sent by the multicast proxy node from the queried multicast message sending result corresponding to each multicast group common node comprises:
if the multicast message sending result for indicating that the multicast message sent by the multicast proxy node is not successfully received exists in the multicast message sending result corresponding to each inquired multicast group common node, recording the multicast message sending result corresponding to each multicast group common node into a target multicast group information table; the target multicast group information table comprises node information of each common node of the target multicast group;
traversing the recorded target multicast group information table, and screening all multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node from the target multicast group information table;
before the step of returning to execute the multicast message sending result corresponding to each multicast group common node in the completion queue corresponding to the multicast message sending queue and querying the multicast message sending result corresponding to each multicast group common node, the method further includes:
and clearing all multicast message sending results recorded in the multicast group information table.
4. The method according to claim 1, wherein the process of the multicast group normal node joining the target multicast group comprises:
receiving a target multicast group joining request sent by the common node of the multicast group; the target multicast group joining request sent by the common multicast group node carries identification information of an RDMA multicast queue pair of the common multicast group node; the RDMA multicast queue pair comprises: an RDMA multicast message sending queue and an RDMA multicast receiving queue; the RDMA multicast message sending queue is used for sending multicast messages; the RDMA multicast receiving queue is used for receiving multicast messages;
distributing corresponding queue pair key values for the identification information of the RDMA multicast queue pair of the common nodes of the multicast group, and recording the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key values into a target multicast group information table;
and returning the identification information of the RDMA multicast queue pair of the multicast proxy node and a queue pair key value distributed for the common multicast group node to the common multicast group node.
5. The method of claim 4, wherein prior to sending the multicast message to the plurality of multicast group common nodes in the target multicast group via the remote direct memory access RDMA multicast messaging queue, further comprising:
receiving a multicast message which is sent by the common node of the multicast group and needs to multicast the target multicast group; the multicast message carries identification information of an RDMA multicast queue pair of the common nodes of the multicast group and a corresponding queue pair key value;
judging whether the identification information of the RDMA multicast queue pair of the common nodes of the multicast group and the corresponding queue pair key value carried in the multicast message are consistent with those recorded in the target multicast group information table or not;
and if the identification information of the RDMA multicast queue pair of the common multicast group nodes carried in the multicast message and the key value of the corresponding queue pair are consistent with those recorded in the target multicast group information table, executing the step of accessing the RDMA multicast message sending queue through the remote direct memory and sending the multicast message to a plurality of common multicast group nodes in the target multicast group.
6. The method according to claim 4, wherein the process of the multicast group normal node exiting the target multicast group comprises:
receiving a target multicast group quitting request sent by the common node of the multicast group; the target multicast group exit request sent by the common multicast group node carries identification information of an RDMA multicast queue pair of the common multicast group node and a corresponding queue pair key value;
if the information which is consistent with the identification information of the RDMA multicast queue pair carried in the target multicast group exit request and the corresponding queue pair key value is inquired from the target multicast group information table, deleting the identification information of the RDMA multicast queue pair of the common node of the multicast group and the corresponding queue pair key value from the target multicast group information table;
and returning a response message for indicating that the common node of the multicast group successfully exits the target multicast group to the common node of the multicast group.
7. The method of claim 1, wherein prior to sending the multicast message to each screened multicast group regular node via the RDMA multicast messaging queue, further comprising:
judging whether the total times of sending the multicast message exceeds a sending threshold value;
if the total times of sending the multicast messages do not exceed the sending threshold, executing the step of sending the multicast messages to each screened multicast group common node through the RDMA multicast message sending queue;
if the total times of sending the multicast message exceeds the sending threshold, finishing multicasting the multicast message.
8. A communication device for multicast messages, which is applied to a multicast proxy node, and comprises:
the first sending unit is used for accessing the RDMA multicast message sending queue through the remote direct memory and sending the multicast message to a plurality of common multicast group nodes in a target multicast group; wherein the target multicast group includes: the multicast proxy node and a plurality of common nodes of the multicast group;
the query unit is used for querying a multicast message sending result corresponding to each multicast group common node from the RDMA completion queue corresponding to the RDMA multicast message sending queue; the multicast message sending result is used for explaining whether the common node of the multicast group successfully receives the multicast message sent by the multicast proxy node;
the screening unit is used for screening all the multicast group common nodes which do not successfully receive the multicast message sent by the multicast proxy node from the inquired multicast message sending result corresponding to each multicast group common node;
and the second sending unit is used for sending the multicast message to each screened multicast group common node through the RDMA multicast message sending queue and returning to the query unit until each multicast group common node successfully receives the multicast message sent by the multicast proxy node.
9. A computer-readable medium, on which a computer program is stored, wherein the program, when executed by a processor, implements the method of any one of claims 1 to 7.
10. An electronic device, comprising:
one or more processors;
a storage device having one or more programs stored thereon;
the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the method of any of claims 1-7.
CN202011269890.8A 2020-11-13 2020-11-13 Multicast message communication method and device, readable medium and electronic equipment Active CN112448826B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011269890.8A CN112448826B (en) 2020-11-13 2020-11-13 Multicast message communication method and device, readable medium and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011269890.8A CN112448826B (en) 2020-11-13 2020-11-13 Multicast message communication method and device, readable medium and electronic equipment

Publications (2)

Publication Number Publication Date
CN112448826A true CN112448826A (en) 2021-03-05
CN112448826B CN112448826B (en) 2022-04-15

Family

ID=74738041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011269890.8A Active CN112448826B (en) 2020-11-13 2020-11-13 Multicast message communication method and device, readable medium and electronic equipment

Country Status (1)

Country Link
CN (1) CN112448826B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804068A (en) * 2021-03-19 2021-05-14 恒生电子股份有限公司 Method and device for setting sending sequence, readable medium and electronic equipment
CN114944966A (en) * 2022-04-20 2022-08-26 南方电网深圳数字电网研究院有限公司 RDMA multicast-based data transmission method and system
CN114979260A (en) * 2022-05-12 2022-08-30 深圳市绿联科技股份有限公司 Protocol-based communication method and device, electronic equipment and storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141488A (en) * 2006-09-08 2008-03-12 华为技术有限公司 Multicast service agent implementing method and system and node discovering method
CN101800701A (en) * 2010-02-24 2010-08-11 北京交通大学 Multicasting route control method based on centralized control
CN105099721A (en) * 2014-04-28 2015-11-25 华为技术有限公司 Multicast member maintenance method and equipment
CN105337746A (en) * 2015-09-23 2016-02-17 浙江宇视科技有限公司 Multicast data transmission method and apparatus
US20160094356A1 (en) * 2014-09-30 2016-03-31 Vmware, Inc. Optimized message retransmission mechanism for distributed storage virtualization directory system
CN106533949A (en) * 2015-09-09 2017-03-22 华中师范大学 Domain perception-based multi-domain clustering application layer multicast construction and maintenance method
CN110445678A (en) * 2019-07-26 2019-11-12 新华三大数据技术有限公司 Multicast network detection method, device and forwarding device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141488A (en) * 2006-09-08 2008-03-12 华为技术有限公司 Multicast service agent implementing method and system and node discovering method
CN101800701A (en) * 2010-02-24 2010-08-11 北京交通大学 Multicasting route control method based on centralized control
CN105099721A (en) * 2014-04-28 2015-11-25 华为技术有限公司 Multicast member maintenance method and equipment
US20160094356A1 (en) * 2014-09-30 2016-03-31 Vmware, Inc. Optimized message retransmission mechanism for distributed storage virtualization directory system
CN106533949A (en) * 2015-09-09 2017-03-22 华中师范大学 Domain perception-based multi-domain clustering application layer multicast construction and maintenance method
CN105337746A (en) * 2015-09-23 2016-02-17 浙江宇视科技有限公司 Multicast data transmission method and apparatus
CN110445678A (en) * 2019-07-26 2019-11-12 新华三大数据技术有限公司 Multicast network detection method, device and forwarding device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
甘泉: "《混合网络直播系统中无线组播代理机制研究》", 《中国优秀硕士学位论文全文数据库》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804068A (en) * 2021-03-19 2021-05-14 恒生电子股份有限公司 Method and device for setting sending sequence, readable medium and electronic equipment
CN114944966A (en) * 2022-04-20 2022-08-26 南方电网深圳数字电网研究院有限公司 RDMA multicast-based data transmission method and system
CN114944966B (en) * 2022-04-20 2024-04-19 南方电网数字平台科技(广东)有限公司 RDMA multicast-based data transmission method and system
CN114979260A (en) * 2022-05-12 2022-08-30 深圳市绿联科技股份有限公司 Protocol-based communication method and device, electronic equipment and storage medium
CN114979260B (en) * 2022-05-12 2023-09-15 深圳市绿联科技股份有限公司 Protocol-based communication method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN112448826B (en) 2022-04-15

Similar Documents

Publication Publication Date Title
CN112448826B (en) Multicast message communication method and device, readable medium and electronic equipment
US6807578B2 (en) Nack suppression for multicast protocols in mostly one-way networks
US8023509B2 (en) Communication terminal and retransmission request method
US7680884B2 (en) System and implementation method of controlled multicast
CN101771564B (en) Method, device and system for processing session context
CN103269260A (en) Data transmission method, data receiving terminal, data sending terminal and data transmission system
US20090006641A1 (en) Reliable multicast transport protocol
CN109412677B (en) Communication broadcast self-adaptive fusion method in satellite-ground cooperative block chain system
CN107071826A (en) The method and apparatus of transmitting data resources
JP2002271393A (en) Network system, server, client, communication method and communication program
US9742583B2 (en) Method of data retransmission in collaborative service transmission and access network gateway thereof
CN105162706B (en) Multicast transmission method, apparatus and system
CN107995233B (en) Method for establishing connection and corresponding equipment
CN106034011A (en) Control method and system for multicast transport quality guarantee
JPH06326713A (en) Data transmission control method
KR100240645B1 (en) Packet error controller of multicast communication and method thereof
CN106059936A (en) Method and device for multicasting files in cloud system
CN103475626B (en) A kind of method for asking resource, equipment and system
US20110128956A1 (en) Method and apparatus for requesting multicast, processing and assisting multicast request
JP2003069640A (en) Method and apparatus for explicit multicast service on ethernet (r)
US20120054310A1 (en) Terminal, intermediate node and communication method of the same
CN106130746A (en) A kind of data transmission method and device
CN114157529B (en) Distributed data transmission system and method
KR100396921B1 (en) Error control method in the multicasting transmission system using repeater server
KR100334905B1 (en) A tree configuration method for reliability in transport layer

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