A method and device for repairing multicast data forwarding
By working together with the switch and SDN controller, the multicast source can be quickly detected and notified to send repair data, which solves the problem of multicast data packet loss in the PGM network and improves the reliability of data transmission.
Patent Information
- Application Number
- CN202410868088.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-06-28
- Publication Date
- 2026-01-06
- Estimated Expiration
- 2044-06-28
AI Technical Summary
In PGM networks, multicast data packets are lost because the receiver fails to send NAK messages in a timely manner, and existing technologies cannot promptly notify the multicast source to send repair multicast data.
By working together with the switch and the SDN controller, lost original data packets can be quickly detected. The SDN controller can then construct a negative response packet and send it to the PGM device closest to the multicast source, ensuring that the multicast source sends repair data in a timely manner.
This technology enables the rapid detection of lost data packets in PGM networks and timely notification of the multicast source to send repair data, avoiding multicast data loss caused by NAK packet delays and improving the reliability of data transmission.
Smart Images

Figure CN118802747B_ABST
Abstract
Description
Technical Field
[0001] This application relates to multicast technology, specifically a method and device for repairing multicast data forwarding. Background Technology
[0002] PGM (Pragmatic General Multicast) is a reliable multicast transmission protocol suitable for transmitting ordered or unordered, non-repeating multicast data from multiple multicast sources (senders) to multiple receivers (receivers).
[0003] The multicast source sends ordered ODATA (Original Data) through a custom sending window according to its local policy. The receiver compares the sequence number of the currently received ODATA with the sequence numbers of the previously received ODATA. If there is a gap in the sequence numbers, it is considered that a packet loss has occurred. The receiver waits for a random period of time to confirm that no matching NAK (matching NAK) or matching NCF (matching NCF) has been received. Then, it sends a unicast NAK (Non-Acknowledgment) message on the reverse path of the distribution tree from the multicast source.
[0004] When a multicast source receives a NAK message, it first sends an NCF (NAK Confirmation) message. If the sequence number of the lost multicast data packet in the NAK message is within the current sending window, it sends a repair packet carrying RDATA (Repair data) to the multicast group. If the sequence number is not within the current sending window, it does not send a repair packet. Therefore, in a PGM network, if a significant delay has elapsed before ODATA reaches the receiver, including PGM element delay, link delay, and receiver host protocol stack delay, and the receiver fails to send a NAK message in time, multicast data packet loss occurs within the PGM network. Summary of the Invention
[0005] The purpose of this application is to provide a method and device for repairing multicast data forwarding, and to promptly notify the multicast source to send repaired multicast data.
[0006] To achieve the above objectives, this application provides a method for repairing multicast data forwarding. The method includes: establishing a flow table entry for raw data packets destined for a multicast group; comparing the sequence number of a received raw data packet with the sequence number recorded in the flow table entry; when the sequence number of the received raw data packet is greater than the sequence number recorded in the flow table entry and is not consecutive; sending a multicast group packet loss notification message to a Software-Defined Networking (SDN) controller; wherein the multicast group packet loss notification message carries the multicast source IP address, multicast group IP address, sequence number, and the sequence number recorded in the flow table entry of the received raw data packet; so that the SDN controller constructs a negative acknowledgment message with a repair sequence number and sends it to the PGM device within the Practical General Multicast (PGM) network that is the route closest to the multicast source of the multicast group.
[0007] To achieve the above objectives, this application also provides a practical general-purpose multicast device for repairing multicast data forwarding, which includes at least a processor and a memory. The processor executes processor-executable instructions in the memory to perform the following operations: establishing flow table entries for raw data packets destined for the multicast group; comparing the sequence number of the received raw data packet with the sequence number recorded in the flow table entry; when the sequence number of the received raw data packet is greater than the sequence number recorded in the flow table entry and is not consecutive; sending a multicast group packet loss notification message to the Software-Defined Networking (SDN) controller; wherein the multicast group packet loss notification message carries the multicast source IP address, multicast group IP address, sequence number, and the sequence number recorded in the flow table entry of the received raw data packet; so that the SDN controller constructs a negative acknowledgment message with a repair sequence number and sends it to the PGM device with the nearest route to the multicast source in the PGM network.
[0008] To achieve the above objectives, this application also provides a method for repairing multicast data forwarding. The method includes: receiving a multicast group packet loss notification message; calculating a repair sequence number based on the original data packet sequence number and flow table entry sequence number in the multicast group packet loss notification message; identifying the receiver IP address based on the multicast group IP address in the multicast group packet loss notification message; searching a repair information record table based on the multicast source IP address, the multicast group IP address, and the receiver IP address in the multicast group packet loss notification message; determining that the repair information record table does not record the repair sequence number, and then constructing a negative acknowledgment message carrying the repair sequence number; wherein the destination IP address is the multicast source IP address, and the source IP address is the receiver IP address; and sending a first remote procedure call message carrying the negative acknowledgment message to the PGM device with the nearest route to the multicast source IP address.
[0009] To achieve the above objectives, this application also provides an SDN controller for repairing multicast data forwarding. The SDN controller includes at least a processor and a memory. The processor 71 executes processor-executable instructions in the memory 72 to perform the following operations: receiving a multicast group packet loss notification message; calculating a repair sequence number based on the original data packet sequence number and flow table entry sequence number in the multicast group packet loss notification message; identifying the receiver IP address based on the multicast group IP address in the multicast group packet loss notification message; searching a repair information record table based on the multicast source IP address, multicast group IP address, and receiver IP address in the multicast group packet loss notification message; determining that the repair information record table does not record a repair sequence number, then constructing a negative acknowledgment message carrying the repair sequence number; wherein the destination IP address is the multicast source IP address, and the source IP address is the receiver IP address; and sending a first remote procedure call message carrying the negative acknowledgment message to the PGM device with the nearest route to the multicast source IP address.
[0010] The beneficial effect of this application is that, in a practical general-purpose multicast PGM network, the loss of original data packets can be quickly detected by the upstream switch, and the SDN controller will send a negative acknowledgment message to the PGM device that is closest to the multicast source route to quickly notify the multicast source to send the repair multicast data packets. Attached Figure Description
[0011] Figure 1 A flowchart illustrating an embodiment of the method for repairing multicast data forwarding provided in this application;
[0012] Figure 2 A schematic diagram of a practical general-purpose multicast network provided in the embodiments of this application;
[0013] Figure 3 A flowchart for updating raw data packet flow table entries based on received raw data packets, provided for this application;
[0014] Figure 4 A schematic diagram illustrating the sending of repair multicast data to the rapid notification multicast source provided in this application;
[0015] Figure 5 This application provides a flowchart of the SDN controller notifying each device to generate repair data multicast entries;
[0016] Figure 6 This is a schematic diagram of a practical and general-purpose multicast device embodiment for implementing repair multicast data forwarding provided in this application;
[0017] Figure 7 This is a schematic diagram of an embodiment of an SDN controller for repairing multicast data forwarding provided in this application. Detailed Implementation
[0018] The following detailed description will be provided with reference to several examples illustrated in the accompanying figures. In this detailed description, numerous specific details are used to provide a comprehensive understanding of the present application. Known methods, steps, components, and circuits are not described in detail in the examples to avoid obscuring their meaning.
[0019] In the terminology used, the term "including" means including but not limited to; the term "containing" means including but not limited to; the terms "above," "within," and "below" include the number itself; the terms "greater than" and "less than" mean not including the number itself. The term "based on" means based on at least a portion of them.
[0020] Figure 1 A flowchart illustrating an embodiment of a method for repairing multicast data forwarding provided in this application; the method includes the following steps:
[0021] Step 101: Create flow table entries for the raw data packets sent to the multicast group;
[0022] Step 102: Compare the sequence number of the received raw data packet with the sequence number recorded in the flow table entry;
[0023] Step 103: When the sequence number of the received raw data packet is greater than the sequence number recorded in the flow table entry and is not consecutive;
[0024] Step 104: Send a multicast group packet loss notification message to the Software Defined Network (SDN) controller; wherein, the multicast group packet loss notification message carries the multicast source IP address, multicast group IP address, sequence number, and sequence number recorded in the flow table entry of the received original data packet;
[0025] The SDN controller sends a multicast group packet loss notification message, constructs a negative response message with a repair sequence number, and sends it to the nearest PGM device on the route to the multicast source of the multicast group within the PGM network.
[0026] Figure 1 The beneficial effect of this embodiment is that, in a practical general multicast PGM network, the loss of original data packets can be quickly detected by the upstream switch, and the SDN controller will send a negative acknowledgment message to the PGM device that is closest to the multicast source route to quickly notify the multicast source to send the repair multicast data packets.
[0027] Figure 2 This is a schematic diagram of a practical general-purpose multicast network provided in an embodiment of this application. Switches A through F within the PGM network 20 are all connected to the SDN controller and receive instructions from the SDN controller.
[0028] Multicast source s1 sends sequentially ordered ODATA data packets through a custom sending window according to local policies.
[0029] Switches A through F establish flow table entries based on the received ODATA header message.
[0030] The PGM protocol has a protocol number of 113; different types of messages in the PGM protocol are used to implement different functions. In the PGM protocol, the type field value of the data packet is 4.
[0031] Therefore, switches A through F first identify the PGM protocol message based on the protocol number; then, based on the PGM protocol message's message type being type4, they identify that an ODATA message has been received, rather than other types of control or acknowledgment messages.
[0032] After identifying the ODATA packet, switches A through F check if it is the first packet received. Switches A through F search the flow table based on the source IP address (multicast source IP address) and destination IP address (multicast group IP address) of the ODATA packet. If no matching flow table entry is found, the received ODATA packet is identified as the first packet received, and a flow table entry is created to record the sequence number of the first received packet.
[0033] Then, switches A through F send ODATA through their outgoing ports based on the multicast table entries that match the multicast source IP address and the multicast group IP address.
[0034] Figure 3 A flowchart for updating raw data packet flow table entries based on received raw data packets, provided for this application;
[0035] Step 31: Compare the sequence number of the received raw data packet with the sequence number recorded in the flow table entry;
[0036] After each of switches A-F establishes a flow table entry, upon receiving ODATA from multicast source S1, the sequence number of the received ODATA is compared with the sequence number recorded in the local flow table entry.
[0037] Step 32: When the sequence number of the received raw data packet is greater than and consecutive to the sequence number recorded in the flow table entry;
[0038] If the sequence numbers of the ODATA received by switches A through F are larger and consecutive than the sequence numbers recorded in the local flow table entries, it indicates that no ODATA packets were lost.
[0039] Step 33: Update the sequence number recorded in the flow table entry according to the sequence number of the received original data packet;
[0040] Switches A through F modify the sequence number recorded in their local flow table entries to the sequence number of the received ODATA, for use in subsequent ODATA packet loss checks.
[0041] Step 34: Send the received raw data packets along the multicast distribution tree of the multicast group.
[0042] If there is no packet loss in ODATA, switches A through F continue to forward normally, sending the received ODATA according to the outgoing port of the multicast forwarding table entry, which is the outgoing port of the multicast distribution tree of the multicast group.
[0043] Figure 4 This is a diagram illustrating the sending of repair multicast data to the fast notification multicast source provided in this application.
[0044] Switch C receives ODATA, and then... Figure 3 As shown, the sequence number of the received ODATA is compared with the record sequence number of the local flow table entry. The sequence number of the received ODATA is greater than the record sequence number in the local flow table entry and is not consecutive; packet loss has occurred.
[0045] Switch C sends a multicast group packet loss notification message 301 to the SDN controller. Switch C can implement the multicast group packet loss notification message 301 through remote RPC communication. Through remote RPC communication, it sends the multicast source IP address, multicast group IP address, sequence number of ODATA, and sequence number recorded in the local flow table entry to the SDN controller.
[0046] The SDN controller receives a multicast group packet loss notification message 301 and calculates the repair sequence number based on the sequence number of the received ODATA and the flow table entry sequence number of switch C.
[0047] The SDN controller identifies the IP addresses of multicast receivers R1 and R2 based on the multicast group IP address in the multicast group packet loss notification message 301.
[0048] The SDN controller searches the repair information record table based on the multicast source IP address, multicast group IP address, and the IP address of the receiving end R1 or R2 in the multicast group packet loss notification message 301.
[0049] If the SDN controller fails to find the corresponding repair information record table, or if the repair sequence number recorded in the found repair information table is inconsistent with the currently calculated repair sequence number, then a NAK message 302 is constructed. The destination IP address of the NAK message 302 is the multicast source IP address, and the source IP address is the IP address of the multicast receiver R1. The NAK message 302 carries the repair sequence number currently calculated by the SDN controller.
[0050] The inventors of this application discovered through testing that if the switches in the PGM network generate fast notification NAK messages, it will consume a large amount of CPU resources. The SDN controller can quickly generate NAK messages to avoid CPU resource consumption by the switches and can also send the NAK messages to the switch closest to the multicast source route more quickly, thus speeding up the transmission of RDATA.
[0051] It should be noted that if the repair sequence number recorded in the repair information record table found by the SDN controller is the same as the currently calculated repair sequence number, it means that the SDN controller has already constructed a NAK packet. In order to suppress too many NAK packets in the network, the SDN controller will not generate NAK packets repeatedly for the same repair sequence number.
[0052] The SDN controller sends the remote procedure call message 303 of NAK message 302 to the nearest switch A on the route to the multicast source IP address.
[0053] Switch A receives a Remote Procedure Call (RPC) message 303 from the SDN controller and parses the NAK message 302 carried in the RPC message 303. Based on the destination IP value of the NAK message 302, Switch A determines in its Layer 3 forwarding table that the corresponding next-hop outgoing interface is the interface connected to multicast source S1. Switch A then forwards the NAK message 302 to multicast source S1 through the next-hop outgoing interface that reaches the multicast source IP address.
[0054] Multicast source S1 receives NAK packet 302 from switch A and is unaware of it. Figure 4 This illustrates the process of rapidly sending NAK messages (302). According to the PGM protocol, NAK messages are unicast hop-by-hop from the switch to the multicast source S1.
[0055] After the SDN controller sends the NAK message 302, it instructs each switch to generate a multicast entry for forwarding RDATA, such as... Figure 5 As shown, it includes the following steps:
[0056] Step 501: Identify each switch in the multicast distribution tree corresponding to the multicast group IP address.
[0057] The SDN controller multicast group loss notification message 301 identifies the multicast group IP address. Figure 2 Switches A and F in the multicast distribution tree.
[0058] Step 502: Generate a repair notification message for each identified switch.
[0059] The SDN controller generates a repair notification message for each of switches A through F. Each repair notification message carries the multicast source IP address, multicast group IP address, calculated repair sequence number, and multicast distribution tree output interface.
[0060] Step 503: Send a remote procedure call message carrying each repair notification message to each identified switch.
[0061] The SDN controller, through remote RPC communication, sends a repair notification message generated for each of switches A through F to switches A through remote procedure call messages.
[0062] Figure 5 After the steps shown are completed, switches A through F receive the repair notification message carried in the remote procedure call message, and parse the repair notification message to find the multicast source address, multicast group address, repair sequence number, and multicast distribution tree output interface.
[0063] Switches A through F each generate a repair data multicast table entry, recording the multicast source address, multicast group address, and repair sequence number corresponding to the resolved multicast distribution tree output interface. Switches A through F set an aging time for their respective generated repair data multicast table entries.
[0064] Multicast source S1 sends an RDATA message based on the received NAK message 302.
[0065] When switch A receives the RDATA message, it locates the repair data multicast entry in the multicast table based on the multicast source address, multicast group address, and repair sequence number of the RDATA message. It then sends the RDATA to the next-hop switch via the multicast distribution tree output interface of the repair data multicast entry. Other switches, upon receiving the RDATA, forward it according to the repair data multicast entry, ultimately sending the RDATA to multicast receivers R1 and R2.
[0066] The beneficial effect of the above embodiments of this application is that it avoids the inability to repair multicast messages due to the slow sending of NAK messages by the multicast receiver.
[0067] Figure 6This is a schematic diagram of a practical general-purpose multicast device embodiment for implementing repaired multicast data forwarding provided in this application. The device 60, as a practical general-purpose multicast network device, includes at least a processor 61 and a memory 62. The processor 61 executes processor-executable instructions in the memory 62 to perform the following operations: establish flow table entries for raw data packets destined for the multicast group; compare the sequence number of the received raw data packet with the sequence number recorded in the flow table entry; when the sequence number of the received raw data packet is greater than the sequence number recorded in the flow table entry and is not consecutive; send a multicast group packet loss notification message to the Software-Defined Networking (SDN) controller; wherein the multicast group packet loss notification message carries the multicast source IP address, multicast group IP address, sequence number, and the sequence number recorded in the flow table entry of the received raw data packet; so that the SDN controller constructs a negative acknowledgment message with a repaired sequence number and sends it to the PGM device within the practical general-purpose multicast PGM network that is the route closest to the multicast source of the multicast group.
[0068] Processor 61 performs the following operations by running processor-executable instructions in memory 62: when the sequence number of the received raw data packet is greater than and consecutive to the sequence number recorded in the flow table entry; updates the sequence number recorded in the flow table entry according to the sequence number of the received raw data packet; and sends the received raw data packet along the multicast distribution tree of the multicast group.
[0069] Processor 61 performs the following operations by running processor-executable instructions in memory 62: receiving a first remote procedure call message from the SDN controller; parsing a negative acknowledgment message carried in the first remote procedure call message; looking up the outgoing interface corresponding to the destination IP address of the parsed negative acknowledgment message in the Layer 3 forwarding table; and sending the parsed negative acknowledgment message through the outgoing interface.
[0070] Processor 61 performs the following operations by running processor-executable instructions in memory 62: receiving a second remote procedure call message from the SDN controller; parsing a repair notification message carried in the second remote procedure call message; parsing the multicast source address, multicast group address, repair sequence number, and multicast distribution tree output interface carried in the repair notification message; generating a repair data multicast table entry and setting an aging time; wherein the repair data multicast table entry records that the parsed multicast source address, multicast group address, and repair sequence number correspond to the parsed multicast distribution tree output interface.
[0071] Processor 61 performs the following operations by running processor-executable instructions in memory 62: receiving repair data packets; finding the repair data multicast table entry based on the multicast source address, multicast group address, and repair sequence number of the repair data packet; and sending the repair data packet through the repair distribution interface of the repair data multicast table entry.
[0072] Figure 7This is a schematic diagram of an embodiment of an SDN controller for implementing repair multicast data forwarding provided in this application. The SDN controller includes at least a processor 71 and a memory 72.
[0073] Processor 71 executes the following operations by running processor-executable instructions in memory 72: receiving a multicast group packet loss notification message; calculating a repair sequence number based on the original data packet sequence number and flow table entry sequence number in the multicast group packet loss notification message; identifying the receiver IP address based on the multicast group IP address in the multicast group packet loss notification message; searching the repair information record table based on the multicast source IP address, multicast group IP address, and receiver IP address in the multicast group packet loss notification message; determining that the repair information record table does not record a repair sequence number, then constructing a negative acknowledgment message carrying the repair sequence number; wherein the destination IP address is the multicast source IP address, and the source IP address is the receiver IP address; and sending a first remote procedure call message carrying the negative acknowledgment message to the PGM device with the nearest route to the multicast source IP address.
[0074] Processor 71, by executing processor-executable instructions in memory 72, also performs the following operations: identifies each PGM device in the multicast distribution tree corresponding to the multicast group IP address; generates a repair notice message for each identified PGM device, carrying the multicast source address, multicast group address, repair sequence number, and multicast distribution tree output interface; and sends a second remote procedure call message carrying each repair notice message to each identified PGM device.
[0075] Processor 71, by running processor-executable instructions in memory 72, also performs the following operations: determines the repair sequence number recorded in the repair information record table; and discards multicast group packet loss notification messages.
[0076] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A method for implementing repair of multicast data forwarding, the method comprising: The method comprises, establishing a flow table item for original data packets sent to a multicast group; comparing a sequence number of a received original data packet with a sequence number recorded in the flow table item; when the sequence number of the received original data packet is greater than the sequence number recorded in the flow table item and not continuous; sending a multicast group packet loss notification packet to a software defined network (SDN) controller; wherein the multicast group packet loss notification packet carries a multicast source IP address, a multicast group IP address, a sequence number of the received original data packet, and the sequence number recorded in the flow table item; so that the SDN controller constructs a negative acknowledgement packet with a repair sequence number and sends it to a PGM device closest to a multicast source in a practical general multicast (PGM) network reaching the multicast group.
2. The method of claim 1, wherein, The method further comprises, when the sequence number of the received original data packet is greater than the sequence number recorded in the flow table item and continuous; updating the sequence number recorded in the flow table item according to the sequence number of the received original data packet; sending the received original data packet along a multicast distribution tree of the multicast group.
3. The method of claim 1, wherein, The method further comprises, receiving a first remote procedure call packet from the SDN controller; parsing a negative acknowledgement packet carried by the first remote procedure call packet; in a three-layer forwarding table, finding an out-interface corresponding to a destination IP address of the parsed negative acknowledgement packet; sending the parsed negative acknowledgement packet through the out-interface; so that the negative acknowledgement packet is sent to the multicast source, so that the multicast source sends a repair data packet according to the received negative acknowledgement packet.
4. The method of claim 1, wherein, The method further comprises, receiving a second remote procedure call packet from the SDN controller; parsing a repair notification packet carried by the second remote procedure call packet; parsing a multicast source address, a multicast group address, a repair sequence number, and a multicast distribution tree out-interface carried by the repair notification packet; generating a repair data multicast table item and setting an aging time; wherein the repair data multicast table item records the parsed multicast source address, multicast group address, repair sequence number corresponding to the parsed multicast distribution tree out-interface.
5. The method of claim 4, wherein, The method further comprises, receiving a repair data packet; finding the repair data multicast table item based on a multicast source address, a multicast group address, and a repair sequence number of the repair data packet; sending the repair data packet through the multicast distribution tree out-interface of the repair data multicast table item; so that the repair data packet is sent to a multicast receiving end.
6. A method for implementing repair of multicast data forwarding, the method comprising: The method comprises, receiving a multicast group packet loss notification packet; calculating a repair sequence number based on an original data packet sequence number and a flow table item sequence number in the multicast group packet loss notification packet; identifying a receiver IP address based on a multicast group IP address in the multicast group packet loss notification packet; finding a repair information record table based on a multicast source IP address, the multicast group IP address, and the receiver IP address of the multicast group packet loss notification packet; determining that the repair information record table does not record the repair sequence number, then constructing a negative acknowledgement packet carrying the repair sequence number; wherein the destination IP address is the multicast source IP address, and the source IP address is the receiver IP address. The first remote procedure call message carrying the negative acknowledgement message is sent to a PGM device closest to the multicast source IP address in route, so that the closest PGM device quickly informs the multicast source to send a repair multicast data message.
7. The method of claim 6, wherein, The method further comprises, identifying each PGM device of a multicast distribution tree corresponding to the multicast group IP address; generating a repair notification message for each identified PGM device respectively; wherein the repair notification message carries the multicast source address, the multicast group address, the repair sequence number and a multicast distribution tree out interface; sending a second remote procedure call message carrying each repair notification message to each identified PGM device; so that each identified PGM device generates a repair data multicast entry according to the repair notification message received and sets an aging time.
8. The method of claim 6, wherein, The method further comprises, determining that the repair sequence number is recorded in the repair information record table; discarding the multicast group packet loss notification message.
9. A device for implementing repair multicast data forwarding, characterized in that, The device as a utility general multicast device at least comprises a processor and a memory; the processor executes processor executable instructions in the memory to implement the method for repairing multicast data forwarding according to any one of claims 1-5.
10. A device for repairing multicast data forwarding, characterized in that, The device as a software defined network (SDN) controller at least comprises a processor and a memory; the processor executes processor executable instructions in the memory to implement the method for repairing multicast data forwarding according to any one of claims 6-8.
Citation Information
Patent Citations
Reliable multicast method based on within-network caching and hop-by-hop confirmation
CN104717144A
Multicast transmission method, device and system
CN105162706A