Data communication method, data communication device, electronic device, and storage medium
By deterministically selecting active and inactive packets in batch sparse network coding and using different batch generator matrices for encoding, the problem of premature failure in BP decoding is solved, thereby improving the efficiency of network communication and coding performance.
Patent Information
- Application Number
- CN202310539408.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-05-12
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2043-05-12
AI Technical Summary
In existing technologies, batch sparse network coding is prone to premature BP decoding failure when the number of batches is small, which increases decoding complexity and reduces network communication efficiency.
By deterministically selecting active packets from multiple active packets as the data packet set and introducing inactive packets, different batch generation matrices are used to encode the data packet set in batches to generate batches, reducing the randomness of active packet selection and avoiding premature failure of BP decoding.
It improves encoding performance, reduces decoding complexity, and increases network communication efficiency.
Smart Images

Figure CN116614203B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a data communication method, a data communication device, an electronic device, and a storage medium. Background Technology
[0002] In related technologies, batch sparse network coding uses a pseudo-random coding method to select data packets for each batch. This coding method randomly selects a number of data packets with the same degree as the active packets in each batch from all active packets. When the number of batches is small, this random coding method is prone to causing premature failure of Belief Propagation (BP) decoding, increasing decoding complexity and reducing network communication efficiency. Summary of the Invention
[0003] The main objective of this application is to provide a data communication method, data communication device, electronic device, and storage medium, which aims to improve encoding performance, reduce decoding complexity, and thereby improve the efficiency of network communication.
[0004] To achieve the above objectives, a first aspect of this application proposes a data communication method applied to a communication network, the communication network including a source node, intermediate nodes, and a destination node, the method comprising:
[0005] The source node obtains the original message packet set and precodes the original message packet set to obtain multiple precoded packets; the multiple precoded packets include multiple active packets and multiple inactive packets;
[0006] The source node selects active packets from multiple active packets as the first data packet set, selects active packets from multiple active packets as the second data packet set, and selects inactive packets from multiple inactive packets as the third data packet set.
[0007] The source node determines a first batch generation matrix, a second batch generation matrix, and a third batch generation matrix. It then performs batch encoding on the first data packet set according to the first batch generation matrix to obtain a first encoded packet set. It performs batch encoding on the second data packet set according to the second batch generation matrix to obtain a second encoded packet set. Finally, it performs batch encoding on the third data packet set according to the third batch generation matrix to obtain a third encoded packet set. The first encoded packet set, the second encoded packet set, and the third encoded packet set are then merged to generate a first batch. The first batch includes multiple encoded packets.
[0008] The source node re-encodes the encoded packets belonging to the same first batch to obtain the second batch;
[0009] The intermediate node receives the second batch from the source node and re-encodes the second batch to obtain the target batch;
[0010] The destination node receives the target batch, decodes the target batch, and obtains the original message packet set.
[0011] In some embodiments, the precoding of the original message packet set to obtain multiple precoded packets includes:
[0012] The original message packet set is encoded using a low-density parity-check code to obtain a first check packet; the original message packet set includes multiple original message packets, and the multiple original message packets include a first original message packet and a second original message packet.
[0013] The original message packet set is encoded using a high-density parity check code to obtain a second parity packet;
[0014] Multiple precoded packets are obtained based on the original message packet, the first verification packet, and the second verification packet; the first original message packet and the first verification packet are both active packets; the second original message packet and the second verification packet are both inactive packets.
[0015] In some embodiments, the source node selects active packets from a plurality of active packets as a first data packet set, including:
[0016] The source node determines the batch size based on the ratio of a first preset quantity to a preset batch quantity; the first preset quantity is the number of original message packets in the original message packet set.
[0017] The first selection range is determined based on the batch size;
[0018] Active packets within the first selection range are selected from multiple active packets to form the first data packet set.
[0019] In some embodiments, selecting active packets from a plurality of active packets as the second data packet set includes:
[0020] The second selection range is determined based on the batch size, the first preset quantity, the second preset quantity, and the preset inactive quantity; the second preset quantity is the number of active packets.
[0021] Active packets within the second selection range are selected from multiple active packets to form the second data packet set.
[0022] In some embodiments, selecting inactive packets from a plurality of inactive packets as a third data packet set includes:
[0023] The degree is obtained by sampling the preset degree distribution;
[0024] The third data set is selected from multiple inactive packets, with an equal number of inactive packets to the degree of inactivity.
[0025] In some embodiments, the source node determines a first batch generation matrix, a second batch generation matrix, and a third batch generation matrix, including:
[0026] The source node selects elements from a preset base domain to obtain multiple first elements, multiple second elements, and multiple third elements;
[0027] The first batch generation matrix is obtained by constructing a matrix based on a preset identity matrix and multiple first elements;
[0028] The second batch generation matrix is obtained by constructing a matrix based on multiple second elements;
[0029] The third batch generation matrix is obtained by constructing a matrix based on multiple third elements.
[0030] In some embodiments, the target is decoded in batches to obtain the original message packet set, including:
[0031] The target is decoded in batches using the belief propagation method to obtain the original message packet set;
[0032] If the target batch of encoded packets is not decoded and the first decoding stops, the undecoded encoded packets are decoded a second time using the Gaussian elimination method to obtain the original message packet set.
[0033] or,
[0034] If the target batch of encoded packets is not decoded and the first decoding stops, the undecoded encoded packets are decoded a third time using the inactive decoding method to obtain the original message packet set.
[0035] To achieve the above objectives, a second aspect of this application provides a data communication apparatus applied to a communication network, the communication network including a source node, intermediate nodes, and a destination node, the apparatus comprising:
[0036] The acquisition module is used by the source node to acquire the original message packet set and pre-encode the original message packet set to obtain multiple pre-encoded packets; the multiple pre-encoded packets include multiple active packets and multiple inactive packets;
[0037] The selection module is used by the source node to select active packets from multiple active packets as a first data packet set, select active packets from multiple active packets as a second data packet set, and select inactive packets from multiple inactive packets as a third data packet set.
[0038] The batch generation module is used by the source node to determine a first batch generation matrix, a second batch generation matrix, and a third batch generation matrix, and to perform batch encoding on the first data packet set according to the first batch generation matrix to obtain a first encoded packet set; to perform batch encoding on the second data packet set according to the second batch generation matrix to obtain a second encoded packet set; to perform batch encoding on the third data packet set according to the third batch generation matrix to obtain a third encoded packet set; and to merge the first encoded packet set, the second encoded packet set, and the third encoded packet set to generate a first batch; the first batch includes multiple encoded packets.
[0039] The first re-encoding module is used by the source node to re-encode the encoded packets belonging to the same first batch to obtain the second batch;
[0040] The second re-encoding module is used for the intermediate node to receive the second batch from the source node and re-encode the second batch to obtain the target batch;
[0041] The decoding module is used by the destination node to receive the target batch, decode the target batch, and obtain the original message packet set.
[0042] To achieve the above objectives, a third aspect of this application provides an electronic device, which includes a memory and a processor. The memory stores a computer program, and the processor executes the computer program to implement the data communication method described in the first aspect.
[0043] To achieve the above objectives, a fourth aspect of the present application provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the data communication method described in the first aspect.
[0044] The data communication method, data communication device, electronic device, and storage medium proposed in this application select active packets from multiple active packets as a first data packet set, select active packets from multiple active packets as a second data packet set, and select inactive packets from multiple inactive packets as a third data packet set. By determining the selection of active packets, the randomness of active packet selection is reduced, and the encoding performance is improved. At the same time, by introducing inactive packets, premature failure of BP decoding can be avoided, thereby improving the decoding success rate. The first data packet set is encoded in batches according to a first batch generation matrix to obtain a first encoded packet set. The second data packet set is encoded in batches according to a second batch generation matrix to obtain a second encoded packet set. The third data packet set is encoded in batches according to a third batch generation matrix to obtain a third encoded packet set. The first, second, and third encoded packet sets are merged to generate the first batch. Different batches are generated by encoding different data packet sets separately using different batch generation matrices. Compared with the method of using a single batch generation matrix to encode a data packet set consisting entirely of active packets to generate batches, this method improves encoding performance, thereby reducing decoding complexity and improving network communication efficiency. Attached Figure Description
[0045] Figure 1 This is a flowchart of the data communication method provided in the embodiments of this application;
[0046] Figure 2 yes Figure 1 The flowchart of step S110 in the middle;
[0047] Figure 3 yes Figure 1 The flowchart of step S120 in the middle;
[0048] Figure 4 yes Figure 1 Another flowchart of step S120 in the process;
[0049] Figure 5 yes Figure 1 Another flowchart of step S120 in the process;
[0050] Figure 6 yes Figure 1 The flowchart of step S130 in the process;
[0051] Figure 7 yes Figure 1 The flowchart of step S160 in the middle;
[0052] Figure 8 This is a schematic diagram of the structure of the data communication device provided in the embodiments of this application;
[0053] Figure 9 This is a schematic diagram of the hardware structure of the electronic device provided in the embodiments of this application. Detailed Implementation
[0054] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0055] It should be noted that although functional modules are divided in the device schematic diagram and a logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than the module division in the device or the order in the flowchart. The terms "first," "second," etc., in the specification, claims, and the aforementioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0056] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0057] In traditional network communication technologies, intermediate nodes simply forward data packets. Network coding technology has revolutionized this process. Compared to traditional technologies, network coding allows intermediate nodes to re-encode data packets, resulting in significant performance gains in multicast, multi-source, and multipath communication. Random Linear Network Coding (RLNC) provides a distributed implementation method for network coding. RLNC can achieve communication rates up to the network channel capacity, enabling network multicast communication with packet loss. Channel capacity, a concept in information theory, represents the maximum rate of information that can be transmitted through a specific channel under certain conditions. Because RLNC uses random coding coefficients, and the destination node cannot decode without knowing these coefficients, a coefficient vector needs to be embedded in the data packets generated by network coding to record these coefficients. In traditional RLNC schemes, the length of the coefficient vector in a data packet is the same as the number of message packets involved in each encoding. If RLNC encodes a large number of message packets together, the excessively long coefficient vector leads to low coding efficiency. Furthermore, traditional RLNC schemes have high computational and storage complexity, making them unable to process large numbers of data packets at once.
[0058] Batch network coding is a class of efficient RLNC schemes. A batch network codec consists of an outer code and an inner code. The outer code encodes data into multiple batches, each batch containing several data packets. The inner code uses a random linear coding similar to RLNC. Traditional RLNC can be seen as a special type of batch network coding, either a batch network coding with only one batch or a batch network coding where each batch uses non-overlapping message packets. In wireless or wired communication, batch network coding can achieve communication rates close to the channel capacity using smaller batches. Since computational complexity and coefficient vector length are both related to the batch size, using smaller batches reduces computational complexity and also makes the coefficient vector a small proportion of the data packets. In addition, batch network coding allows joint decoding of multiple batches, thus eliminating the need for the rank of the coefficient matrix of each batch to reach the batch size.
[0059] Traditional batch sparse network coding employs a pseudo-random coding method to select message packets for each batch. Each batch has a parameter called degree, which determines the number of message packets used in that batch. Based on the degree of the active packets in each batch, a number of data packets with the same degree are evenly selected from all active packets. If the number of batches is relatively large, asymptotic performance analysis and coding experiments have confirmed that such random coding performance is close to optimal, ensuring a high probability of successful BP decoding. However, when the number of batches is small, the performance of random coding has significant uncertainty, easily causing large deviations that degrade coding performance, leading to premature failure of BP decoding, thus increasing decoding complexity and reducing network communication efficiency.
[0060] Based on this, embodiments of this application provide a data communication method, a data communication device, an electronic device, and a computer-readable storage medium, aiming to improve coding performance and thereby improve the efficiency of network communication.
[0061] The data communication method, data communication device, electronic device, and computer-readable storage medium provided in the embodiments of this application are specifically described through the following embodiments. First, the data communication method in the embodiments of this application is described.
[0062] The data communication method provided in this application relates to the field of communication technology. The data communication method provided in this application can be applied to a terminal, a server, or software running on either a terminal or a server. In some embodiments, the terminal can be a smartphone, tablet, laptop, desktop computer, etc.; the server can be configured as an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms; the software can be an application implementing the data communication method, but is not limited to the above forms.
[0063] This application can be used in a wide variety of general-purpose or special-purpose computer system environments or configurations. Examples include: personal computers, server computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, and distributed computing environments including any of the above systems or devices. This application can be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform specific tasks or implement specific abstract data types. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0064] Figure 1 This is an optional flowchart of a data communication method provided in the embodiments of this application, applied to a communication network, which includes a source node, intermediate nodes, and a destination node. Figure 1 The method may include, but is not limited to, steps S110 to S160.
[0065] Step S110: The source node obtains the original message packet set and precodes the original message packet set to obtain multiple precoded packets; the multiple precoded packets include multiple active packets and multiple inactive packets;
[0066] Step S120: The source node selects active packets from multiple active packets as the first data packet set, selects active packets from multiple active packets as the second data packet set, and selects inactive packets from multiple inactive packets as the third data packet set.
[0067] In step S130, the source node determines the first batch generation matrix, the second batch generation matrix, and the third batch generation matrix, and performs batch encoding on the first data packet set according to the first batch generation matrix to obtain the first encoded packet set. It then performs batch encoding on the second data packet set according to the second batch generation matrix to obtain the second encoded packet set, and performs batch encoding on the third data packet set according to the third batch generation matrix to obtain the third encoded packet set. Finally, it merges the first, second, and third encoded packet sets to generate the first batch; the first batch includes multiple encoded packets.
[0068] Step S140: The source node re-encodes the encoded packets belonging to the same first batch to obtain the second batch;
[0069] In step S150, the intermediate node receives the second batch from the source node and re-encodes the second batch to obtain the target batch.
[0070] Step S160: The destination node receives the target batch, decodes the target batch, and obtains the original message packet set.
[0071] Steps S110 to S160, as illustrated in this embodiment, construct data packet sets by deterministically selecting active packets instead of uniformly randomizing them. This reduces the randomness of active packet selection and improves encoding performance. Simultaneously, by introducing inactive packets, premature BP decoding failures can be avoided when the number of batches is small, thus improving the decoding success rate. Generating batches by encoding different data packet sets separately using different batch generation matrices improves encoding performance compared to using a single batch generation matrix to encode a data packet set entirely composed of active packets. This reduces decoding complexity and improves network communication efficiency.
[0072] Please see Figure 2 In some embodiments, step S110 may include, but is not limited to, steps S210 to S230:
[0073] Step S210: Encode the original message packet set using a low-density parity check code to obtain a first check packet; the original message packet set includes multiple original message packets, and the multiple original message packets include a first original message packet and a second original message packet.
[0074] Step S220: Encode the original message packet set using a high-density parity check code to obtain the second check packet;
[0075] Step S230: Multiple precoded packets are obtained based on the original message packet, the first verification packet, and the second verification packet; both the first original message packet and the first verification packet are active packets; both the second original message packet and the second verification packet are inactive packets.
[0076] In step S210 of some embodiments, the data communication method of this application embodiment is based on batched sparse code (BATS) in batch network coding. It can be applied to linear network communication models and also to general network structures with multi-hop paths. The following describes the data communication method of this application embodiment using a linear network communication model as an example. A linear network communication model of length L includes a series of network nodes. These network nodes are labeled sequentially from front to back, resulting in labels 0, 1, ..., L. The first network node, labeled 0, is the source node, the last network node, labeled L, is the destination node, and the remaining nodes are intermediate nodes. Network links exist only between two consecutive network nodes. Data packets transmitted over network links are either correctly received or erased by the network nodes.
[0077] A fixed-size finite field is defined as the base field, typically 256. The base field is a set; when the base field size is 256, it can be viewed as a set of numbers from 0 to 255. A data packet of length T can be considered as a column vector consisting of T symbols in the base field. A set of data packets of the same length, arranged side-by-side, forms a matrix over the base field. In other words, a matrix over the base field is equivalent to a set of multiple data packets of the same length, with each data packet corresponding to a column of that matrix. For example, if there are K data packets, each of length T, these K data packets, arranged side-by-side, form a T×K matrix over the base field.
[0078] The source node obtains K raw message packets from the data source and arranges them into a T×K matrix B, which serves as the set of raw message packets. To transmit these K raw message packets from the source node to the destination node, the source node first encodes the message packets in two steps.
[0079] The first step is to precode the original message packet set to obtain multiple precoded packets. Precoding involves adding check packets to the original message packets to obtain K' precoded packets. These K' precoded packets consist of K original message packets and K'-K check packets, where the check packets are linear combinations of the message packets, and K' is greater than K. A check packet can be generated using either low-density parity-check (LDPC) or high-density parity-check (HDPC) codes. The original message packet set is then encoded using LDPC codes to obtain multiple first check packets.
[0080] In step S220 of some embodiments, the original message packet set is encoded by HDPC code to obtain multiple second check packets.
[0081] In step S230 of some embodiments, the precoded packets are divided into two categories: active packets and inactive packets. A portion of the original message packets and all the first check packets are active and can be used as active packets. The remaining portion of the original message packets and all the second check packets are inactive and can be used as inactive packets. The number of active packets is defined as A, and the number of inactive packets is defined as K'-A, where A is a positive integer greater than or equal to K. The number of active packets is subtracted from the number of first check packets to obtain a first number of original message packets that are considered active packets. A first number of original message packets are selected from the set of original message packets as first original message packets, and the remaining original message packets are selected as second original message packets. Therefore, the first original message packets and all the first check packets are active packets, and the second original message packets and all the second check packets are inactive packets.
[0082] Through steps S210 to S230, active and inactive packets can be obtained. By using inactive packets during the encoding stage, premature BP decoding failure can be avoided, further improving the decoding success rate.
[0083] Please see Figure 3 In some embodiments, step S120 may include, but is not limited to, steps S310 to S330:
[0084] Step S310: The source node determines the batch size based on the ratio of the first preset quantity to the preset batch quantity; the first preset quantity is the number of original message packets in the original message packet set.
[0085] Step S320: Determine the first selection range based on the batch size;
[0086] Step S330: Select active packets within a first selection range from multiple active packets to form the first data packet set.
[0087] In step S310 of some embodiments, multiple batches of size M are generated. The BATS code consists of an outer code and an inner code. The outer code is a rateless code; it only requires repeating the encoding process, and the number of batches it can generate is unlimited. In related technologies, the source node performs random batch encoding using the outer code to generate multiple batches. Since the batches contain almost no original message packets, the outer code is not a systematic code. Random encoding uses a uniformly random selection of data packets, while systematic outer codes are deterministic. The uncertainty of random selection requires multiple trials in the design of systematic outer codes, affecting their design. In related technologies, a non-systematic batch sparse encoding and decoding scheme is used to construct the systematic outer code, that is, a pair of special batch sparse encoding encoders and decoders is used to construct a consistent encoder-decoder to generate the systematic outer code. The parameters ns, M1, M2, ..., M are determined.ns M i Not greater than M, and M1+M2+…+M ns = K. K is the number of original message packets, and M is the batch size. If M is divisible by K, the optimal ns is K / M. A consistent codec pair needs to be deterministic and satisfy the following condition: the encoder needs to generate ns batches, where the i-th batch includes M... i The decoder can recover all message packets from the packets generated by the encoder. The design of a consistent codec should minimize overhead; ns × MK is defined as the overhead for designing a consistent codec. The design of a consistent codec employs a scheme of random coding through multiple experiments. This method has a relatively complete design for fountain codes (M = 1), achieving zero overhead. However, in general, it remains unknown whether a consistent codec with zero overhead can be easily found, and it cannot be proven that a consistent codec with zero overhead definitely exists. Therefore, this design of the system's external code is not the optimal encoding performance.
[0088] This application employs a novel batch sparse coding method for outer code encoding to address the problems of traditional random coding. This outer code encoding method follows certain rules when selecting active packets in each batch: the source node selects active packets from multiple active packets as the first data packet set, from multiple active packets as the second data packet set, and from multiple inactive packets as the third data packet set, rather than being completely random. This improves the determinism of active packet selection, thereby enhancing coding performance. Since this rule is represented as a triangle in a matrix, this outer code encoding method is called triangular embedding coding. The deterministic outer code generated using triangular embedding can significantly reduce the number of deactivated decoders required, lowering decoding complexity. Furthermore, under the same number of deactivated decoders, the outer code generated by triangular embedding has a higher probability of achieving a consistent codec with zero overhead.
[0089] The first preset quantity is the number of original message packets K in the original message packet set. If the preset batch size ns is divisible by the first preset quantity K, then the batch size of each batch is the ratio of the first preset quantity K to the preset batch size ns, i.e., M. i =K / ns, M i This indicates that the i-th batch has M. i The data packets. If the preset batch size ns is not divisible by the first preset size K, the batch size M can be determined by rounding up the ratio of the first preset size K to the preset batch size ns, and the batch size M of each batch... i Not greater than M, and M1+M2+…+M ns =K.
[0090] The preset batch size ns can be obtained through the following steps: Determine if there is a rank distribution h = (h1, h2, ..., h...) M The rank distribution can be obtained through model analysis or by statistically analyzing the ranks of batches at the destination node. The rank distribution refers to the distribution that the ranks of the batch transition matrices follow. Model analysis involves modeling network links and obtaining the rank distribution through specific model analysis. Destination node statistics involve obtaining the batch transition matrix from the destination node using the coefficient vector and statistically analyzing the ranks of the batch transition matrix to obtain the rank distribution. Based on the rank distribution and the batch size, the preset batch number ns is obtained, i.e., ns is at least K / (h1+2h2+…+Mh). M ).
[0091] In step S320 of some embodiments, the batch sizes of all batches preceding the current batch i are added together to obtain the first parameter m. i That is, m i =M1+M2+…+M i-1 (m1=0), according to the first parameter m i And the current batch size M i Determine the first selection range [m] i +1,m i +M i ].
[0092] In step S330 of some embodiments, the active packet that falls within the first selection range is selected from all active packets, i.e., the m-th packet is selected. i +1 to the mth i +M i The active packets are used as the first data set B in the current batch. i1 .
[0093] By using steps S310 to S330, the determinism of the selected active packets can be increased, thereby improving coding performance.
[0094] Please see Figure 4 In some embodiments, step S120 may also include, but is not limited to, steps S410 to S420:
[0095] Step S410: Determine the second selection range based on the batch size, the first preset quantity, the second preset quantity, and the preset inactive quantity; the second preset quantity is the number of active packets.
[0096] Step S420: Select active packets within the second selection range from multiple active packets to form the second data packet set.
[0097] In step S410 of some embodiments, the batch sizes of all batches preceding the current batch i are summed to obtain the first parameter m. iSubtract the first preset quantity K from the second preset quantity A to obtain the second parameter AK. Select the second parameter and the preset deactivation quantity N. inac The smaller parameter is used as the third parameter, and the second selection range is determined based on the first and third parameters as [1, m]. i ] and finally min(AK, N inac There are ) active packets. To limit the complexity of the decoding process, let the preset number of inactive packets N be... inac To determine the maximum number of dynamically deactivated nodes in deactivation decoding, let N be... inac Set as
[0098] In step S420 of some embodiments, the first degree distribution Ψ is obtained. A =(Ψ1) A ,Ψ2 A ,…,Ψ DA A The first-degree distribution is used to determine the number of active packets used in a batch. It is determined by the rank distribution of the batch and can be obtained by solving an optimization problem that includes information about the rank distribution. DA is the maximum degree of the distribution, which is generally a constant multiple of the batch size M and does not exceed A. Ψ i A Let d represent the probability of degree i. Sampling the first degree distribution, we obtain the degree d of the i-th batch. i First, select active packages that fall within the second selection range from all active packages. Then, select d from the active packages within the second selection range. i -M i The active packets are used as the second data set B in the i-th batch. i2 The active packets in the second data packet set may or may not overlap with the active packets in the first data packet set.
[0099] It should be noted that the degrees of the batches can be arranged in ascending order, that is, the degree d1 of the first batch is the smallest, and the degree d of the nth batch is the largest. ns This is the maximum degree. If the degrees of the batches are arranged in ascending order, the transmission order of these ns batches during data transmission can be changed; they do not have to follow the degree order and can be in a random order.
[0100] By using steps S410 to S420, the determinism of active packet selection can be increased, encoding performance can be improved, and decoding complexity can be reduced.
[0101] Please see Figure 5 In some embodiments, step S120 may also include, but is not limited to, steps S510 to S520:
[0102] Step S510: Sample the preset degree distribution to obtain the degree;
[0103] Step S520: Select an equal number of inactive packets from multiple inactive packets as the third data packet set.
[0104] In step S510 of some embodiments, the second degree distribution Ψ is obtained. F =(Ψ1) F ,Ψ2 F ,…,Ψ DF F DF represents the maximum degree distribution, determined by the batch size M and the number of inactive packets F. The second degree distribution is sampled to obtain the degree d of the i-th batch. iB The degree is the number of inactive packets used in batches.
[0105] In step S520 of some embodiments, d is selected from all inactive packets. iB The inactive packets are used as the third data set B in the i-th batch. i3 .
[0106] It should be noted that, due to the degree distribution of batch sparse coding, generally d i The value is less than A-K+m i +M i Therefore, B i2 It is possible to obtain enough packages from its limited selection range. If B i2 If enough packets cannot be obtained from the limited selection range, the values of all degrees can be resampled according to the degree distribution, or d can be slightly reduced. i The value of .
[0107] Steps S510 to S520 above introduce inactive packets during the encoding stage, making these inactive packets inactive from the very beginning of the decoding stage, in order to avoid premature failure of BP decoding and improve the decoding success rate.
[0108] Please see Figure 6 In some embodiments, step S130 may include, but is not limited to, steps S610 to S640:
[0109] Step S610: The source node selects elements from the preset base domain to obtain multiple first elements, multiple second elements, and multiple third elements;
[0110] Step S620: Construct a matrix based on the preset identity matrix and multiple first elements to obtain the first batch generation matrix;
[0111] Step S630: Construct a matrix based on multiple second elements to obtain the second batch generation matrix;
[0112] Step S640: Construct a matrix based on multiple third elements to obtain the third batch generation matrix.
[0113] In step S610 of some embodiments, the source node randomly selects elements from the base domain to obtain multiple first elements. The source node randomly selects elements from the base domain to obtain multiple second elements. The source node randomly selects elements from the base domain to obtain multiple third elements.
[0114] In step S620 of some embodiments, the first data packet set includes M i The number of data packets is determined by the batch size M and the number of data packets in the first data packet set. i The first batch generation matrix G is obtained. i1 The size is M i ×M. First batch generation matrix G i1 It is an M i A matrix of rows and M columns, where the first M columns are M. i The columns form an identity matrix, then MM i The elements in the column are multiple first elements randomly selected from the base field.
[0115] In step S630 of some embodiments, the second data packet set includes d i -M i The number of data packets is determined by the batch size M and the number of data packets d in the second data packet set. i -M i The second batch generation matrix G is obtained. i2 The size is (d i -M i )×M. Second batch generation matrix G i2 It is a d i -M i A matrix of M rows and M columns, where all elements are the second element randomly selected from the base field.
[0116] In step S640 of some embodiments, the third data packet set includes d iB The number of data packets is determined by the batch size M and the number of data packets d in the third data packet set. iB The third batch generation matrix G is obtained. i3 The size is d iB ×M. The third batch generation matrix G i3 It is a d iB A matrix of M rows and M columns, where all elements are the third element randomly selected from the base field.
[0117] In related technologies, the batch random coding scheme is as follows: sampling degree distribution Ψ A and Ψ F Get two integers d A and d F d are selected uniformly and randomly from the active packets.A One packet, select d from the inactive packets. F A package, and this d A Each package and d F The packets are merged into matrix B, and finally, batches X = BG are generated. G is a (d) matrix over the base field. A +d F A uniformly random matrix with 1 row and M columns is called a batch-generated matrix. A For the degree of activity of the package, d F d represents the degree of inactive packets. A +d F It's done in batches.
[0118] To address the issue of low encoding performance in random encoding, this application embodiment uses the first data set B i1 With the first batch generation matrix G i1 Multiply, for the first data set B i1 Perform batch encoding to obtain the first encoded packet set B. i1 G i1 The second data set B i2 With the second batch generation matrix G i2 Multiply to the second data set B i2 Perform batch encoding to obtain the second encoded packet set B. i2 G i2 The third data set B i3 With the third batch generation matrix G i3 Multiply, for the third data set B i3 Batch encoding is performed to obtain the third encoded packet set B. i3 G i3 The first, second, and third encoded packet sets are added together to generate the first batch B. i1 G i1 +B i2 G i2 +B i3 G i3 The first batch includes multiple encoded packets.
[0119] Through steps S610 to S640, three different batch generation matrices can be obtained, and batches can be generated based on the batch generation matrices and their corresponding data sets to improve encoding performance.
[0120] In step S140 of some embodiments, the source node re-encodes the M encoded packets of the first batch generated by the outer code using the inner code to obtain the second batch. The inner code refers to the code formed by nesting the re-encoding operations performed on each batch at the source node and all intermediate nodes. The re-encoding is a linear combination of the encoded packets in the batch.
[0121] In step S150 of some embodiments, each encoded packet generated by the external code embeds a coefficient vector, which includes the values of M symbols. For a batch, the matrix formed by its coefficient vectors is an identity matrix, and subsequent linear operations (re-encoding) performed on this batch are also performed on the coefficient vectors. The batch transition matrix is obtained based on the coefficient vectors of the encoded packets received in a batch. It can be understood that the batch transition matrix H does not exist explicitly in the internal code encoding, but is used to describe the linear relationship between a batch after multiple rounds of re-encoding and its initial form. This linear relationship is equivalent to multiplying by H. The initial coefficient vector of a batch forms an identity matrix, so after the same linear combination, it is equivalent to multiplying the identity matrix by H, which is H. Thus, as long as the transformed coefficient vector is obtained, it is equivalent to explicitly obtaining H. If the coefficient vectors of a group of data packets belonging to the same batch are linearly independent, the group of data packets is linearly independent; if the coefficient vectors of a group of data packets belonging to the same batch are linearly dependent, the group of data packets is linearly dependent.
[0122] Intermediate node v receives the second batch from the source node, resulting in a new second batch named XH. v X is the second batch obtained after re-encoding the source node, and H is... v Given the batch transition matrix of intermediate node v, the target batch is obtained by re-encoding the encoded packets of the new second batch belonging to the same batch using internal codes. rank(H) v ) represents the rank of the batch at the intermediate node v. The rank of different batches may be different.
[0123] Please see Figure 7 In some embodiments, step S160 may include, but is not limited to, step S710 or step S720.
[0124] Step S710: Decode the target in batches using the belief propagation method to obtain the original message packet set;
[0125] In step S720, if the target batch of encoded packets is not decoded and the first decoding stops, the undecoded encoded packets are decoded a second time using the Gaussian elimination method to obtain the original message packet set; or, if the target batch of encoded packets is not decoded and the first decoding stops, the undecoded encoded packets are decoded a third time using the inactive decoding method to obtain the original message packet set.
[0126] In step S710 of some embodiments, the source node generates ns batches, where the i-th batch is X. i =B i G i B i It is d i A One active package, d iF Composed of inactive packets, G i Y is the batch generation matrix for the i-th batch. The destination node can use the same pseudo-random number generator as the source node to obtain random values used in the encoding process, including the degree of each batch, the selection of precoding packets, and the batch generation matrix. This information can be used for decoding at the destination node. For the i-th target batch, the target batch received by the destination node is Y. i =X i H i =B i G i H i The received target packets are decoded in batches, and K original message packets are recovered from each batch to obtain the original message packet set. Decoding involves decrypting the nested encoding of the outer and inner codes. i The matrix Y has M rows and H columns representing the number of encoded packets received by the destination node belonging to that batch. The number of encoded packets received in different batches may vary, but it is always finite. If no encoded packets are received in a batch, Y and H are empty matrices with zero columns.
[0127] The received targets are divided into batches and their rank (H) at the target node. i The empirical distribution of is taken as the rank distribution h = (h0, h1, ..., h M It is understandable that the size of the batch transition matrix is M × the number of received encoded packets. When the number of received encoded packets is sufficient, the rank of the batch transition matrix may be a number between 0 and M. M The empirical frequency with rank M.
[0128] When inactive packets are not used during the encoding phase, for the i-th batch Y i =B i G i H i When matrix G i H i The rank is equal to d i A Then B can be decoded. iAfter one batch of decoding, the decoded message packets are incorporated into the undecoded batches, and this process is repeated continuously to perform BP decoding on the batches. When the number of original message packets K is large, BP decoding can recover at least K precoded packets with a high probability. These precoded packets are then used for decoding to recover all the original message packets. If LDPC is used for precoding, the corresponding LDPC constraints reveal a special batch that also participates in BP decoding, thus improving the success rate. When K is small, fewer message packets participate in encoding, resulting in poor randomness after BATS encoding. BP decoding often stops before most precoded packets are decoded, leading to poor performance. When BP decoding stops, decoding can continue using Gaussian elimination, but this has high computational complexity. To eliminate the complexity of Gaussian elimination, when BP decoding stops, a deactivated decoding method is used to restore the BP decoding program. An undecoded message packet is marked as an inactive packet, and the inactive packet is used as the decoded packet to replace the corresponding batch, thus restoring the BP decoding program. However, premature BP decoding failures generate more inactive packets, increasing decoding complexity.
[0129] Inactive decoding allows the use of inactive packets during the encoding phase, thereby further improving the decoding success rate. By using inactive packets during the encoding phase, these inactive packets are considered inactive at the beginning of the decoding phase, thus improving the decoding success rate. The target packets are then decoded in batches using the belief propagation method (BP), and the original message packets are recovered from these batches to obtain the original message packet set.
[0130] In step S720 of some embodiments, if the target batch of encoded packets is not decoded and BP decoding stops, the undecoded encoded packets are decoded a second time using Gaussian elimination to obtain the original message packet set. Alternatively, the undecoded encoded packets are decoded a third time using deactivated decoding to restore BP decoding and obtain the original message packet set.
[0131] In steps S710 to S720 above, for ns batches of data packets, a common BATS code decoder with BP decoding and deactivation decoding algorithms can recover all K message packets with a high probability. The encoder and corresponding decoder using triangular embedding coding can easily form a consistent code-decoder pair, which can be used to design system external codes.
[0132] Please see Figure 8 This application also provides a data communication device applied to a communication network, the communication network including a source node, intermediate nodes, and a destination node, which can implement the above-described data communication method. The device includes:
[0133] The acquisition module 810 is used by the source node to acquire the original message packet set and pre-encode the original message packet set to obtain multiple pre-encoded packets; the multiple pre-encoded packets include multiple active packets and multiple inactive packets;
[0134] The selection module 820 is used by the source node to select active packets from multiple active packets as the first data packet set, select active packets from multiple active packets as the second data packet set, and select inactive packets from multiple inactive packets as the third data packet set.
[0135] The batch generation module 830 is used by the source node to determine the first batch generation matrix, the second batch generation matrix, and the third batch generation matrix, and to perform batch encoding on the first data packet set according to the first batch generation matrix to obtain the first encoded packet set. Then, it performs batch encoding on the second data packet set according to the second batch generation matrix to obtain the second encoded packet set, and performs batch encoding on the third data packet set according to the third batch generation matrix to obtain the third encoded packet set. Finally, it merges the first, second, and third encoded packet sets to generate the first batch; the first batch includes multiple encoded packets.
[0136] The first re-encoding module 840 is used by the source node to re-encode encoded packets belonging to the same first batch to obtain the second batch;
[0137] The second re-encoding module 850 is used for the intermediate node to receive the second batch from the source node and re-encode the second batch to obtain the target batch.
[0138] The decoding module 860 is used by the destination node to receive target batches, decode the target batches, and obtain the original message packet set.
[0139] The specific implementation of this data communication device is basically the same as the specific implementation of the data communication method described above, and will not be repeated here.
[0140] This application also provides an electronic device, which includes a memory and a processor. The memory stores a computer program, and the processor executes the computer program to implement the above-described data communication method. This electronic device can be any smart terminal, including tablet computers, in-vehicle computers, etc.
[0141] Please see Figure 9 , Figure 9 The hardware structure of an electronic device according to another embodiment is illustrated. The electronic device includes:
[0142] The processor 910 can be implemented using a general-purpose CPU (Central Processing Unit), microprocessor, field programmable gate array (FPGA), application specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this application.
[0143] The memory 920 can be implemented as a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 920 can store the operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program code is stored in the memory 920 and is called and executed by the processor 910 using the data communication method of the embodiments of this application.
[0144] The input / output interface 930 is used to implement information input and output;
[0145] The communication interface 940 is used to enable communication and interaction between this device and other devices. Communication can be achieved through wired means (such as USB, network cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.).
[0146] Bus 950 transmits information between various components of the device (e.g., processor 910, memory 920, input / output interface 930, and communication interface 940);
[0147] The processor 910, memory 920, input / output interface 930 and communication interface 940 are connected to each other within the device via bus 950.
[0148] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described data communication method.
[0149] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs and non-transitory computer-executable programs. Furthermore, memory may include high-speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, memory may optionally include memory remotely located relative to the processor, and these remote memories can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0150] The data communication method, data communication device, electronic device, and computer-readable storage medium provided in this application reduce the randomness of active packet selection and improve encoding performance by deterministically selecting active packets to construct data packet sets, rather than uniformly and randomly selecting them. Simultaneously, by introducing inactive packets, premature BP decoding failure can be avoided when the number of batches is small, thereby improving the decoding success rate. Generating batches by encoding different data packet sets separately using different batch generation matrices improves encoding performance compared to using a single batch generation matrix to encode a data packet set consisting entirely of active packets, thus reducing decoding complexity and improving network communication efficiency.
[0151] The embodiments described in this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided by the embodiments of this application. As those skilled in the art will know, with the evolution of technology and the emergence of new application scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
[0152] Those skilled in the art will understand that the technical solutions shown in the figures do not constitute a limitation on the embodiments of this application, and may include more or fewer steps than shown, or combine certain steps, or different steps.
[0153] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.
[0154] Those skilled in the art will understand that all or some of the steps in the methods disclosed above, as well as the functional modules / units in the systems and devices, can be implemented as software, firmware, hardware, or suitable combinations thereof.
[0155] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0156] It should be understood that in this application, "at least one (item)" means one or more, and "more than" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.
[0157] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of the units described above is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0158] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0159] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0160] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes multiple instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing programs, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0161] The preferred embodiments of the present application have been described above with reference to the accompanying drawings, but this does not limit the scope of the claims of the present application. Any modifications, equivalent substitutions, and improvements made by those skilled in the art without departing from the scope and substance of the embodiments of the present application shall be within the scope of the claims of the present application.
Claims
1. A data communication method, characterized in that, Applied to a communication network, the communication network including a source node, intermediate nodes, and a destination node, the method includes: The source node obtains the original message packet set and precodes the original message packet set to obtain multiple precoded packets; the multiple precoded packets include multiple active packets and multiple inactive packets; The source node selects active packets from multiple active packets as the first data packet set, selects active packets from multiple active packets as the second data packet set, and selects inactive packets from multiple inactive packets as the third data packet set. The source node determines a first batch generation matrix, a second batch generation matrix, and a third batch generation matrix. It then performs batch encoding on the first data packet set according to the first batch generation matrix to obtain a first encoded packet set. It performs batch encoding on the second data packet set according to the second batch generation matrix to obtain a second encoded packet set. Finally, it performs batch encoding on the third data packet set according to the third batch generation matrix to obtain a third encoded packet set. The first encoded packet set, the second encoded packet set, and the third encoded packet set are then merged to generate a first batch. The first batch includes multiple encoded packets. The source node re-encodes the encoded packets belonging to the same first batch to obtain the second batch; The intermediate node receives the second batch from the source node and re-encodes the second batch to obtain the target batch; The destination node receives the target batch, decodes the target batch, and obtains the original message packet set; The precoding of the original message packet set yields multiple precoded packets, including: The original message packet set is encoded using a low-density parity-check code to obtain a first check packet; the original message packet set includes multiple original message packets, each including a first original message packet and a second original message packet; the original message packet set is then encoded using a high-density parity-check code to obtain a second check packet; multiple precoded packets are obtained based on the original message packets, the first check packet, and the second check packet; both the first original message packet and the first check packet are active packets; both the second original message packet and the second check packet are inactive packets. The source node selects active packets from multiple active packets as the first data packet set, including: The source node determines the batch size based on the ratio of a first preset quantity to a preset batch size; the first preset quantity is the number of original message packets in the original message packet set; a first selection range is determined based on the batch size; active packets within the first selection range are selected from multiple active packets as the first data packet set.
2. The data communication method according to claim 1, characterized in that, The step of selecting active packets from multiple active packets as the second data packet set includes: The second selection range is determined based on the batch size, the first preset quantity, the second preset quantity, and the preset inactive quantity; the second preset quantity is the number of active packets. Active packets within the second selection range are selected from multiple active packets to form the second data packet set.
3. The data communication method according to claim 1, characterized in that, The step of selecting inactive packets from multiple inactive packets as the third data packet set includes: The degree is obtained by sampling the preset degree distribution; The third data set is selected from a plurality of inactive packets, with the number of inactive packets equal to the degree.
4. The data communication method according to any one of claims 1 to 3, characterized in that, The source node determines the first batch generation matrix, the second batch generation matrix, and the third batch generation matrix, including: The source node selects elements from a preset base domain to obtain multiple first elements, multiple second elements, and multiple third elements; The first batch generation matrix is obtained by constructing a matrix based on a preset identity matrix and multiple first elements; The second batch generation matrix is obtained by constructing a matrix based on multiple second elements; The third batch generation matrix is obtained by constructing a matrix based on multiple third elements.
5. The data communication method according to any one of claims 1 to 3, characterized in that, The target is decoded in batches to obtain the original message packet set, including: The target is decoded in batches using the belief propagation method to obtain the original message packet set; If the target batch of encoded packets is not decoded and the first decoding stops, the undecoded encoded packets are decoded a second time using the Gaussian elimination method to obtain the original message packet set. or, If the target batch of encoded packets is not decoded and the first decoding stops, the undecoded encoded packets are decoded a third time using the inactive decoding method to obtain the original message packet set.
6. A data communication device, characterized in that, Applied to a communication network, the communication network including a source node, intermediate nodes, and a destination node, the device includes: The acquisition module is used by the source node to acquire the original message packet set and pre-encode the original message packet set to obtain multiple pre-encoded packets; the multiple pre-encoded packets include multiple active packets and multiple inactive packets; The selection module is used by the source node to select active packets from multiple active packets as a first data packet set, select active packets from multiple active packets as a second data packet set, and select inactive packets from multiple inactive packets as a third data packet set. The batch generation module is used by the source node to determine a first batch generation matrix, a second batch generation matrix, and a third batch generation matrix, and to perform batch encoding on the first data packet set according to the first batch generation matrix to obtain a first encoded packet set; to perform batch encoding on the second data packet set according to the second batch generation matrix to obtain a second encoded packet set; to perform batch encoding on the third data packet set according to the third batch generation matrix to obtain a third encoded packet set; and to merge the first encoded packet set, the second encoded packet set, and the third encoded packet set to generate a first batch; the first batch includes multiple encoded packets. The first re-encoding module is used by the source node to re-encode the encoded packets belonging to the same first batch to obtain the second batch; The second re-encoding module is used for the intermediate node to receive the second batch from the source node and re-encode the second batch to obtain the target batch; The decoding module is used by the destination node to receive the target batch, decode the target batch, and obtain the original message packet set. The device is also used for: The original message packet set is encoded using a low-density parity-check code to obtain a first check packet; the original message packet set includes multiple original message packets, each including a first original message packet and a second original message packet; the original message packet set is then encoded using a high-density parity-check code to obtain a second check packet; multiple precoded packets are obtained based on the original message packets, the first check packet, and the second check packet; both the first original message packet and the first check packet are active packets; both the second original message packet and the second check packet are inactive packets. The source node determines the batch size based on the ratio of a first preset quantity to a preset batch size; the first preset quantity is the number of original message packets in the original message packet set; a first selection range is determined based on the batch size; active packets within the first selection range are selected from multiple active packets as the first data packet set.
7. An electronic device, characterized in that, The electronic device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the data communication method according to any one of claims 1 to 5.
8. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the data communication method according to any one of claims 1 to 5.