A method and apparatus for implementing forward error correction for practical general multicasting
By sending test messages in the PGM network to obtain the highest packet loss rate and selecting an appropriate proportion of check messages, the problem of data packet loss in the PGM network is solved, and data recovery and bandwidth utilization are optimized.
Patent Information
- Application Number
- CN202411358771.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-27
- Publication Date
- 2026-02-06
- Estimated Expiration
- 2044-09-27
AI Technical Summary
In PGM networks, multicast data packets may be lost if the receiver fails to send a NAK in time. Existing FEC verification strategies may result in wasted bandwidth or insufficient verification packets to recover complete data.
Multiple sets of test messages are sent within the PGM network to obtain the highest packet loss rate of each switching device. The maximum value is selected as the proportion of check messages, and an appropriate number of check messages are sent to recover the data, while avoiding bandwidth waste caused by too many check messages.
By using an appropriate number of check messages to recover complete multicast data, bandwidth waste is avoided and data recovery efficiency is improved.
Smart Images

Figure CN118972021B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the communication technology, in particular to a method and device for implementing forward error correction of pragmatic general multicast. BACKGROUND
[0002] PGM (Pragmatic General Multicast) is a reliable multicast transmission protocol, which is suitable for multicast data with ordered or unordered and no duplication from multiple multicast senders to multiple receivers.
[0003] The multicast sender sends ODATA (Original Data) messages in sequence according to a local policy to define a sending window, and the receiver compares the sequence number of the currently received ODATA with the sequence number of the previously received ODATA. If there is a gap in the sequence number, it is considered that a packet is lost, and a unicast NAK (Non-Acknowledgment) message is sent on the reverse path of the distribution tree from the multicast sender after waiting for a random time to confirm that no matching NAK or matching NCF is received.
[0004] The multicast sender receives the NAK message, first sends an NCF (NAK Confirmation) message, and if the sequence number of the lost multicast data message in the NAK message is within the current sending window, sends a repair packet carrying RDATA (Repair data) to the multicast group, and if it is not within the current sending window, no repair packet is sent. Therefore, if the ODATA has been delayed for a long time in the PGM network before reaching the receiver, including PGM element delay, link delay, receiver host protocol stack delay, etc., the receiver does not send NAK in time, resulting in multicast data packet loss in the PGM network.
[0005] In PGM, in order to ensure the reliability of data, FEC (Forward Error Correction) and NACK (Negative Acknowledgment) verification strategies may be used. The reliability of the proactive FEC verification strategy is better, and the multicast sender sends a certain number of verification messages after sending the original data message, but too many verification messages will cause waste of bandwidth, and too few verification messages are not enough to restore the complete multicast data. SUMMARY
[0006] The method and device for implementing forward error correction of practical general multicast achieve one of the objectives of the present disclosure, and a proper number of check messages are sent for complete multicast data recovery.
[0007] To achieve the above-mentioned objective, the present disclosure provides a method for implementing forward error correction of practical general multicast, which comprises the following steps: sending a plurality of test messages in a practical general multicast (PGM) network; the number of each group of test messages is N, and the identification value (Identification) of the IP header of each group of test messages is 1 to N respectively; N is a positive integer; obtaining the highest packet loss rate of the switching equipment in each group of test messages; selecting the maximum value among all the highest packet loss rates of the switching equipment in each group as the check message proportion; and sending a specific number of check messages according to the check message proportion after sending a plurality of original data messages.
[0008] To achieve the above-mentioned objective, the present disclosure further provides a device for implementing forward error correction of practical general multicast, which comprises a processor, a machine-readable storage medium, a memory, a switching chip and a network interface; the processor executes the following operations by running machine-executable instructions recorded in the machine-readable storage medium: sending a plurality of test messages in a practical general multicast (PGM) network; the number of each group of test messages is N, and the identification value (Identification) of the IP header of each group of test messages is 1 to N respectively; N is a positive integer; obtaining the highest packet loss rate of the switching equipment in each group of test messages; selecting the maximum value among all the highest packet loss rates of the switching equipment in each group as the check message proportion; and sending a specific number of check messages according to the check message proportion after sending a plurality of original data messages.
[0009] To achieve the above-mentioned objective, the present disclosure further provides a device for implementing forward error correction of practical general multicast, which comprises a processor, a machine-readable storage medium, a memory, a switching chip and a network interface; the processor executes the following operations by running machine-executable instructions recorded in the machine-readable storage medium: performing lookup based on the source IP address and the destination IP address of the test message with the zero identification value; the source IP address and the destination IP address are the IP address of the multicast source and the multicast IP address of the multicast source respectively; when no matching test message flow table item is found, establishing the test message flow table item corresponding to the IP address of the multicast source and the multicast IP address of the multicast source; finding the test message flow table item based on the source IP address and the destination IP address of the currently received test message, and refreshing the recorded test message count value; determining that the count of the same group of test messages has been completed, sending a test message count notification message carrying the test message count value to a software-defined network (SDN) controller; and clearing the recorded test message count value.
[0010] The present disclosure has the beneficial effect that after the multicast source sends the original data packets, a proper number of check packets are sent, so that the switching devices in the PGM network recover the complete multicast data according to the check packets, while avoiding the waste of bandwidth caused by too many check packets. BRIEF DESCRIPTION OF DRAWINGS
[0011] Figure 1 A flowchart of an embodiment of a method for implementing forward error correction for practical general multicast;
[0012] Figure 2 A schematic diagram of a switching device provided by an embodiment of the present disclosure announcing a test packet count value to an SDN controller;
[0013] Figure 3 A schematic diagram of a switching device provided by another embodiment of the present disclosure announcing a test packet count value to an SDN controller;
[0014] Figure 4 A schematic diagram of a switching device provided by another embodiment of the present disclosure announcing a test packet count value to an SDN controller;
[0015] Figure 5 A schematic diagram of obtaining the highest packet loss rate of switching devices in a group provided by an embodiment of the present disclosure;
[0016] Figure 6 A schematic diagram of an embodiment of a device for implementing forward error correction for practical general multicast;
[0017] Figure 7 A schematic diagram of an embodiment of a device for implementing forward error correction for practical general multicast. DETAILED DESCRIPTION
[0018] A plurality of examples shown in the plurality of accompanying drawings will be described in detail. In the following detailed description, a plurality of specific details are used to provide a comprehensive understanding of the present disclosure. Known methods, steps, components, and circuits are not described in detail in the examples so as not to make the examples difficult to understand.
[0019] In the terms used, the term "comprises" means "includes but not limited to"; the term "contains" means "includes but not limited to"; the terms "above", "within" and "below" include the number; the terms "greater than", "less than" means not including the number. The term "based on" means at least based on a part of it.
[0020] Figure 1 An embodiment of a method for implementing forward error correction for practical general multicast includes:
[0021] Step 101, a plurality of test packets are sent in a practical general multicast PGM network;
[0022] The number of each group of test packets is N, and the identification value of the IP header of each group of test packets is 1 to N respectively; N is a positive integer;
[0023] In step 102, the highest packet loss rate of the intra-group switching device of each group of test packets is obtained.
[0024] In step 103, the maximum value in all intra-group switching device highest packet loss rates is selected as the check packet proportion.
[0025] In step 104, after sending a plurality of original data packets, a specific number of check packets are sent according to the check packet proportion.
[0026] Figure 1 The embodiment has the beneficial effect that after the multicast source sends the original data packets, a proper number of check packets are sent, so that the switching devices in the PGM network recover the complete multicast data according to the check packets, while avoiding the waste of bandwidth caused by too many check packets.
[0027] Figure 2 A schematic diagram of a utility general multicast network is provided for the embodiment of the present disclosure. Switches A-F in the PGM network 20 are all connected with the SDN controller and receive the instructions of the SDN controller.
[0028] The multicast source s1 sends a group of 500 test packets according to the local strategy; in these test packets, the source IP address is the IP address of the multicast source s1, the destination IP address is the multicast IP address of the multicast source s1, the identification value (identification) field of the IP header is 0-500, and the type (type) field is a custom specified value 0X11.
[0029] The number of each group of test packets sent by the multicast source s1 is related to the bandwidth of the PGM network, and a proper number of test packets are sent to avoid that the number of each group of test packets is too large to occupy the processing resources of the switching devices in the PGM network, and also to avoid that it is too small to be insufficient to truly feedback the packet loss rate.
[0030] Switches A-F identify the test packets according to the custom specified value 0X11 of the type field according to the received test packets, read the value of the identification value field of the IP header of the test packets as zero, perform lookup according to the source IP address and the destination IP address of the test packets, and when no matching test packet flow table item is found, establish a test packet flow table item with the IP address of the multicast source s1 as the source IP address and the multicast group IP address of the multicast source s1 as the destination IP address, refresh the number of received test packets, i.e. the test packet count value, to 1. After switches A-F complete the recording of the identification value of the test packets, they are sent according to the out port of the next hop pointed by the destination IP address of the test packets.
[0031] Switch A-Switch F receive other test packets of the first group of test packets in turn, perform lookup according to the source IP address and the destination IP address of the test packets, find the matched test packet flow table item, and refresh the recorded test packet count value.
[0032] Figure 3 The schematic diagram of the switching device provided by the embodiment of the present disclosure for announcing the test packet count value to the SDN controller.
[0033] The switching device A-Switch F is provided with a count value announcement timer, when the count value announcement timer of the switching device A-Switch F arrives, the switching device A-Switch F does not immediately generate the test packet count announcement packet, so as to avoid that the test packet is not received due to network delay caused by network congestion.
[0034] The switching device A-Switch F delays for a specified time after the count value announcement timer arrives; in this way, any switching device receives the test packet before the delay time arrives, and continues to refresh the recorded test packet count value.
[0035] In the present disclosure, the type field of the PGM protocol packet is expanded, and a specified value 0x12 is written in the Type field to identify the test packet count announcement packet.
[0036] The custom value of the type field provided by the present disclosure is used to identify the packet type, but the packet types are not limited to the custom specified value illustrated in the present disclosure.
[0037] Figure 3 In the present disclosure, the switching device A generates the test packet count announcement packet 301 after the delay time arrives, and carries the test packet count value recorded by the switching device A, i.e., the number of test packets received by the switching device A.
[0038] The other switching devices B-Switch E Figure 3 do not show in the present disclosure), each of which generates the test packet count announcement packet 301 after the delay time also arrives, and carries the test packet count value recorded by the switching device A, i.e., the number of test packets received by the switching device A.
[0039] The SDN controller receives the test packet count announcement packet of the other switching device, determines that the switching device F has not sent the test packet count announcement packet within the specified time, sends the count value query packet 302 to the switching device F, and actively triggers the switching device F to timely announce the number of test packets received by the switching device F.
[0040] The switching device F receives the count value query packet 302, generates the test packet count announcement packet 303, and carries the test packet count value recorded by the switching device F.
[0041] Figure 4A diagram illustrating a switching device provided by another embodiment of the present disclosure announcing a test packet count value to an SDN controller.
[0042] After multicast source s1 sends the first group of 500 test packets, it can send the first test packet 311 of the second group immediately or after waiting for a period of time based on a test policy.
[0043] Switch A receives the test packet 311, identifies the test packet type based on the type field, reads the identification value 0 based on the identification value (Identification) field, and finds the test packet flow table entry based on the source IP address and destination IP address of the test packet 311 to determine that another group of tests is started.
[0044] Switch A generates a test packet count announcement packet 312 carrying the test packet count value recorded by switch A.
[0045] Switch F receives the test packet 311 and performs the same processing as switch A, generates a test packet count announcement packet 313 carrying the test packet count value recorded by switch F.
[0046] Other switches B-switch E Figure 4 (not shown) also perform the same processing and generate test packet count announcement packets carrying local test packet count values.
[0047] Switches A-F perform Figure 3 an embodiment or Figure 4 an embodiment, clear the locally recorded test packet count value after sending the test packet count announcement packet.
[0048] The SDN controller receives the test packet count announcement packet in the manner shown in Figure 3 or Figure 4 After receiving the test packet count announcement packet, the SDN controller calculates the packet loss rate of switches A-F based on the test packet count values announced by switches A-F, respectively.
[0049] After multicast source s1 sends the first group of test packets with an Identification field of 500, it determines that the first group of test packets has been sent and needs to obtain the switching device with the maximum packet loss rate during the forwarding of the first group of test packets.
[0050] Figure 5 The diagram shows an embodiment of the present disclosure for obtaining the highest packet loss rate of a switching device in a group.
[0051] Multicast source s1 sends a packet loss rate announcement request packet 401 to the nearest switch A in PGM network 20.
[0052] Switch A receives the packet loss rate through the request message, and sends a packet loss rate query message 402 to the SDN controller.
[0053] The SDN controller receives the packet loss rate query message 402, and has calculated the maximum packet loss rate of the first group of test messages forwarded by switch A-switch F.
[0054] For example, in the embodiment, the SDN controller calculates the packet loss rates of 2%, 2%, 5%, 5%, and 8% respectively according to the test message count values respectively announced by switches A-E, and calculates the packet loss rate of 10% according to the test message count value announced by switch F.
[0055] The SDN controller receives the packet loss rate response message 403, and carries the calculated maximum packet loss rate of 10% of the first group of test messages forwarded by switch A-switch F, i.e., the highest packet loss rate of the switching devices in the first group.
[0056] Switch A sends a packet loss rate announcement response message 404 to the multicast source s1, carrying the highest packet loss rate of 10% of the switching devices in the first group.
[0057] After the multicast source s1 sends 500 first group test messages, the above Figure 2 、 Figure 3 or Figure 4 、 Figure 5 embodiments are repeated; and switches A-F and the SDN controller also repeat the above Figure 2 、 Figure 3 or Figure 4 、 Figure 5 embodiments.
[0058] For example, the above Figure 2 、 Figure 3 or Figure 4 、 Figure 5 embodiments are repeated twice by the above devices, and the multicast source s1 obtains the highest packet loss rate of 30% of the switching devices in the second group and the highest packet loss rate of 50% of the switching devices in the second group.
[0059] The multicast source s1 selects the maximum value of 50% as the check message proportion from the highest packet loss rates of 20%, 30%, and 50% of all the switching devices.
[0060] After the multicast source s1 sends 1000 original data messages, 1000 check messages are sent according to the check message proportion of 50%; in this way, the check messages account for 50% of the entire data packets (FEC blocks), i.e., after the multicast source s1 sends 10000 data messages, 10000 check messages are sent in succession, so that even if 10000 messages are lost, the complete information can be recovered based on the remaining 10000 messages.
[0061] Since the network quality is constantly changing, the proportion of check packets also needs to be changed periodically.
[0062] The above embodiment is repeatedly executed; when the SDN controller finds that the packet loss rate is high, it can actively notify the switch A, and the switch A requests the multicast source s1 to notify it in advance, so that the multicast source s1 sends more numbers of check packets according to the packet loss rate, and increases the proportion of check packets.
[0063] When the maximum packet loss rate calculated by the SDN controller according to the detection packet count values notified by the switches A-F becomes low, the multicast source does not have to be notified immediately, and the proportion of check packets is adjusted according to Figure 5 The embodiment waits for a query from the multicast source s1. Because if the packet loss rate becomes low only for a short time, after the proportion of check packets (i.e. the number of check packets) is immediately reduced, when the packet loss rate of the switch inside the network forwarding the original data packets from the multicast source s1 becomes high again, it will cause insufficient effective data, and the receiver cannot recover the data.
[0064] Figure 6 A schematic diagram of an equipment embodiment for implementing forward error correction of a practical general multicast is provided for the present disclosure; the equipment 60 can be applied as a multicast source sending original multicast data packets ODATA to a PGM network. The equipment 60 includes a processor 61, a machine readable storage medium 62, a switch chip 63, and a network interface 64.
[0065] The processor 61 executes the following operations by running the machine executable instructions recorded in the machine readable storage medium 62: sending a plurality of test packets in a practical general multicast PGM network; wherein the number of each group of test packets is N and the identification value Identification of the IP header of each group of test packets is 1 to N respectively; N is a positive integer; obtaining the highest packet loss rate of the switching equipment in each group of test packets; selecting the maximum value among all the highest packet loss rates of the switching equipment in each group as the check packet proportion; after sending a plurality of original data packets, sending a corresponding number of check packets based on the check packet proportion.
[0066] The operation of obtaining the highest packet loss rate of the switching equipment in each group of test packets executed by the processor 61 by running the machine executable instructions recorded in the machine readable storage medium 62 includes: determining that all test packets belonging to the same group have been sent; sending a packet loss rate query packet to the nearest switching equipment in the PGM network; receiving a packet loss rate response packet from the nearest switching equipment; wherein the packet loss rate response packet carries the highest packet loss rate of the switching equipment in the last group of test packets.
[0067] Figure 7A diagram illustrating an embodiment of an apparatus for implementing forward error correction for general multicast. The apparatus 70 can be applied as a switching device in a PGM network. The apparatus 70 includes a processor 71, a machine-readable storage medium 72, a switching chip 73, and a network interface 74.
[0068] The processor 71, by running machine-executable instructions recorded by the machine-readable storage medium 72, performs the following operations: performing a lookup based on a source IP address and a destination IP address of a test packet having an identification value of zero; wherein the source IP address and the destination IP address are an IP address of a multicast source and a multicast IP address of the multicast source, respectively; when no matching test packet flow table entry is found, establishing a test packet flow table entry corresponding to the IP address of the multicast source and the multicast IP address of the multicast source; finding the test packet flow table entry based on the source IP address and the destination IP address of the currently received test packet, and refreshing a recorded test packet count value; determining that counting of the same group of test packets has been completed, sending a test packet count advertisement packet carrying the test packet count value to a software-defined network (SDN) controller; and clearing the recorded test packet count value.
[0069] The processor 71, by running machine-executable instructions recorded by the machine-readable storage medium 72, performs the following operations: determining that counting of the same group of test packets has been completed includes the following operations: determining that a count value advertisement timer has arrived; performing software delay for a specified delay time; or determining that a count value query packet from the SDN controller has been received.
[0070] The processor 71, by running machine-executable instructions recorded by the machine-readable storage medium 72, determines that counting of the same group of test packets has been completed includes the following operation: finding a matching test packet flow table entry based on an IP address of a multicast source and a multicast IP address of the multicast source carried by a test packet having an identification value of zero.
[0071] The processor 71, by running machine-executable instructions recorded by the machine-readable storage medium 72, also performs the following operations: receiving a packet loss rate query packet; receiving a packet loss rate advertisement request packet from a multicast source; sending a packet loss rate query packet to the SDN controller; receiving a packet loss rate response packet from the SDN controller; the packet loss rate response carrying a highest packet loss rate of an intra-group switching device corresponding to each group of test packets of the same group that has been completed; and sending a packet loss rate advertisement response packet carrying the highest packet loss rate of the intra-group switching device to the multicast source.
[0072] In this disclosure, a machine-readable storage medium can be any electronic, magnetic, optical, or other physical storage device that stores or contains data, such as executable instructions, data structures, or the like. For example, any machine-readable storage medium herein can be any type of random access memory (RAM), volatile memory, non-volatile memory, flash memory, storage drive (such as a hard drive), solid-state drive, any type of storage disc (such as a compact disc, DVD, etc.), and the like, or a combination thereof. Moreover, any machine-readable storage medium herein can be a non-transitory machine-readable storage medium.
[0073] The above merely preferred embodiments of the present disclosure and are not intended to limit the present disclosure. These modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present disclosure shall be included in the scope of the present disclosure.
Claims
1. A method of implementing forward error correction for practical general multicasting, characterized by, The method comprises, sending multiple groups of test messages in a practical general multicast (PGM) network; each group of test messages has N test messages, and each test message has an identification value of 1 to N in the IP header; N is a positive integer; obtaining the highest packet loss rate of each group of test messages in the exchange device; selecting the maximum value in all the highest packet loss rates of the exchange device as the proportion of the check message; after sending multiple original data messages, sending a specific number of check messages according to the proportion of the check message; wherein, the obtaining the highest packet loss rate of each group of test messages in the exchange device comprises, each exchange device in the PGM network establishes a test message flow table item; each exchange device finds the local test message flow table item according to the source IP address and the destination IP address of each group of test messages, and refreshes the test message count value; wherein, the source IP address is the IP address of the multicast source, and the destination IP address is the multicast IP address of the multicast source; each exchange device sends a test message count notification message carrying the test message count value to the software-defined network (SDN) controller, and clears the recorded test message count value; the SDN controller calculates the packet loss rate of each exchange device based on the test message count value from each exchange device.
2. The method of claim 1, wherein, The obtaining the highest packet loss rate of each group of test messages in the exchange device comprises: the multicast source sends a packet loss rate notification request message of each group of test messages to the nearest exchange device in the PGM network; the nearest exchange device sends a packet loss rate query message to the SDN controller; the SDN controller sends a packet loss rate response message to the nearest exchange device; wherein, the packet loss rate response message carries the highest packet loss rate of each group of test messages in the exchange device; the nearest exchange device sends a packet loss rate notification response message to the multicast source; wherein, the packet loss rate notification response message carries the highest packet loss rate of each group of test messages in the exchange device.
3. The method of claim 1, wherein, Each exchange device in the PGM network establishes a test message flow table item, comprising: each exchange device performs a lookup based on the IP address of the multicast source and the multicast IP address of the multicast source carried by the test message with an identification value of zero; when no matching test message flow table item is found, the exchange device establishes a test message flow table item corresponding to the IP address of the multicast source and the multicast IP address of the multicast source.
4. The method of claim 3, wherein, each exchange device determines that a count value notification timer has arrived, generates the test message count notification message after a specified delay, and sends the test message count notification message to the SDN controller; or each exchange device generates the test message count notification message according to a count value query message from the SDN controller, and sends the test message count notification message to the SDN controller.
5. The method of claim 3, wherein, Each of the exchange devices receives a test packet with an identification value of zero, finds a matching test packet flow table item based on the IP address of the multicast source and the multicast IP address of the multicast source, generates a test packet count notification packet, and sends the test packet count notification packet to the SDN controller.
6. An apparatus for implementing forward error correction for practical general multicasting, characterized by The device includes a processor, a machine-readable storage medium, a memory, an exchange chip, and a network interface. The processor executes the following operations by running machine-executable instructions recorded in the machine-readable storage medium, performing a lookup based on the source IP address and the destination IP address of the test packet with an identification value of zero, wherein the source IP address and the destination IP address are the IP address of the multicast source and the multicast IP address of the multicast source, respectively; when no matching test packet flow table item is found, establishing a test packet flow table item corresponding to the IP address of the multicast source and the multicast IP address of the multicast source; finding the test packet flow table item based on the source IP address and the destination IP address of the currently received test packet, and refreshing the recorded test packet count value; determining that the counting of the same group of test packets has been completed, and sending a test packet count notification packet carrying the test packet count value to a software-defined network (SDN) controller; clearing the recorded test packet count value.
7. The apparatus of claim 6, wherein, The processor determines that the counting of the same group of test packets has been completed by running machine-executable instructions recorded in the machine-readable storage medium, including the following operations, determining that a count value notification timer has arrived; performing software delay for a specified delay time; or determining that a count value query packet has been received from the SDN controller.
8. The apparatus of claim 6, wherein, The processor determines that the counting of the same group of test packets has been completed by running machine-executable instructions recorded in the machine-readable storage medium, including the following operations, finding a matching test packet flow table item based on the IP address of the multicast source and the multicast IP address of the multicast source carried by the test packet with an identification value of zero.
9. The apparatus of claim 7 or 8, wherein, The processor further executes the following operations by running machine-executable instructions recorded in the machine-readable storage medium, receiving a packet loss rate query packet; receiving a packet loss rate notification request packet from the multicast source; sending a packet loss rate query packet to the SDN controller; receiving a packet loss rate response packet from the SDN controller; the packet loss rate response carries the highest packet loss rate of the intra-group exchange device corresponding to the same group of test packets; sending a packet loss rate notification response packet carrying the highest packet loss rate of the intra-group exchange device to the multicast source.
Citation Information
Patent Citations
Forward error correction-based method for reliably transmitting network coding multicast data stream
CN102325009A
Multicast transmission method, device and system
CN105162706A