Forward error correction capability propagation method and related device

By spreading forward error correction capabilities in a segmented transmission network, nodes determine the error correction coding method of the sending node based on the message, solving the computational burden and delay problems caused by excessive redundant information and improving network management efficiency and resource utilization.

WO2025213981A1PCT designated stage Publication Date: 2025-10-16TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/080120
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-08
Filing Date
2025-03-03
Publication Date
2025-10-16

AI Technical Summary

Technical Problem

In a segmented transmission network, the forward error correction capability of each transmission segment leads to excessive redundant information, increasing the node computing burden and delay, and affecting network performance.

Method used

The forward error correction capability of nodes in the transmission network is spread downstream through messages. The nodes determine the forward error correction coding method of the sending node based on the message, thereby improving the utilization of bandwidth and computing resources.

Benefits of technology

It reduces the difficulty of network management, improves the utilization of bandwidth and computing resources, reduces the computing burden of nodes, and improves data transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025080120_16102025_PF_FP_ABST
    Figure CN2025080120_16102025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides a forward error correction capability propagation method and a related device. The method comprises: determining a forward error correction capability of a first node, wherein the forward error correction capability comprises a coding algorithm set, a maximum block duration, and a maximum protection level, and the forward error correction capability of the first node comprises a first coding algorithm set, a first maximum block duration, and a first maximum protection level; performing encapsulation on the basis of the first coding algorithm set, the first maximum block duration, and the first maximum protection level to obtain a first capability packet; and if it is determined that there is a downlink node connected to the first node and adjacent to the first node, sending the first capability packet to the downlink node, so that on the basis of the first capability packet, the downlink node determines the forward error correction capability propagated from the first node. By propagating a forward error correction capability of a node in a transmission network downstream by means of a packet, a receiving node can determine a forward error correction coding mode of a sending node on the basis of the packet to execute corresponding decoding, thereby improving the bandwidth utilization rate and the computing resource utilization rate.
Need to check novelty before this filing date? Find Prior Art

Description

A forward error correction capability diffusion method and related device

[0001] The present application claims priority to the Chinese patent application No. 202410432890.7, filed on April 8, 2024, entitled "A Forward Error Correction Capability Diffusion Method and Related Device", the entire content of which is incorporated herein by reference. TECHNICAL FIELD

[0002] The present application relates to the technical field of data distribution, in particular to a forward error correction capability diffusion technology. BACKGROUND

[0003] With the continuous development of computer technology, the speed and quality requirements of data transmission are becoming higher and higher. In digital communication systems, signals will inevitably be affected by various factors during transmission, resulting in a decline in signal quality. In order to ensure accurate transmission of data, some measures need to be taken to detect and correct these errors, so the forward error correction (FEC) technology is proposed to solve such data transmission problems.

[0004] The core idea of forward error correction technology is to pre-process the signal at the sending end and add redundant information (i.e. error correction code), so that the receiving end can decode and correct errors according to the error correction code even if there are some errors in the signal, and restore the original correct signal.

[0005] In the segmented transmission network provided by the related technology, each transmission segment is regarded as a one-receiving-one-transmitting virtual channel, and each transmission segment uses its own forward error correction capability for point-to-point forward error correction, resulting in excessive redundant information at each node, which requires the node to consume more computing resources for decoding and encoding, not only increasing the computing cost, but also possibly increasing the delay. SUMMARY

[0006] The embodiments of the present application provide a forward error correction capability diffusion method and related device, which diffuse the forward error correction capability of the nodes in the transmission network downstream through the message, so that the receiving end node can determine the forward error correction encoding mode of the sending end node based on the message to perform corresponding decoding, thereby improving the bandwidth utilization and computing resource utilization.

[0007] One aspect of the present application provides a forward error correction capability diffusion method, which is executed by a computer device and includes:

[0008] determine a forward error correction capability of the first node, the forward error correction capability comprising a set of encoding algorithms, a maximum packet duration and a maximum protection level, wherein the set of encoding algorithms and indicates a set of supported encoding algorithms, the maximum packet duration indicates a maximum duration of receiving a single group of data, and the maximum protection level indicates a maximum value of supported protection levels, the forward error correction capability of the first node comprising a first set of encoding algorithms, a first maximum packet duration and a first maximum protection level;

[0009] perform encapsulation based on the first set of encoding algorithms, the first maximum packet duration and the first maximum protection level to obtain a first capability message;

[0010] if it is determined that there is a downstream node connected to and adjacent to the first node, send the first capability message to the downstream node, so that the downstream node determines the forward error correction capability spread from the first node based on the first capability message.

[0011] Another aspect of the present application provides a forward error correction capability spreading device, which is deployed on a computer device and comprises:

[0012] a capability confirmation module configured to determine a forward error correction capability of the first node, the forward error correction capability comprising a set of encoding algorithms, a maximum packet duration and a maximum protection level, wherein the set of encoding algorithms and indicates a set of supported encoding algorithms, the maximum packet duration indicates a maximum duration of receiving a single group of data, and the maximum protection level indicates a maximum value of supported protection levels, the forward error correction capability of the first node comprising a first set of encoding algorithms, a first maximum packet duration and a first maximum protection level;

[0013] a message encapsulation module configured to perform encapsulation based on the first set of encoding algorithms, the first maximum packet duration and the first maximum protection level to obtain a first capability message;

[0014] a message sending module configured to, if it is determined that there is a downstream node connected to and adjacent to the first node, send the first capability message to the downstream node, so that the downstream node determines the forward error correction capability spread from the first node based on the first capability message.

[0015] Another aspect of the present application provides a computer device, comprising a memory and a processor;

[0016] The memory stores a computer program, and when the computer program runs on the processor, the method of the above aspects is executed.

[0017] Another aspect of the present application provides a computer readable storage medium, which stores a computer program, and when the computer program runs on a computer, the computer executes the method of the above aspects.

[0018] Another aspect of the present application provides a computer program product, which comprises a computer program stored in a computer readable storage medium. A processor of a computer device reads the computer program from the computer readable storage medium, and the processor executes the computer program to enable the computer device to perform the method provided in the above aspects.

[0019] From the above technical solutions, the embodiments of the present application have the following advantages:

[0020] The present application provides a forward error correction capability diffusion method and related devices, first determine the forward error correction capability of the first node, the forward error correction capability includes encoding algorithm set, maximum grouping time and maximum protection level, wherein the encoding algorithm set refers to the encoding mode supported by the first node, which is usually related to the device type, manufacturer, hardware version, etc. of the first node; the maximum grouping time refers to the maximum duration that the first node can accept to receive a single group of data, which is usually related to the service setting of the first node, and the service setting can include the service data transmission frequency of the first node and the local cache size of the first node. Generally, the higher the service data frequency and / or the smaller the local cache, the shorter the maximum grouping time. The maximum protection level refers to the maximum protection capability that the first node can provide, which is usually related to the performance of the first node. Generally, the better the performance of the first node, the more complex encoding it can support, and the higher the protection level it can provide. Based on the encoding algorithm set, the maximum grouping time and the maximum protection level corresponding to the first node, a first capability message is obtained, so that the forward error correction capability of the first node is diffused to the directly connected downstream node in the form of a message, so that the downstream node determines the forward error correction capability of the first node diffused from the originating node according to the message. The method provided by the embodiments of the present application diffuses the forward error correction capability of the nodes in the transmission network to the downstream in the form of a message, so that the receiving node can determine the forward error correction encoding mode of the originating node based on the message to perform corresponding decoding, improve the bandwidth utilization and the computing resource utilization, and at the same time, each node does not need to care about other nodes and network technology details. When the node service setting and the node performance are changed, the diffusion of the forward error correction capability can be realized by re-generating the capability message and transmitting it to the downstream channel, which reduces the difficulty of network management and improves the management efficiency. BRIEF DESCRIPTION OF DRAWINGS

[0021] FIG. 1 is an application environment diagram of the forward error correction capability diffusion method in the embodiments of the present application;

[0022] FIG. 2 is a method flowchart of the forward error correction capability diffusion method provided by the embodiments of the present application;

[0023] FIG. 3 is a message analysis diagram of a capability diffusion protocol provided by the embodiments of the present application;

[0024] Figure 4 is a flow chart of a method of forward error correction capability diffusion according to an embodiment of the present application;

[0025] Figure 5 is a flow chart of a reverse control method based on the forward error correction capability diffusion method according to an embodiment of the present application;

