Network coding method, communication device, and storage medium

By setting a sequence number and a first index in the header of network encoded data packets, the problem of unclear data packet header design is solved, and the original data can be recovered even if some data packets are lost.

WO2026000422A1PCT designated stage Publication Date: 2026-01-02BEIJING XIAOMI MOBILE SOFTWARE CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/102702
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-28
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

The header design of data packets generated by network encoding in existing technologies is unclear, making it difficult for the receiving end to decode them effectively.

Method used

The header of the data packet generated after network encoding is set with a sequence number and a first index to indicate data packets belonging to the same network encoding and their order in the data packet. The receiving end can perform decoding based on this information.

Benefits of technology

Even if not all data packets are received, the receiving end can still recover the original data packets from the accurately received data packets, improving the reliability and efficiency of data packet decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024102702_02012026_PF_FP_ABST
    Figure CN2024102702_02012026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure relates to the technical field of communications, and specifically relates to a network coding method, a communication device, and a storage medium. The network coding method comprises: performing network coding on a first data packet to generate at least one second data packet, wherein a packet header of the second data packet comprises a field used for indicating first information related to the network coding, the first information comprises a sequence number and a first index, the sequence number is used for indicating second data packets belonging to the same network coding, and the first index is used for indicating an order of the second data packet among the at least one generated second data packet; and sending the at least one second data packet to a second communication device.
Need to check novelty before this filing date? Find Prior Art

Description

Network coding method, communication device and storage medium TECHNICAL FIELD

[0001] The present disclosure relates to the technical field of communication, and in particular, to a network coding method, a communication device and a storage medium. BACKGROUND

[0002] In related technologies, when data is transmitted by using network coding, it is unclear how to design the packet header of the data packet generated by network coding.

[0003] SUMMARY

[0004] Embodiments of the present disclosure provide a network coding method, a communication device and a storage medium to solve the technical problem of how to design the packet header of the data packet generated by network coding in related technologies.

[0005] According to a first aspect of embodiments of the present disclosure, a network coding method is provided, which is performed by a first communication device, and the method comprises: performing network coding on a first data packet to generate at least one second data packet; wherein the packet header of the second data packet contains a field for indicating first information related to the network coding, the first information comprising a sequence number and a first index, the sequence number being used to indicate second data packets belonging to the same network coding, and the first index being used to indicate the order of the second data packet in the generated at least one second data packet; and sending the at least one second data packet to a second communication device.

[0006] According to a second aspect of embodiments of the present disclosure, a network coding method is provided, which is performed by a second communication device, and the method comprises: receiving at least one second data packet from a first communication device; wherein the at least one second data packet is generated by performing network coding on a first data packet by the first communication device; obtaining first information related to the network coding from the packet header of the at least one second data packet; wherein the first information comprises a sequence number and a first index, the sequence number being used to indicate second data packets belonging to the same network coding, and the first index being used to indicate the order of the second data packet in the generated at least one second data packet; and based on the first information, performing decoding corresponding to the network coding on the at least one second data packet to generate the first data packet.

[0007] According to a third aspect of the embodiments of the present disclosure, a network coding apparatus is provided, which comprises: a processing module configured to perform network coding on a first data packet to generate at least one second data packet; wherein a packet header of the second data packet comprises a field configured to indicate first information related to the network coding, the first information comprising a sequence number and a first index, the sequence number being configured to indicate second data packets belonging to a same network coding, and the first index being configured to indicate an order of the second data packet in the generated at least one second data packet; and a transceiver configured to transmit the at least one second data packet to a second communication device.

[0008] According to a fourth aspect of the embodiments of the present disclosure, a network coding apparatus is provided, which comprises: a transceiver configured to receive at least one second data packet from a first communication device; wherein the at least one second data packet is generated by performing network coding on a first data packet by the first communication device; and a processing module configured to acquire first information related to the network coding from a packet header of the at least one second data packet, and perform decoding corresponding to the network coding on the at least one second data packet based on the first information to generate the first data packet; wherein the first information comprises a sequence number and a first index, the sequence number being configured to indicate second data packets belonging to a same network coding, and the first index being configured to indicate an order of the second data packet in the generated at least one second data packet.

[0009] According to a fifth aspect of the embodiments of the present disclosure, a first communication device is provided, which comprises: one or more processors; and a memory coupled to the processors, the memory having stored therein executable instructions that, when executed by the processors, cause the first communication device to perform the network coding method of the first aspect.

[0010] According to a sixth aspect of the embodiments of the present disclosure, a second communication device is provided, which comprises: one or more processors; and a memory coupled to the processors, the memory having stored therein executable instructions that, when executed by the processors, cause the second communication device to perform the network coding method of the second aspect.

[0011] According to a seventh aspect of the embodiments of the present disclosure, a communication device is provided, which comprises: one or more processors; and a memory coupled to the processors, the memory having stored therein executable instructions that, when executed by the processors, cause the processors to invoke instructions to cause the communication device to perform the network coding method of the first aspect and / or the network coding method of the second aspect.

[0012] According to an eighth aspect of the embodiments of the present disclosure, a communication system is provided, comprising a first communication device and a second communication device, wherein the first communication device is configured to implement the network coding method according to the first aspect, and the second communication device is configured to implement the network coding method according to the second aspect.

[0013] According to a ninth aspect of the embodiments of the present disclosure, a storage medium is provided, which stores instructions, when the instructions are run on a communication device, causing the communication device to perform the network coding method according to the first aspect or the second aspect.

[0014] According to the embodiments of the present disclosure, the sending end can make the receiving end obtain the control information related to the network coding without accurately receiving all the second data packets by setting the sequence number and the first index related to the network coding in the packet header of the second data packet generated after the network coding, and recover the first data packet by decoding the accurately received second data packet. BRIEF DESCRIPTION OF DRAWINGS

[0015] In order to more clearly illustrate the technical solutions in the embodiments of the present disclosure, the drawings needed to be used in the embodiments will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present disclosure, and other drawings can be obtained by those skilled in the art without any creative effort based on these drawings.

[0016] FIG. 1 is an architecture schematic diagram of a communication system according to an embodiment of the present disclosure.

[0017] FIG. 2 is an interaction schematic diagram of a network coding method according to an embodiment of the present disclosure.

[0018] FIG. 3A is a schematic flow chart of a network coding method according to an embodiment of the present disclosure.

[0019] FIG. 3B is a network coding schematic diagram according to an embodiment of the present disclosure.

[0020] FIG. 3C is a packet header format schematic diagram according to an embodiment of the present disclosure.

[0021] FIG. 4 is a schematic flow chart of a network coding method according to an embodiment of the present disclosure.

[0022] FIG. 5 is a schematic block diagram of an apparatus structure of a first communication device according to an embodiment of the present disclosure.

[0023] FIG. 6 is a schematic block diagram of an apparatus structure of a second communication device according to an embodiment of the present disclosure.

[0024] FIG. 7 is a structural schematic diagram of a communication device according to an embodiment of the present disclosure.

[0025] FIG. 8 is a structural schematic diagram of a chip according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0026] Embodiments of the present disclosure provide a network coding method, a communication device and a storage medium.

[0027] In a first aspect, embodiments of the present disclosure provide a network coding method, performed by a first communication device, the method comprising: performing network coding on a first data packet to generate at least one second data packet; wherein a packet header of the second data packet contains a field for indicating first information related to the network coding, the first information comprising a sequence number and a first index, the sequence number being used to indicate second data packets belonging to a same network coding, and the first index being used to indicate an order of the second data packet in the generated at least one second data packet; and sending the at least one second data packet to a second communication device.

[0028] In the above embodiment, by setting the sequence number and the first index related to the network coding in the packet header of the second data packet generated after the network coding, the receiving end can obtain the control information related to the network coding without accurately receiving all the second data packets, and recover the first data packet by decoding the accurately received second data packet.

[0029] In some embodiments, the performing network coding on the first data packet to generate the at least one second data packet comprises: obtaining k first data packets; wherein k is a positive integer; and performing network coding based on the k first data packets to generate n second data packets; wherein n is a positive integer greater than k; and the packet headers of the n second data packets all indicate the same sequence number.

[0030] In some embodiments, the n second data packets comprise: k original data packets same as the k first data packets, and n-k check data packets generated based on the k original data packets.

[0031] In some embodiments, the packet header of the second data packet contains a first field for indicating the sequence number, and the first field is a field for recording the sequence number contained in a packet header of a first protocol layer where the network coding is located.

[0032] In some embodiments, the first protocol layer is a packet data convergence protocol (PDCP) layer or a radio link control (RLC) layer.

[0033] In some embodiments of the first aspect, the first protocol layer is an RLC layer, and the header of the second data packet includes a second field for indicating the first index, the second field being a field for recording a segment offset included in the header of the RLC layer.

[0034] In some embodiments of the first aspect, the header of the second data packet further includes a field for indicating second information related to the network coding, the second information including at least one of the following: whether there is a padding symbol; a number of the padding symbol; a number k of the first data packets; a number n of the second data packets; a number n-k of the second data packets that are check data packets; whether the network coding is used; and a format of the header.

[0035] In some embodiments of the first aspect, after the network coding based on the k first data packets to generate n second data packets, the method further includes determining a first index of the second data packet based on the number of the padding symbol.

[0036] In some embodiments of the first aspect, at least one of the following is dynamically selected by the first communication device: the number k of the first data packets before the network coding; the number n of the second data packets after the network coding; and the number n-k of the second data packets that are check data packets after the network coding.

[0037] In some embodiments of the first aspect, the network coding has a puncturing code characteristic, and the number k of the first data packets before the network coding and the number n of the second data packets after the network coding are dynamically selected by the first communication device, and the header of the second data packet does not include a field for indicating the number n of the second data packets.

[0038] In some embodiments of the first aspect, the format of the header of the second data packet includes a first format and a second format, and the header of the first format includes a field for indicating the first information but does not include a field for indicating the second information, and the header of the second format includes a field for indicating the first information and the second information.

[0039] In some embodiments of the first aspect, after the n second data packets are generated, the method further includes determining, among the n second data packets, a second data packet with the header of the first format and a second data packet with the header of the second format.

[0040] In some embodiments of the first aspect, the number of the second data packets with the second format of the packet header among the n second data packets is greater than or equal to n-k+1.

[0041] In some embodiments of the first aspect, the number of the second data packets with the first format of the packet header among the n second data packets is less than or equal to k-1.

[0042] In some embodiments of the first aspect, the packet header of the second data packet comprises a second field for indicating a second index and a third field for indicating the format of the packet header; wherein the second index is used to indicate the order of the second data packet among the second data packets with the same format of the packet header; and the first index is determined by the format of the packet header and the second index.

[0043] In some embodiments of the first aspect, when the n second data packets are transmitted to the second communication device, if no padding symbol contained in the second data packet is transmitted, the packet header of the second data packet does not comprise a field for indicating the number of the padding symbol.

[0044] In the second aspect, embodiments of the present disclosure provide a network coding method, executed by a second communication device, comprising: receiving at least one second data packet from a first communication device; wherein the at least one second data packet is generated by the first communication device performing network coding on a first data packet; obtaining first information related to the network coding from a packet header of the at least one second data packet; wherein the first information comprises a sequence number and a first index, the sequence number is used to indicate second data packets belonging to the same network coding, and the first index is used to indicate the order of the second data packet among the generated at least one second data packet; and based on the first information, performing decoding corresponding to the network coding on the at least one second data packet to generate the first data packet.

