A network coding method and apparatus

By using cyclic shift network coding and a generator matrix extended by a low-density parity-check code base matrix to process data packets, the problems of high encoding and decoding complexity and long transmission delay in wireless communication are solved, and low-complexity and low-latency data transmission is achieved.

CN116800370BActive Publication Date: 2026-05-15HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-03-14
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing network coding methods have high encoding and decoding complexity and large transmission delay in wireless communication, especially when the channel performance is poor, resulting in large network resource consumption and feedback overhead.

Method used

A generator matrix using cyclic shift network coding is employed to process data packets. The generator matrix elements are transformed from multi-dimensional fields to binary vector fields. Combined with low-density parity-check code base matrix expansion, the encoding and decoding complexity is reduced and the transmission latency is lowered.

Benefits of technology

It reduces the complexity of encoding and decoding, decreases data transmission latency, and improves transmission quality and network throughput.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116800370B_ABST
    Figure CN116800370B_ABST
Patent Text Reader

Abstract

The embodiment of the application discloses a network coding method and device, the method comprises the following steps: selecting a data packet group from a plurality of to-be-sent data packets, and generating coded data packets by generating a matrix to code the data packets, and then sending the coded data packets to a receiving end, wherein, since the generating matrix has been reduced from a multiple domain to a binary vector domain, the calculation amount of the generating matrix is reduced, the coding and decoding complexity is reduced, and the time delay of data transmission is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communications, and more particularly to a network coding method and apparatus. Background Technology

[0002] In practical wireless communication, wireless channels are affected by various factors, and data packets may be lost during transmission. Two main methods for addressing packet loss include Automatic Repeat Request (ARQ) and erasure coding (EC). However, ARQ requires network resources and introduces latency for each data packet, and the overhead can be significant, especially under poor channel performance. Erasure coding, such as digital fountain code (DF), can guarantee reliable data transmission over lost channels in traditional wireless networks, but it introduces considerable coding redundancy.

[0003] Current network coding allows nodes to process the information they receive before forwarding it. This is because nodes in the network have coding capabilities, and the receiving end decodes the data packets based on their correlation. However, when the sending end performs random linear network coding, the coding matrix used is a combination of an upper triangular matrix and a Vandermonde matrix. Although this ensures the linear independence between the coded data packets, the encoding and decoding complexity is high, and the overall transmission delay is also large. Summary of the Invention

[0004] This application provides a network coding method and apparatus to reduce coding and decoding complexity and reduce transmission latency.

[0005] The first aspect of this application provides a network coding method, which includes: acquiring data packet groups in a data packet to be sent, the data packet to be sent including multiple data packet groups, each data packet group including multiple data packets; processing the data packet groups based on a generator matrix of cyclic shift network coding to generate an encoded data packet, wherein the generator matrix includes elements in a binary vector field converted from a multivariate field; and sending the encoded data packet to a receiving end.

[0006] In the above aspects, the executing entity is the sending end. The sending end can select a group of data packets from multiple data packets to be sent, and encode the data packets into encoded data packets by generating a generator matrix, and then send them to the receiving end. Since the generator matrix has been reduced from a multi-dimensional field to a binary vector field, the computational load of the generator matrix is ​​reduced, the encoding and decoding complexity is reduced, and the data transmission latency is reduced.

[0007] In one possible implementation, the generating matrix is ​​generated by expanding a low-density paritycheck code (LDPC) basis matrix.

[0008] In the above possible implementations, the low encoding and decoding complexity of LDPC further reduces encoding and decoding latency.

[0009] In one possible implementation, the method further includes: receiving a retransmission sequence number sent by the receiving end; and sending an encoded data packet corresponding to the retransmission sequence number to the receiving end.

[0010] In the above possible implementations, when the receiving end determines that the encoded data packet is lost, it can send the retransmission sequence number of the lost encoded data packet back to the sending end. The sending end can then send the encoded data packet corresponding to the retransmission sequence number to the receiving end, thereby improving the transmission quality.

[0011] In one possible implementation, after receiving the retransmission sequence number sent by the receiving end, the method further includes: recording the number of retransmissions for the encoded data packet corresponding to the retransmission sequence number; and stopping the retransmission of the encoded data packet corresponding to the retransmission sequence number when the number of retransmissions exceeds a preset threshold.