[0026] Figure 6 is a message analysis diagram of a reverse control protocol of forward error correction capability according to an embodiment of the present application;

[0027] Figure 7 is a flow chart of a reverse control method based on the forward error correction capability diffusion method according to an embodiment of the present application;

[0028] Figure 8 is a flow chart of a redundancy filtering method based on the forward error correction capability diffusion method according to an embodiment of the present application;

[0029] Figure 9 is a message diagram of a raw data packet header according to an embodiment of the present application;

[0030] Figure 10 is a message diagram of a redundancy error correction packet header according to an embodiment of the present application;

[0031] Figure 11 is a working logic diagram of a redundancy filtering method based on the forward error correction capability diffusion method according to an embodiment of the present application;

[0032] Figure 12 is a schematic diagram of an embodiment of a forward error correction capability diffusion device according to an embodiment of the present application;

[0033] Figure 13 is a schematic diagram of a server structure according to an embodiment of the present application. DETAILED DESCRIPTION

[0034] The terms "first", "second", "third", "fourth" and the like in the description and in the claims of the present application, if any, are used for distinguishing between similar objects talking about the application and do not necessarily have a particular chronological, spatial or logical ordering other than that which might be apparent from the circumstances, e.g., a description of one embodiment of the application does not imply that the same embodiment will be repeated in different versions of the application. The terminology includes the explicit whole or partial

[0035] With the rapid development of computer technology, the speed and quality requirements of data transmission are becoming increasingly stringent. In digital communication systems, whether transmitted through optical fiber, cable or wireless medium, signals inevitably face various interferences and challenges such as noise, attenuation, multipath effect, etc. These factors can cause signal quality to decline, and thus cause data errors.

[0036] To ensure accurate and efficient transmission of data, those skilled in the art have been committed to researching and developing various data transmission technologies. Among them, the forward error correction (FEC) technology as an important data transmission guarantee means has received widespread attention and application.

[0037] Specifically, the forward error correction technology is to pre-process the signal at the sending end by adding redundant information (i.e. error correction code) to enhance the anti-interference ability of the signal. In this way, even if there are some errors in the signal, the receiving end can decode and correct errors according to the error correction code to recover the original correct signal.

[0038] In the segmented transmission network provided by the related technology, each transmission segment is regarded as a one-receiving-one-transmitting virtual channel. The sender in the virtual channel is the sending node, and the receiver in the virtual channel is the receiving node. The sending node and the receiving node can also include multiple forwarding nodes. Each transmission segment is regarded as an independent virtual channel, and each channel uses its own forward error correction capability to correct errors according to a certain protection level. This method can ensure the data transmission quality of each segment, but it leads to excessive accumulation of redundant information in the entire network. Excessive redundant information not only increases the computational burden of each node, making each node consume more computing resources for decoding and encoding operations, but also can cause an increase in data transmission delay. Especially in large-scale and high-complexity networks, this effect is more obvious and can become a bottleneck restricting the improvement of network performance.

[0039] Therefore, how to ensure the quality of data transmission while reducing the accumulation of redundant information, reducing the computational burden of nodes and improving the efficiency of data transmission is a technical problem that those skilled in the art need to solve.

[0040] To solve the above problems, the application provides a forward error correction capability diffusion method and related devices. First, the forward error correction capability of a first node is determined, which includes an encoding algorithm set, a maximum packet duration and a maximum protection level. The encoding algorithm set refers to the encoding mode supported by the first node, which is usually related to the device type, manufacturer, hardware version, etc. of the first node. The maximum packet duration refers to the maximum duration of receiving a single group of data that the first node can accept, which is usually related to the service settings of the first node. The service settings can include the service data transmission frequency of the first node and the local cache size of the first node. Generally, the higher the service data frequency and / or the smaller the local cache, the shorter the maximum packet duration. The maximum protection level refers to the maximum protection capability that the first node can provide, which is usually related to the performance of the first node. Generally, the better the performance of the first node, the more complex the encoding it can support, and the higher the protection level it can provide. The encoding algorithm set, the maximum packet duration and the maximum protection level corresponding to the first node are encapsulated to obtain a first capability message, so that the forward error correction capability of the first node is diffused to the directly connected downstream node in the form of a message, so that the downstream node determines the forward error correction capability of the originating node, i.e. the first node, based on the message. The method provided by the application diffuses the forward error correction capability of the nodes in the transmission network to the downstream in the form of a message, so that the receiving node can determine the forward error correction encoding mode of the originating node based on the message to perform corresponding decoding, thereby improving the bandwidth utilization and the computing resource utilization. At the same time, each node does not need to be concerned about other nodes and network technology details. When the node service settings and the node performance are changed, the diffusion of the forward error correction capability can be realized by re-generating the capability message and transmitting it to the downstream channel, thereby reducing the difficulty of network management and improving the management efficiency.

[0041] For ease of understanding, please refer to FIG. 1, which is an application environment diagram of the forward error correction capability diffusion method in the embodiments of the application. As shown in FIG. 1, the forward error correction capability diffusion method in the embodiments of the application is applied to a topology network, which includes a data source end node (generator0), forwarding nodes (node0, node1 and node2) and data consumer end nodes (consumer0, consumer1, consumer2 and consumer3).

[0042] It can be understood that forward error correction is a technology for controlling transmission errors in a one-way communication system. Therefore, data is transmitted from the data source end node to the data consumer end node in one direction, and the data transmission process can pass through the forwarding nodes. The nodes are connected by virtual channels (t0, t1, t2, t3, t4, t5, t6 and t7) for one-way transmission. The data of the generator can reach the consumer through multiple different paths.

[0043] The node, for example, the first node, first determines its (local) forward error correction capability, including the forward error correction capability including the set of encoding algorithms supported by the node, the maximum packet duration and the maximum protection level, and then sends the capability message obtained based on the forward error correction capability to the downstream node directly connected to the node, so as to achieve the effect of diffusing the forward error correction capability downward.

[0044] The forward error correction capability diffusion method in the present application will be introduced below. Please refer to FIG. 2, which is a method flowchart of the forward error correction capability diffusion method provided by the embodiment of the present application, including:

[0045] 201, determining the forward error correction capability of the first node, the forward error correction capability including the set of encoding algorithms, the maximum packet duration and the maximum protection level, wherein the set of encoding algorithms and the supported encoding algorithms are indicated, the maximum packet duration indicates the maximum duration of receiving a single group of data, and the maximum protection level indicates the maximum value of the supported protection level, the forward error correction capability of the first node including the first set of encoding algorithms, the first maximum packet duration and the first maximum protection level.

[0046] It can be understood that the first node can be any node in the topology network shown in FIG. 1, that is, it can be a data source end node (generator), a forwarding node (node) or a data consumer end node (consumer). The forward error correction capability refers to the ability of the node to resist interference and errors in the data transmission process, which is specifically manifested as the set of supportable encoding algorithms, the maximum packet duration and the maximum protection level.

[0047] The set of encoding algorithms refers to the set of supported forward error correction encoding methods, which can ensure that the original data can be recovered through a certain mechanism even if the data is affected by noise or interference in the transmission process. The selection of the set of encoding algorithms is usually closely related to factors such as the device type, manufacturer and hardware version of the node. Different device types and manufacturers may use different encoding technologies to adapt to different application scenarios and transmission requirements. Common encoding algorithms include parity check code, Hamming code, Bose-Chaudhuri-Hocquenghem (BCH) code, Reed-Solomon code, Low-Density Parity-Check (LDPC) code, etc. The present application does not limit the specific encoding algorithm, but needs to determine the set of encoding algorithms supported by the first node.

[0048] The maximum packet duration refers to the maximum duration for which a single group of data can be accepted for reception. It can be understood that in forward error correction, data is typically divided into a series of smaller, fixed-length data blocks, which are treated as independent units during transmission and each is applied with error correction coding, each group containing a certain amount of data and corresponding redundancy information, and the data in each group corresponds to a single group of data. For each single group of data, the original data and redundancy data available for the node to decode and correct error need to be obtained within the maximum packet duration. This parameter is usually related to the service settings of the node, which can include the service data transmission frequency of the node and the local cache size of the node. Generally, the higher the service data transmission frequency and / or the smaller the local cache, the shorter the maximum packet duration. The service data transmission frequency is also related to the type of data transmitted on the node. For data with high time efficiency requirements, such as robot control data, if the control instruction transmission is delayed or incorrect, it may cause the robot to make a wrong action, so the maximum packet duration is short to ensure the real-time and accuracy of the data. For some data with low time efficiency requirements, such as file transmission or backup data, the maximum packet duration can be relatively long to balance the transmission efficiency and error correction capability. Among them, for audio data, generally, since audio encoding adopts the intra-frame coding mode, each frame contains enough information to be decoded independently, so theoretically, any frame can be decoded independently without relying on other frames, that is, any frame can be decoded independently, so the maximum packet duration can be long.