[0045] Some embodiments of the second aspect are combined. In some embodiments, the receiving the at least one second data packet from the first communication device comprises: receiving m second data packets from the first communication device; wherein the m second data packets are m second data packets of n second data packets generated by the network coding of the k first data packets by the first communication device; the packet header of the n second data packets all indicates the same sequence number; k, n, m are positive integers; n is greater than k; m is greater than or equal to k and less than or equal to n; the obtaining the first information related to the network coding from the packet header of the at least one second data packet comprises: obtaining the first information related to the network coding from the packet header of the m second data packets; the performing the decoding corresponding to the network coding on the at least one second data packet based on the first information to generate the first data packet comprises: performing the decoding corresponding to the network coding on the m second data packets based on the first information to generate the k first data packets.

[0046] Some embodiments of the second aspect are combined. In some embodiments, the n second data packets comprise: k original data packets same as the k first data packets and n-k verification data packets generated based on the k original data packets.

[0047] Some embodiments of the second aspect are combined. In some embodiments, the packet header of the second data packet comprises a first field for indicating the sequence number, and the first field is a field for recording the sequence number contained in the packet header of the first protocol layer where the decoding corresponding to the network coding is located.

[0048] Some embodiments of the second aspect are combined. In some embodiments, the first protocol layer is a packet data convergence protocol (PDCP) layer or a radio link control (RLC) layer.

[0049] Some embodiments of the second aspect are combined. In some embodiments, the first protocol layer is an RLC layer, and the packet header of the second data packet comprises a second field for indicating the first index, and the second field is a field for recording a segment offset contained in the packet header of the RLC layer.

[0050] Some embodiments of the second aspect are combined. In some embodiments, the method further comprises: obtaining second information related to the network coding from the packet header of the m second data packets, and the second information comprises at least one of the following information: whether there is a padding symbol; the number of the padding symbol; the number k of the first data packets; the number n of the second data packets; the number n-k of verification data packets in the second data packets; whether the network coding is used; and the format of the packet header.

[0051] Some embodiments combine the second aspect. In some embodiments, the first index of the second data packet is determined based on the number of the padding symbols.

[0052] Some embodiments combine the second aspect. In some embodiments, the network coding has a punctured code property, and the number k of the first data packets before the network coding and the number n of the second data packets after the network coding are dynamically selected by the first communication device, and the header of the second data packet does not contain a field for indicating the number n of the second data packets.

[0053] Some embodiments combine the second aspect. In some embodiments, the format of the header of the second data packet includes a first format and a second format; wherein the header of the first format contains a field for indicating the first information but does not contain a field for indicating the second information, and the header of the second format contains a field for indicating the first information and the second information.

[0054] Some embodiments combine the second aspect. In some embodiments, after receiving m second data packets from the first communication device, the method further includes determining, among the m second data packets, a second data packet with a header of the first format and a second data packet with a header of the second format.

[0055] Some embodiments combine the second aspect. In some embodiments, the header of the second data packet contains a second field for indicating a second index and a third field for indicating the format of the header; wherein the second index is used to indicate the order of the second data packet among the second data packets with the same format of the header, and the first index is determined by the format of the header and the second index.

[0056] A third aspect provides a network coding apparatus, the apparatus comprising: a processing module configured to network code first data packets to generate at least one second data packet; wherein the header of the second data packet contains a field for indicating first information related to the network coding, the first information including a sequence number and a first index, the sequence number being used to indicate the second data packets belonging to the same network coding, and the first index being used to indicate the order of the second data packet among the generated at least one second data packet; and a transceiver module configured to transmit the at least one second data packet to a second communication device.

[0057] In a fourth aspect, a network coding apparatus is provided. The apparatus includes: a transceiver configured to receive at least one second data packet from a first communication device, wherein the at least one second data packet is generated by the first communication device by performing network coding on a first data packet; and a processor configured to obtain first information related to the network coding from a packet header of the at least one second data packet, and perform decoding corresponding to the network coding on the at least one second data packet based on the first information to generate the first data packet, wherein the first information includes a sequence number and a first index, the sequence number is used to indicate second data packets belonging to a same network coding, and the first index is used to indicate an order of the second data packet in the generated at least one second data packet.

[0058] In a fifth aspect, a first communication device is provided. The first communication device includes one or more processors, and a memory coupled to the processors and storing executable instructions. The executable instructions, when executed by the processors, cause the first communication device to perform the network coding method described in the first aspect and the optional embodiments of the first aspect.

[0059] In a sixth aspect, a second communication device is provided. The second communication device includes one or more processors, and a memory coupled to the processors and storing executable instructions. The executable instructions, when executed by the processors, cause the second communication device to perform the network coding method described in the second aspect and the optional embodiments of the second aspect.

[0060] In a seventh aspect, a communication device is provided. The communication device includes one or more processors, and a memory coupled to the processors and storing executable instructions. The executable instructions, when executed by the processors, cause the processors to invoke the executable instructions to cause the communication device to perform the network coding method described in the first aspect and the second aspect and the optional embodiments of the first aspect and the second aspect.

[0061] In an eighth aspect, a communication system is provided. The communication system includes a first communication device and a second communication device. The first communication device is configured to perform the method described in the first aspect and the optional embodiments of the first aspect, and the second communication device is configured to perform the method described in the second aspect and the optional embodiments of the second aspect.

[0062] In a ninth aspect, a storage medium is provided. The storage medium stores instructions that, when executed on a communication device, cause the communication device to perform the method described in the first aspect and the second aspect and the optional embodiments of the first aspect and the second aspect.

[0063] In a tenth aspect, embodiments of this disclosure provide a program product that, when executed by a communication device, causes the communication device to perform the methods described in the first and second aspects, and optional embodiments of the first and second aspects.

[0064] In an eleventh aspect, embodiments of this disclosure provide a computer program that, when run on a computer, causes the computer to perform the methods described in the first and second aspects, and optional embodiments of the first and second aspects.

[0065] It is understood that the aforementioned terminals, network devices, communication devices, communication systems, storage media, program products, and computer programs are all used to execute the methods proposed in the embodiments of this disclosure. Therefore, the beneficial effects they can achieve can be referred to the beneficial effects in the corresponding methods, and will not be repeated here.

[0066] This disclosure provides network coding methods, communication devices, and storage media. In some embodiments, terms such as information sending method, information receiving method, information processing method, and communication method can be used interchangeably; terms such as terminal and network device can be used interchangeably with terms such as information processing device and communication device; and terms such as information processing system and communication system can be used interchangeably.

[0067] This disclosure is not exhaustive, but merely illustrative of some embodiments, and is not intended to limit the scope of protection of this disclosure. Unless otherwise specified, each step in a particular embodiment can be implemented as an independent embodiment, and the steps can be arbitrarily combined. For example, a solution after removing some steps in a particular embodiment can also be implemented as an independent embodiment, and the order of the steps in a particular embodiment can be arbitrarily interchanged. Furthermore, optional embodiments in a particular embodiment can be arbitrarily combined; moreover, embodiments can be arbitrarily combined, for example, some or all steps of different embodiments can be arbitrarily combined, and a particular embodiment can be arbitrarily combined with optional embodiments of other embodiments.

[0068] In each of the disclosed embodiments, unless otherwise specified or in case of logical conflict, the terminology and / or descriptions of the embodiments are consistent and can be referenced by each other. Technical features in different embodiments can be combined to form new embodiments based on their inherent logical relationships.

[0069] The terminology used in the embodiments of this disclosure is for the purpose of describing particular embodiments only and is not intended to limit the scope of this disclosure.

[0070] In the embodiments of this disclosure, unless otherwise stated, elements expressed in the singular, such as “a,” “an,” “the,” “the,” “the,” “the,” “the,” “the,” “this,” etc., may mean “one and only one,” or “one or more,” “at least one,” etc.

[0071] For example, in the case of using articles such as "a", "an", "the" in English in translation, the noun after the article can be understood as a singular expression, or as a plural expression.

[0072] In the embodiments of the present disclosure, "plurality" refers to two or more.

[0073] In some embodiments, the terms "at least one of", "one or more", "a plurality of", "multiple", and the like can be replaced with each other.

[0074] In some embodiments, the description manner of "at least one of A, B", "A and / or B", "A in one case and B in another case", "responding to a case A, responding to another case B", and the like can include the following technical solutions according to the case: A is executed in some embodiments (A is executed regardless of B); B is executed in some embodiments (B is executed regardless of A); A and B are selectively executed in some embodiments (A and B are selected from A and B); A and B are executed in some embodiments (A and B are executed). When there are more branches such as A, B, C, and the like, it is similar to the above.

[0075] In some embodiments, the description manner of "A or B" and the like can include the following technical solutions according to the case: A is executed in some embodiments (A is executed regardless of B); B is executed in some embodiments (B is executed regardless of A); A and B are selectively executed in some embodiments (A and B are selected from A and B). When there are more branches such as A, B, C, and the like, it is similar to the above.

[0076] The prefix words "first", "second", and the like in the embodiments of the present disclosure are only used to distinguish different description objects, and do not constitute a limitation on the position, order, priority, quantity, or content of the description objects. The description of the description objects should be referred to the description in the context of the claims or embodiments, and should not constitute an unnecessary limitation because of the use of the prefix words.

[0077] For example, the ordinal numbers before the description object "field" in "the first field" and "the second field" do not limit the positions or orders between the "fields", and "the first" and "the second" do not limit whether the "fields" they modify are in the same message or not, nor the order of "the first field" and "the second field". For another example, the ordinal numbers before the description object "level" in "the first level" and "the second level" do not limit the priorities between the "levels". For another example, the quantity of the description object is not limited by the ordinal numbers, which can be one or more. For example, "the first device", the quantity of the "device" can be one or more. In addition, the description objects modified by different prefixes can be the same or different, for example, the description object is "device", "the first device" and "the second device" can be the same device or different devices, and their types can be the same or different; for another example, the description object is "information", "the first information" and "the second information" can be the same information or different information, and their contents can be the same or different.

[0078] In some embodiments, "comprising A", "including A", "for indicating A", "carrying A" can be interpreted as directly carrying A, or indirectly indicating A.

[0079] In some embodiments, the terms "in response to", "in response to determining", "in the case of", "when", "when", "if", "if" and the like can be replaced with each other.

[0080] In some embodiments, the terms "greater than", "greater than or equal to", "not less than", "more than", "more than or equal to", "not less than", "higher than", "higher than or equal to", "not lower than", "above" and the like can be replaced with each other, and the terms "less than", "less than or equal to", "not greater than", "less than", "less than or equal to", "not more than", "lower than", "lower than or equal to", "not higher than", "below" and the like can be replaced with each other.

[0081] In some embodiments, the device and the like can be interpreted as physical or virtual, and its name is not limited to the name described in the embodiments, and the terms "device", "equipment", "device", "circuit", "network element", "node", "function", "unit", "section", "system", "network", "chip", "chip system", "entity", "subject" and the like can be replaced with each other.

[0082] In some embodiments, "network" can be interpreted as a device (for example, access network device, core network device, etc.) contained in the network.

[0083] In some embodiments, "network" can be interpreted as a device (for example, access network device, core network device, etc.) contained in the network.

[0084] In some embodiments, the terms “access network device (AN device),” “radio access network device (RAN device),” “base station (BS),” “radio base station,” “fixed station,” “node,” “access point,” “transmission point (TP),” “reception point (RP),” “transmission / reception point (TRP),” “panel,” “antenna panel,” “antenna array,” “cell,” “macro cell,” “small cell,” “femto cell,” “pico cell,” “sector,” “cell group,” “serving cell,” “carrier,” “component carrier,” “bandwidth part (BWP),” and the like can be used interchangeably.

[0085] In some embodiments, the terms "terminal," "terminal device," "user equipment (UE)," "user terminal," "mobile station (MS)," "mobile terminal (MT)," "subscriber station," "mobile unit," "subscriber unit," "wireless unit," "remote unit," "mobile device," "wireless device," "wireless communication device," "remote device," "mobile subscriber station," "access terminal," "mobile terminal," "wireless terminal," "remote terminal," "handset," "user agent," "mobile client," "client," and so on can be replaced with each other.