[0012] In the above possible implementations, the sending end can also record the number of retransmissions for the encoded data packet. When the number of retransmissions of the encoded data packet corresponding to the sequence number fed back by the receiving end is greater than a preset threshold, the sending end can stop retransmission to avoid continuous retransmission affecting the transmission delay.

[0013] In one possible implementation, the above step of sending the encoded data packet to the receiving end includes: when multiple data packet groups have been processed by the generator matrix, sending the encoded data packet corresponding to the multiple data packet groups to the receiving end.

[0014] In the above possible implementations, the sending end will only send the encoded data packet to the receiving end after processing all the data packets to be sent to generate the encoded data packet.

[0015] A second aspect of this application provides a network coding apparatus that can implement the methods described in the first aspect or any of the possible implementations of the first aspect. The apparatus includes corresponding units or modules for performing the described methods. The units or modules included in the apparatus can be implemented in software and / or hardware. The apparatus can be, for example, a network device, a chip, chip system, or processor that supports the network device in implementing the described methods, or a logic module or software capable of implementing all or part of the functions of the network device.

[0016] A third aspect of this application provides a computer device, including: a processor coupled to a memory for storing instructions, which, when executed by the processor, cause the computer device to implement the methods described in the first aspect or any possible implementation thereof. The computer device may be, for example, a network device, or a chip or chip system supporting the implementation of the methods in a network device.

[0017] A fourth aspect of this application provides a computer-readable storage medium storing instructions that, when executed by a processor, implement the method provided by the first aspect or any possible implementation thereof.

[0018] The fifth aspect of this application provides a computer program product, which includes computer program code. When the computer program code is run on a computer, it implements the method provided in the first aspect or any possible implementation of the first aspect. Attached Figure Description

[0019] Figure 1 A schematic diagram of a data packet transmission architecture provided in an embodiment of this application;

[0020] Figure 2 A schematic diagram illustrating the deployment method of cyclic shift network coding in a base station according to an embodiment of this application;

[0021] Figure 3 A flowchart illustrating a network coding method provided in an embodiment of this application;

[0022] Figure 4 This is a schematic diagram of the data transmission process provided in an embodiment of this application;

[0023] Figure 5 This is a schematic diagram of the structure of a network coding device provided in an embodiment of this application;

[0024] Figure 6 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0025] This application provides a network coding method and apparatus to reduce coding and decoding complexity and reduce transmission latency.

[0026] The embodiments of this application are described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. As those skilled in the art will recognize, with the development of technology and the emergence of new scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.

[0027] The terms "first," "second," etc., used in the specification, claims, 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 described herein can be implemented in a sequence other than that illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a 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.

[0028] The term “exemplary” as used herein means “serving as an example, embodiment, or illustration.” Any embodiment illustrated herein as “exemplary” is not necessarily to be construed as superior to or better than other embodiments.

[0029] Furthermore, to better illustrate this application, numerous specific details are provided in the following detailed embodiments. Those skilled in the art should understand that this application can be implemented without certain specific details. In some instances, methods, means, components, and circuits well-known to those skilled in the art have not been described in detail in order to highlight the main points of this application.

[0030] First, some concepts provided in the embodiments of this application will be explained.

[0031] Galois field (GF).