[0049] The maximum protection level refers to the highest error correction capability that can be provided. This parameter is usually closely related to the performance of the node. The better the performance of the node, the more complex the encoding algorithm and the higher the level of error correction mechanism it can support, thereby providing a higher protection level. High protection level means that even in the face of serious interference or errors, the node can effectively recover the data and ensure the reliability of transmission.

[0050] The above are the specific meanings of several parameters in the forward error correction capability. In the embodiment, the forward error correction capability supported by the first node corresponds to the first encoding algorithm set, the first maximum packet duration and the first maximum protection level.

[0051] In one possible implementation method, step 201 specifically includes:

[0052] 2011, determining the first encoding algorithm set according to the encoder supported by the first node;

[0053] 2012, determining the first maximum packet duration according to the service settings of the first node;

[0054] 2013, determine the first maximum protection level according to the data processing performance of the first node.

[0055] It can be understood that, in the communication process, in order to ensure the correct transmission of data, the node usually encodes the data using an encoder. The type of encoder determines the encoding algorithm it can implement. For example, if the first node supports an LDPC encoder, the first node supports an LDPC encoding algorithm; if it supports a BCH encoder, it supports a BCH encoding algorithm. Therefore, by querying the type of encoder supported by the node, the encoding algorithm used by the node can be determined. The encoder can be obtained by querying the device document or configuration interface of the first node, for example, by querying the device document or configuration interface of the node, it is determined that the node supports an LDPC encoder, and then it is determined that the node uses an LDPC encoding algorithm in communication.

[0056] It can be understood that the first maximum packet duration represents the maximum duration of receiving a single group of data that the first node can accept, which is determined based on the service setting of the data transmitted on the first node. The service setting can include service data frequency and local cache size. Service data frequency refers to the frequency of data transmission or reception in the service, which reflects the demand and rate of data transmission of the service. When the service data frequency is high, it means that the data needs to be transmitted more frequently, which requires a relatively short packet duration to transmit and receive data faster and reduce data waiting time and delay. Conversely, if the service data frequency is low, the packet duration can be appropriately increased to balance transmission efficiency and resource utilization. The local cache is used to store temporary data for quick access and transmission when needed. If the local cache is small, the amount of data that each packet can carry will also be limited, so the packet needs to be sent more frequently, i.e. the packet duration should be relatively short. If the local cache is large, it can accommodate more data, thereby reducing the frequency of packet transmission, i.e. the packet duration can be appropriately increased.

[0057] It can be understood that the performance of the first node, such as the computing power and storage capacity of the first node, directly affects the error correction capability and protection level it can provide. The better the performance of the node, the more complex the encoding algorithm it can support and the higher the level of error correction mechanism it can provide, thereby providing a higher protection level. Therefore, by evaluating the performance of the first node, the corresponding first maximum protection level can be determined.

[0058] 202, encapsulation based on the first set of encoding algorithms, the first maximum packet duration and the first maximum protection level to obtain the first capability message.

[0059] It can be understood that the capability message can be a message encapsulating the forward error correction capability, so as to reflect the forward error correction capability spread from the first node. The capability message can be in the form of a real-time transport protocol (RTP), in which various parameters are identified by different fields.

[0060] For ease of understanding, please refer to FIG. 3, which is a message analysis diagram of a capability spreading protocol provided by an embodiment of the present application.

[0061] As shown in FIG. 3, ver identifies the protocol version, which can be used to cope with future protocol changes; fec_mask is a mask identification of available FEC algorithm types and versions, which is equivalent to the encoding algorithm set in the forward error correction capability; duration_max is the maximum packet duration that can be provided, which is equivalent to the maximum packet duration in the forward error correction capability; lvl_max is the maximum protection level that can be provided, which is equivalent to the maximum protection level in the forward error correction capability; and time_stamp is a time stamp, which can be used to resist network transmission disorder.

[0062] 203, if it is determined that there is a downstream node connected and adjacent to the first node, the first capability message is sent to the downstream node, so that the downstream node determines the forward error correction capability spread from the first node based on the first capability message.

[0063] It can be understood that the forward error correction capability is spread to the downstream node, so if the first node has a connected and adjacent downstream node, which is equivalent to the first node being a data source end node (generator) or a forwarding node (node) in FIG. 1, after generating the corresponding first capability message, the first capability message is sent to the connected and adjacent downstream node, so that the downstream node determines the forward error correction capability spread from the first node based on the first capability message. The connection can refer to a physical line connection, or a logical information transmission path, such as a communication link established between two nodes in network communication. The connection adjacent to the first node can also be direct connection, that is, direct connection established between the first node, without the need for other nodes to perform any switching or hopping.

[0064] Specifically, the downstream node of the first node can be a forwarding node (node) or a data consumer end node (consumer):

[0065] When the downlink node of the first node is node, node receives the first capability message (diffusion protocol), and obtains the new forward error correction capability (such as the maximum protection level) that can be provided to the downlink in combination with the local computing capability and the bandwidth capability of the node, and diffuses the new forward error correction capability to all directly connected downlink channels; when the downlink node of the first node is consumer, consumer receives the first capability message (diffusion protocol), and since consumer has no downlink node, the first capability message is buffered.

[0066] For ease of understanding, the following parameters are agreed in the embodiments of the present application:

[0067] cap_local: the forward error correction capability of the node, and the corresponding fields are as follows: the encoding algorithm set cap_local.mask, the maximum packet duration cap_local.duration_max, and the maximum protection level cap_local.lvl_max.

[0068] Taking the generator as an example, the forward error correction capability diffusion method flow is as follows:

[0069] 1) Obtain the forward error correction encoder type version supported by the generator locally, and update cap_local.mask (the first encoding algorithm set);

[0070] 2) Update cap_local.duration_max (the first maximum packet duration) according to the service setting, the service data frequency and the local cache size;

[0071] 3) Obtain the central processing unit (CPU) load of the generator, refer to the encoder type (which can be empty), and update cap_local.lvl_max (the first maximum protection level);

[0072] 4) Generate the capability message (the first capability message) corresponding to FIG. 3 and send it to the directly connected downlink node (node or consumer), wherein fec_mask in the capability message is equal to cap_local.mask; duration_max is equal to cap_local.duration_max; and lvl_max is equal to cap_local.lvl_max.

[0073] In a possible implementation method, for the first maximum packet duration and the first maximum protection level, the service setting of the first node and the node performance can be detected in real time or periodically, and when the first maximum packet duration and the first maximum protection level change, the first capability message is updated.

[0074] Further, the sending time aspect (equivalent to diffusion timing) of the first capability message sent to the downstream node can also be sent periodically (static periodic diffusion) or sent after the change (immediate diffusion after the change).

[0075] The application provides a forward error correction capability diffusion method and related device. First, the forward error correction capability of a first node is determined, which includes an encoding algorithm set, a maximum packet duration and a maximum protection level. The encoding algorithm set refers to the encoding mode supported by the first node, which is usually related to the device type, manufacturer, hardware version, etc. of the first node. The maximum packet duration refers to the maximum duration of receiving a single group of data that the first node can accept, which is usually related to the service setting of the first node. The service setting can include the service data transmission frequency of the first node and the local cache size of the first node. Generally, the higher the service data frequency and / or the smaller the local cache, the shorter the maximum packet duration. The maximum protection level refers to the maximum protection capability that the first node can provide, which is usually related to the performance of the first node. Generally, the better the performance of the first node, the more complex encoding it can support, and the higher the protection level it can provide. The encoding algorithm set, the maximum packet duration and the maximum protection level corresponding to the first node are encapsulated to obtain a first capability message, so that the forward error correction capability of the first node is diffused to the directly connected downstream node in the form of a message, so that the downstream node determines the forward error correction capability of the first node diffused from the sending node according to the message. The method provided in the application diffuses the forward error correction capability of the node in the transmission network to the downstream in the form of a message, so that the receiving node can determine the forward error correction encoding mode of the sending node based on the message to perform corresponding decoding, improving the bandwidth utilization and the computing resource utilization. At the same time, each node does not need to care about other nodes and network technology details. When the node service setting and the node performance are changed, the diffusion of the forward error correction capability can be realized by re-generating the capability message and transmitting it to the downstream channel, reducing the difficulty of network management and improving the management efficiency.