[0086] In some embodiments, the access network device, the core network device, or the network device can be replaced with a terminal. For example, the embodiments of the present disclosure can also be applied to a structure in which communication between the access network device, the core network device, or the network device and the terminal is replaced with communication between a plurality of terminals (e.g., device-to-device (D2D), vehicle-to-everything (V2X), etc.). In this case, the terminal can also be configured to have all or part of the functions of the access network device. In addition, the terms "uplink," "downlink," and the like can also be replaced with terms corresponding to the inter-terminal communication (e.g., "side"). For example, the uplink channel, the downlink channel, and the like can be replaced with the side channel, and the uplink, the downlink, and the like can be replaced with the sidelink.

[0087] In some embodiments, the terminal can be replaced with the access network device, the core network device, or the network device. In this case, the access network device, the core network device, or the network device can also be configured to have all or part of the functions of the terminal.

[0088] In some embodiments, obtaining data, information, etc. can comply with laws and regulations of the country where the location is.

[0089] In some embodiments, data, information, etc. can be obtained after obtaining user consent.

[0090] In addition, each element, each row, or each column in the table of the embodiments of the present disclosure can be implemented as an independent embodiment, and any combination of any element, any row, or any column can also be implemented as an independent embodiment.

[0091] FIG. 1 is an architecture schematic diagram of a communication system according to an embodiment of the present disclosure.

[0092] As shown in FIG. 1, the communication system 100 includes a first communication device 101 and a second communication device 102; wherein the first communication device and the second communication device can be a terminal and a network device, wherein the network device includes at least one of the following: an access network device, a core network device.

[0093] In some embodiments, the terminal includes at least one of the following: a mobile phone, a wearable device, an Internet of Things device, a car with communication function, a smart car, a Pad, a computer with wireless transceiver function, a virtual reality (VR) terminal device, an augmented reality (AR) terminal device, a wireless terminal device in industrial control, a wireless terminal device in self-driving, a wireless terminal device in remote medical surgery, a wireless terminal device in smart grid, a wireless terminal device in transportation safety, a wireless terminal device in smart city, a wireless terminal device in smart home, but is not limited thereto.

[0094] In some embodiments, the access network device is, for example, a node or device that accesses a terminal to a wireless network, and the access network device can include at least one of an evolved NodeB (eNB) in a 5G communication system, a next generation eNB (ng-eNB), a next generation NodeB (gNB), a node B (NB), a home node B (HNB), a home evolved node B (HeNB), a wireless backhaul device, a radio network controller (RNC), a base station controller (BSC), a base transceiver station (BTS), a base band unit (BBU), a mobile switching center, a base station in a 6G communication system, an open base station (Open RAN), a cloud base station (Cloud RAN), a base station in other communication systems, an access node in a Wi-Fi system, but is not limited thereto.

[0095] In some embodiments, the core network device can be one device including one or more network elements, or can be multiple devices or device groups including all or part of the one or more network elements described above. The network element can be virtual or physical. The core network includes, for example, at least one of an evolved packet core (EPC), a 5G core network (5GCN), and a next generation core (NGC).

[0096] In some embodiments, the technical solutions of the present disclosure can be applied to an Open RAN architecture, at which time the interfaces between or within the access network devices involved in the embodiments of the present disclosure can become internal interfaces of the Open RAN, and the processes and information interactions between these internal interfaces can be realized through software or programs.

[0097] In some embodiments, the access network device can be composed of a central unit (CU) and a distributed unit (DU), where the CU can also be referred to as a control unit. The CU-DU structure can split the protocol layers of the access network device, and some of the protocol layers are controlled by the CU, and the remaining part or all of the protocol layers are distributed in the DU and controlled by the CU, but is not limited thereto.

[0098] It can be understood that the communication system described in the embodiments of the present disclosure is for more clearly illustrating the technical solutions of the embodiments of the present disclosure, and does not constitute a limitation on the technical solutions proposed by the embodiments of the present disclosure. Those skilled in the art can know that, with the evolution of system architecture and the appearance of new business scenarios, the technical solutions proposed by the embodiments of the present disclosure are also applicable to similar technical problems.

[0099] The following embodiments of the present disclosure can be applied to the communication system 100 shown in FIG. 1 or part of the subjects, but are not limited thereto. The subjects shown in FIG. 1 are exemplary, and the communication system can include all or part of the subjects in FIG. 1, or other subjects other than FIG. 1. The number and form of each subject is arbitrary, each subject can be physical or virtual, the connection relationship between each subject is exemplary, each subject can not be connected or can be connected, the connection can be in any way, can be direct connection or indirect connection, can be wired connection or wireless connection.

[0100] Embodiments of the present disclosure can be applied to Long Term Evolution (LTE), LTE-Advanced (LTE-A), LTE-Beyond (LTE-B), SUPER 3G, IMT-Advanced, 4th generation mobile communication system (4G), 5th generation mobile communication system (5G), 5G new radio (NR), Future Radio Access (FRA), New-Radio Access Technology (RAT), New Radio (NR), New radio access (NX), Future generation radio access (FX), Global System for Mobile communications (GSM (registered trademark)), CDMA2000, Ultra Mobile Broadband (UMB), IEEE 802.11 (Wi-Fi (registered trademark)), IEEE 802.16 (WiMAX (registered trademark)), IEEE 802.20, Ultra-WideBand (UWB), Bluetooth (Bluetooth (registered trademark)), Public Land Mobile Network (PLMN) network, Device-to-Device (D2D) system, Machine to Machine (M2M) system, Internet of Things (IoT) system, Vehicle-to-Everything (V2X), system using other communication methods, next-generation system expanded based on them, and the like. In addition, a plurality of systems can be combined (for example, combination of LTE or LTE-A and 5G, and the like).

[0101] FIG. 2 is an interaction diagram illustrating a network coding method according to an embodiment of the present disclosure.

[0102] As shown in FIG. 2, the network coding method includes:

[0103] In step S201, the first communication device performs network coding on the first data packet.

[0104] In some embodiments, the first communication device network encodes the first data packets to generate at least one second data packet; wherein the packet header of the second data packet comprises a field for indicating first information related to the network encoding, the first information comprising a sequence number and a first index, the sequence number being used to indicate second data packets belonging to the same network encoding, and the first index being used to indicate the order of the second data packet in the generated at least one second data packet.

[0105] In some embodiments, the first communication device obtains k first data packets; network encodes the k first data packets to generate n second data packets; wherein k is a positive integer; n is a positive integer greater than k; and the packet headers of the n second data packets all indicate the same sequence number.

[0106] In some embodiments, the n second data packets comprise k original data packets identical to the k first data packets and n-k check data packets generated based on the k original data packets.

[0107] In some embodiments, the packet header of the second data packet comprises a first field for indicating the sequence number, the first field being a field for recording sequence numbers included in the packet header of the first protocol layer where the network encoding is performed.

[0108] In some embodiments, the first protocol layer is a packet data convergence protocol (PDCP) layer or a radio link control (RLC) layer.

[0109] In some embodiments, the first protocol layer is an RLC layer, and the packet header of the second data packet comprises a second field for indicating the first index, the second field being a field for recording segment offsets included in the packet header of the RLC layer.

[0110] In some embodiments, the packet header of the second data packet further comprises a field for indicating second information related to the network encoding, the second information comprising at least one of the following: whether there is a padding symbol; the number of padding symbols; the number k of the first data packets; the number n of the second data packets; the number n-k of check data packets in the second data packets; whether network encoding is used; and the format of the packet header.

[0111] In some embodiments, after network encoding the k first data packets to generate n second data packets, the first communication device can determine the first index of the second data packet based on the number of padding symbols.

[0112] In some embodiments, the first communication device dynamically selects at least one of the following: the number k of the first data packets before the network coding; the number n of the second data packets after the network coding; and the number of the second data packets that are to be checked n-k.

[0113] In some embodiments, the network coding has a puncturing code property, and the number k of the first data packets before the network coding and the number n of the second data packets after the network coding are dynamically selected by the first communication device, and the header of the second data packet does not contain a field for indicating the number n of the second data packets.

[0114] In some embodiments, the format of the header of the second data packet includes: a first format and a second format; wherein the header of the first format contains a field for indicating the first information, but does not contain a field for indicating the second information, and the header of the second format contains a field for indicating the first information and the second information.

[0115] In some embodiments, after generating the n second data packets, the first communication device can determine, among the n second data packets, the second data packets with the header of the first format and the second data packets with the header of the second format.

[0116] In some embodiments, the number of the second data packets with the header of the second format among the n second data packets is greater than or equal to n-k+1.

[0117] In some embodiments, the number of the second data packets with the header of the first format among the n second data packets is less than or equal to k-1.

[0118] In some embodiments, the header of the second data packet contains a second field for indicating a second index and a third field for indicating the format of the header; wherein the second index is used to indicate the order of the second data packet among the second data packets with the same format of the header; and the first index is determined by the format of the header and the second index.

[0119] In some embodiments, when the first communication device transmits the n second data packets to the second communication device, if no padding symbol contained in the second data packet is transmitted, the header of the second data packet does not contain a field for indicating the number of the padding symbol.

[0120] Step S202: The first communication device transmits the second data packet to the second communication device.

[0121] In some embodiments, the first communication device transmits the at least one second data packet to the second communication device.

[0122] In some embodiments, the second communication device can receive at least one second data packet from the first communication device.

[0123] In some embodiments, after the first communication device generates n second data packets based on network coding of k first data packets, the first communication device can send the n second data packets to the second communication device.

[0124] In some embodiments, the second communication device can receive m second data packets from the first communication device; wherein the m second data packets are m second data packets in the n second data packets generated by the first communication device after network coding of k first data packets; the packet header of the n second data packets all indicate the same sequence number; k, n, and m are positive integers; n is greater than k; m is greater than or equal to k and less than or equal to n.

[0125] In step S203, the second communication device decodes the second data packet.

[0126] In some embodiments, the second communication device can obtain first information related to the network coding from the packet header of the received second data packet; wherein the first information includes a sequence number and a first index, the sequence number is used to indicate the second data packet belonging to the same network coding, and the first index is used to indicate the sequence of the second data packet in the generated at least one second data packet; based on the first information, the at least one second data packet is decoded corresponding to the network coding to generate the first data packet.

[0127] In some embodiments, after the second communication device receives m second data packets from the first communication device, the second communication device can obtain first information related to the network coding from the packet header of the m second data packets; based on the first information, the m second data packets are decoded corresponding to the network coding to generate the k first data packets.

[0128] In some embodiments, after the second communication device receives m second data packets from the first communication device, the second communication device can also obtain second information related to the network coding from the packet header of the m second data packets, and the second information includes at least one of the following information: whether there is a padding symbol; the number of padding symbols; the number k of the first data packets; the number n of the second data packets; the number n-k of the second data packets of the verification data packet; whether network coding is used; and the format of the packet header.

[0129] In some embodiments, after the second communication device receives m second data packets from the first communication device, the second communication device can also determine, in the m second data packets, the second data packet with the packet header in the first format and the second data packet with the packet header in the second format.

[0130] The communication method related to the embodiments of the present disclosure can include at least one of steps S201 to S203. For example, step S201 can be implemented as an independent embodiment, step S202 can be implemented as an independent embodiment, step S203 can be implemented as an independent embodiment, steps S201+S202 can be implemented as an independent embodiment, steps S202+S203 can be implemented as an independent embodiment, steps S201+S203 can be implemented as an independent embodiment, steps S201+S202+S203 can be implemented as an independent embodiment, but the present disclosure is not limited thereto.