[0032] GF(p w ), where p is a prime number, usually taken as p = 2. To ensure the identity element property, GF(2 w The addition and multiplication operations on the algebraic surface no longer use ordinary addition and multiplication, but instead use polynomial operations.

[0033] In particular, GF(2 1 When GF(2) = GF(2), it is generally called a binary field because its field contains only 2 elements. Other fields are called multi-ary fields, such as GF(2). w ) contains 2 w A finite field with n elements. (·) -1 This represents finding the inversion of a matrix, (·). T This indicates transpose.

[0034] Please see Figure 1 ,like Figure 1The diagram illustrates a data packet transmission architecture according to an embodiment of this application. This architecture includes a transmitter 11 and a receiver 12. Data packets are generated and sent by the transmitter 11, pass through a wireless channel with a certain probability of erasure, and finally arrive at the receiver 12 in the wireless network. The transmitter 11 encodes the data packets using a pre-defined method, converting text, numbers, or other objects into digital codes, or converting information or data into a specified electrical pulse signal. This electrical pulse signal is the encoded data packet. The transmitter 11 can then send the encoded data packet to the receiver 12. Upon receiving the encoded data packet, the receiver 12 decodes it back into the original information using a corresponding method. This encoding method can be cyclic shift network coding, which introduces encoding operations to intermediate network nodes to improve network throughput, reliability, security, and reduce transmission latency.

[0035] The embodiments of this application can be applied to single-hop networks, wireless relay multi-hop networks, point-to-point multipath transmission, or satellite relay networks, and are not limited thereto.

[0036] For an example of a CU-DU system architecture using the New Radio (NR) protocol, please refer to [link / reference]. Figure 2 The system architecture includes a next-generation NodeB (gNB) or a next-generation evolved NodeB (ng-eNB). Taking the gNB as an example, user equipment (UE) can communicate with the gNB. The gNB can consist of a central unit (CU) and one or more distributed units (DUs). A CU can be connected to one or more DUs; the diagram only shows one CU and one DU.

[0037] The Packet Data Convergence Protocol (PDCP) layer is deployed in the CU and UE. The Radio Link Control (RLC) and Media Access Control (MAC) layers are deployed in the DU and UE.

[0038] PDCP Functions: The primary purpose is to send or receive packet data from peer PDCP entities. This sublayer mainly performs the following functions: Internet Protocol (IP) header compression and decompression, data and signaling encryption, and signaling integrity protection.

[0039] RLC Function: The sublayer mainly provides wireless link control functions, and provides services such as segmentation, retransmission control and on-demand transmission to the upper layer.

[0040] For physical layers with high real-time requirements, such as MAC and RLC layers, processing is done in DU, while for PDCP layers with lower real-time requirements, processing is done in CU.

[0041] Cyclic shift network coding (NC) can be deployed in gNB in ​​various ways, such as Figure 2 As shown, 1. NC can be deployed at the PDCP layer of CU and UE; 2. NC can be deployed independently at CU and UE; 3. NC can be deployed independently at DU and UE; 4. NC can be deployed at the RLC layer of DU and UE. This application embodiment does not limit this.

[0042] In practical wireless communication, wireless channels are affected by various factors, and data packets may be lost during transmission. Two main methods for addressing packet loss include Automatic Repeat Request (ARQ) and erasure coding (EC). However, ARQ requires network resources and introduces latency for each data packet, and the overhead can be significant, especially with poor channel performance. Erasure coding, such as digital fountain code (DF), can guarantee reliable data transmission even in lost channels in traditional wireless networks, but it introduces considerable coding redundancy. Network coding allows nodes to process received information before forwarding it. Because network nodes possess coding capabilities, and the receiver decodes based on the correlation between encoded data packets, the decoding success rate is greatly improved, reducing coding redundancy and retransmissions, thus increasing network throughput. However, the coding matrix used by the transmitter in random linear network coding is a combination of an upper triangular matrix and a Vandermonde matrix. While this ensures linear independence between encoded data packets, its encoding and decoding complexity is high, and the overall transmission latency is also significant.

[0043] To address the above problems, this application provides a network coding method, as described below.

[0044] Please see Figure 3 ,like Figure 3 The diagram shown is a schematic representation of a network coding method provided in an embodiment of this application. The method includes:

[0045] Step 301. The sending end obtains the data packet group in the data packet to be sent.

[0046] In this embodiment, the data packets in the data packet group can be generated by the sending end or generated by the previous node and transmitted to the sending end. When the data packet is generated by the sending end, the sending end can directly obtain the data packet locally. When the data packet is sent by the previous node, the sending end obtains the data packet after receiving it. The data packets to be sent include multiple data packet groups, and each data packet group includes multiple data packets.

[0047] Step 302. The sending end processes the data packet based on the generator matrix of cyclic shift network coding to generate encoded data packets. The elements of the generator matrix are elements in the binary vector domain converted from the multivariate domain.

[0048] In this embodiment, the information symbols in the above data packets are all taken from GF(2). L ). Where L is an even number, and L is a prime number with a primitive element of 2. The GF(2) of this application embodiment L Since constructing codes on multi-dimensional domains increases the complexity of encoding and decoding, this embodiment of the application can transform the multi-dimensional domain into a binary vector domain GF(2). Elements of this binary vector domain are used as elements in the generator matrix of the cyclic shift network encoding. The binary domain network encoding is constructed using the cyclic shift structural characteristics of the cyclic shift network encoding, achieving an approximate GF(2) value. L While maintaining the performance of multi-domain network coding, we can achieve low-complexity shift operations, that is, achieve low encoding and decoding complexity, reduce encoding and decoding time, and reduce transmission latency.