[0076] It can be understood that if the first node has a directly connected downstream node, the first node is a data source end node (generator) or a forwarding node (node) in FIG. 1. When generating the first capability message, the first capability message can be generated based on the forward error correction capability of the first node itself. However, when the first node has a directly connected upstream node, the first node can be a forwarding node (node) or a data consumer end node (consumer) in FIG. 1. At this time, the first node can also obtain the capability message spread by the upstream node, thereby obtaining the forward error correction capability spread by the upstream node. Therefore, when generating the first capability message, not only the forward error correction capability of the first node itself needs to be considered, but also the forward error correction capability spread by the upstream node needs to be considered.

[0077] Next, taking the first node as a forwarding node (node) and a data consumer end node (consumer) as examples, the first node can obtain the capability message spread by the upstream node: in one optional embodiment of the forward error correction capability spreading method provided in the embodiment corresponding to FIG. 2 of the present application, please refer to FIG. 4, which is a method flowchart of the forward error correction capability spreading method provided in the embodiment of the present application, including:

[0078] 401, determining the forward error correction capability of the first node, the forward error correction capability including an encoding algorithm set, a maximum packet duration and a maximum protection level, wherein the encoding algorithm set indicates a set of supported encoding algorithms, the maximum packet duration indicates a maximum duration of receiving a single group of data, and the maximum protection level indicates a maximum value of supported protection levels, the forward error correction capability of the first node including a first encoding algorithm set, a first maximum packet duration and a first maximum protection level.

[0079] 402, obtaining a second capability message sent by a second node, the second node being a directly connected upstream node of the first node, the second capability message being used to determine the forward error correction capability spread by the second node, the forward error correction capability spread by the second node including a second encoding algorithm set, a second maximum packet duration and a second maximum protection level.

[0080] In the embodiment, when the first node has a directly connected upstream node (for example, the second node), the first node is a forwarding node (node) or a data consumer end node (consumer), so the first node can obtain the forward error correction capability spread by the upstream node through the second capability message. The second capability message also includes the forward error correction capability corresponding to the second encoding algorithm set, the second maximum packet duration and the second maximum protection level.

[0081] 403, encapsulate the third encoding algorithm set, the third maximum packet duration and the third maximum protection level into the first capability message, wherein the third encoding algorithm set is the union set of the first encoding algorithm set and the second encoding algorithm set, the third maximum packet duration is the maximum value of the first maximum packet duration and the second maximum packet duration, and the third maximum protection level is the maximum value of the first maximum protection level and the second maximum protection level.

[0082] 404, if it is determined that there is a downstream node connected to and adjacent to the first node, the first capability message is sent to the downstream node.

[0083] It can be understood that if the first node has a directly connected downstream node, the first node is a forwarding node (node), and therefore the first capability message needs to be generated in combination with the forward error correction capability of the node itself and the forward error correction capability spread by the upstream node (the second node).

[0084] Specifically, the first capability message can be encapsulated by the third encoding algorithm set, the third maximum packet duration and the third maximum protection level, the third encoding algorithm set is the union set of the first encoding algorithm set and the second encoding algorithm set, the third maximum packet duration is the maximum value of the first maximum packet duration and the second maximum packet duration, and the third maximum protection level is the maximum value of the first maximum protection level and the second maximum protection level.

[0085] It should be noted that step 403 can be a possible implementation of step 202, which embodies how to generate the first capability message when the first node is a forwarding node.

[0086] In a possible implementation, the second capability message carries a protocol version number, and after step 402, it further includes:

[0087] According to the protocol version number, it is determined that the second capability message is compatible with the first node.

[0088] It can be understood that after receiving the second capability message, the protocol version number ver can also be checked to ensure the compatibility between the second capability message and the first node, if not compatible, the second capability message is ignored; if compatible, step 403 is continued.

[0089] In a possible implementation, the second capability message carries a timestamp, and after step 402, it further includes:

[0090] According to the timestamp, it is determined that the second capability message is the latest message.

[0091] It can be understood that after receiving the second capability message, it can also be checked whether the second capability message is the latest message, if the time stamp time_stamp of the second capability message indicates that the generation time of the second capability message is relatively old, or other capability messages with updated time stamps have been received before, the second capability message is ignored; if the time stamp indicates that the second capability message is the latest message, step 403 is continued to execute.

[0092] For the convenience of understanding, the following parameters are agreed in the embodiments of the present application.

[0093] cap_up: forward error correction capability obtained based on the forward error correction capability message sent by the uplink node, the corresponding fields are as follows: encoding algorithm set cap_up.mask, maximum packet duration cap_up.duration_max, maximum protection level cap_up.lvl_max.

[0094] In combination with the parameter cap_local in the foregoing, taking node as an example, the forward error correction capability diffusion method flow is as follows:

[0095] 1) Obtain the forward error correction encoder type version supported by node locally, and update cap_local.mask (first encoding algorithm set);

[0096] 2) According to the service setting, service data frequency and local cache size, update cap_local.duration_max (first maximum packet duration);

[0097] 3) Wait to receive the forward error correction capability message sent by the uplink;

[0098] 4) When the uplink forward error correction capability message (for example, the second capability message) is received, check ver, if incompatible, ignore the message, and return to step 3); if compatible, execute step 5);

[0099] 5) Check time_stamp, if not the latest, ignore the message, and return to step 3); if the latest, obtain cap_up according to the message and cache;

[0100] 6) Obtain the CPU load of node, update cap_local.lvl_max (first maximum protection level) according to the encoder type;

[0101] 7) generate a capability message (first capability message) corresponding to Fig. 3 and send to the directly connected downstream node (node or consumer), wherein fec_mask is equal to the logical OR (bitwise OR "|") of cap_up.mask and cap_local.mask, duration_max is equal to max(cap_up.duration_max, cap_local.duration.max), and lvl_max is equal to max(cap_up.lvl_max, cap_local.lvl_max).

[0102] 405, if it is determined that there is no downstream node connected to and adjacent to the first node, then save the second capability message.

[0103] It can be understood that if the first node has no directly connected downstream node, then the first node is a data consumer node (consumer), and the consumer has no downstream node, so only the forward error correction capability in the second capability message needs to be saved.

[0104] For ease of understanding, taking the consumer as an example, the forward error correction capability diffusion method flow is as follows:

[0105] 1) Obtain the local supported forward error correction encoder type version of the consumer, and update cap_local.mask (first encoding algorithm set);

[0106] 2) According to the service setting, the service data frequency and the local cache size, update cap_local.duration_max (first maximum packet duration);

[0107] 3) Wait to receive the forward error correction capability message sent by the upstream;

[0108] 4) When receiving the upstream forward error correction capability message (second capability message), check ver, if incompatible, ignore the message, and return to step 3); if compatible, execute step 5);

[0109] 5) Check time_stamp, if not the latest, ignore the message, and return to step 3); if the latest, obtain cap_up according to the message and cache.

[0110] In an optional embodiment of the forward error correction capability diffusion method provided in the embodiment corresponding to Fig. 4 of the present application, referring to Fig. 5, Fig. 5 is a flow chart of a reverse control method based on the forward error correction capability diffusion method, and the embodiment of the present application further provides a reverse control method of a downlink node. Reverse control refers to a method of sending information back through a reverse channel to request the uplink node to re-determine the forward error correction capability when the forward error correction capability of the downlink node changes.

[0111] As shown in Fig. 1, bc0 to bc7 are reverse control channels. It can be understood that the reverse control message is sent by the downlink node to the uplink node, that is, the node generating the reverse control message has a directly connected uplink node, and the node can be a forwarding node (node) or a data consumer node (consumer) in particular.

[0112] Referring to Fig. 5, after step 402 of the embodiment corresponding to Fig. 4, it further includes:

[0113] 501, detecting a forward error correction capability expected by the first node, including a first expected algorithm set, a first expected packet duration and a first expected protection level.