[0131] In some embodiments, steps S201, S202, and S203 can be exchanged in order or performed simultaneously.

[0132] In some embodiments, step S201 is optional, and one or more of the steps can be omitted or replaced in different embodiments.

[0133] In some embodiments, step S202 is optional, and one or more of the steps can be omitted or replaced in different embodiments.

[0134] In some embodiments, step S203 is optional, and one or more of the steps can be omitted or replaced in different embodiments.

[0135] In some embodiments, other optional embodiments described before or after the description of FIG. 2 can be referred to.

[0136] In some embodiments, in order to improve the reliability of the communication system, network coding or outer coding can be used for data transmission. The sender can generate a plurality of data packets by performing network coding on the original data packet to be sent, and when sending the plurality of generated data packets to the receiver, how to design the packet header of the data packet to effectively transmit control information to the receiver becomes a technical problem to be solved.

[0137] Embodiments of the present disclosure propose a network coding method. FIG. 3A is a schematic flowchart of a network coding method according to an embodiment of the present disclosure. The network coding method shown in the present embodiment can be performed by a first communication device, which can be a sender of data.

[0138] As shown in FIG. 3A, the network coding method can include the following steps:

[0139] In step S301, the first data packet is network encoded to generate at least one second data packet; wherein the packet header of the second data packet contains a field for indicating first information related to the network encoding, the first information including a sequence number and a first index, the sequence number being used to indicate second data packets belonging to the same network encoding, and the first index being used to indicate the order of the second data packet in the generated at least one second data packet.

[0140] In some embodiments, the first communication device can use network encoding to transmit data to the second communication device. After obtaining the first data packet, the first communication device can network encode the first data packet to generate at least one second data packet. The information indicated in the packet header of the second data packet generated by network encoding includes first information related to network encoding, and the first information includes a sequence number of the second data packet and a first index of the second data packet after network encoding; wherein second data packets belonging to the same network encoding have the same sequence number, and the first index can be used to indicate the order of each second data packet in the same network encoding.

[0141] In step S302, the at least one second data packet is sent to the second communication device.

[0142] In some embodiments, after generating at least one second data packet by network encoding, the second communication device can send the generated at least one second data packet to the second communication device, and the second communication device can decode the accurately received second data packet based on the first information related to network encoding indicated in the packet header of the accurately received second data packet, to successfully decode the first data packet corresponding to the network encoding.

[0143] Due to the use of network encoding, the number of second data packets accurately received by the second communication device can be less than the number of at least one second data packet sent by the first communication device, and the second communication device can accurately decode the first data packet based on decoding the accurately received second data packet.

[0144] It should be noted that the embodiment shown in FIG. 3A can be independently implemented, or can be combined with at least one other embodiment of the present disclosure for implementation, and the present disclosure does not limit the selection.

[0145] Based on the above embodiment, the sending end can set the sequence number and the first index related to the network encoding in the packet header of the second data packet generated after network encoding, so that the receiving end can obtain the control information related to the network encoding without accurately receiving all the second data packets, and recover the first data packet by decoding the accurately received second data packet.

[0146] The manner of network coding of the first data packets by the first communication device can be set according to actual needs. For example, in some embodiments, an erasure code, a random linear network coding, a fountain code, a network product code, etc. can be used. For the sake of simplicity, the erasure code is used as an example in the following embodiments.

[0147] In some embodiments, the first communication device can obtain k first data packets, perform network coding based on the k first data packets to generate n second data packets, wherein the header of the n second data packets can contain a field for indicating a sequence number and a first index related to the network coding, the sequence number indicated by the header of the n second data packets is the same, and the first index indicated by the header of the n second data packets is used to represent the order in the n second data packets. The first communication device can send the generated n second data packets to the second communication device, and the second communication device can decode the m second data packets accurately received based on the sequence number and the first index indicated by the header to obtain the k first data packets.

[0148] wherein k, n and m are positive integers, n is greater than k, m can be less than or equal to n, and m can be greater than or equal to k. If the erasure code used is a maximum distance separable code (MDS), such as a Reed-Solomon (RS) code, the second communication device only needs to accurately receive k second data packets to accurately decode and recover the k first data packets.

[0149] In some embodiments, the k first data packets obtained by the first communication device can be k original data packets obtained directly, or an original data packet can be split into k first data packets.

[0150] In some embodiments, the network coding can use (n, k) coding. The first communication device can split an original data packet into k first data packets of equal length, and generate n second data packets by using network coding. The n second data packets are sent to the second communication device, and the second communication device decodes the m second data packets accurately received based on the first information indicated by the header of the m second data packets to recover the k first data packets, and further combines the k first data packets into an original data packet.

[0151] In some embodiments, the n second data packets generated by the first communication device using the erasure code include: k original data packets identical to the k first data packets and nk check data packets generated based on the k original data packets.