[0049] Specifically, after receiving the data packets, the sending end evenly groups all the data packets to be sent into groups of k, and pads the last remaining data packets with zeros. The value of k ranges from 1 to the total number of data packets to be sent.

[0050] For each data packet group, the sender can expand a group of packets into... Each packet is encoded and added to the sender's send queue. Where: Let represent the rounding up operation, and ε represent the channel erasure probability in the wireless network selected within the range [0, 0.9]. Calculations show that for the receiver to receive and decode a set of packets, the average number of packets sent by the sender must be at least 1. 'a' represents the margin of safety, which can be dynamically adjusted according to the system's requirements for indicators such as reliability and packet latency.

[0051] In this embodiment, the generator matrix of the cyclic shift network coding can also be expanded by the base matrix of the low-density parity check code (LDPC) (this generator matrix can also be replaced by other decoding algorithms; this embodiment takes LDPC as an example) to utilize the low encoding and decoding complexity of LDPC and reduce encoding and decoding latency.

[0052] Specifically, by arbitrarily selecting an LDPC encoding scheme, its parity-check matrix H is obtained. (N′-k)×N′ Then, the basis matrix G is obtained based on the parity-check matrix. k×N′ All elements in the matrix are taken from GF(2). Where N′>N, such that after the sender sends N packets for the first time, G... k×N′ There are still enough column vectors remaining as coding coefficients to generate retransmitted packets.

[0053] Remember C L+1 It is a circular shift matrix Among them, I L Given an identity matrix with lengths L in both rows and columns, for a binary sequence m of length L+1, a linear combination... This is equivalent to shifting m to the right by l bits. Define an L×(L+1) matrix G and an (L+1)×L matrix H over a binary field as...

[0054] G = [I L 1], H = [I L 1] T

[0055] Let a set

[0056]

[0057] in This yields the set of cyclic shift coefficient matrices C.

[0058] We can use the LDPC basis matrix G k×N′ Each element in the set is replaced by a matrix in set Cs according to the following rules to obtain the generator matrix of the cyclic shift network coding. Should It is actually a block matrix. Let Γ i,j represent The coefficient matrix in the i-th row and j-th column, g i,j Representing G k×N′ The coefficient in the i-th row and j-th column is then...

[0059]

[0060] The j-th column block matrix corresponds to the coding coefficient matrix of the j-th data packet. In the first transmission by the sender, the first k packets are the original data packets m. i Its corresponding coding coefficient matrix G j Only the j-th block is an identity matrix; the rest are all zero matrices. Subsequent NK packets are all encoded packets. The (k+d)th column block matrix These encoded data packets can be generated as coefficients by... The calculations show that 1 ≤ i ≤ k and 1 ≤ d ≤ Nk.

[0061] For a Γ∈Cs, The linear combination of the coding coefficient matrix and the data packet is defined as follows: For a data packet containing M bits ( GF(2) L The symbol) of the package m i It can be represented as a row vector. Each s i,k Each of these elements is a row vector of length L on GF(2), so the encoded data packet is:

[0062] For example: Suppose there is a set of k=7 raw data packets to be sent, and these 7 raw data packets all contain GF(2). 3 The 4 symbols (12 bits) in the i-th packet are transformed into a 3-bit string s. ij ,have:

[0063] m1 = [010 110 101 110] = [s 11 s 12 s 13 s 14 ]

[0064] m2 = [010 110 101 110] = [s 21 s 22 s 23 s 24 ]

[0065] m3 = [010 110 101 110] = [s 31 s 32 s 33 s 34 ]

[0066] m4 = [010 110 101 110] = [s 41 s 42 s 43 s44 ]

[0067] m5 = [010 110 101 110] = [s 51 s 52 s 53 s 54 ]

[0068] m6 = [010 110 101 110] = [s 61 s 62 s 63 s 64 ]

[0069] m7 = [010 110 101 110] = [s 71 s 72 s 73 s 74 ]

[0070] This group of packets is encoded into N=11 packets using system codes. ε = 0.35), meaning the first 7 packets are raw packets, and the last 4 packets are encoded data packets. Let:

[0071]

[0072] At this point, we can obtain the set of coding coefficient matrices C:

[0073]

[0074] Taking an 8×15 LDPC parity-check matrix H as an example, using an improved PEJ algorithm,

[0075]