[0114] It can be understood that, at any virtual channel t downlink node, according to the observed weak network condition and the configuration of the service, the forwarding node (node) or the data consumer node (consumer) will obtain an expected forward error correction capability (including packet duration and protection level, etc.). By sending the expected forward error correction capability to the uplink node, the uplink node can perform forward error correction coding based on the expected capability, which is beneficial to improve the data transmission efficiency and the data decoding speed, and save the decoding calculation resources.

[0115] 502, if the forward error correction capability expected by the first node is different from the forward error correction capability in the second capability message, then based on the second expected algorithm set, the second expected packet duration and the second expected protection level, a first control message is obtained by encapsulation, wherein the second expected algorithm is the intersection of the first expected algorithm set and the second encoding algorithm set, the second expected packet duration is the minimum value of the first expected packet duration and the second maximum packet duration, and the second expected protection level is the minimum value of the first expected protection level and the second maximum protection level.

[0116] It can be understood that, after the forward error correction capability expected by the first node is determined, the expected error correction capability is compared with the error correction capability diffused by the uplink node, and if there is a difference between them, it indicates that the reverse control needs to be performed on the uplink node. After the control message is obtained by encapsulation based on the expected forward error correction capability, it is sent to the uplink node.

[0117] It can be understood that the control message can also be in the form of RTP, in which various parameters are identified by different fields.

[0118] For ease of understanding, refer to Fig. 6, which is a message analysis diagram of a reverse control protocol of forward error correction capability provided by an embodiment of the present application.

[0119] As shown in Fig. 6, ver identifies the protocol version, which is used to cope with future protocol changes; fec_mask is a mask identification of acceptable fec algorithm types and versions, which is equivalent to the expected algorithm; duration_max is the acceptable maximum packet duration, which is equivalent to the expected packet duration; lvl_min is the required minimum protection level, which is equivalent to the expected protection level; and time_stamp is the time stamp, which can be used to resist network transmission disorder.

[0120] The first control message can be encapsulated based on a second expected algorithm, a second expected packet duration and a second expected protection level, the second expected algorithm is the intersection of the first expected algorithm and the second encoding algorithm set; the second expected packet duration is the minimum value of the first expected packet duration and the second maximum packet duration; and the second expected protection level is the minimum value of the first expected protection level and the second maximum protection level.

[0121] It can be understood that the first control message is generated based on the expected capability of the current node and the capability spread by the upstream node, which can help the upstream node to understand the communication conditions and capabilities of the downstream node, so as to make corresponding adjustment and optimization.

[0122] 503, a first control message is sent to a second node, so that the second node performs forward error correction based on the first control message.

[0123] It can be understood that the reverse control message (the first control message) is sent to the upstream node (the second node), and when the upstream node receives the reverse control message, it parses the forward error correction capability information in the message, based on which the upstream node can decide to enable which forward error correction encoding algorithm, and select the packet duration and protection level of the forward error correction encoding algorithm.

[0124] For ease of understanding, the following parameters are agreed in the embodiments of the present application:

[0125] req_local: the node generates a forward error correction protection requirement, i.e., the expected forward error correction capability, for protecting its own upstream channel, and the corresponding fields are as follows: the expected encoding algorithm set req_local.mask, the expected packet duration req_local.duration, and the expected protection level req_local.lvl.

[0126] Taking the consumer as an example, the reverse control method of the forward error correction capability is as follows:

[0127] 1) detecting the forward error correction capability expected by the consumer, if there is a change or no change but the detection timeout, performing step 2);

[0128] 2) if the expected protection level is 0, and the currently supported protection level is also 0, performing returning to performing step 1), otherwise performing step 3);

[0129] 3) if the req_local.mask (the first expected algorithm) and the cap_up.fec_mask (the second encoding algorithm) intersection is empty, or the cap_up.lvl_max (the second maximum protection level) is 0, performing step 5), otherwise performing step 4);

[0130] 4) generating a reverse control packet (the first control packet) and sending it to the directly connected upper node (node or generator), wherein the fec_mask in the control packet is equal to the intersection of req_local.mask and cap_up.fec_mask (bit and “&”), the duration_max is equal to min (req_local.duration, cap_up.duration_max), and the lvl_min is equal to min (req_local.lvl, cap_up.lvl_max);

[0131] 5) updating the latest req_local cache, and returning to step 1).

[0132] Further, the sending time of the first control packet to the upper node (the second node) (equivalent to the diffusion time) can also be sent according to a certain periodicity (static periodic diffusion), or sent after the change (immediately diffuse when the change).

[0133] It can be understood that when the first control packet is generated, the first control packet can be generated based on the forward error correction capability expected by the first node itself. However, when the first node not only has a directly connected lower node, but also has a directly connected upper node, the first node can be a forwarding node (node) in FIG. 1, at this time, the first node can also obtain the control packet diffused by the lower node, and obtain the expected forward error correction capability diffused by the lower node. Therefore, when the first control packet is generated, not only the forward error correction capability expected by the first node itself needs to be considered, but also the forward error correction capability expected by the lower node diffused.

[0134] In a possible implementation method, after step 402, further comprising:

[0135] 5021, obtaining the second control packet sent by the downlink node, the second control packet indicating a third expected algorithm set, a third expected grouping duration and a third expected protection level.

[0136] At this time, the manner of encapsulating based on the second expected algorithm set, the second expected grouping duration and the second expected protection level to obtain the first control packet can be that the fourth expected algorithm set, the fourth expected grouping duration and the fourth expected protection level are encapsulated into the first control packet, wherein the fourth expected algorithm set is the intersection of the second expected algorithm set and the third expected algorithm set, the fourth expected grouping duration is the minimum value of the second expected grouping duration and the third expected grouping duration, and the fourth expected protection level is the maximum value of the first expected protection level and the third expected protection level and the minimum value of the second maximum protection level (see 5022 shown in FIG. 5).

[0137] It should be noted that the step 5022 can be a possible implementation of the step 502, and embodies how to generate the first control packet when the first node is a forwarding node. It can be understood that when the first node exists both the uplink node and the downlink node, the first node is a forwarding node (node), at this time, the first node contains both the local forward error correction protection requirement corresponding to the receiving end of the uplink channel due to itself, and the reverse control request to the local of each adjacent downlink channel sent by itself.

[0138] For ease of understanding, the embodiments of the present application make the following parameters:

[0139] req_down: the forward error correction protection requirement of the forwarding node node to the reverse control merging of all directly connected downlinks, and the corresponding fields are as follows: expected encoding algorithm set req_down.mask, expected grouping duration req_down.duration, and expected protection level req_down.lvl.

[0140] Taking the node as an example, the reverse control method of the forward error correction capability is as follows:

[0141] 1) detecting the forward error correction capability expected by the node and the reverse control packet sent by each downlink, if the detection of the node is timed out or req_local is changed, step 2) is performed; if the reverse control packet sent by the downlink is received, step 4) is performed;

[0142] 2) if the expected protection level is 0 and the currently supported protection level is also 0, step 1) is performed, otherwise, step 3) is performed;

[0143] 3) updating the cap_local cache of the latest time, and performing step 6);

[0144] 4) check the ver and time_stamp of the reverse control packet, if the version is not compatible or the packet is not the latest, ignore the packet and perform step 1), otherwise perform step 5);

[0145] 5) cache the latest reverse control packet (second control packet) of the corresponding down channel, and update req_down cache, the mask in the control packet is equal to the intersection (bit & ) of the fec_mask of all adjacent down reverse controls, the lvl is the maximum value of the expected protection levels of all adjacent down reverse controls, and the duration is the minimum value of the expected packet duration of all adjacent down reverse controls;

[0146] 6) if req_local.lvl (first expected protection level) is 0, or the intersection of cap_up.fec_mask (second encoding algorithm set) and req_local.mask (first expected algorithm set) and req_down.mask (third expected algorithm set) is empty, or cap_up.lvl_max (second maximum protection level) is less than req_down.lvl (third expected protection level), perform step 8), otherwise perform step 7);

[0147] 7) generate a reverse control packet (first control packet) and send it to the directly connected uplink node (node or generator), the fec_mask (fourth expected algorithm set) of the control packet is equal to (req_local.mask (first expected algorithm set) & req_down.mask (third expected algorithm set) & cap_up.fec_mask (second encoding algorithm set)), duration_max (fourth expected packet duration) is equal to min (req_local.duration (first expected encoding duration), req_down.duration (third expected encoding duration), cap_up.duration_max (second maximum encoding duration)), and lvl_min (fourth expected protection level) is equal to min (max (req_local.lvl (first expected protection level), req_down.lvl (third expected protection level)), cap_up.lvl_max (second maximum protection level));