[0152] For example, as shown in Figure 3B, (5, 3) network coding is used, i.e., k = 3, n = 5. The first communication device can segment the original data to obtain three first data packets of equal length: A1, A2, and A3; wherein, data packet A1 includes the symbol {s1, s2, ..., s...} l}, Data packet A2 includes signed {s l+1 ,s l+2 ,...,s 2l}, Data packet A3 includes signed {s 2l+1 ,s 2l+2 ,...,s 3l When performing network encoding on the three first data packets, two check symbols need to be generated based on the three symbols extracted from the three first data packets respectively, such as based on symbols s1 and s2. l+1 ,s 2l+1 Generate check symbols w1, w l+1 Based on the symbols s2,s l+2 ,s 2l+2 Generate check symbols w2, w l+2 ...and so on, thus generating two verification data packets through network coding: B1 and B2; wherein, data packet B1 includes the symbolic {w1, w2, ..., w...} l}, Data packet B2 includes the signed {{w l+1 ,w l+2 ,...,w 2l Finally, add the corresponding header H to each data packet A1, A2, A3 and B1, B2 to generate 5 second data packets. The sequence numbers indicated in the headers of these 5 data packets are the same, and the first indices can be 0, 1, 2, 3, and 4 respectively. The first communication device can send these 5 second data packets to the second communication device. If the second communication device can accurately receive at least 3 second data packets, it can recover the 3 first data packets through decoding, and then merge them to obtain the original data packets. It should be noted that in this example, a symbol can be a single bit or several bits, such as a byte.

[0153] Based on the above embodiments, the sending end can network encode the k first data packets to generate n second data packets, and indicate the sequence number and the first index related to the network encoding in the packet header, so that the receiving end can accurately acquire the control information related to the network encoding based on the m second data packets accurately received, and perform decoding to recover the k first data packets without accurately receiving all the n second data packets.

[0154] In some embodiments, the first communication device can network encode the k first data packets at the first protocol layer to generate n second data packets.

[0155] The first protocol layer at which the network encoding is performed can be determined according to actual protocol layer division, for example, a Packet Data Convergence Protocol (PDCP) layer, a Radio Link Control (RLC) layer, or an Application Layer (AL), etc.

[0156] In some embodiments, if the packet header of the first protocol layer at which the network encoding is performed contains a field for recording a sequence number (SN), the field for recording the sequence number in the packet header of the first protocol layer can be used as the first field for indicating the sequence number in the packet header of the second data packet, that is, the sequence number recorded in the packet header of the first protocol layer is equivalent to the sequence number indicated in the packet header of the second data packet. For example, the packet header of the PDCP layer of 3GPP contains a PDCP SN field, when the network encoding is performed at the PDCP layer, the PDCP SN field in the packet header of the PDCP layer can be used as the first field in the packet header of the second data packet; the packet header of the RLC layer contains an SN field, when the network encoding is performed at the RLC layer, the SN field in the packet header of the RLC layer can be used as the first field in the packet header of the second data packet.

[0157] For example, the first protocol layer is a PDCP layer, and the first communication device can perform network encoding at the PDCP layer. The first communication device can split the original data packet into k first data packets of equal length for network encoding to generate n second data packets, and when adding the packet header of the second data packet, the PDCP SN field in the packet header of the original data packet can be used as the first field in the packet header of each second data packet, that is, the sequence number recorded in the PDCP SN field of the original data packet is used as the sequence number indicated in the packet header of each second data packet.

[0158] Based on the above embodiments, by taking the field for recording the sequence number in the first protocol layer packet header as the first field of the second packet header, the second packet can have the same sequence number, and the process of setting the second packet header is simplified.

[0159] In some embodiments, if the first protocol layer that performs network coding supports the segmentation function, the original data packet can be split into k first data packets using the segmentation function of the first protocol layer. In this case, the first protocol layer packet header can include a field for recording the segmentation offset (SO). When network coding is performed based on the k first data packets to generate n second data packets, the field for recording the segmentation offset in the first protocol layer packet header can be taken as the second field for indicating the first index in the second packet header.

[0160] In some embodiments, the first protocol layer is the RLC layer, and the first communication device can perform network coding at the RLC layer. The first communication device can segment the original data packet (RLC service data unit (SDU)) of the RLC layer into k first data packets (RLC SDU segments) based on the segmentation function of the RLC layer, and include an SO field for recording the segmentation offset in the packet header of the k first data packets. The SO field can be used to indicate the position of the first data packet RLC SDU segment in the original data packet RLC SDU. For example, the SO field can indicate that the first byte of the RLC SDU segment corresponds to the position in the original RLC SDU. The first byte of the original RLC SDU corresponds to the value of the SO field, which can be 0, i.e., the numbering of the segmentation offset can start from zero. After network coding is performed on the k first data packets to generate n second data packets, the SO field can be used as the second field for recording the first index in the second packet header. For the k original data packets in the n second data packets corresponding to the k first data packets, the SO field in the first data packet header can be directly taken as the second field in the original data packet header, and the segmentation offset indicated by the SO field can be taken as the first index of the original data packet. For the n-k verification data packets in the n second data packets, the same second field as the SO field can also be set in the verification data packet header to indicate the first index of the verification data packet. The value can be sequentially numbered according to the first index of the previous second data packet and the amount of data carried by the previous data packet, i.e., the verification data packet is concatenated as a virtual RLC SDU, and the SO field is used to indicate the position of the RLC SDU segment in the virtual RLC SDU.

[0161] For example, the first communication device adopts (5, 3) network coding at the RLC layer. The original data packet RLC SDU can be segmented into three first data packets A1, A2, A3 by using the segmentation function of the RLC layer, which respectively include symbols {s1, s2,..., s l}、{s l+1 ,s l+2 ,…,s 2l}、{s 2l+1 ,s 2l+2 ,…,s 3l};wherein the SN field and the SO field contained in the packet header of the three first data packets, wherein the values recorded by the SO field are 0, 1, 2l respectively. The three first data packets are network coded to generate five second data packets, including three original data packets and two verification data packets, wherein the packet header of the three original data packets and the two verification data packets can include the SN field as the first field and the SO field as the second field, wherein the first index recorded by the second field in the packet header of the three original data packets is the same as the value recorded by the SO field in the packet header of the corresponding first data packet, which are 0, 1, 2l respectively, and the first index recorded by the second field in the packet header of the two verification data packets can be 3l, 4l respectively.

[0162] Based on the above embodiment, when network coding is performed at the first protocol layer with the segmentation function, the SO field used to record the segmentation offset can be used as the second field in the packet header of the second data packet for recording the first index, and the verification data packet in the second data packet can be concatenated with the original data packet, thereby simplifying the packet header setting process of the second data packet.

[0163] In some embodiments, the packet header of the second data packet divided by network coding can be used to indicate the first information including the sequence number and the first index; and can also be used to indicate the second information related to network coding, which can include at least one of the following: whether there is a padding symbol; the number of the padding symbol; the number k of the first data packets; the number n of the second data packets; the number n-k of the verification data packets in the second data packets; whether network coding is used; the format of the packet header, and the like.

[0164] In some embodiments, the packet header of the second data packet generated by network coding can include the first field for indicating the sequence number and the second field for indicating the first index; and can also include the fields for indicating the above-mentioned second information respectively.

[0165] In some embodiments, when network coding is performed on the k first data packets, the k first data packets are required to be equal in length, i.e., the k first data packets carry the same amount of data, such as the same number of symbols. If the k first data packets carry different amounts of data, a certain number of padding symbols can be added.

[0166] In some embodiments, when the original data packet is split into k equal-length first data packets, if the length (amount of data) q of the original data packet is not an integer multiple of k, a certain number of padding symbols can be added. The number j of padding symbols can be set according to actual needs, for example, is a ceiling operator. The padding symbols can be used to generate corresponding verification data packets according to the coding method of network coding based on the k equal-length first data packets after splitting.

[0167] In some embodiments, the padding symbols can adopt a predetermined symbol, for example, element 0 in the finite field corresponding to network coding.

[0168] In some embodiments, the position of the added padding symbols can be set according to actual needs, for example, the padding symbols can be added before or after the data contained in the original data packet, i.e., the padding symbols can be added in the first first data packet or the last first data packet of the k first data packets. For the sake of simplicity, the last first data packet is taken as an example in the following embodiments.

[0169] In some embodiments, when the first communication device transmits the n second data packets generated by network coding to the second communication device, the first communication device can choose to transmit the padding symbols added in the original data packet or can choose not to transmit the padding symbols. In the case where the first communication device does not transmit the padding symbols, the second communication device needs to supplement the corresponding padding symbols in the second data packet to which the padding symbols are added by the first communication device before decoding the received m second data packets.

[0170] In some embodiments, if the first communication device chooses not to transmit the padding symbols, the header of the second data packet can not indicate the number of padding symbols, i.e., can not contain a field for indicating the number of padding symbols.

[0171] In some embodiments, in order to indicate to the second communication device whether padding symbols are added when network coding is performed, a field for indicating whether padding symbols exist and / or the number of padding symbols can be included in the header of the second data packet, so that the second communication device decodes the received m second data packets based on whether padding symbols exist and / or the number of padding symbols indicated in the header.

[0172] ​In the above embodiments, by indicating whether there is a padding symbol and / or the number of padding symbols in the packet header of the second data packet, the receiving end can be enabled to decode more accurately.

[0173] In some embodiments, in the case where the first communication device obtains k first data packets of equal length by adding padding symbols, when network coding is performed based on the k first data packets to generate n second data packets, and the first index indicated by the second field (SO field) in the packet header of each second data packet is determined, the number of padding symbols can or can not be considered. Where the number of padding symbols is considered, when calculating the first index indicated by the second field in the packet header of the verification data packet, the number of padding symbols added after the original data packet can be used for calculation, that is, the number of padding symbols is used to determine the first index corresponding to each second data packet. Where the number of padding symbols is not considered, when calculating the first index indicated by the second field in the packet header of the verification data packet, only the amount of data carried by the original data packet is used for calculation, that is, the first index corresponding to each second data packet is determined without adding padding symbols.

[0174] In some embodiments, the packet header of the second data packet generated by network coding can also be used to indicate the number k of first data packets before network coding. The number k of first data packets before network coding can be configured in a static or semi-static manner, or in a manner dynamically selected by the first communication device; where static means that the number k is configured in a manner predefined by the protocol; semi-static means that the number k is configured through relevant control signaling, such as a radio resource control (RRC) message, a downlink message carrying downlink control information (DCI) or a medium access control control element (MAC CE), etc. In the case of static or semi-static configuration, the number k of first data packets can not be indicated in the packet header of the second data packet; in the case of dynamic selection by the first communication device, the number k of first data packets can be indicated in the packet header of the second data packet.

[0175] In some embodiments, the packet header of the second data packet generated by network coding can also be used to indicate the number n of the second data packets after network coding. The number n of the second data packets after network coding can be configured in a static or semi-static manner, or in a manner dynamically selected by the first communication device. In the case of being configured in a static or semi-static manner, the number n of the second data packets can not be indicated in the packet header of the second data packet; in the case of being configured in a manner dynamically selected by the first communication device, the number n of the second data packets can be indicated in the packet header of the second data packet.

[0176] In some embodiments, the packet header of the second data packet generated by network coding can also be used to indicate the number n-k of the second data packets in which the data packet is verified.

[0177] In some embodiments, in the case of being configured in a static or semi-static manner for the number k of the first data packets and the number n of the second data packets, the number k of the first data packets, the number n of the second data packets, and the number n-k of the second data packets in which the data packet is verified can not be indicated in the packet header of the second data packet.

[0178] In some embodiments, in the case of being configured in a static or semi-static manner for the number k of the first data packets, and in a manner dynamically selected by the first communication device for the number n of the second data packets, the number n of the second data packets and / or the number n-k of the second data packets in which the data packet is verified can be indicated in the packet header of the second data packet.

[0179] In some embodiments, in the case of being configured in a static or semi-static manner for the number n of the second data packets, and in a manner dynamically selected by the first communication device for the number k of the first data packets, the number k of the first data packets and / or the number n-k of the second data packets in which the data packet is verified can be indicated in the packet header of the second data packet.

[0180] In some embodiments, in the case of generating n second data packets by network coding based on k first data packets, the network coding used can be coding with puncturing code characteristics. If (n-1, k) coding is a puncturing code of (n, k) coding, it means that n-1 second data packets generated by (n-1, k) coding can be obtained by deleting any verification data packet in n second data packets generated by (n, k) coding. In this case, even if the number n of the second data packets after network coding is dynamically selected by the first communication device, the number n of the second data packets does not need to be indicated in the packet header of the second data packet.

[0181] In some embodiments, in the case that the network coding adopted has the puncturing code characteristic, and the number k of the first data packets and the number n of the second data packets are both dynamically selected by the first communication device, the packet header of the second data packet can be used to indicate the number k of the first data packets, without the need to indicate the number n of the second data packets. The second communication device only needs to accurately receive k second data packets when decoding the received second data packets, and decodes according to the indicated first index in the packet header of the accurately received second data packets.

[0182] In some embodiments, the information indicated in the packet header of the second data packet generated by the network coding can be divided into two categories: first information and second information; wherein the first information is the information required to be indicated in the packet header of each second data packet, including the sequence number and the first index; the second information is the information that can be shared by all second data packets with the same sequence number, i.e. the information that is not required to be indicated in the packet header of each second data packet, including: whether there is a filler symbol; the number of the filler symbol; the number k of the first data packets; the number n of the second data packets; the number n-k of the second data packets of the verification data packet; whether network coding is used, etc.

[0183] In some embodiments, when n second data packets are generated by network coding, it can be required that the first information is indicated in the packet header of part of the second data packets, and the second information is not indicated; and the first information and the second information are indicated in the packet header of the remaining second data packets. For this purpose, two packet header formats can be defined in advance: a first format and a second format; wherein the packet header of the first format contains a field for indicating the first information, but does not contain a field for indicating the second information, the packet header of the second format contains a field for indicating the first information and the second information, in order to indicate which format is adopted for the packet header of the second data packet, a third field for indicating the format can also be included in the packet header, which can adopt 1 bit to indicate the first format or the second format.

[0184] In some embodiments, when n second data packets are generated by network coding, n1 second data packets with the packet header of the first format and n2 second data packets with the packet header of the second format can be determined in the n second data packets; wherein n = n1 + n2.

[0185] In some embodiments, in the case that the network coding employs an MDS code, since the second communication device only needs to accurately receive k second data packets in n second data packets to accurately recover the original data packet. In this case, the number n2 of second data packets in the n second data packets that employ the second format of packet header is required to be greater than or equal to n-k+1, that is, only n-k+1 second data packet headers are required to indicate the second information to ensure that, in the case that the second communication device accurately receives at least k second data packets, at least one of the accurately received second data packet headers indicates the second information. Equivalently, in the case that the second communication device accurately receives at least k second data packets, the first information and the second information can be accurately obtained, and the accurately received k second data packets are decoded based on the first information and the second information to accurately recover the original data packet.

[0186] In some embodiments, in the case that the network coding employs an MDS code, the number n1 of second data packets in the n second data packets that employ the first format of packet header is required to be less than or equal to k-1.

[0187] In some embodiments, for the network coding employing (n, k) coding to generate n second data packets, the first index of each second data packet can be sorted, and it can be determined based on the sorting which second data packet headers indicate the first information and which second data packet headers indicate the first information and the second information.

[0188] It can be specified that the packet headers of the first k-1 second data packets in the sorting indicate the first information or employ the first format, and the packet headers of the last n-k+1 second data packets in the sorting indicate the first information and the second information or employ the second format. For example, taking the value range of the first index i as 0≤i<n, it can be specified that the packet headers of the second data packets with the value range of the first index as 0≤i<k-1 indicate the first information or employ the first format, and the packet headers of the other second data packets (with the value range of the first index as k-1≤i<n) indicate the first information and the second information or employ the second format.

[0189] Alternatively, it can also be specified that the packet headers of the last k-1 second data packets in the sorting indicate the first information or employ the first format, and the packet headers of the first n-k+1 second data packets in the sorting indicate the first information and the second information or employ the second format. For example, taking the value range of the first index i as 0≤i<n, it can be specified that the packet headers of the second data packets with the value range of the first index as 0≤i<n-k+1 indicate the first information and the second information or employ the second format, and the packet headers of the other second data packets (with the value range of the first index as n-k+1≤i<n) indicate the first information or employ the first format.

[0190] In some embodiments, since k < n, n-k+1≥2, i.e. at least 2 packet headers of the second data packets are used to indicate the first information and the second information. For this purpose, it can be determined that the packet headers of the second data packets corresponding to certain first indexes are necessarily used to indicate the first information and the second information, and thus there is no need to set the third field for indicating the format of the packet header in the packet headers of these second data packets. For example, when it is determined that the packet headers of the data packets with the first indexes in the range of 0≤i<n-k+1 are used to indicate the first information and the second information, or adopt the second format, it can be specified that the packet headers of the second data packets with the first indexes of 0 and 1 are used to indicate the first information or the second information, or adopt the second format, and thus the third field for indicating the format of the packet header is set in the packet headers of the second data packets with the first indexes of 0 and 1.

[0191] In some embodiments, since k < n, when k > 1, n-k+1 < n, i.e. at least 1 packet header of the second data packets is used to indicate only the first information, or adopt the first format. Thus it can be determined that the packet headers of the second data packets corresponding to certain first indexes are necessarily used to indicate only the first information, and thus there is no need to set the third field for indicating the format of the packet header in the packet headers of these second data packets. For example, when it is determined that the packet headers of the second data packets with the first indexes in the range of n-k+1≤i<n are used to indicate the first information, or adopt the first format, it can be specified that the packet header of the second data packet with the first index of n-1 is used to indicate the first information, or adopt the first format.

[0192] In some embodiments, in the case that the third field for indicating the format of the packet header is set in the packet header of the second data packet when the n second data packets are generated by network coding, the packet header of the second data packet can further comprise a field for indicating a second index; wherein the second index is used to indicate the order of the second data packet in the second data packets with the same format of the packet header.

[0193] In some embodiments, the field for indicating the second index can be the second field, i.e. the second field for indicating the first index in the above-mentioned embodiments, for indicating the second field. In this case, the first index of the second data packet can be determined by the format of the packet header and the second index.

[0194] For example, the first index i of the second data packet generated by network coding can be in the range of 0≤i<n, and the header of the second data packet with the first index in the range of 0≤i<n-k+1 can be configured to indicate the first information and the second information, and the third field contained therein has a value of 1 bit (such as 0) for indicating the second format, while the header of the other second data packets (with the first index in the range of n-k+1≤i<n) is used to indicate the first information, and the third field contained therein has a value of 1 bit (such as 1) for indicating the first format. For the header with the third field having a value of 1, the second field i' contained therein has a value in the range of 0≤i'<k-1, and the corresponding second data packet has a first index i=i'+n-k+1 after network coding. In this way, the number of bits used by the second field can be saved, i.e., the second index i' indicated by the second field only needs to support indicating 0≤i'<max{k-1,n-k+1}, instead of indicating the first index i in the range of 0≤i<n.

[0195] In some embodiments, the header of the second data packet can be used to indicate whether network coding is used, i.e., the header can contain a field for indicating whether network coding is used. For the scenario where network coding can be dynamically enabled or disabled, the first communication device can use the mechanism of PDCP duplication to transmit multiple copies of the first data packet to the second communication device without using network coding. In this case, the header does not need to indicate information related to network coding, i.e., it does not need to include a field for indicating the first information and / or the second information (such as the first field for indicating the sequence number and the second field for indicating the first index, etc.), and therefore a field for indicating whether network coding is used or a field for indicating whether the header contains information related to network coding needs to be introduced in the header.

[0196] FIG. 3C shows a format of a header of a second data packet, which is an extension of the header of the 5G PDCP layer. The newly introduced fields include NC, k, i, filler, where the field NC (Network Coding) is a field for indicating whether network coding is used or a field for indicating whether the header contains information related to network coding. The field k is used to indicate the number of first data packets before network coding, i.e., the value of k when (n, k) coding is used; the field i is used to indicate the first index or the second index of the second data packet; the field filler is used to indicate the number of added filler symbols; and the PDCP SN field in the header of the PDCP layer is multiplexed to indicate the sequence number of the second data packet. The header also includes a field D / C for indicating whether control information or data is carried, a field Data for carrying data, and a field MAC-I for carrying verification information.

[0197] Embodiments of the present disclosure provide a network coding method. FIG. 4 is a schematic flowchart of a network coding method according to an embodiment of the present disclosure. The network coding method shown in the present embodiment can be performed by a second communication device, which can be a receiving end of data.

[0198] As shown in FIG. 4, the network coding method can include the following steps:

[0199] In step S401, at least one second data packet is received from a first communication device; wherein the at least one second data packet is generated by network coding of a first data packet by the first communication device; a packet header of the second data packet contains a field for indicating first information related to the network coding, the first information including a sequence number and a first index, the sequence number being used to indicate second data packets belonging to the same network coding, and the first index being used to indicate an order of the second data packet in the generated at least one second data packet.

[0200] In some embodiments, the second communication device can perform data transmission with the first communication device by using network coding. The second communication device can receive at least one second data packet from the first communication device, and the second data packet can be generated by network coding of a first data packet by the first communication device.

[0201] In step S402, first information related to the network coding is obtained from a packet header of the at least one second data packet, the first information including a sequence number and a first index, the sequence number being used to indicate second data packets belonging to the same network coding, and the first index being used to indicate an order of the second data packet in the generated at least one second data packet.

[0202] In some embodiments, the second communication device can obtain first information related to the network coding from a packet header of the second data packet, the first information including a sequence number of the second data packet and a first index of the second data packet after network coding; wherein second data packets generated by the same network coding have the same sequence number, and the first index can be used to indicate an order of each second data packet in the same network coding.

[0203] In step S403, based on the first information, the at least one second data packet is decoded corresponding to the network coding to generate the first data packet.

[0204] In some embodiments, the second communication device can decode the at least one second data packet corresponding to the network coding based on the first information related to the network coding obtained from the packet header of the received at least one second data packet, to recover the first data packet before network coding.

[0205] It should be noted that the embodiment shown in FIG. 4 can be independently implemented, or can be implemented in combination with at least one other embodiment of the present disclosure, which can be selected as needed, and the present disclosure does not limit.

[0206] Based on the above embodiment, the sending end can enable the receiving end to obtain the control information related to the network coding without accurately receiving all the second data packets by setting the sequence number and the first index related to the network coding in the packet header of the second data packet generated after network coding, and recover the first data packet by decoding the accurately received second data packet.

[0207] In some embodiments, the second communication device can receive m second data packets belonging to the same network coding from the first communication device, wherein the packet headers of the m second data packets all indicate the same sequence number. The m second data packets can be, in the case of network coding using (n, k) coding, m second data packets accurately received by the second communication device from n second data packets generated by the first communication device after network coding of k first data packets. Wherein k, n, m are positive integers; n is greater than k; m is greater than or equal to k and less than or equal to n.

[0208] The second communication device parses the packet header of the received m second data packets to obtain the first information related to the network coding, and decodes the m second data packets corresponding to the network coding based on the first information to generate the k first data packets.

[0209] If the network coding uses MDS code, the second communication device only needs to accurately receive at least k second data packets to accurately decode and recover the k first data packets.

[0210] In some embodiments, if the k first data packets are obtained by splitting one original data packet, the second communication device can further combine the k first data packets into the original data packet after decoding and recovering the k first data packets.

[0211] In some embodiments, the n second data packets can include k original data packets identical to the k first data packets and n-k check data packets generated based on the k original data packets.

[0212] In some embodiments, the first communication device can network code the k first data packets at the first protocol layer to generate n second data packets; accordingly, the second communication device needs to decode the m second data packets corresponding to the network coding at the first protocol layer to recover the k first data packets.

[0213] The first protocol layer in which network coding and decoding are performed can be determined according to actual protocol layer division, for example, a PDCP layer, an RLC layer, or an application layer, and the like.

[0214] In some embodiments, if the first protocol layer packet header includes a field for recording a sequence number, the field for recording the sequence number in the first protocol layer packet header can be used as the first field in the second packet header for indicating the sequence number, that is, the sequence number recorded in the first protocol layer packet header is equivalent to the sequence number indicated in the second packet header. Accordingly, when the second communication device receives the second packet, it can determine the first field in the second packet header for indicating the sequence number based on the field for recording the sequence number in the first protocol layer packet header, so as to obtain the sequence number of the second packet from the first field in the second packet header. For example, when the first protocol layer is a PDCP layer, the second communication device can obtain the sequence number of the second packet from the PDCP SN field in the second packet header; when the first protocol layer is an RLC layer, the second communication device can obtain the sequence number of the second packet from the SN field in the second packet header.

[0215] In some embodiments, if the first protocol layer in which network coding and decoding are performed supports segmentation, the second communication device can determine the second field in the second packet for indicating the first index based on the field for recording the segmentation offset in the first protocol layer packet header, and obtain the first index of the second packet from the second field.

[0216] In some embodiments, when the first protocol layer is an RLC layer, the second communication device can obtain the first index of the second packet from the SO field for recording the segmentation offset in the RLC layer packet header after receiving the second packet.

[0217] In some embodiments, the second communication device can also obtain the first information and the second information related to network coding from the packet headers of the m second packets received; the first information can include the sequence number and the first index of the second packet; the second information can include at least one of the following: whether there is a padding symbol; the number of padding symbols; the number k of the first packets; the number n of the second packets; the number n-k of the verification packets in the second packets; whether network coding is used; and the format of the packet header.

[0218] In some embodiments, the packet header of the second packet generated by network coding can include a first field for indicating the sequence number and a second field for indicating the first index; and can also include fields for indicating the second information, respectively.

[0219] In some embodiments, the first index of the second data packet is determined based on the number of padding symbols.

[0220] In some embodiments, the network coding has a puncturing code property, and the number k of the first data packets before the network coding and the number n of the second data packets after the network coding are dynamically selected by the first communication device, and the header of the second data packet does not contain a field for indicating the number n of the second data packets.

[0221] In some embodiments, the format of the header of the second data packet includes a first format and a second format; wherein the header of the first format contains a field for indicating the first information but does not contain a field for indicating the second information, and the header of the second format contains a field for indicating the first information and the second information.

[0222] In some embodiments, the second communication device can determine, after receiving m second data packets from the first communication device, the second data packet with the header of the first format and the second data packet with the header of the second format among the m second data packets.

[0223] In some embodiments, the header of the second data packet contains a second field for indicating a second index and a third field for indicating the format of the header; wherein the second index is used to indicate the order of the second data packet among the second data packets with the header of the same format; and the first index is determined by the format of the header and the second index.

[0224] In some embodiments, the names of information and the like are not limited to the names described in the embodiments, and the terms of "information", "message", "signal", "signaling", "report", "configuration", "indication", "instruction", "command", "channel", "parameter", "domain", "field", "symbol", "codebook", "codeword", "codepoint", "bit", "data", "program", "chip", and the like can be replaced with each other.

[0225] In some embodiments, the terms "moment", "time point", "time", "time position" and the like can be replaced with each other, and the terms "duration", "time period", "time window", "window", "time" and the like can be replaced with each other.

[0226] In some embodiments, the terms "component carrier (CC)", "cell", "frequency carrier", "carrier frequency" and the like can be replaced with each other.

[0227] In some embodiments, the terms "acquire", "obtain", "get", "receive", "transmit", "bidirectional transmission", "send and / or receive" and the like can be replaced with each other, which can be interpreted as receiving from other subjects, acquiring from protocols, acquiring from higher layers, obtaining by self-processing, implementing autonomously and the like.

[0228] In some embodiments, the terms "send", "transmit", "report", "issue", "transmit", "bidirectional transmission", "send and / or receive" and the like can be replaced with each other.

[0229] Corresponding to the foregoing embodiments of the network coding method, the present disclosure also provides embodiments of a first communication device and a second communication device.

[0230] Embodiments of the present disclosure also propose a first communication device, comprising: one or more processors; a memory coupled to the processors, the memory having stored thereon executable instructions that, when executed by the processors, cause the first communication device to perform the network coding method described in the above embodiments.

[0231] FIG. 5 is a schematic block diagram of an apparatus structure of a first communication device according to an embodiment of the present disclosure. As shown in FIG. 5, the first communication device can be a network coding apparatus, and the apparatus includes a processing module 501 and a transceiver module 502.

[0232] In some embodiments, the processing module 501 is configured to perform network coding on a first data packet to generate at least one second data packet; wherein a packet header of the second data packet includes a field for indicating first information related to the network coding, and the first information includes a sequence number and a first index, the sequence number is used to indicate second data packets belonging to the same network coding, and the first index is used to indicate the order of the second data packet in the generated at least one second data packet; and the transceiver module 502 is configured to send the at least one second data packet to a second communication device.

[0233] In some embodiments, the processing module 501 is configured to obtain k first data packets, where k is a positive integer; perform network coding based on the k first data packets to generate n second data packets, where n is a positive integer greater than k; and indicate the same sequence number in the packet header of each of the n second data packets.

[0234] In some embodiments, the n second data packets include k original data packets that are the same as the k first data packets, and n-k check data packets generated based on the k original data packets.

[0235] In some embodiments, the packet header of the second data packet includes a first field for indicating the sequence number, where the first field is a field for recording a sequence number included in the packet header of a first protocol layer at which the network coding is performed.

[0236] In some embodiments, the first protocol layer is a packet data convergence protocol (PDCP) layer or a radio link control (RLC) layer.

[0237] In some embodiments, the first protocol layer is an RLC layer, and the packet header of the second data packet includes a second field for indicating the first index, where the second field is a field for recording a segment offset included in the packet header of the RLC layer.

[0238] In some embodiments, the packet header of the second data packet further includes a field for indicating second information related to the network coding, where the second information includes at least one of the following: whether there is a padding symbol; the number of padding symbols; the number k of first data packets; the number n of second data packets; the number n-k of check data packets in the second data packets; whether network coding is used; and the format of the packet header.

[0239] In some embodiments, the processing module 501 is further configured to determine the first index of the second data packet based on the number of padding symbols.

[0240] In some embodiments, the processing module 501 is further configured to select at least one of the following: the number k of first data packets before the network coding; the number n of second data packets after the network coding; and the number n-k of check data packets in the second data packets after the network coding.

[0241] In some embodiments, the network coding has a puncturing code characteristic, and the number k of first data packets before the network coding and the number n of second data packets after the network coding are dynamically selected by the first communication device, and the packet header of the second data packet does not include a field for indicating the number n of second data packets.

[0242] In some embodiments, the format of the packet header of the second data packet comprises: a first format and a second format; wherein the packet header of the first format contains a field for indicating the first information, but does not contain a field for indicating the second information, and the packet header of the second format contains a field for indicating the first information and the second information.

[0243] In some embodiments, the processing module 501 is further configured to determine, from the n second data packets, a second data packet with a packet header in the first format and a second data packet with a packet header in the second format.

[0244] In some embodiments, the number of second data packets with a packet header in the second format from the n second data packets is greater than or equal to n-k+1.

[0245] In some embodiments, the number of second data packets with a packet header in the first format from the n second data packets is less than or equal to k-1.

[0246] In some embodiments, the packet header of the second data packet contains a second field for indicating a second index and a third field for indicating the format of the packet header; wherein the second index is used to indicate the order of the second data packet in the second data packets with the same format of packet header; and the first index is determined by the format of the packet header and the second index.

[0247] In some embodiments, when transmitting the n second data packets to the second communication device, if no padding symbol contained in the second data packet is transmitted, the packet header of the second data packet does not contain a field for indicating the number of the padding symbol.

[0248] It should be noted that the modules contained in the first communication device are not limited to the modules described in the above embodiments, and can also include other modules, such as a storage module, a display module, etc.

[0249] Embodiments of the present disclosure also propose a second communication device, comprising: one or more processors; a memory coupled to the processors, the memory having stored thereon executable instructions that, when executed by the processors, cause the second communication device to perform the network coding method described in the above embodiments.

[0250] FIG. 6 is a schematic block diagram of an apparatus structure of a second communication device according to an embodiment of the present disclosure. As shown in FIG. 6, the second communication device can be a network coding apparatus, and the apparatus comprises a processing module 601 and a transceiver module 602.

[0251] In some embodiments, the transceiver 602 is configured to receive at least one second data packet from a first communication device; wherein the at least one second data packet is generated by the first communication device after network coding of the first data packet; the processing module 601 is configured to obtain first information related to the network coding from a packet header of the at least one second data packet, and based on the first information, perform decoding corresponding to the network coding on the at least one second data packet to generate the first data packet; wherein the first information includes a sequence number and a first index, the sequence number is used to indicate second data packets belonging to the same network coding, and the first index is used to indicate the order of the second data packet in the generated at least one second data packet.

[0252] In some embodiments, the transceiver 602 is configured to receive m second data packets from a first communication device; wherein the m second data packets are m second data packets in n second data packets generated by the first communication device after network coding of k first data packets; the packet headers of the n second data packets all indicate the same sequence number; k, n, and m are positive integers; n is greater than k; m is greater than or equal to k and less than or equal to n; the processing module 601 is configured to obtain first information related to the network coding from the packet headers of the m second data packets; and based on the first information, perform decoding corresponding to the network coding on the m second data packets to generate the k first data packets.

[0253] In some embodiments, the n second data packets include k original data packets identical to the k first data packets and n-k check data packets generated based on the k original data packets.

[0254] In some embodiments, the packet header of the second data packet includes a first field used to indicate the sequence number, and the first field is a field used to record the sequence number included in the packet header of a first protocol layer where the decoding corresponding to the network coding is performed.

[0255] In some embodiments, the first protocol layer is a packet data convergence protocol (PDCP) layer or a radio link control (RLC) layer.

[0256] In some embodiments, the first protocol layer is an RLC layer, and the packet header of the second data packet includes a second field used to indicate the first index, and the second field is a field used to record a segment offset included in the packet header of the RLC layer.

[0257] In some embodiments, the processing module 601 is further configured to obtain second information related to the network coding from the packet header of the m second data packets, the second information comprising at least one of the following: whether there is a padding symbol; the number of padding symbols; the number k of the first data packets; the number n of the second data packets; the number n-k of the second data packets that are check data packets; whether the network coding is used; and the format of the packet header.

[0258] In some embodiments, the first index of the second data packets is determined based on the number of padding symbols.

[0259] In some embodiments, the network coding has a punctured code characteristic, and the number k of the first data packets before the network coding and the number n of the second data packets after the network coding are dynamically selected by the first communication device, and the packet header of the second data packets does not contain a field for indicating the number n of the second data packets.

[0260] In some embodiments, the format of the packet header of the second data packets comprises a first format and a second format, wherein the packet header of the first format contains a field for indicating the first information but does not contain a field for indicating the second information, and the packet header of the second format contains a field for indicating the first information and the second information.

[0261] In some embodiments, the processing module 601 is further configured to determine, among the m second data packets, second data packets with the packet header of the first format and second data packets with the packet header of the second format.

[0262] In some embodiments, the packet header of the second data packets contains a second field for indicating a second index and a third field for indicating the format of the packet header, wherein the second index is used to indicate the order of the second data packet among second data packets with the same format of the packet header, and the first index is determined based on the format of the packet header and the second index.

[0263] It should be noted that the modules included in the second communication device are not limited to the modules described in the above embodiments, and can also include other modules, such as a storage module, a display module, etc.

[0264] For the apparatus embodiment, since it basically corresponds to the method embodiment, the relevant part can be seen from the part of the method embodiment. The apparatus embodiment described above is only illustrative, wherein the modules described as separate components can or can not be physically separated, and the components displayed as modules can or can not be physical modules, i.e., can be located in one place or distributed to multiple network modules. Part or all of the modules can be selected to achieve the purpose of the embodiment according to actual needs. Those skilled in the art can understand and implement it without creative labor.

[0265] The embodiments of the present disclosure also propose a communication device, comprising: one or more processors; a memory coupled to the processors, the memory having stored thereon executable instructions that, when executed by the processors, cause the processors to invoke the executable instructions to cause the communication device to perform the network coding method described in the optional embodiments.

[0266] The embodiments of the present disclosure also propose a communication system, comprising a first communication device and a second communication device, wherein the first communication device is configured to implement the network coding method described in the optional embodiments, and the second communication device is configured to implement the network coding method described in the optional embodiments.

[0267] The embodiments of the present disclosure also propose a storage medium, the storage medium storing instructions that, when executed on a communication device, cause the communication device to perform the network coding method described in the optional embodiments.

[0268] The embodiments of the present disclosure also propose an apparatus for implementing any of the above methods, for example, an apparatus comprising units or modules for implementing the steps performed by a terminal in any of the above methods. For another example, another apparatus comprising units or modules for implementing the steps performed by a network device (such as an access network device, a core network function node, a core network device, etc.) in any of the above methods.

[0269] It should be understood that the division of each unit or module in the above apparatus is only a logical function division, and all or part of them can be integrated into a physical entity or physically separated in actual implementation. In addition, the units or modules in the apparatus can be implemented in the form of processor calling software: for example, the apparatus includes a processor connected with a memory, the memory stores instructions, and the processor calls the instructions stored in the memory to implement any of the above methods or realize the functions of each unit or module of the above apparatus, wherein the processor is, for example, a general processor such as a central processing unit (CPU) or a microprocessor, and the memory is a memory in the apparatus or a memory outside the apparatus. Alternatively, the units or modules in the apparatus can be implemented in the form of hardware circuit, and the functions of part or all of the units or modules can be realized by the design of hardware circuit. The above hardware circuit can be understood as one or more processors; for example, in one implementation, the above hardware circuit is an application-specific integrated circuit (ASIC), and the functions of part or all of the above units or modules are realized by the design of the logical relationship of elements in the circuit; for example, in another implementation, the above hardware circuit is a programmable logic device (PLD), and a field programmable gate array (FPGA) is taken as an example, which can include a large number of logic gate circuits, and the connection relationship between the logic gate circuits is configured by a configuration file, so as to realize the functions of part or all of the above units or modules. All units or modules of the above apparatus can be implemented in the form of processor calling software, or all units or modules can be implemented in the form of hardware circuit, or part of the units or modules are implemented in the form of processor calling software, and the remaining part is implemented in the form of hardware circuit.

[0270] In the embodiments of the present disclosure, the processor is a circuit with signal processing capability. In one implementation, the processor can be a circuit with instruction reading and running capability, such as a central processing unit (CPU), a microprocessor, a graphics processing unit (GPU) (which can be understood as a microprocessor), a digital signal processor (DSP), or the like. In another implementation, the processor can implement certain functions through a logical relationship of a hardware circuit, and the logical relationship of the hardware circuit is fixed or can be reconfigured. For example, the processor is a hardware circuit implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), such as an FPGA. In the reconfigurable hardware circuit, the processor loads a configuration document to implement the configuration of the hardware circuit. It can be understood that the processor loads instructions to implement the functions of the above part or all units or modules. In addition, the hardware circuit can also be designed for artificial intelligence, which can be understood as an ASIC, such as a neural network processing unit (NPU), a tensor processing unit (TPU), a deep learning processing unit (DPU), and the like.

[0271] FIG. 7 is a structural schematic diagram of a communication device 7100 according to the embodiments of the present disclosure. The communication device 7100 can be a network device (for example, an access network device, a core network device, or the like), a terminal (for example, a user equipment or the like), a chip, a chip system, or a processor supporting the implementation of the above method by the network device, a chip, a chip system, or a processor supporting the implementation of the above method by the terminal, and the like. The communication device 7100 can be used to implement the methods described in the above method embodiments, and details can be referred to the descriptions in the above method embodiments.

[0272] As shown in FIG. 7, the communication device 7100 includes one or more processors 7101. The processor 7101 can be a general-purpose processor or a special-purpose processor, for example, a baseband processor or a central processing unit. The baseband processor can be used to process communication protocols and communication data, and the central processing unit can be used to control a communication device (for example, a base station, a baseband chip, a terminal device, a terminal device chip, a DU or a CU, or the like), execute a program, and process data of the program. The processor 7101 is used to call instructions to enable the communication device 7100 to perform any of the above methods.

[0273] In some embodiments, the communication device 7100 further includes one or more memories 7102 for storing instructions. Optionally, all or part of the memories 7102 can also be outside the communication device 7100.

[0274] In some embodiments, the communication device 7100 further includes one or more transceivers 7103. When the communication device 7100 includes one or more transceivers 7103, the communication steps such as sending and receiving in the above methods are performed by the transceiver 7103, and other steps are performed by the processor 7101.

[0275] In some embodiments, the transceiver can include a receiver and a transmitter, which can be separate or integrated together. Optionally, the terms transceiver, transceiving unit, transceiver, transceiving circuit, etc. can be replaced with each other, the terms transmitter, transmitting unit, transmitter, transmitting circuit, etc. can be replaced with each other, and the terms receiver, receiving unit, receiver, receiving circuit, etc. can be replaced with each other.

[0276] Optionally, the communication device 7100 further includes one or more interface circuits 7104, which are connected with the memory 7102, and can be used to receive signals from the memory 7102 or other devices, and can be used to send signals to the memory 7102 or other devices. For example, the interface circuit 7104 can read the instructions stored in the memory 7102 and send the instructions to the processor 7101.

[0277] The communication device 7100 described in the above embodiments can be a network device or a terminal, but the scope of the communication device 7100 described in the present disclosure is not limited to this, and the structure of the communication device 7100 can not be limited to the structure shown in Figure 7. The communication device can be a stand-alone device or can be part of a larger device. For example, the communication device can be: (1) a stand-alone integrated circuit (IC), or a chip, or a chip system or subsystem; (2) a set of one or more ICs, optionally, the set of ICs can also include storage components for storing data, programs; (3) an ASIC, such as a Modem; (4) a module that can be embedded in other devices; (5) a receiver, a terminal device, a smart terminal device, a cellular phone, a wireless device, a handset, a mobile unit, a vehicle-mounted device, a network device, a cloud device, an artificial intelligence device, etc.; (6) other, etc.

[0278] Figure 8 is a structural schematic diagram of a chip 8200 according to an embodiment of the present disclosure. For the case where the communication device 7100 is a chip or a chip system, the structural schematic diagram of the chip 8200 shown in Figure 8 can be referred to, but is not limited to this.

[0279] The chip 8200 comprises one or more processors 8201 configured to invoke instructions to cause the chip 8200 to perform any of the above methods.

[0280] In some embodiments, the chip 8200 further comprises one or more interface circuits 8202 connected with the memory 8203, which can be configured to receive signals from the memory 8203 or other devices, and transmit signals to the memory 8203 or other devices. For example, the interface circuit 8202 can read instructions stored in the memory 8203 and transmit the instructions to the processor 8201. Alternatively, the terms interface circuit, interface, transceiver pin, transceiver, etc. can be replaced by each other.

[0281] For example, the interface circuit 8202 can read instructions stored in the memory 8203 and transmit the instructions to the processor 8201. Alternatively, the terms interface circuit, interface, transceiver pin, transceiver, etc. can be replaced by each other.

[0282] In some embodiments, the chip 8200 further comprises one or more memories 8203 configured to store instructions. Alternatively, all or part of the memory 8203 can be outside the chip 8200.

[0283] The disclosure also proposes a storage medium having instructions stored thereon, which, when executed on the communication device 7100, causes the communication device 7100 to perform any of the above methods. Alternatively, the storage medium is an electronic storage medium. Alternatively, the storage medium is a computer readable storage medium, but is not limited to this, and it can also be a storage medium readable by other devices. Alternatively, the storage medium can be a non-transitory storage medium, but is not limited to this, and it can also be a transitory storage medium.

[0284] The disclosure also proposes a program product, which, when executed by the communication device 7100, causes the communication device 7100 to perform any of the above methods. Alternatively, the program product is a computer program product.

[0285] The disclosure also proposes a computer program, which, when executed on a computer, causes the computer to perform any of the above methods.

Claims

1. A network coding method, characterized in that, Performed by a first communication device, the method includes: The first data packet is network encoded to generate at least one second data packet; wherein the header of the second data packet contains a field for indicating first information related to the network encoding, the first information including a sequence number and a first index, the sequence number being used to indicate the second data packet belonging to the same network encoding, and the first index being used to indicate the order of the second data packet in the generated at least one second data packet; Send the at least one second data packet to the second communication device.

2. The method according to claim 1, characterized in that, The step of performing network encoding on the first data packet to generate at least one second data packet includes: Obtain k first data packets; where k is a positive integer; Network encoding is performed on the k first data packets to generate n second data packets; where n is a positive integer greater than k; the headers of the n second data packets all indicate the same sequence number.

3. The method according to claim 2, characterized in that, The n second data packets include: k original data packets that are identical to the k first data packets and nk verification data packets generated based on the k original data packets.

4. The method according to claim 2 or 3, characterized in that, The header of the second data packet contains a first field for indicating the sequence number. The first field is a field for recording the sequence number contained in the header of the first protocol layer where the network encoding is located.

5. The method according to claim 4, characterized in that, The first protocol layer is either the Packet Data Convergence Protocol (PDCP) layer or the Radio Link Control (RLC) layer.

6. The method according to claim 4, characterized in that, The first protocol layer is the RLC layer, and the header of the second data packet contains a second field for indicating the first index. The second field is a field in the header of the RLC layer for recording the segment offset.

7. The method according to any one of claims 2-6, characterized in that, The header of the second data packet also includes a field for indicating second information related to the network encoding, the second information including at least one of the following: Does a fill symbol exist? The number of filler symbols; The number of the first data packets, k; The number of the second data packets, n; The number of data packets checked in the second data packet is nk; Whether network coding was used; The format of the header.

8. The method according to claim 7, characterized in that, After performing network encoding on the k first data packets to generate n second data packets, the method further includes: The first index of the second data packet is determined based on the number of padding symbols.

9. The method according to claim 7, characterized in that, The first communication device dynamically selects at least one of the following information: The number of the first data packets before network encoding, k; The number n of the second data packets after network encoding; The number of check packets nk in the second data packet after network encoding.

10. The method according to claim 7, characterized in that, The network encoding has punched code characteristics. The number of first data packets k before network encoding and the number of second data packets n after network encoding are dynamically selected by the first communication device. The header of the second data packet does not contain a field indicating the number n of the second data packets.

11. The method according to claim 7, characterized in that, The header format of the second data packet includes: a first format and a second format; wherein the header of the first format includes a field for indicating the first information, but does not include a field for indicating the second information, and the header of the second format includes a field for indicating the first information and the second information.

12. The method according to claim 7, characterized in that, After generating n second data packets, the method further includes: Among the n second data packets, determine the second data packet with the first format header and the second data packet with the second format header.

13. The method according to claim 12, characterized in that, The number of second data packets using the second format header among the n second data packets is greater than or equal to n-k+1.

14. The method according to claim 12, characterized in that, The number of second data packets using the first format header among the n second data packets is less than or equal to k-1.

15. The method according to claim 7, characterized in that, The header of the second data packet includes a second field for indicating a second index and a third field for indicating the format of the header; wherein the second index is used to indicate the order of the second data packet in the second data packets using headers with the same format; the first index is determined by the format of the header and the second index.

16. The method according to claim 7, characterized in that, When sending the n second data packets to the second communication device, if the padding symbols contained in the second data packets are not transmitted, then the header of the second data packets does not contain a field indicating the number of padding symbols.

17. A method for network coding, characterized in that, Performed by a second communication device, the method includes: Receive at least one second data packet from the first communication device; wherein the at least one second data packet is generated by the first communication device after performing network encoding on the first data packet; First information related to the network encoding is obtained from the header of the at least one second data packet; wherein the first information includes a sequence number and a first index, the sequence number being used to indicate the second data packet belonging to the same network encoding, and the first index being used to indicate the order of the second data packet in the at least one generated second data packet; Based on the first information, the at least one second data packet is decoded in accordance with the network encoding to generate the first data packet.

18. The method according to claim 17, characterized in that, Receiving at least one second data packet from the first communication device includes: Receive m second data packets from the first communication device; wherein, the m second data packets are those received by the first... A communication device generates m second data packets from n second data packets after network encoding k first data packets; the headers of the n second data packets all indicate the same sequence number; k, n, and m are positive integers; n is greater than k; m is greater than or equal to k and less than or equal to n; The step of obtaining the first information related to the network encoding from the header of the at least one second data packet includes: Obtain first information related to the network encoding from the headers of the m second data packets; The step of decoding the at least one second data packet according to the network encoding based on the first information to generate the first data packet includes: Based on the first information, the m second data packets are decoded according to the network encoding to generate the k first data packets.

19. The method according to claim 18, characterized in that, The n second data packets include: k original data packets that are identical to the k first data packets and nk verification data packets generated based on the k original data packets.

20. The method according to claim 18 or 19, characterized in that, The header of the second data packet includes a first field for indicating the sequence number. The first field is a field for recording the sequence number included in the header of the first protocol layer where the decoding corresponding to the network encoding is located.

21. The method according to claim 20, characterized in that, The first protocol layer is either the Packet Data Convergence Protocol (PDCP) layer or the Radio Link Control (RLC) layer.

22. The method according to claim 20, characterized in that, The first protocol layer is the RLC layer, and the header of the second data packet contains a second field for indicating the first index. The second field is a field in the header of the RLC layer for recording the segment offset.

23. The method according to any one of claims 18-22, characterized in that, The method further includes: Second information related to the network encoding is obtained from the headers of the m second data packets, the second information including at least one of the following: Does a fill symbol exist? The number of filler symbols; The number of the first data packets, k; The number of the second data packets, n; The number of data packets checked in the second data packet is nk; Whether network coding was used; The format of the header.

24. The method according to claim 23, characterized in that, The first index of the second data packet is determined based on the number of padding symbols.

25. The method according to claim 23, characterized in that, The network encoding has punched code characteristics. The number of first data packets k before network encoding and the number of second data packets n after network encoding are dynamically selected by the first communication device. The header of the second data packet does not contain a field indicating the number n of the second data packets.

26. The method according to claim 23, characterized in that, The header format of the second data packet includes: a first format and a second format; wherein the header of the first format includes a field for indicating the first information, but does not include a field for indicating the second information, and the header of the second format includes a field for indicating the first information and the second information.

27. The method according to claim 23, characterized in that, After receiving m second data packets from the first communication device, the method further includes: Among the m second data packets, determine the second data packet with the first format header and the second data packet with the second format header.

28. The method according to claim 23, characterized in that, The header of the second data packet includes a second field for indicating a second index and a third field for indicating the format of the header; wherein the second index is used to indicate the order of the second data packet in the second data packets using headers with the same format; the first index is determined by the format of the header and the second index.

29. A network coding apparatus, characterized in that, include: A processing module is configured to perform network encoding on a first data packet to generate at least one second data packet; wherein the header of the second data packet contains a field for indicating first information related to the network encoding, the first information including a sequence number and a first index, the sequence number being used to indicate a second data packet belonging to the same network encoding, and the first index being used to indicate the order of the second data packet in the generated at least one second data packet; A transceiver module is used to send the at least one second data packet to a second communication device.

30. A network coding apparatus, characterized in that, include: A transceiver module is configured to receive at least one second data packet from a first communication device; wherein the at least one second data packet is generated by the first communication device after performing network encoding on a first data packet; A processing module is configured to obtain first information related to the network encoding from the header of the at least one second data packet, and based on the first information, decode the at least one second data packet corresponding to the network encoding to generate the first data packet; wherein, the first information includes a sequence number and a first index, the sequence number is used to indicate the second data packet belonging to the same network encoding, and the first index is used to indicate the order of the second data packet in the generated at least one second data packet.

31. A first communication device, characterized in that, include: One or more processors; A memory coupled to the processor stores executable instructions, wherein when executed by the processor, the executable instructions cause the terminal to perform the network coding method according to any one of claims 1-16.

32. A second communication device, characterized in that, include: One or more processors; A memory coupled to the processor stores executable instructions, wherein when executed by the processor, the executable instructions cause the network device to perform the network coding method of any one of claims 17-28.

33. A communication device, characterized in that, include: One or more processors; A memory coupled to the processor stores executable instructions, wherein when executed by the processor, the executable instructions cause the processor to invoke instructions to cause the communication device to perform rights. The network coding method according to any one of claims 1-16, and / or the network coding method according to any one of claims 17-28.

34. A communication system, characterized in that, The device includes a first communication device and a second communication device, wherein the first communication device is configured to implement the network coding method according to any one of claims 1-16, and the second communication device is configured to implement the network coding method according to any one of claims 17-28.

35. A storage medium storing instructions, characterized in that, When the instruction is executed on the communication device, the communication device performs the network coding method of any one of claims 1-16 and / or the network coding method of any one of claims 17-28.

Citation Information

Patent Citations

  • Communication method and device

    CN113395130A

  • Data processing method and device

    CN115225200A

  • Data coding method and communication device

    CN116318524A

  • Communication method and device

    CN116418452A

  • Encoding method and communication device

    WO2021208581A1