[0076] And from this parity-check matrix, the corresponding basis matrix is ​​obtained.

[0077]

[0078] The LDPC basis matrix is ​​extended to become the generator matrix of the cyclic shift vector network encoding. Due to space limitations, the extended matrix is ​​not described here. Not shown. Based on the above description, the first 7 data packets are raw packets, and the last 4 packets are encoded data packets, calculated as follows:

[0079]

[0080] Taking the 8th packet as an example, let its coding coefficient matrix be ( The 8th column of the block matrix (written here in row form for simplicity) is:

[0081]

[0082] Then there are encoded data packets:

[0083]

[0084] Step 303. The sending end sends the encoded data packet to the receiving end.

[0085] After generating the encoded data packet, the sending end can send the encoded data packet to the receiving end through the sending queue, so that the receiving end can decode the encoded data packet to obtain the data packet to be sent.

[0086] Specifically, before sending the encoded data packets, the sending end can also determine whether all data packet groups have been processed to generate encoded data packets. After all data packet groups have been processed, the sending end will transmit the encoded data packets one by one.

[0087] In this embodiment, the receiving end can process the encoded data packets by calculating the rank r of the coefficient matrix in a set of encoded data packets, comparing the size of r with kL, and if r = kL, that is, the encoding coefficient matrix of the set of packets has reached full rank, the error back propagation (BP) algorithm can be used to perform preliminary decoding on the received data packets.

[0088] The receiving end receives P (P>N) data packets. The coding coefficient matrices of these P data packets form a kL×PL block matrix over GF(2) with rank kL. Each column of the block matrix corresponds to the coding information of one data packet. Under systematic coding conditions, U data packets in this group are the original data packets received by the receiving end, and the remaining PU data packets are the encoded data packets m′. U+1 , …, m′ P The raw data packet can be directly decoded. The encoded data packet can be represented as... Define the updated set of encoded data packets Φ = {m′ U+1 , …, m′ P}; Reset the coefficient matrix corresponding to each updated encoded data packet into a (kU)L×L matrix, and then merge the coefficient matrices of all PU encoded data packets into a (PU)L×(PU)L block matrix, where Γ i,j Indicates m′ j The i-th coefficient matrix in the package coefficient matrix.

[0089] Select a coefficient matrix from Φ that contains only one non-zero coefficient matrix. Encoded data packets according to Update the remaining packets in Φ, at which point the number of decoded packets is U≤U′≤k. Then, remove packets from the (kU′)×|Φ|L block matrix that are related to... The corresponding coding coefficient matrix; repeat this step until the coded data packets in Φ are generated from at least two original packets.

[0090] If Φ is empty or |Φ| = 1, then all packets are successfully decoded. Otherwise, since each remaining data packet in Φ is a linear combination of at least two original packets, if |Φ| > kU′ at this point, it means there are still linearly dependent encoded data packets in Φ. After removing these linearly dependent encoded data packets, |Φ| = kU′. Due to the use of systematic coding, after the above steps, the value of |Φ| will be greatly reduced, and the |Φ|L×|Φ|L block matrix composed of the coefficients of the |Φ| encoded data packets is still a full-rank binary matrix. At this point, Gaussian elimination can be used to directly decode the remaining encoded data packets. The decoding process is now complete.

[0091] If, after the above steps, the value of |Φ| is still large, the computational complexity of directly using Gaussian elimination is O(|Φ|). 3 In the case of translatability, the complexity of iterative decoding using the parity-check matrix of the LDPC matrix is ​​O(|Φ|), which is low in encoding and decoding complexity.

[0092] In this embodiment, when the receiving end determines that the encoded data packet is lost, it can send the retransmission sequence number of the lost encoded data packet back to the sending end. The sending end can then send the encoded data packet corresponding to the retransmission sequence number to the receiving end. The sending end can also record the number of retransmissions for this encoded data packet. When the number of retransmissions for the encoded data packet corresponding to the sequence number sent by the receiving end exceeds a preset threshold, the sending end can stop retransmitting to avoid continuous retransmissions affecting latency.

[0093] For example, the transmitting end uses the generator matrix encoding method of cyclic shift network coding, utilizing... The unused block matrix is ​​used to obtain the encoded data packet corresponding to the received retransmission sequence number. Then, the generated encoded data packet is inserted into the sender's send queue, and the retransmission count corresponding to the encoded data packet is incremented by 1.

[0094] For example, the steps for the sending end to send data to the receiving end can be referred to Figure 4The flowchart shown illustrates the data transmission process of the sending end. Step 401: Divide the data packets to be sent into multiple data packet groups; Step 402: Select data packet groups and process them using the generator matrix of cyclic shift network coding to generate encoded data packets; Step 403: Determine whether all data packets to be sent have been processed. If yes, proceed to step 404; otherwise, proceed to step 402; Step 404: Send the encoded data packets to the receiving end; Step 405: When a retransmission request is received, retransmit the corresponding encoded data packets according to the retransmission sequence number.

[0095] The network coding method has been described above; the apparatus for implementing this method will be described below.

[0096] Please see Figure 5 ,like Figure 5 The diagram illustrates a network coding apparatus 50 provided in an embodiment of this application. The apparatus 50 includes:

[0097] The processing unit 501 is used to acquire data packet groups in the data packet to be sent, the data packet to be sent includes multiple data packet groups, each data packet group includes multiple data packets, and processes the data packet groups based on the generator matrix of cyclic shift network coding to generate encoded data packets, wherein the generator matrix includes elements in the binary vector domain converted from the multivariate domain.

[0098] The transceiver unit 502 is used to send encoded data packets to the receiving end.

[0099] Optionally, the generator matrix is ​​generated by expanding the low-density parity-check code (LDPC) basis matrix.

[0100] Optionally, the transceiver unit 502 is also used to: receive the retransmission sequence number sent by the receiving end; and send the encoded data packet corresponding to the retransmission sequence number to the receiving end.

[0101] Optionally, the processing unit 501 is further configured to: record the number of retransmissions for the encoded data packet corresponding to the retransmission sequence number; and stop the retransmission of the encoded data packet corresponding to the retransmission sequence number when the number of retransmissions exceeds a preset threshold.

[0102] Optionally, the transceiver unit 502 is specifically used to: send the encoded data packets corresponding to the multiple data packet groups to the receiving end when multiple data packet groups have undergone generator matrix processing.

[0103] The processing unit 501 of the device 50 is used to perform Figure 3 In the method embodiment, steps 301 and 302 are executed by the determining unit 502 of the device 50. Figure 3 Step 303 in the method embodiment will not be repeated here.

[0104] Figure 6The diagram shown illustrates a possible logical structure of a computer device 60 provided in an embodiment of this application. The computer device 60 includes a processor 601, a communication interface 602, a storage system 603, and a bus 604. The processor 601, communication interface 602, and storage system 603 are interconnected via the bus 604. In an embodiment of this application, the processor 601 is used to control and manage the operations of the computer device 60; for example, the processor 601 is used to execute... Figure 3 The steps performed by the sending end in the method embodiment are described. Communication interface 602 is used to support communication by computer device 60. Storage system 603 is used to store program code and data of computer device 60.

[0105] The processor 601 can be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor 601 can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, etc. The bus 604 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 6 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0106] The transceiver unit 502 in device 50 is equivalent to the communication interface 602 in computer device 60, and the processing unit 501 in device 50 is equivalent to the processor 601 in computer device 60.