[0148] 8) get the CPU load of node, refer to the encoder type, and update cap_local.lvl_max (first maximum protection level);

[0149] 9) if cap_local.lvl_max (first maximum protection level) < req_down.lvl (third expected protection level) and cap_local.lvl_max (first maximum protection level) < cap_up.lvl_max (second maximum protection level), or cap_local.mask (first encoding algorithm set) has no intersection with req_down.fec_mask (third expected algorithm set), perform step 7), otherwise perform step 10);

[0150] 10) generate a reverse control packet (first control packet) and send it to the directly connected uplink node (node or generator), wherein the fec_mask (fourth expected algorithm set) of the control packet is equal to the intersection (bitwise "and") of req_local.mask (first expected algorithm set) and cap_up.fec_mask (second encoding algorithm set), the duration_max (fourth expected packet duration) is equal to min (req_local.duration (first expected encoding duration), cap_up.duration_max (second maximum encoding duration)), and the lvl_min (fourth expected protection level) is equal to min (req_local.lvl (first expected protection level), cap_up.lvl_max (second maximum protection level)).

[0151] 11) select a forward error correction encoder according to the intersection (bitwise "and") of cap_local.mask (first encoding algorithm set) and req_down.mask (third expected algorithm set), determine the packet size with min (req_down.duration, cap_local.duration_max) and the encoding redundancy with min (req_down.lvl, cap_local.lvl_max), start or update the encoder, and then perform step 1).

[0152] In an optional embodiment of the forward error correction capability diffusion method provided in the embodiment corresponding to Fig. 2 of the present application, please refer to Fig. 7, which is a flow chart of a reverse control method based on the forward error correction capability diffusion method provided in the embodiment of the present application. After step 201 corresponding to Fig. 2, the method further includes:

[0153] 701, acquire the second control packet sent by the downlink node, wherein the second control packet indicates the third expected algorithm set, the third expected packet duration and the third expected protection level.

[0154] 702, performing forward error correction based on the fifth expected algorithm set, the fifth expected packet duration, and the fifth expected protection level, wherein the fifth expected algorithm set is an intersection of the first encoding algorithm set and the third expected algorithm set, the fifth expected packet duration is a minimum of the first maximum packet duration and the third expected packet duration, and the fifth expected protection level is a minimum of the second expected protection level and the third expected protection level.

[0155] It can be understood that if the first node is a data generator node, the generator can obtain the reverse control packet (second control packet) sent by the downstream node, and then perform corresponding forward error correction in combination with the forward error correction capability in the second control packet and the locally supported forward error correction capability.

[0156] Taking the generator as an example, the reverse control method of the forward error correction capability is as follows:

[0157] 1) Detect the reverse control packet sent by each downstream node. If the reverse control packet sent by the downstream node is received, step 2) is performed.

[0158] 2) Check the ver and time_stamp in the reverse control packet (second control packet). If the version is incompatible or the packet is not the latest, ignore the packet and perform step 1), otherwise perform step 3).

[0159] 3) Cache the latest reverse control packet (second control packet) of the corresponding downstream channel, and update req_down cache. The mask in the control packet is equal to the intersection (bitwise “&”) of all adjacent downstream reverse control fec_mask, the lvl is the maximum value of the expected protection level of all adjacent downstream reverse control, and the duration is the minimum value of the expected packet duration of all adjacent downstream reverse control.

[0160] 4) Obtain the CPU load of the generator, refer to the encoder type, and update (the first maximum protection level).

[0161] 5) Select the forward error correction encoder according to the intersection (bitwise “&”) of cap_local.mask (the first encoding algorithm set) and req_down.mask (the third expected algorithm set) (the fifth expected algorithm set), determine the packet size (the fifth expected packet duration) with min(req_down.duration, cap_local.duration_max), determine the encoding redundancy (the fifth expected protection level) with min(req_down.lvl, cap_local.lvl_max), start or update the encoder, and then perform step 1).

[0162] In an optional embodiment of the forward error correction capability diffusion method provided in the embodiments of Figs. 2, 4, 5 and 7 of the present application, please refer to Fig. 8, which is a flow chart of a redundancy filtering method based on the forward error correction capability diffusion method provided in the embodiments of the present application.

[0163] It can be understood that the embodiments of the present application provide a filtering method for filtering redundancy data. Please refer to Fig. 1. For a node (generator / node) with multiple direct downlink channels t, the forward error correction redundancy encoded locally by the node or received from the uplink may not be applicable to all downlink channels. Therefore, in the embodiments of the present application, the sending end of each channel t filters the redundancy data sent downward according to the reverse control received by the channel, thereby minimizing the transmission redundancy on the basis of ensuring the protection level. Since the node needs to send the data after redundancy encoding to the downlink node and also needs to obtain the redundancy data packet sent by the uplink node, the filtering method for filtering redundancy data provided in the embodiments of the present application is deployed in the node corresponding to the redundancy filter.

[0164] After the forward error correction capability diffusion is performed in the topological network, the following operations are further included.

[0165] 801, a data packet is obtained, and a packet header of the data packet carries a redundancy mark, the redundancy mark being used to determine whether the data packet is an original data packet or a redundancy error correction packet;

[0166] 802, if it is determined that the data packet is the original data packet, the original data packet is transmitted to a downlink node;

[0167] 803, if it is determined that the data packet is the redundancy error correction packet, the number of redundancy packets of the redundancy error correction packets obtained is updated;

[0168] 804, if the number of redundancy packets does not exceed a preset number, the redundancy error correction packet is forwarded to the downlink node;

[0169] 805, if the number of redundancy packets exceeds the preset number, the redundancy error correction packet is not forwarded.

[0170] In the embodiments of the present application, in order to make dynamic filtering possible, two additional data packet headers are introduced, which are respectively applied to the original data packet to be protected and the redundancy packet for providing forward error correction protection.

[0171] The original data packet header is shown in Fig. 9: the field ver is a version; r is a redundancy mark, which is set to 0 and is used to indicate that the current data packet is an original data packet; frame identity (ID) is a frame ID; index is an intra-frame serial number; and frame packet number is an intra-frame packet number.

[0172] The redundant error correction packet header is shown in Fig. 10. The field ver is version; r is redundant mark, set to 1, used to indicate that the current data packet is a redundant error correction packet; fver is FEC algorithm identification; fec group ID indicates the current group ID, which also corresponds to the first frame ID of its protection object; index is the sequence number of the FEC group relative to the first redundant packet; redundant number is the number of redundant packets in the FEC group; first orig sequence is the transmission sequence number of the first protected original packet, and all protected packets are continuous; original number is the number of original packets in the FEC group; frame number is the number of frames in the FEC group; and packet number of frames is the number of packets of each frame except the last frame.

[0173] In the embodiment of the application, by defining two packet headers, the redundant filter has sufficient information to distinguish between redundant error correction packets and non-redundant error correction packets (original data packets). When the data packet is an original data packet, the original data packet is transmitted to the downstream node; when the data packet is a redundant error correction packet, the number of redundant packets of the redundant error correction packet already obtained is updated.

[0174] Meanwhile, the preset number is defined as the number of redundant error correction packets that need to be forwarded to the downstream node. When the number of redundant packets does not exceed the preset number, the current redundant error correction packet is forwarded to the downstream node; if the number of redundant packets exceeds the preset number, it indicates that the current number of redundant error correction packets can enable the downstream node to perform forward error correction, and therefore the redundant error correction packet can be discarded (the redundant error correction packet is discarded) to save the computing resources of the downstream node.

[0175] In a possible implementation method, the preset number is the product of the encoding redundancy rate corresponding to the expected protection level of the downstream node and the total amount of redundant error correction packets.

[0176] It can be understood that, according to the encoding redundancy rate corresponding to the expected protection level of the downstream node, the number of redundant error correction packets required to recover data can be determined.