[0107] The computer device 60 in this embodiment can correspond to the above-described... Figure 2 The billing device in the method embodiment, the communication interface 602 in the computer device 60 can achieve the above-mentioned... Figure 2 For the sake of brevity, the functions of the billing device and / or the various steps implemented in the method embodiments will not be described in detail here.

[0108] It should be understood that the division of units in the above device is merely a logical functional division. In actual implementation, they can be fully or partially integrated into a single physical entity, or they can be physically separated. Furthermore, all units in the device can be implemented entirely through software calls from processing elements; all units can be implemented entirely in hardware; or some units can be implemented through software calls from processing elements, and others in hardware. For example, each unit can be a separate processing element, or it can be integrated into a chip within the device. Alternatively, it can be stored as a program in memory, called and executed by a processing element of the device. Moreover, these units can be fully or partially integrated together, or implemented independently. The processing element mentioned here can also be called a processor, which can be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each of the above units can be implemented through integrated logic circuits in the processor element or through software calls from processing elements.

[0109] In one example, a unit in any of the above devices can be one or more integrated circuits configured to implement the methods described above, such as: one or more application-specific integrated circuits (ASICs), or one or more digital signal processors (DSPs), or one or more field-programmable gate arrays (FPGAs), or a combination of at least two of these forms of integrated circuits. As another example, when a unit in the device can be implemented in the form of a processing element scheduler, the processing element can be a general-purpose processor, such as a central processing unit (CPU) or other processor capable of calling programs. Furthermore, these units can be integrated together to implement a system-on-a-chip (SOC).

[0110] In another embodiment of this application, a computer-readable storage medium is also provided, which stores computer-executable instructions. When the processor of the device executes the computer-executable instructions, the device executes the method executed by the sending end in the above method embodiment.

[0111] In another embodiment of this application, a computer program product is also provided, which includes computer-executable instructions stored in a computer-readable storage medium. When the processor of the device executes the computer-executable instructions, the device performs the method executed by the sending end in the above method embodiment.

[0112] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0113] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units 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 an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.

[0114] The units described 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.

[0115] 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.

[0116] 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 several 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 described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

Claims

1. A network coding method, characterized in that, include: Obtain data packet groups from the data packet to be sent, wherein the data packet to be sent includes multiple data packet groups, and each data packet group includes multiple data packets; The data packet group is processed by a generator matrix based on cyclic shift network coding to generate encoded data packets. The generator matrix comprises elements from a binary vector domain converted from a multi-dimensional domain. This binary vector domain is constructed using the cyclic shift structure of the cyclic shift network coding. The generation process of the generator matrix includes: obtaining a parity-check matrix corresponding to the selected low-density parity-check (LDPC) coding scheme; obtaining a basis matrix whose elements are taken from the binary vector domain based on the parity-check matrix; and expanding the basis matrix to obtain the generator matrix. The encoded data packet is sent to the receiving end.

2. The method according to claim 1, characterized in that, The method further includes: Receive the retransmission sequence number sent by the receiving end; The coded data packet corresponding to the retransmission sequence number is sent to the receiving end.

3. The method according to claim 2, characterized in that, After receiving the retransmission sequence number sent by the receiving end, the method further includes: The number of retransmissions is recorded for the encoded data packet corresponding to the retransmission sequence number; When the number of retransmissions exceeds a preset threshold, the retransmission of the encoded data packet corresponding to the retransmission sequence number is stopped.

4. The method according to any one of claims 1-3, characterized in that, Sending the encoded data packet to the receiving end includes: When all the multiple data packet groups have been processed by the generation matrix, the encoded data packets corresponding to the multiple data packet groups are sent to the receiving end.

5. A network coding device, characterized in that, include: A processing unit is configured to acquire data packet groups from a data packet to be sent, wherein the data packet to be sent includes multiple data packet groups, each data packet group includes multiple data packets, and process the data packet groups based on a generator matrix of a cyclic shift network coding to generate an encoded data packet. The generator matrix comprises elements in a binary vector domain converted from a multi-dimensional domain, the binary vector domain being constructed using the cyclic shift structure of the cyclic shift network coding. The generation process of the generator matrix includes: obtaining a parity check matrix corresponding to a selected low-density parity check (LDPC) coding scheme; obtaining a basis matrix whose elements are taken from the binary vector domain based on the parity check matrix; and expanding the basis matrix to obtain the generator matrix. A transceiver unit is used to send the encoded data packet to the receiving end.

6. The apparatus according to claim 5, characterized in that, The transceiver unit is also used for: Receive the retransmission sequence number sent by the receiving end; The coded data packet corresponding to the retransmission sequence number is sent to the receiving end.

7. The apparatus according to claim 6, characterized in that, The processing unit is also used for: The number of retransmissions is recorded for the encoded data packet corresponding to the retransmission sequence number; When the number of retransmissions exceeds a preset threshold, the retransmission of the encoded data packet corresponding to the retransmission sequence number is stopped.

8. The apparatus according to any one of claims 5-7, characterized in that, The transceiver unit is specifically used for: When all the multiple data packet groups have been processed by the generation matrix, the encoded data packets corresponding to the multiple data packet groups are sent to the receiving end.

9. A computer device, characterized in that, include: The processor, coupled to the memory, The processor is configured to execute instructions stored in the memory, causing the computer device to perform the method as described in any one of claims 1 to 4.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores instructions that, when executed by a processor, implement the method as described in any one of claims 1 to 4.

11. A computer program product, characterized in that, The computer program product includes computer program code, characterized in that, when the computer program code is run on a computer, it implements the method as described in any one of claims 1 to 4.