[0177] For example, the encoding redundancy rate corresponding to the expected protection level of the downstream node is ρ, and the number of data packets obtained after performing forward error correction encoding on the original data is N. Then, the downstream node only needs to obtain ρ*N redundant data packets to achieve the forward error correction effect. Therefore, the preset number is ρ*N. When the number of redundant packets recorded in the node does not exceed ρ*N, the redundant data packet is forwarded downward; when the number of redundant packets recorded in the node exceeds ρ*N, the redundant data packet is not forwarded.

[0178] Referring to Fig. 11, Fig. 11 is a working logic diagram of the redundant filtering method based on the forward error correction capability diffusion method provided in the embodiment of the application.

[0179] After the node (the sending node) obtains the FEC data packet, the type of the data packet is determined according to the redundancy mark carried in the packet header of the data packet. If the data packet is an original data packet, the data packet is forwarded to the downstream node (the receiving node). If the data packet is a redundancy correction packet, the data packet is saved in the cache. According to the number of redundancy correction packets in the cache, it is determined whether the number of redundancy correction packets (n) exceeds the product of the coding redundancy rate (p) corresponding to the expected protection level of the downstream node and the total amount (N) of redundancy correction packets. If the number of redundancy correction packets does not exceed the product, the redundancy correction packet is sent. If the number of redundancy correction packets exceeds the product, the redundancy correction packet is discarded.

[0180] The forward error correction capability diffusion device in the present application is described in detail below. Please refer to FIG. 12. FIG. 12 is a schematic diagram of an embodiment of the forward error correction capability diffusion device 1200 in the present application. The forward error correction capability diffusion device 1200 includes:

[0181] A capability confirmation module 1201 is configured to determine the forward error correction capability of the first node. The forward error correction capability includes a coding algorithm set, a maximum packet duration and a maximum protection level. The coding algorithm set indicates the supported coding algorithms. The maximum packet duration indicates the maximum duration of receiving a single group of data. The maximum protection level indicates the maximum value of the supported protection levels. The forward error correction capability of the first node includes a first coding algorithm set, a first maximum packet duration and a first maximum protection level.

[0182] A packet encapsulation module 1202 is configured to encapsulate based on the first coding algorithm set, the first maximum packet duration and the first maximum protection level to obtain a first capability packet.

[0183] A packet sending module 1203 is configured to send the first capability packet to the downstream node if it is determined that there is a downstream node connected to and adjacent to the first node, so that the downstream node determines the forward error correction capability diffused by the first node based on the first capability packet.

[0184] In a possible implementation method, the capability confirmation module 1201 is specifically configured to determine the first coding algorithm set according to the supported encoders of the first node, determine the first maximum packet duration according to the service settings of the first node, and determine the first maximum protection level according to the node performance of the first node.

[0185] In a possible implementation method, the method further includes:

[0186] A packet obtaining module 1204 is configured to obtain a second capability packet sent by a second node. The second node is an upstream node connected to and adjacent to the first node. The second capability packet is used to determine the forward error correction capability diffused by the second node. The forward error correction capability diffused by the second node includes a second coding algorithm set, a second maximum packet duration and a second maximum protection level.

[0187] The message encapsulation module 1202 is further configured to encapsulate the third encoding algorithm set, the third maximum packet duration and the third maximum protection level into the first capability message, wherein the third encoding algorithm set is a union set of the first encoding algorithm set and the second encoding algorithm set, the third maximum packet duration is a maximum value of the first maximum packet duration and the second maximum packet duration, and the third maximum protection level is a maximum value of the first maximum protection level and the second maximum protection level.

[0188] In a possible implementation, the second capability message carries a protocol version number.

[0189] Further comprising:

[0190] The checking module is configured to determine, according to the protocol version number, that the second capability message is compatible with the first node.

[0191] In a possible implementation, the second capability message carries a timestamp.

[0192] Further comprising:

[0193] The checking module is configured to determine, according to the timestamp, that the second capability message is a latest message.

[0194] In a possible implementation, the method further comprises:

[0195] The storage module is configured to save the second capability message if it is determined that there is no downstream node connected to and adjacent to the first node.

[0196] In a possible implementation, the method further comprises:

[0197] The detection module is configured to detect a forward error correction capability expected by the first node, wherein the forward error correction capability expected by the first node comprises a first expected algorithm set, a first expected packet duration and a first expected protection level.

[0198] The message encapsulation module 1202 is further configured to, if there is a difference between the forward error correction capability expected by the first node and the forward error correction capability in the second capability message, encapsulate, based on a second expected algorithm set, a second expected packet duration and a second expected protection level, to obtain the first control message, wherein the second expected algorithm set is an intersection set of the first expected algorithm set and the second encoding algorithm set, the second expected packet duration is a minimum value of the first expected packet duration and the second maximum packet duration, and the second expected protection level is a minimum value of the first expected protection level and the second maximum protection level.

[0199] The message sending module 1203 is further configured to send the first control message to the second node, so that the second node performs forward error correction based on the first control message.

[0200] In a possible implementation, the method further comprises:

[0201] The message obtaining module 1204 is configured to obtain a second control message sent by the downstream node, the second control message indicating a third expected algorithm set, a third expected grouping time length, and a third expected protection level;

[0202] The message encapsulating module 1202 is further configured to encapsulate a fourth expected algorithm set, a fourth expected grouping time length, and a fourth expected protection level into the first control message, wherein the fourth expected algorithm set is an intersection of the second expected algorithm set and the third expected algorithm set, the fourth expected grouping time length is a minimum value of the second expected grouping time length and the third expected grouping time length, and the fourth expected protection level is a maximum value of the first expected protection level and the third expected protection level and a minimum value of the second maximum protection level.

[0203] In a possible implementation method, the method further includes:

[0204] The message obtaining module 1204 is configured to obtain a second control message sent by the downstream node, the second control message indicating a third expected algorithm set, a third expected grouping time length, and a third expected protection level;

[0205] The capability executing module is configured to execute forward error correction based on a fifth expected algorithm set, a fifth expected grouping time length, and a fifth expected protection level, wherein the fifth expected algorithm set is an intersection of the first encoding algorithm set and the third expected algorithm set, the fifth expected grouping time length is a minimum value of the first maximum grouping time length and the third expected grouping time length, and the fifth expected protection level is a minimum value of the second expected protection level and the third expected protection level.

[0206] In a possible implementation method, the method further includes:

[0207] The redundancy filtering module 1205 is configured to obtain a data packet, a packet header of the data packet carrying a redundancy mark, the redundancy mark being used to determine whether the data packet is an original data packet or a redundancy error correction packet; if it is determined that the data packet is the original data packet, the original data packet is transmitted to the downstream node; if it is determined that the data packet is the redundancy error correction packet, a redundancy packet number of the redundancy error correction packet that has been obtained is updated; if the redundancy packet number does not exceed a preset number, the redundancy error correction packet is forwarded to the downstream node; and if the redundancy packet number exceeds the preset number, the redundancy error correction packet is not forwarded.

[0208] In a possible implementation method, the preset number is a product of an encoding redundancy rate corresponding to the expected protection level of the downstream node and a total amount of the redundancy error correction packets.

[0209] It can be understood that the forward error correction capability diffusion apparatus provided by the embodiments of the present application corresponds to the forward error correction capability diffusion method in the above embodiments, and the related description can be referred to the corresponding position in the above, which will not be described here in detail.

[0210] FIG. 13 is a schematic diagram of a server structure according to an embodiment of the present application. The server 300 can vary greatly in configuration or performance and can include one or more CPUs 322 (e.g., one or more processors) and memory 332, one or more storage media 330 (e.g., one or more mass storage devices) storing applications 342 or data 344. The memory 332 and the storage media 330 can be of the temporary or persistent type. The programs stored in the storage media 330 can include one or more modules (not shown in the figure), each of which can include a series of instructions for operating on the server. Further, the central processing unit 322 can be configured to communicate with the storage media 330 to execute a series of instructions stored in the storage media 330 on the server 300.

[0211] The server 300 can also include one or more power supplies 326, one or more wired or wireless network interfaces 350, one or more input / output interfaces 358, and / or one or more operating systems 341, such as Windows Server TM , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM , etc.

[0212] The steps performed by the server in the above embodiments can be based on the server structure shown in FIG. 13.

[0213] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the above-described systems, devices, and units can refer to the corresponding processes in the foregoing method embodiments, which will not be described here.

[0214] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program with a predetermined function, and works together with other related parts to achieve a predetermined target, and can be implemented entirely or partially by using software, hardware (such as a processing circuit or a memory), or a combination thereof. Similarly, one processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be a part of an overall module or unit that includes the functions of the module or unit.

[0215] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented in other manners. For example, the described device embodiments are merely schematic. For example, the division of the units is only a logical function division. There can be another division manner for the actual implementation, for example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections between different units, can be indirect couplings or communication connections through some interfaces, devices or units, and can be in electrical, mechanical or other forms.

[0216] The units described as separated components can or can not be physically separated, and the components displayed as units can or can not be physical units, i.e., can be located in one place, or can be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purposes of the embodiments.

[0217] In addition, each functional unit in the embodiments of the present application can be integrated in a processing unit, or each unit can exist physically as a separate unit, or two or more units can be integrated in one unit. The integrated unit can be implemented in the form of hardware, or in the form of software functional units.

[0218] If the integrated unit is implemented in the form of software functional units and sold or used as an independent product, it can be stored in a computer readable storage medium. Based on such an understanding, the technical solutions of the present application essentially, or the part that contributes to the prior art, or all or a part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium, and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods in the embodiments of the present application. The foregoing storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, and various media that can store program codes.

[0219] The above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than limit them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that: it can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacement for part of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A forward error correction capability diffusion method, the method being executed by a computer device, comprising: Determining a forward error correction capability of the first node, the forward error correction capability including a coding algorithm set, a maximum packet duration, and a maximum protection level, wherein the coding algorithm set indicates a set of supported coding algorithms, the maximum packet duration indicates a maximum duration for receiving a single set of data, and the maximum protection level indicates a maximum value of the supported protection level, the forward error correction capability of the first node including a first coding algorithm set, a first maximum packet duration, and a first maximum protection level; Encapsulating based on the first coding algorithm set, the first maximum packet duration, and the first maximum protection level to obtain a first capability message; If it is determined that there is a downstream node connected to and adjacent to the first node, the first capability message is sent to the downstream node, so that the downstream node determines the forward error correction capability diffused by the first node based on the first capability message.

2. The method according to claim 1, wherein determining the forward error correction capability of the first node comprises: Determining the first encoding algorithm set according to the encoder supported by the first node; determining the first maximum packet duration according to a service setting of the first node; The first maximum protection level is determined according to the node performance of the first node.

3. The method according to claim 1 or 2, further comprising, after determining the forward error correction capability of the first node: Obtaining a second capability message sent by a second node, where the second node is an uplink node connected to and adjacent to the first node, the second capability message being used to determine a forward error correction capability diffused by the second node, where the forward error correction capability diffused by the second node includes a second coding algorithm set, a second maximum packet duration, and a second maximum protection level; The encapsulation based on the first coding algorithm set, the first maximum packet duration, and the first maximum protection level to obtain a first capability message includes: The third coding algorithm set, the third maximum packet duration and the third maximum protection level are encapsulated into the first capability message, wherein the third coding algorithm set is the union of the first coding algorithm set and the second coding algorithm set, the third maximum packet duration is the maximum value of the first maximum packet duration and the second maximum packet duration, and the third maximum protection level is the maximum value of the first maximum protection level and the second maximum protection level.

4. The method according to claim 3, wherein the second capability message carries a protocol version number; After acquiring the second capability message sent by the second node, the method further includes: According to the protocol version number, it is determined that the second capability message is compatible with the first node.

5. The method according to claim 3 or 4, wherein the second capability message carries a timestamp; After acquiring the second capability message sent by the second node, the method further includes: According to the timestamp, it is determined that the second capability message is the latest message.

6. The method according to any one of claims 3 to 5, further comprising, after obtaining the second capability message sent by the second node: If it is determined that there is no downstream node connected to and adjacent to the first node, the second capability message is saved.

7. The method according to any one of claims 3 to 6, further comprising, after obtaining the second capability message sent by the second node: detecting a forward error correction capability expected by the first node, where the forward error correction capability expected by the first node includes a first expected algorithm set, a first expected packet duration, and a first expected protection level; If the forward error correction capability expected by the first node is different from the forward error correction capability in the second capability message, encapsulation is performed based on the second expected algorithm set, the second expected packet duration, and the second expected protection level to obtain a first control message, wherein the second expected algorithm set is the intersection of the first expected algorithm set and the second coding algorithm set, the second expected packet duration is the minimum value of the first expected packet duration and the second maximum packet duration, and the second expected protection level is the minimum value of the first expected protection level and the second maximum protection level; The first control message is sent to the second node, so that the second node performs forward error correction based on the first control message.

8. The method according to claim 7, after obtaining the second capability message sent by the second node, further comprising: Obtaining a second control message sent by the downlink node, where the second control message indicates a third expected algorithm set, a third expected packet duration, and a third expected protection level; The encapsulation based on the second expected algorithm set, the second expected packet duration, and the second expected protection level to obtain the first control message includes: The fourth expected algorithm set, the fourth expected packet duration and the fourth expected protection level are encapsulated into the first control message, wherein the fourth expected algorithm set is the intersection of the second expected algorithm set and the third expected algorithm set, the fourth expected packet duration is the minimum value of the second expected packet duration and the third expected packet duration, and the fourth expected protection level is the maximum value of the first expected protection level and the third expected protection level and the minimum value of the second maximum protection level.

9. The method according to any one of claims 1 to 8, further comprising, after determining the forward error correction capability of the first node: Obtaining a second control message sent by the downlink node, where the second control message indicates a third expected algorithm set, a third expected packet duration, and a third expected protection level; Forward error correction is performed based on a fifth expected algorithm set, a fifth expected packet duration and a fifth expected protection level, wherein the fifth expected algorithm set is the intersection of the first coding algorithm set and the third expected algorithm set, the fifth expected packet duration is the minimum value between the first maximum packet duration and the third expected packet duration, and the fifth expected protection level is the minimum value between the second expected protection level and the third expected protection level.

10. The method according to any one of claims 1 to 9, further comprising, after sending the first capability message to the downstream node: Acquire a data packet, wherein the header of the data packet carries a redundant marker, wherein the redundant marker is used to determine whether the data packet is an original data packet or a redundant error correction packet; If it is determined that the data packet is the original data packet, transmitting the original data packet to the downlink node; If it is determined that the data packet is the redundant error correction packet, updating the redundant packet number of the redundant error correction packet that has been obtained; If the number of redundant packets does not exceed a preset number, forwarding the redundant error correction packet to the downstream node; If the number of redundant packets exceeds a preset number, the redundant error correction packet is not forwarded.

11. The method according to claim 10, wherein the preset number is the product of a coding redundancy rate corresponding to an expected protection level of the downlink node and a total amount of the redundant error correction packets.

12. A forward error correction capability diffusion device, the device being deployed on a computer device, comprising: a capability confirmation module, configured to determine a forward error correction capability of the first node, the forward error correction capability including a coding algorithm set, a maximum packet duration, and a maximum protection level, wherein the coding algorithm indicates a set of supported coding algorithms, the maximum packet duration indicates a maximum duration for receiving a single set of data, and the maximum protection level indicates a maximum value of the supported protection level, the forward error correction capability of the first node including a first coding algorithm set, a first maximum packet duration, and a first maximum protection level; a message encapsulation module, configured to encapsulate a message based on the first coding algorithm set, the first maximum packet duration, and the first maximum protection level to obtain a first capability message; The message sending module is used to send the first capability message to the downstream node if it is determined that there is a downstream node connected to and adjacent to the first node, so that the downstream node determines the forward error correction capability diffused from the first node based on the first capability message.

13. A computer device comprising: memory and processor; The memory stores a computer program, and when the computer program runs on the processor, the forward error correction capability diffusion method according to any one of claims 1 to 11 is implemented.

14. A computer-readable storage medium comprising a computer program, which, when executed on a computer, causes the computer to execute the forward error correction capability diffusion method according to any one of claims 1 to 11. 15 . A computer program product comprising a computer program, wherein a processor is operable to execute the forward error correction capability diffusion method according to claim 1 .

Citation Information

Patent Citations

  • Forward error correction capability diffusion method and related device

    CN120785469A

  • Forward error correction method and equipment for real-time transmitted data flow, and storage medium

    CN107257265A

  • Method and device for coding / decoding consultation

    CN108513320A

  • Encoding method, decoding method, encoding end and decoding end

    CN110830819A

  • Apparatus and method for providing optimal self-adaptive forward error correction in communication system

    CN1479976A