WO2013017077A1 - Method for coding thereof related device and communication system - Google Patents

Method for coding thereof related device and communication system Download PDF

Info

Publication number
WO2013017077A1
WO2013017077A1 PCT/CN2012/079469 CN2012079469W WO2013017077A1 WO 2013017077 A1 WO2013017077 A1 WO 2013017077A1 CN 2012079469 W CN2012079469 W CN 2012079469W WO 2013017077 A1 WO2013017077 A1 WO 2013017077A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
dncp
packet
header
coefficient vector
Prior art date
Application number
PCT/CN2012/079469
Other languages
French (fr)
Chinese (zh)
Inventor
李挥
李江
张明龙
周艳
赵书江
魏凯
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2013017077A1 publication Critical patent/WO2013017077A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding

Definitions

  • NC Network Coding
  • the routing switch on the traditional communication network node only performs the "store-and-forward" function, and regards the information as "goods", so that the information is considered to be non-superimposable.
  • This cognitive limitation makes it difficult for the network to achieve maximum streaming.
  • the NC indicates that if the routing switch is allowed to encode multiple incoming streams and then send it, the network communication can achieve maximum streaming.
  • the industry proposes a coding scheme for a single source to multiple receiving point scenes, which is based on the idea of dividing a data packet, and transmitting the divided data packet after network coding.
  • Embodiments of the present invention provide a codec method, a related device, and a communication system, with a view to improving The flexibility of network codec reduces the complexity of network node codec.
  • An encoding method including:
  • the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field;
  • the first linearly encoded data packet is encapsulated by a dual source network coding protocol (DNCP) to obtain a first DNCP data packet, where the DNCP header of the first DNCP data packet includes an identifier of the first source, An identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the coding coefficient vector; performing IP encapsulation on the first DNCP data packet
  • the third IP packet is obtained and sent.
  • An encoding method including:
  • the IP layer payloads of the six IP data packets and the fifth IP data packet both contain a dual source network coding protocol DNCP data packet, and the DNCP header of the DNCP data packet in the IP layer payload of the sixth IP data packet includes two The source identifier and the two IP packet identifiers are the same as the two source identifiers and the two IP packet identifiers included in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet, and are limited. Randomly selecting a coding coefficient vector for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload in the domain;
  • a decoding method including:
  • the IP layer payload of the received IP data packet includes a dual source network coding protocol DNCP data packet
  • the DNCP data packet is stored in the buffer area
  • the DNCP data packet stored in the buffer area reaches a preset number, the DNCP data packet is read from the buffer area;
  • the DNCP header of the read DNCP data packet includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, whether the DNCP header is present in the buffer area
  • Another DNCP packet containing the two source identifiers and two IP packet identifiers, if any, reads the other DNCP packet from the buffer area, wherein the DNCP header of the other DNCP packet Also including another set of coding coefficient vector information related to the coding coefficient vector;
  • the load of the read DNCP packet is randomly linearly decoded using the two sets of coding coefficient vector information.
  • An encoding device comprising:
  • a first receiving module configured to receive a first Internet Protocol IP data packet from the first source
  • a first encoding coefficient selection module configured to: after the first receiving module receives the first IP data packet, Receiving a second IP data packet from the second source within a set duration, and the first IP data packet and the second IP data packet have the same destination address, respectively, the first in the finite field
  • the IP data packet and the second IP data packet randomly select a coding coefficient vector
  • An encoding module configured to use the first coding coefficient selection module to randomly select a coding coefficient Performing random linear coding on the first IP data packet and the second IP data packet to obtain a first linear encoded data packet;
  • a DNCP encapsulation module configured to perform a DNCP encapsulation of the first linearly encoded data packet by using a dual source network coding protocol (DNCP), where a DNCP header of the first DNCP data packet includes an identifier of the first source And an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the coding coefficient vector;
  • DNCP dual source network coding protocol
  • the IP encapsulation module is configured to perform IP encapsulation on the first DNCP data packet obtained by the DNCP encapsulation module to obtain a third IP data packet and send the same.
  • An encoding device comprising:
  • a second receiving module configured to receive a fifth internet protocol IP data packet
  • a second coding coefficient selection module configured to: if the second receiving module receives the sixth IP data packet within a set duration after receiving the fifth IP data packet, and the sixth IP data packet and the first The destination addresses of the five IP data packets are the same, and the IP layer payloads of the sixth IP data packet and the fifth IP data packet both include a dual source network coding protocol DNCP data packet, and the sixth IP data packet IP address Two source identifiers and two IP packet identifiers included in the DNCP header of the DNCP packet in the layer payload, and two sources included in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet The identifier and the two IP data packet identifiers are the same, and the coding coefficient vector is randomly selected in the finite field for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload respectively;
  • An encoding module configured to perform random linear coding on a load of the DNCP data packet in the fifth IP data packet and the IP layer payload of the sixth IP data packet by using a coding coefficient vector randomly selected by the coding coefficient selection module a second linearly encoded data packet;
  • a DNCP encapsulating module configured to perform DNCP encapsulation on a second linearly encoded data packet obtained by the encoding module to obtain a third DNCP data packet, where a DNCP packet header of the third DNCP data packet includes the two source identifiers, The two IP data packet identifiers and the Coding coefficient vector correlation coding coefficient vector information;
  • the IP encapsulation module is configured to perform IP encapsulation on the third DNCP data packet obtained by the DNCP encapsulation module to obtain a seventh IP data packet and send the same.
  • An encoding device comprising:
  • An IP layer module configured to receive a first Internet Protocol IP data packet from the first source
  • a DNCP layer module configured to receive, by the IP layer module, a second IP data packet from a second source within a set duration after receiving the first IP data packet, and the first IP data packet And the same as the destination address of the second IP data packet, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field;
  • An IP data packet and the second IP data packet are randomly linearly encoded to obtain a first linearly encoded data packet; and the first linearly encoded data packet is encapsulated by a dual source network coding protocol (DNCP) to obtain a first DNCP data packet, where
  • the DNCP header of the first DNCP data packet includes an identifier of the first source, an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and Coding coefficient vector information related to the coding coefficient vector; performing IP encapsulation on the first DNCP data packet to obtain a third IP data packet;
  • the IP layer module is further configured to send the third IP data packet obtained by the DNCP layer module.
  • a decoding device comprising:
  • a third receiving module configured to receive an internet protocol IP data packet
  • a first storage module configured to: when the IP layer payload of the IP data packet received by the third receiving module includes a DNCP data packet, store the DNCP data packet into a buffer area;
  • a first reading module configured to read a DNCP data packet from the buffer area when a DNCP data packet stored in the buffer area reaches a preset number
  • a second reading module configured to: if the DNCP packet of the DNCP packet read by the first reading module includes two source identifiers, two IP packet identifiers, and a set of coding coefficients related to the coding coefficient vector Vector information, then it is found in the buffer area that another DNCP packet whose DNCP header contains the two source identifiers and two IP packet identifiers, if any, And reading the another DNCP data packet from the buffer area, where the DNCP packet header of the another DNCP data packet further includes another set of coding coefficient vector information related to the coding coefficient vector; and a decoding module, configured to utilize two sets of coding The coefficient vector information performs a random linear decoding on the load of the read DNCP packet.
  • a decoding device comprising:
  • An IP layer module configured to receive an Internet Protocol IP data packet
  • a DNCP layer module configured to: if the IP layer payload of the IP data packet received by the IP layer module includes a dual source network coding protocol DNCP data packet, store the DNCP data packet into a buffer area; When the DNCP data packet of the buffer area reaches a preset number, the DNCP data packet is read out from the buffer area; if the DNCP header of the read DNCP data packet includes two source identifiers, two IP addresses The data packet identifier and a set of coding coefficient vector information related to the coding coefficient vector, and whether there is another DNCP data packet whose DNCP header contains the two source identifiers and two IP packet identifiers in the buffer area, if If yes, the another DNCP data packet is read from the buffer area, where the DNCP header of the another DNCP data packet further includes another set of coding coefficient vector information related to the coding coefficient vector; The vector information performs random linear decoding on the load of the read DNCP data packet;
  • the IP layer module is further configured to send a seventh IP data packet that is randomly and linearly decoded by the DNCP layer module.
  • a communication system comprising:
  • the embodiment of the present invention proposes DNCP to support codec between two sources. Since the encoding device performs random linear coding on two IP data packets whose arrival interval is less than the set duration and the destination address is the same, this is advantageous. To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet carries two source identifiers, two IP packet identifiers, and an encoding associated with the coding coefficient vector. Coefficient vector information, which lays the foundation for the encoding device to continue encoding multiple times or for decoding the decoding device quickly.
  • FIG. 1 is a schematic diagram of a data packet structure after extending a DNCP layer according to an embodiment of the present disclosure
  • FIG. 1 is a schematic diagram of a packet header structure of a DNCP data packet according to an embodiment of the present invention
  • FIG. 1 is a schematic diagram showing a comparison between a value and a meaning of a flag field in a DNCP packet header according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram of codec decoding of a butterfly network according to an embodiment of the present invention
  • FIG. 3 is a schematic flowchart of an encoding method according to an embodiment of the present invention.
  • FIG. 4 is a schematic flowchart of another coding method according to an embodiment of the present invention.
  • FIG. 5 is a schematic flowchart of another coding method according to an embodiment of the present invention.
  • FIG. 6 is a schematic flowchart of another coding method according to an embodiment of the present invention.
  • FIG. 7 is a schematic flowchart diagram of a decoding method according to an embodiment of the present invention.
  • FIG. 8 is a schematic flowchart of another coding method according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic diagram of an IP packet coding structure according to an embodiment of the present invention.
  • FIG. 9 is a schematic flowchart diagram of another decoding method according to an embodiment of the present invention.
  • FIG. 10 is a schematic diagram of a hardware hierarchy of a codec device according to an embodiment of the present invention
  • FIG. 11 is a schematic structural diagram of a hardware module of an encoding device according to an embodiment of the present invention
  • FIG. 12 is a schematic structural diagram of a hardware module of a decoding apparatus according to an embodiment of the present invention
  • FIG. 13 is a schematic diagram of a topology structure of a cell network according to an embodiment of the present invention
  • FIG. 14 is a schematic diagram of an encoding device according to an embodiment of the present invention.
  • FIG. 15 is a schematic diagram of an encoding device according to an embodiment of the present invention.
  • FIG. 16 is a schematic diagram of a decoding device according to an embodiment of the present invention.
  • FIG. 17 is a schematic diagram of an encoding device according to an embodiment of the present invention.
  • FIG. 18 is a schematic diagram of a decoding device according to an embodiment of the present invention.
  • the embodiments of the present invention provide a codec method, a related device, and a communication system, so as to improve the flexibility of network codec and reduce the complexity of coding and decoding of a network node.
  • DNCP Double Source Network Coding Protocol
  • IP Internet Protocol
  • the network intermediate nodes can encode or decode them.
  • IP Internet Protocol
  • the embodiment of the present invention proposes For DNCP that supports codec operations between dual sources, DNCP can be added, for example, between the IP layer and the transport layer, ie the DNCP header is inserted between the IP header and the transport layer header (see Figure 1-a).
  • FIG. 1-b A data format of a DNCP packet header provided by an embodiment of the present invention is shown in FIG. 1-b.
  • the meaning of each field of the DNCP header shown in Figure 1-b can be defined as follows:
  • Version field For example, 4 bits (or other length), can be used to record the evolved version of the DNCP packet format, in order to distinguish between the subsequent development research version and the previous version.
  • the length field of the header for example, 4 bits (or other length), which can be used to record the first degree;
  • the header length refers to the part of the DNCP packet except the valid data payload.
  • the unit is 4 bytes and the minimum value is 3.
  • the header length is 3, it may mean that the payload of the DNCP packet is not encoded, but the DNCP header is added.
  • the total length field for example, 16 bits (or other length), can be used to record the total length; where the total length is the length of the sum of the header length and the payload, in bytes.
  • the flag field for example, 2 bits (or other lengths), can be used to identify the encoding of the DNCP packet payload. The meaning of the different values of the flag field can be as shown in Figure 1-c.
  • the number of encoding fields for example, 2 bits (or other lengths), can be used to record the number of times the packet is encoded, that is, the number of times the packet is encoded from the original packet.
  • the encoding of the data packet may be recursive, that is, it may be encoded multiple times, and sometimes the DNCP header may be directly added to a certain data packet without encoding.
  • the number of times of encoding is recorded to facilitate decoding after multiple encodings.
  • the payload of the DNCP packet is the original IP packet
  • the number of encodings is 0, and in other cases, the number of encodings is >1.
  • the decoding router can prevent the decoding router from mistaking the DNCP packet as an IP packet and hand it to the destination node.
  • Original packet length field For example, 12 bits (or other length) can be used to record the length of the unencoded original data packet.
  • the original packet length field is used to facilitate accurate recovery of the original data packet at the time of decoding. Because the length of the data packets of different data sources may be different, in order to facilitate the coding calculation, it may be complemented by 0 to make the length consistent. Since a typical Ethernet packet is between 500 and 1500 bytes in length, the padding length is typically no more than 1000 bytes. In addition, consider the limitation of the maximum transmission unit (MTU) of the MAC layer, that is, the length of the encoded MAC frame cannot exceed 1518 bytes.
  • MTU maximum transmission unit
  • Coding coefficient field for example, 8 bits (or 8 other lengths), can be used to record the coding coefficient vector, for example, in a Galois field GF2 n (the value range of n is, for example, an integer of 4-16). For example, GF256) randomly selects the coding coefficient vector in the finite field.
  • the new encoding coefficient obtained by performing the specific calculation of the current encoding coefficient vector and the originally recorded encoding coefficient vector may be filled in the field; if the DNCP header is directly added in front of a certain data packet, To encode it, the field of the DNCP header can be used as a reserved field, for example, the field can be filled in with FF or other values.
  • the original packet identification field for example, occupying 10 bits (or other lengths), can be used to record the identifier of the encoded original data packet, and its function is to facilitate decoding, and the identifier can be, for example, an order number generated in order or from the original IP data.
  • the identifier of the IP header of the packet is 10 bits or less, and may of course be an identifier generated by other means for identifying the original packet.
  • Source identification field For example, 4 bits (or other length), which can be used to record the identifier of the source corresponding to the original data packet, and its function is to facilitate decoding.
  • Reserved fields For example, 30 bits (or other length) can be used for simultaneous encoding of multiple sources.
  • Those skilled in the art can understand that some of the fields in the DNCP header of the data format shown in FIG. 1-b are not necessary, and other arrangements may also be used between the fields, that is, the data format of the DNCP header is not limited to the above. For example.
  • NC The basic principle of NC is briefly introduced based on the butterfly network shown in Figure 2.
  • the solid line table with arrows Show unit channel. It can be seen from the "maximum flow minimum cut theorem" that the maximum flow of the network is 2, that is, if the sinks R1, R2 simultaneously request 2 bits of information from the sources S1, S2, b, where a comes from SI and b comes from S2, then In the case of maximum streaming, communication takes place in one unit of time. However, if the traditional "store-and-forward" mode is used, congestion will occur at node M, and it takes at least two unit time to complete the above communication target.
  • the M node performs encoding operation (for example, XOR operation) on the two-bit information a, b input at the same time, and encodes it into 1-bit a @ b transmission, so that R1 receives two in one unit time.
  • the bit information a and a @ b after decoding, can restore the original information a, b.
  • R2 is the same. It can be seen that the introduction of NC can make full use of network resources and make network communication more efficient (the network throughput can be improved without increasing link resources).
  • An encoding method may include: the encoding device receives a first internet protocol IP data packet from a first source; and receives a second IP from a second source within a set time period after receiving the first IP data packet a data packet, and the destination addresses of the first IP data packet and the second IP data packet are the same, and the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field respectively; using the coding coefficient vector pair
  • the first IP data packet and the second IP data packet are randomly linearly encoded to obtain a first linearly encoded data packet; the first linearly encoded data packet is encapsulated by a dual source network coding protocol DNCP to obtain a first DNCP data packet, and the first DNCP data packet
  • the DNCP header of the packet includes an identifier of the first source, an identifier of the second source, an identifier of the first IP packet,
  • the encoding device receives the first internet protocol IP data packet from the first source;
  • the set duration may be set according to an actual network, for example, may be set to 1 millisecond, 5 milliseconds, 10 milliseconds, 50 milliseconds, or other values
  • the encoding device randomly selects the coding coefficient vector for the first IP data packet and the second IP data packet in the finite field;
  • the encoding device usually receives IP data packets from the first source and the second source from different links, and of course, it may also receive the first source and the second letter from the same link.
  • Source IP packet In an actual network, the encoding device usually receives IP data packets from the first source and the second source from different links, and of course, it may also receive the first source and the second letter from the same link. Source IP packet.
  • the encoding device may randomly select a coding coefficient vector for the first IP data packet and the second IP data packet, respectively, in a Galois Field (GF, Galois Field) 2 n , where the value range of the n For example, an integer between 4 and 16 (for example, an integer between 8 and 16), or n may be an integer greater than 16, and the larger the n, the greater the decoding probability.
  • GF Galois Field
  • the encoding device performs random linear coding on the first IP data packet and the second IP data packet by using the selected coding coefficient vector to obtain a first linearly encoded data packet.
  • the encoding device encapsulates the first linear encoded data packet into a dual source network coding protocol DNCP to obtain a first DNCP data packet.
  • the DNCP header of the first DNCP data packet includes an identifier of the first source, an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and a coding coefficient related to the coding coefficient vector.
  • Vector information (wherein the coding coefficient vector information related to the above-mentioned coding coefficient vector may be the coding coefficient vector itself, or may be the coding coefficient vector information obtained by passing the above-mentioned coding coefficient vector through a specific calculation, and the decoding device may pass, for example, The inverse of the specific calculation corresponds to the coding coefficient vector.
  • the encoding device performs IP encapsulation on the first DNCP data packet to obtain a third IP data packet and sends the data packet.
  • the source address recorded in the IP header of the third IP packet is, for example, the same as the source address recorded in the IP header of the first IP packet or the second IP packet, and the IP header of the third IP packet is in the IP header.
  • the recorded destination address may be, for example, the same as the destination address recorded in the IP header of the first IP data packet or the second IP data packet (where the first IP data packet and the IP header of the second IP data packet are recorded in the same IP header. Destination address).
  • the third IP packet can also be included in the IP header.
  • the other network node can directly know that the IP layer payload of the third IP data packet includes the DNCP data packet according to the DNCP data packet identifier included in the IP packet header of the third IP data packet.
  • the encoding device may send the first An IP data packet, or the first IP data packet is DNCP-encapsulated to obtain a second DNCP data packet, and the second DNCP data packet is IP-encapsulated to obtain a fourth IP data packet, and the DNCP packet header of the second DNCP data packet is sent.
  • An identifier of the first source and an identification of the first IP packet may be included.
  • the source address recorded in the IP header of the fourth IP packet is the same as the source address recorded in the IP header of the first IP packet, and the destination address and the first IP data recorded in the IP header of the fourth IP packet.
  • the destination address recorded in the IP header of the packet is the same.
  • the IP header of the fourth IP data packet may further include a DNCP data packet identifier (the DNCP data packet identifier may be, for example, a protocol field that may be carried in the IP header of the fourth IP data packet, for example, the protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP data packets), so that other network nodes can directly know the IP layer payload of the fourth IP data packet according to the DNCP data packet identifier included in the IP header of the fourth IP data packet.
  • DNCP packet may be, for example, a protocol field that may be carried in the IP header of the fourth IP data packet, for example, the protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP data packets
  • this embodiment proposes DNCP to support codec between two sources. Since the encoding device performs random linear coding on two IP packets whose arrival interval is less than the set duration and the destination address is the same, this is advantageous. To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet carries two source identifiers, two IP packet identifiers, and coding coefficients related to the coding coefficient vector.
  • Vector information which lays the foundation for the encoding device to continue encoding multiple times or for decoding the decoding device quickly, which is beneficial to improve the versatility of the network coding in the actual network; and because it is implemented based on the network coding technology, it can fully utilize the network Resources, significantly improve the throughput of the network, to achieve higher transmission Transmission efficiency.
  • An encoding method may include: the encoding device receives the fifth internet protocol IP data packet; if the sixth IP data packet is received within a set time period after receiving the fifth IP data packet, and the sixth IP data packet and the fifth The destination address of the IP data packet is the same, and the IP layer payload of the sixth IP data packet and the fifth IP data packet both contain the DNCP data packet, and the DNCP packet header of the DNCP data packet in the IP layer payload of the sixth IP data packet is included.
  • Two source identifiers and two IP packet identifiers which are the same as the two source identifiers and the two IP packet identifiers contained in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet, are limited Randomly selecting a coding coefficient vector for the payload of the DNCP packet in the fifth IP data packet and the sixth IP data packet IP layer payload in the domain; using the coding coefficient vector, for the fifth IP data packet and the sixth IP data packet
  • the payload of the DNCP packet in the IP layer payload is randomly linearly encoded to obtain a second linearly encoded data packet; the second linearly encoded data packet is DNCP-encapsulated to obtain a third DNCP data packet, and the third DNCP data packet
  • the DNCP header of the packet includes the two source identifiers, the two IP packet identifiers, and the coding coefficient vector information related to the coding coefficient vector.
  • the third DNCP packet is IP-encapsulated to obtain a seventh IP packet
  • the encoding device receives the fifth internet protocol IP data packet.
  • the encoding device receives the sixth IP data packet within a set duration after receiving the fifth IP data packet, and the sixth IP data packet and the fifth IP data packet have the same destination address, and the sixth IP data packet And the IP layer payload of the fifth IP packet includes the DNCP packet, and the DNCP header of the DNCP packet in the IP layer payload of the sixth IP packet contains two source identifiers and two IP packet identifiers, and The DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet contains two source identifiers and the same two IP packet identifiers, and the encoding device is the fifth IP packet and the sixth in the finite field respectively.
  • the payload of the DNCP packet in the IP layer payload of the IP packet is randomly selected from the coding coefficient vector;
  • the encoding device can detect, for example, whether the IP header of the fifth IP data packet and the sixth IP data packet includes the DNCP data packet identifier, and if the IP packet header includes the DNCP data packet identifier, the IP layer payload can be obtained according to the identifier.
  • the DNCP data packet is included.
  • the encoding device can also know whether the IP layer payload includes the DNCP data packet by other possible methods. For example, the IP layer payload of the fifth IP data packet and the sixth IP data packet can be detected to obtain the IP address. Whether the layer payload contains DNCP packets.
  • the encoding device may randomly select a coding coefficient vector for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload, respectively, in the Galois field GF2 n , where the value range of the n For example, an integer between 4 and 16 (for example, an integer between 8 and 16), or n may be an integer greater than 16.
  • the encoding device performs random linear coding on the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the sixth IP data packet by using the selected coding coefficient vector to obtain a second linear encoded data packet.
  • the encoding device performs DNCP encapsulation on the second linearly encoded data packet to obtain a third DNCP data packet, where the DNCP packet header of the third DNCP data packet includes the foregoing two source identifiers, the foregoing two IP data packet identifiers, and the foregoing coding coefficient vector.
  • Corresponding coding coefficient vector information (wherein the coding coefficient vector information related to the above coding coefficient vector may be the coding coefficient vector itself, or it may be that the coding coefficient vector and the coding coefficient vector information included in the DNCP packet of the DNCP packet are passed Data obtained after a specific calculation).
  • the encoding device performs IP encapsulation on the third DNCP data packet to obtain a seventh IP data packet and sends the data packet.
  • the source address recorded in the IP header of the seventh IP data packet is, for example, the same as the source address recorded in the IP header of the fifth IP data packet or the sixth IP data packet, and the IP header of the seventh IP data packet is in the IP header.
  • the recorded destination address may be, for example, the same as the destination address recorded in the IP header of the fifth IP packet or the sixth IP packet (where the fifth IP packet and the sixth IP packet are recorded in the same IP header) Destination address);
  • the IP header of the seventh IP packet may also contain DNCP Packet identification (DNCP packet identification, for example, may be carried in the protocol field of the IP header of the seventh IP packet, eg the protocol field may be padded with FE or other specific value to indicate that its IP layer payload contains DNCP packets), thus The other network node can directly know that the IP layer payload of the seventh IP data packet includes the DNCP data packet according to the DNCP data packet identifier included in the IP header of the seventh IP data packet.
  • DNCP packet identification for example,
  • the encoding device does not receive the sixth IP data packet having the same address as the destination address within the set duration after receiving the fifth IP data packet, or the IP layer of the sixth IP data packet received in the set duration
  • the DNCP header of the DNCP packet in the payload contains two source identifiers and two IP packet identifiers, and two source identifiers and two DNCP headers of the DNCP packet in the IP layer payload of the fifth IP packet. If the IP packet identifiers are different, the encoding device can send the fifth IP packet.
  • this embodiment proposes DNCP to support codec between two sources, because the encoding device is a DNCP packet in the IP layer payload of two IP data packets whose arrival interval is less than the set duration and the destination address is the same.
  • the load is randomly linearly coded, which is beneficial to eliminate the influence of the mismatch problem such as transmission delay and transmission rate in the actual network to some extent; and the DNCP header of the DNCP packet encapsulated by the random linear coding carries two source identifiers.
  • Two IP packet identifiers and coding coefficient vector information related to the randomly selected coding coefficient vector which provides a basis for the downstream encoding device to continue encoding one or more times or for decoding the decoding device quickly, which is beneficial to improve network coding.
  • the versatility in the actual network and because it is implemented based on the network coding technology, it can fully utilize the network resources, significantly improve the throughput rate of the network, and achieve higher transmission efficiency.
  • the encoding method may include: the encoding device receives the fifth internet protocol IP data packet; if the eighth IP data packet is received within the set time period after receiving the fifth IP data packet, and the eighth IP data packet And the destination address of the fifth IP data packet is the same, and the eighth IP data packet and the fifth IP data packet are One IP layer payload contains a DNCP data packet, and the other IP data packet is one of the original IP data packets obtained by random linear coding to obtain the DNCP data packet payload, and the other IP data packet is respectively in the finite field.
  • the packet is subjected to DNCP encapsulation to obtain a fourth DNCP data packet, where the DNCP header of the fourth DNCP data packet includes two source identifiers, two IP packet identifiers, and coding coefficient vector information related to the selected coding coefficient vector, where The two source identifiers and the two IP packet identifiers are the same as the two source identifiers and the two IP packet identifiers included in the header of the DNCP packet in the IP layer payload; the fourth DNCP packet is IP-enabled.
  • the package gets the eighth IP packet and sends it.
  • the encoding device receives a fifth internet protocol IP data packet.
  • the encoding device receives the eighth IP data packet within a set duration after receiving the fifth IP data packet, and the eighth IP data packet and the fifth IP data packet have the same destination address, and the eighth IP data packet And the IP layer payload of one of the fifth IP data packets includes a DNCP data packet, and the other IP data packet is one of original IP data packets obtained by random linear coding to obtain the DNCP data packet payload, and the encoding device is in a finite field Randomly selecting a coding coefficient vector for the load of the other IP data packet and the DNCP data packet;
  • the encoding device can detect, for example, whether the IP header of the fifth IP data packet and the eighth IP data packet includes the DNCP data packet identifier, and if the IP packet header includes the DNCP data packet identifier, the IP layer payload can be known according to the data packet header. Include DNCP data packets.
  • the encoding device can also know whether its IP layer payload contains DNCP data packets by other possible means. For example, the IP layer payload of the fifth IP data packet and the eighth IP data packet can be detected to obtain the IP address. Whether the layer payload contains DNCP packets.
  • the encoding device may randomly select a coding coefficient vector in the Galois field GF2 n for the load of the DNCP data packet and the random selection of the coding coefficient vector of the other IP data packet, respectively.
  • the value range of n is, for example, an integer between 4 and 16 (for example, an integer of 8 to 16), or n may be an integer greater than 16.
  • the encoding device randomly encodes the payload of the DNCP data packet and the another IP data packet by using a randomly selected coding coefficient vector to obtain a third linear encoded data packet.
  • the encoding device performs DNCP encapsulation on the third linearly encoded data packet to obtain a fourth DNCP data packet.
  • the DNCP packet header of the fourth DNCP data packet includes two source identifiers, two IP packet identifiers, and selected coding coefficients.
  • Vector related coding coefficient vector information wherein the two source identifiers and two IP packet identifiers, and the header of the DNCP packet in the IP layer payload include two source identifiers and two IP packet identifiers the same;
  • the encoding device performs IP encapsulation on the fourth DNCP packet to obtain a ninth IP data packet and sends the packet.
  • the source address recorded in the IP header of the ninth IP packet is, for example, the same as the source address recorded in the IP header of the fifth IP packet or the eighth IP packet, and the IP header of the ninth IP packet is in the IP header.
  • the recorded destination address may be, for example, the same as the destination address recorded in the IP header of the fifth IP data packet or the eighth IP data packet (where the fifth IP data packet and the IP header of the eighth IP data packet are recorded in the same IP header.
  • the IP header of the ninth IP packet may also include a DNCP packet identifier (the DNCP packet identifier may be, for example, a protocol field that may be carried in the IP header of the ninth IP packet, for example, its protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP packets), so that other network nodes can directly know the IP layer payload of the ninth IP packet according to the DNCP packet identifier contained in the IP header of the ninth IP packet.
  • DNCP packet may be, for example, a protocol field that may be carried in the IP header of the ninth IP packet, for example, its protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP packets
  • this embodiment proposes DNCP to support codec between two sources. If the IP packet arrival interval is less than the set duration and the destination address is the same, and the IP layer payload of one of the two IP packets is included a DNCP packet, and another IP packet is one of original IP packets obtained by random linear coding to obtain the DNCP packet payload, and the encoding device randomly linearizes the load of the other IP packet and the DNCP packet Coding, this is beneficial in To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated.
  • the DNCP header of the DNCP packet encapsulated by the random linear coding carries two source identifiers, two IP packet identifiers, and coding coefficients.
  • Vector information which provides a basis for the downstream encoding device to continue encoding one or more times or for decoding the decoding device quickly, which is beneficial to improve the versatility of the network coding in the actual network; and since it is implemented based on the network coding technology, It can make full use of network resources, significantly improve network throughput and achieve higher transmission efficiency.
  • the encoding method may include: the encoding device receives the fifth internet protocol IP data packet; if the tenth IP data packet is received within the set time period after receiving the fifth IP data packet, and the tenth IP data packet And the destination address of the fifth IP data packet is the same, and the IP layer payloads of the tenth IP data packet and the fifth IP data packet both contain the DNCP data packet, and the IP layer of one of the tenth IP data packet and the fifth IP data packet.
  • the DNCP header of the DNCP packet in the payload contains two source identifiers and two IP packet identifiers
  • the DNCP header of the DNCP packet in the other IP layer payload contains one of the two source identifiers and One of the two IP packet identifiers randomly selects a coding coefficient vector for the payload of the DNCP packet in the fifth IP packet and
  • the encoding device receives the fifth internet protocol IP data packet.
  • the encoding device receives the tenth in the set duration after receiving the fifth IP data packet.
  • IP data packet, and the destination address of the tenth IP data packet and the fifth IP data packet are the same, and the IP layer payloads of the tenth IP data packet and the fifth IP data packet both contain the DNCP data packet, and the tenth IP data packet and
  • the DNCP header of the DNCP packet in the IP layer payload of one of the fifth IP data packets contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains the One of the two source identifiers and one of the two IP packet identifiers, the encoding device is the DNCP packet in the fifth IP packet and the tenth IP packet IP layer payload in the finite field respectively
  • the load is randomly selected from the coding coefficient vector;
  • the encoding device can detect, for example, whether the IP header of the fifth IP data packet and the tenth IP data packet includes the DNCP data packet identifier, and if the IP packet header includes the DNCP data packet identifier, the IP layer payload can be known according to the data packet header. Include DNCP data packets.
  • the encoding device can also know whether its IP layer payload contains DNCP data packets through other possible methods. For example, the IP layer payload of the fifth IP data packet and the tenth IP data packet can be detected to obtain the IP address. Whether the layer payload contains DNCP packets.
  • the encoding device may randomly select a coding coefficient vector for the load of the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the Galois field GF2 n , for example, the value range of the n is An integer between 4 and 16, or n may also be an integer greater than 16.
  • the encoding device performs random linear coding on the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the tenth IP data packet by using the coding coefficient vector to obtain a fourth linearly encoded data packet.
  • the encoding device performs DNCP encapsulation on the fourth linearly encoded data packet to obtain a fifth DNCP data packet, where the DNCP packet header of the fifth DNCP data packet includes the foregoing two source identifiers, the foregoing two IP data packet identifiers, and the foregoing coding coefficient vector. Correlated coding coefficient vector information;
  • the encoding device performs IP encapsulation on the fifth DNCP packet to obtain the eleventh IP data packet and sends the packet.
  • the source address recorded in the IP header of the eleventh IP packet is, for example, the same as the source address recorded in the IP header of the fifth IP packet or the tenth IP packet, and the eleventh IP data.
  • the destination address recorded in the IP header of the packet may be, for example, the same as the destination address recorded in the IP header of the fifth IP packet or the tenth IP packet (wherein the IP header of the fifth IP packet and the tenth IP packet) The same destination address is recorded); the IP header of the eleventh IP packet may also contain a DNCP packet identifier (the DNCP packet identifier, for example, a protocol field that can be carried in the IP header of the eleventh IP packet, such as an agreement The field can be filled with FE or other specific values to indicate that its IP layer payload contains DNCP packets.
  • the IP layer payload of the IP packet contains the DNCP packet.
  • this embodiment proposes DNCP to support codec between two sources. If two IP packets arrive at an interval less than the set duration and the destination address is the same, and both IP packets contain DNCP packets, and The DNCP header of the DNCP packet in one IP layer payload contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains the two source identifiers.
  • One of the two IP packet identifiers, and the encoding device randomly and linearly encodes the payload of the DNCP packet in the IP layer payload of the two IP packets, which is beneficial to some extent
  • the impact of the mismatch problem such as the transmission delay and the transmission rate in the actual network
  • the DNCP header of the DNCP packet encapsulated by the random linear coding carries two source identifiers, two IP packet identifiers, and a code coefficient vector. Coding coefficient vector information, which lays the foundation for the downstream encoding device to continue encoding one or more times or for decoding the decoding device quickly.
  • Coding coefficient vector information which lays the foundation for the downstream encoding device to continue encoding one or more times or for decoding the decoding device quickly.
  • An embodiment of the decoding method of the present invention may include: the decoding device receives an IP data packet; if the IP layer payload of the received IP data packet includes a DNCP data packet, the decoding device stores the DNCP data packet To the buffer area; when the DNCP data packet stored in the buffer area reaches a preset number, the DNCP data packet is read from the buffer area; if the DNCP packet header of the read DNCP data packet contains two source identifiers, two IP packet identification and a set of encodings Coefficient vector related coding coefficient vector information, then it is found in the buffer area that another DNCP packet whose DNCP header contains the two source identifiers and two IP packet identifiers, if present, is read out from the buffer area
  • the other DNCP packet wherein the DNCP header of the another DNCP packet further includes another set of coding coefficient vector information related to the coding coefficient vector; and the read DNCP packet is obtained by using the two sets of coding coefficient
  • steps may include:
  • the decoding device receives an IP data packet.
  • the decoding device may, for example, receive an IP data packet from the first link, or may also receive an IP data packet from the first link and the second link, respectively.
  • the decoding device stores the DNCP data packet into the buffer area.
  • the encoding device can detect, for example, whether the IP header of the received IP packet includes a DNCP packet identifier, and if the IP header includes the DNCP packet identifier, it can be learned that the IP layer payload includes the DNCP packet.
  • the encoding device can also know whether the IP layer payload includes the DNCP data packet by other possible means.
  • the IP layer payload of the received IP data packet can be used to know whether the IP layer payload includes the DNCP data packet.
  • the preset number may be specifically set according to a specific network scenario and a coding scenario, for example, may be set to 32, 64, 128, 256, or other numbers.
  • the decoding device reads the DNCP data packet from the buffer area;
  • the decoding device may further index the DNCP data packet (the index may include, for example, at least one IP data included in the DNCP header of the DNCP data packet. a packet identifier, or at least one IP packet identifier included in the DNCP header of the DNCP packet, and at least one source identifier, or may also include other information that can be indexed to the DNCP packet) and the DNCP packet is The address of the buffer is stored in the Content Addressable Memory (CAM). 704.
  • CAM Content Addressable Memory
  • the decoding device searches whether the buffer is stored in the buffer area.
  • the DNCP header contains the two source identifiers and another DNCP packet identified by two IP packets;
  • the decoding device may also detect whether the payload of the DNCP packet is randomly linearly encoded by detecting a flag field of the DNCP packet header indicating the encoding of the payload of the DNCP packet, and if it is subjected to random linear coding, it needs to be searched.
  • the decoding is performed to other DNCP packets having the same data to be decoded as the DNCP packet (ie, the DNCP header of the DNCP packet containing the two source identifiers and the two DNCP packets identified by the IP packet).
  • the DNCP data packet may be obtained by directly DNCP encapsulating the original IP data packet
  • the DNCP header of the DNCP data packet is removed. IP packet (this IP packet is the original IP packet).
  • the decoding device reads the another DNCP data packet from the buffer area, where the DNCP packet header of the another DNCP data packet may include another set of coding coefficient vector information related to the coding coefficient vector (where The other set of coding coefficient vector information related to the coding coefficient vector may be the same as or different from the coding coefficient vector information related to the coding coefficient vector included in the DNCP packet header of the previously read DNCP data packet)
  • the above two source identifiers and two IP packet identifiers are examples of the DNCP data packet.
  • the decoding device may store the DNCP data packet into the first buffer area; if the IP layer payload of the IP data packet received from the second link includes a DNCP data packet, the decoding device may The data packet is stored in the second buffer area, where the first buffer area and the second buffer area may be located on the same memory chip, or may be located in different memory chips.
  • the DNCP data packet stored in the first buffer area reaches a preset number and/or the DNCP data packet stored in the second buffer area reaches a preset number, or is stored in the first buffer area.
  • the sum of the DNCP data packets of the second buffer area reaches a preset number, according to a predetermined reading order (for example, may be read according to the principle of preemption first, or may be read in order of storage address from low to high)
  • the DNCP packet is read from the first buffer.
  • the decoding device may discard the read DNCP packet; if present, the decoding device reads the other DNCP packet from the buffer.
  • the decoding device performs random linear decoding on the load of the read DNCP data packet by using two sets of coding coefficient vector information.
  • the decoding device can perform random linear decoding on the load of the read DNCP packet by, for example, matrix multiplication, Gaussian elimination, or Kramer's law. If the random linear decoding succeeds, the decoding device can obtain two original IP data packets from different sources and can send the original IP data packet. If the random linear decoding fails, the decoding device can discard the read out data. The DNCP packet can continue to read other DNCP packets from the buffer for decoding according to the above mechanism.
  • the decoding device receives the IP data packet; if the IP layer payload of the received IP data packet includes the DNCP data packet, the DNCP data packet is stored in the buffer area; when the DNCP is stored in the buffer area When the data packet reaches the preset number, the DNCP data packet is read out from the buffer area; if the DNCP packet header of the read DNCP data packet contains two source identifiers and two IP numbers According to the packet identifier and a set of coding coefficient vector information related to the coding coefficient vector, it is found that another DNCP packet whose DNCP header contains the two source identifiers and two IP packet identifiers in the buffer area, the other The DNCP header of a DNCP packet further includes another set of coding coefficient vector information related to the coding coefficient vector; the decoding device performs random linear decoding on the payload of the read DNCP packet by using the two sets of coding coefficient vector information.
  • the decoding device can quickly decode according to the decoding device.
  • the mechanism is beneficial to improve the versatility of the network coding in the actual network; and because it is implemented based on the network coding technology, it can fully utilize the network resources, significantly improve the throughput rate of the network, and achieve higher transmission efficiency.
  • Figure 8-a is a schematic diagram of the coding process. The specific steps may include:
  • the encoding device Eel receives the data packet P S11 from the source S1;
  • the encoding device Eel determines whether the received data packet is an IP data packet; if not, then step 809;
  • the encoding device Eel allocates an identifier to the received data packet P S11 .
  • the encoding device Eel can allocate each IP packet received. Identification (such as sequential numbering).
  • the encoding device Eel can record the first data packet sent by the source S1 as S(1, 0), the second data packet as S(l, l), and so on, and the Xth data of the source Sn.
  • the package is denoted as S(n, x-1).
  • the sequence number of the IP data packet from each source can end, for example, from 0 to 1024 (or other value), and repeats accordingly, that is, the maximum sequence number of the source Sn is S(n, 1024).
  • the encoding device Ec 1 starts a timer.
  • the purpose of starting the timer is to determine whether the number of packets arriving at the confidence source S2 can be received within the set duration thereafter.
  • the encoding device Eel determines the IP data packet. Whether the destination address of P S11 and IP data packet P S21 are the same;
  • step 809 is performed
  • step 806 is performed.
  • the IP packet P S11 and the IP packet P S21 can be regarded as "simultaneous arrival".
  • the encoding apparatus Eel limited domain are IP packets P S11 and IP packet P S21 randomly coded coefficient vectors, and the IP packet P S11 and IP packet P S21 linearly encoded with encoding coefficient vector randomly selected A linearly encoded data packet is obtained.
  • the encoding device Eel can, for example, randomly select a coding coefficient vector for the IP data packet P S11 and the IP data packet P S21 from the GF256 (or other GF).
  • the encoded object is, for example, the entire IP packet (IP header + its payload).
  • the encoding device Eel linearly encodes the IP data packet P S11 and the IP data packet P S21 to obtain a linear encoded data packet obtained by linearly coding the data packet, and performs DNCP encapsulation to obtain a DNCP data packet.
  • the DNCP header of the giaDNCP data packet may include the identifiers of the source S1 and the source S2, the identifiers of the IP data packet P S11 and the IP data packet P S11 , and the randomly selected coding coefficient vector.
  • the encoding device Eel performs IP encapsulation on the obtained DNCP data packet to obtain an IP data packet PDSII;
  • the format of the IP data packet P DS11 obtained by the IP encoding of the DNCP data packet by the encoding device Eel can be as shown in FIG. 8-b.
  • the larger value in the total length field in the IP header of the IP packet P S11 and the IP packet P S21 may be filled in the total length field of the IP header of the IP packet P DS11 , and the IP data may be package P S11 and P S21 IP packet IP header TTL field values into larger TTL field PDSIIIP IP packet header, and the source IP address and destination IP address of the IP packet P DS11, the IP packet The source IP address and destination IP address of the Psii or IP packet P S2 i are the same.
  • the IP packet P DS11 IP header may also contain a DNCP packet identifier (the DNCP packet identifier may be, for example, a protocol field that may be carried in the IP packet P DS11 IP header, for example, the protocol field may be filled with FE or other specific value to indicate that the IP layer packet payload contains DNCP), thus, other network node may «DNCP packet identification included in the IP header of the IP packet directly from P DS11, known IP layer packet payload contains P DS1 ⁇ IP DNCP data pack.
  • the DNCP packet identifier may be, for example, a protocol field that may be carried in the IP packet P DS11 IP header, for example, the protocol field may be filled with FE or other specific value to indicate that the IP layer packet payload contains DNCP
  • Encoding device Eel's IP layer lookup table forwards the data packet.
  • FIG. 9 is a schematic flowchart of a decoding method, and specific steps may include:
  • the decoding device Del (for example, a decoding router) respectively receives IP data packets from two links; 902. The decoding device Del determines whether the received IP data packet IP layer payload includes a DNCP data packet.
  • the decoding device Del can detect, for example, whether the IP header of the received IP packet contains a DNCP packet identifier, and if its IP header contains a DNCP packet identifier, it can be learned that the IP layer payload includes the DNCP packet. , of course, the decoding device Del can also pass its It is possible to know whether its IP layer payload contains DNCP packets. For example, by detecting the IP layer payload of the received IP packet, it is known whether its IP layer payload contains DNCP packets.
  • the decoding device Del may store the DNCP data packet in the IP layer payload of the IP data packet into the SRAM cache SR1, if the received IP data packet is from the second. Link, the decoding device Del can store the DNCP data packet in the IP layer payload of the IP data packet into the SRAM buffer SR2;
  • the decoding device Del may also index the DNCP data packet (the index may include, for example, at least one IP included in the DNCP packet header of the DNCP data packet.
  • the address in the buffer area is stored in the Content Addressable Memory (CAM).
  • CAM Content Addressable Memory
  • the reason for using CAM and storing the cache SRAM is that the encoded data packets received by the decoding device may be out of order and not synchronized due to the non-ideal coding and network environment. Therefore, the input DNCP data packet needs to be buffered first in the decoding device.
  • the decoding operation is performed when a sufficient amount of information is collected (for example, the number of buffered DNCP packets reaches a set number).
  • the order in which DNCP packets are stored in the SRAM can be from the lowest to the highest order of the addresses.
  • the output of the CAM can be the address corresponding to the DNCP packet in the SRAM.
  • the decoding device D11 reads a DNCP data packet buffered in one of the SRAMs; wherein, for example, when the DNCP data packet stored in one of the SRAMs reaches a preset number and/or the DNCP data packet stored in another SRAM reaches At the preset number, or when the sum of the DNCP packets stored in the two SRAMs reaches a preset number, the decoding device Del can start the decoding operation.
  • the received DNCP data packet is divided into two cases: a.
  • the payload of the DNCP data packet is not randomly linearly encoded (the decoding device Del can learn DNCP according to the content of the relevant field in the DNCP header of the DNCP data packet, for example. Packet payload Whether it is encoded), but it is packaged in DNCP;
  • Such a packet can be obtained by simply removing the DNCP header to obtain the original IP packet;
  • the payload of the DNCP packet is randomly linearly encoded, and the payload of the DNCP packet can be expressed as in the form described by equation (1):
  • a first-in-first-solution strategy can be extracted for the received DNCP data packet, and the IP data packet can be output in the decoding order.
  • the decoding device Del may, for example, store the DNCP data packets buffered in two SRAMs in turn according to the address size order (for example, the storage may be stored in order of low to high address), and the address may be low according to the address.
  • the address size order for example, the storage may be stored in order of low to high address
  • the address may be low according to the address.
  • a DNCP packet is read from the buffer SR1 for random linear decoding
  • a DNCP packet is read from the buffer SR2 for random linear decoding
  • a DNCP packet is read in the buffer SR1 for randomization. Linear decoding, and so on.
  • the purpose of reading two SRAMs in turn is to "deliver as much as possible" the incoming packets.
  • the decoding device Del determines whether the load of the read DNCP data packet is randomly linearly encoded.
  • step 910 If the payload of the read DNCP packet is not encoded, the original DN packet is removed by removing the DNCP header from the DNCP packet, and step 910 is performed;
  • step 907 is performed;
  • the decoding device Del determines whether the read DNCP data packet has been decoded. After each original IP data packet is decoded, the decoding flag register may be correspondingly marked. Therefore, the decoding device Del may query and decode. A flag register to determine whether the read DNCP packet has been decoded;
  • the decoding device Del may be paired The flag bit should be reset, and step 904 is executed to continue reading the next DNCP packet for decoding.
  • the encoded packet form can always be represented by the equation group (1), that is, each SRAM can store data to be decoded corresponding to the original IP packet X (0, i), Y (1, j). Therefore, if the original IP data packet X (0, i), Y (l, j) has been solved based on a certain SRAM, and the DNCP data packet to be decoded is read when reading the next SRAM next time, It is still possible to read out the DNCP data packet to be decoded corresponding to the original IP data packet X (0, i), Y (1, j), and if it is queried that it has been decoded, it may not need to decode it. It is.
  • the decoding device Del searches, according to the DNCP header information of the read DNCP packet, whether another DNCP data packet having the same information to be decoded exists in another SRAM;
  • the decoding device Del reads another DNCP packet stored by another SRAM having the same information to be decoded as the read DNCP packet.
  • the two source identifiers and the two IP packet identifiers included in the DNCP header of the two DNCP packets having the same information to be decoded are the same.
  • the DNCP header of a certain DNCP packet contains the identifiers of the source S1 and the source S2, and the identifier of the packet P sl oIP packet P S21 can be considered as having the payload of the two DNCP packets.
  • the same information to be decoded is the same information to be decoded.
  • the coding information of the two DNCP data packets is included in the DNCP header (see the DNCP header format description for details).
  • the IP packet X (0, 0) is indexed, or the identifier of the IP packet X (0, i) and the identifier of its corresponding source are indexed, and the IP packet X (0, can be detected by the CAM.
  • 0 corresponds to the storage address of the DNCP packet in another SRAM, and the other DNCP packet, cX (0, i) + d Y (1, j), can be read and read according to the storage address.
  • the decoding device Del determines the pair of data to be decoded in the two DNCP data packets that are read out. Whether the vector of the coding coefficient should be linearly related; ⁇ , whether abl is zero.
  • step 904 the decoding of the next DNCP data packet is continued.
  • Step 909 is performed.
  • Decoding device Del uses Kramer's law to decode the original IP data packet obtained by reading the data to be decoded in the two DNCP data packets;
  • the IP packet X ( 0, i ) and the IP packet Y ( l , j ) can be marked as solved.
  • decoding device Del forwards IP packets in the IP layer lookup table.
  • step 904 the decoding of the next DNCP packet continues.
  • the hardware structure of the router DNCP layer with network codec function is also provided below.
  • the DNCP hierarchy is located between the network layer and the transport layer, that is, the block diagram of the changed router architecture is shown in Figure 10.
  • the hardware structure of the entire DNCP layer is shown in Figure 11 and Figure 12.
  • the DNCP layer module that implements the encoding function is described as follows:
  • Input-Arbiter Input-Arbiter
  • the transmitted data packet can be protocol-determined in the Input-Arbiter, and if it is an IP data packet, it is transmitted to the DNCP layer module, and the encoding operation is performed if the condition is satisfied;
  • Extract the IP header information assign a source identifier to each source, and assign an IP packet identifier to each IP packet (for example, sequence number 0 to 1024).
  • the encoding module (Encoding) performs the encoding operation.
  • Encoding module Encoding can include:
  • the random number generation module two multipliers, two full adders, and a random number generator (for example, an 8-bit random number).
  • a random number generator for example, an 8-bit random number.
  • the random number generator can generate two random numbers, respectively multiply the IP data packets from a certain source, and finally add the obtained results to the packing module (Packing). .
  • Packing module Packing the DNCP packet for the linearly encoded data packet obtained by random linear coding to obtain the DNCP data packet, and then encapsulating a new IP packet header for the DNCP data packet to obtain the IP data packet, which is carried by the encapsulated DNCP header and the IP header.
  • the output queue module (Output-Queue) queues the IP packets obtained by the packet module and sends them to the IP layer for table lookup forwarding.
  • the DNCP layer module that implements the decoding function is described as follows:
  • Input Arbitration Module ( Input_Arbiter ): Located at the IP layer.
  • the data packet of the transmitted data packet is judged in the Input-Arbiter to determine whether the payload of the IP data packet received by the IP layer includes the DNCP data packet, for example, when the IP packet IP header protocol field is When OX FE (indicating that the payload of the IP packet includes a DNCP packet), the input arbitration module transmits the DNCP packet in the IP packet payload to the DNCP layer; if the payload of the IP packet does not include the DNCP packet, Look up table forwarding at the IP layer.
  • SRAM Control and CAM Control, complete read and write control of SRAM and CAM.
  • Decoding module Decodes when the amount of information buffered is sufficient (for example, when the DNCP packet buffered in the SRAM reaches a set number).
  • the decoding flag module (Decoded_flag), for example, the decoding flag position 1 (or 0) corresponding to the decoded original IP data packet, indicates that the original IP data packet has been decoded.
  • the decoded flag bit corresponding to the decoded packet has been queried, it can be reset to 0 (or 1).
  • the output queue module sorts the original IP data packets obtained by decoding the decoding module and sends them to the IP layer for table lookup forwarding.
  • the embodiment of the present invention also introduces an implementation process in a specific application scenario.
  • sources S1 and S2 want to send IP packets (respectively labeled P1 and P2) to the same broadcast network.
  • P1 and P2 IP packets
  • the intermediate node ECj ( lj 5 ) does not use network coding, it cannot The 10 sink nodes can receive the data of S1 and S2 at the same time (only some nodes can). If the network coding is used, the solution node can solve the equations so that each sink node can get the source S1 at the same time. And S2 data.
  • a buffer space is opened on each coding router, and data is obtained from the two sources.
  • the packet is synchronized, which simplifies the coding and increases the probability of decoding. Its synchronization mechanism is for example:
  • the DNCP layer of the EC router For example, in the DNCP layer of the EC router, two pieces of RAM (such as 72bit 1024) are opened, and IP data packets from two sources are sequentially stored, and when one of the RAMs is full, the IP data in the two RAMs are simultaneously read from the lowest address.
  • the packet is sent to its DNCP layer for encoding operations.
  • Encoding, S1 and S2 can forward the data packet to ECj (1 j 5 ) through a switch, and judge the destination IP address and output path of the input IP data packet at the ECj (1 j 5 ) node, if it is found to be IP packets destined for the same destination address, and the routing output has a bottleneck (that is, an output channel is competed), and then sent to the DNCP layer for random linear coding.
  • the DNCP layer uses a pseudo-random number generation module to generate a coded coefficient vector in the GF256 domain, and linearly encodes two IP packets that arrive at the same time (i.e., the arrival time interval is less than the set duration).
  • the DNCP header and the new IP header are generated as required.
  • the source address is, for example, a local IP address
  • the destination IP address is a multicast address
  • the protocol field of the IP header is FF.
  • the source S1 can be defined as the source 1 and the source S2 is defined as the source 2, and the corresponding source identifier is filled in the corresponding field of the DNCP header.
  • the decoding device uses two SRAMs to store the data packets coming from the two input paths, and can use the CAM as an index, when collecting a certain amount of information packets (such as 32, 64, 128 or other numbers) ), you can start the decoding operation.
  • a certain amount of information packets such as 32, 64, 128 or other numbers
  • the DC1 node if it receives two information of alp1+blP2 and a2Pl+b2P2, it can use Kramer which is more conducive to hardware implementation.
  • the law is calculated to recover the information PI and P2. Since the entire IP data packet is encoded during encoding, the decoded IP data packet (original IP data packet) can be directly forwarded.
  • this embodiment proposes DNCP to solve the codec problem between two sources. Since the encoding device performs random linear coding on two IP data packets whose arrival interval is less than the set duration and the destination address is the same, this is advantageous. To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet carries two source identifiers, two IP packet identifiers, and a randomly selected coding coefficient vector.
  • the decoding device can be quickly decoded according to the same, and the codec mechanism is beneficial to improve the versatility of the network coding in the actual network; and because it is implemented based on the network coding technology, the network resources can be fully utilized, and the throughput of the network is obviously improved. Higher transmission efficiency.
  • an encoding device 1400 may include: a first receiving module 1410, configured to receive a first Internet Protocol IP data packet from a first source; a first encoding coefficient selecting module 1420, For receiving the second IP data packet from the second source within the set duration after the first receiving module 1410 receives the first IP data packet, and the purpose of the first IP data packet and the second IP data packet If the addresses are the same, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field;
  • the first receiving module 1410 usually receives IP data packets from the first source and the second source respectively from different links, and of course, it may also receive the first source and the same link from the same link. IP packet of the second source.
  • the first coding coefficient selection module 1420 may randomly select a coding coefficient vector for the first IP data packet and the second IP data packet, respectively, in the GF2 n , where the value range of the n is, for example, 4 to 16.
  • An integer between (for example, an integer between 8 and 16), or n can also be an integer greater than 16, and the larger the n, the greater the decoding probability.
  • the encoding module 1430 is configured to perform random linear coding on the first IP data packet and the second IP data packet by using a coding coefficient vector randomly selected by the first coding coefficient selection module 1420 to obtain a first linearly encoded data packet;
  • the DNCP encapsulation module 1440 is configured to perform DNCP encapsulation on the first linearly encoded data packet to obtain a first DNCP data packet, where the DNCP packet header of the first DNCP data packet includes an identifier of the first source, an identifier of the second source, and a first IP address. An identifier of the data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the above-described coding coefficient vector;
  • the IP encapsulation module 1450 is configured to perform IP encapsulation on the first DNCP data packet obtained by the DNCP encapsulation module 1440 to obtain a third IP data packet and send the same.
  • the DNCP packet header of the first DNCP data packet may include an identifier of the first source, an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and the first coding coefficient selection module 1420.
  • Randomly selected coding coefficient vector correlation coding coefficient vector information (where the coding coefficient vector information related to the above coding coefficient vector may be the coding coefficient vector itself, or may be an encoding obtained by passing the above coding coefficient vector through a specific calculation
  • the coefficient vector information, and the decoding device can restore the coding coefficient vector by, for example, the inverse of the specific calculation.
  • the source address recorded in the IP header of the third IP packet is, for example, the same as the source address recorded in the IP header of the first IP packet or the second IP packet, and the IP header of the third IP packet is in the IP header.
  • the recorded destination address may be, for example, the same as the destination address recorded in the IP header of the first IP data packet or the second IP data packet (where the first IP data packet and the IP header of the second IP data packet are recorded in the same IP header. Destination address).
  • the IP header of the third IP data packet may further include a DNCP data packet identifier (the DNCP data packet identifier may be carried, for example, in the third IP data packet.
  • the protocol field of the IP header may fill its protocol field with FE or other specific value to indicate that its IP layer payload contains DNCP packets, so that other network nodes can directly include the IP header according to the third IP packet.
  • the DNCP packet identifies that the IP layer payload of the third IP packet contains the DNCP packet.
  • the IP encapsulation module 1450 is further configured to: if the first receiving module 1410 receives the first IP data packet, the first IP data is not received from the second source. The IP packet with the same destination address of the packet transmits the first IP packet.
  • the DNCP encapsulation module 1440 is further configured to: if the first receiving module 1410 receives the first IP data packet, does not receive the first IP from the second source within the set duration after receiving the first IP data packet.
  • the IP packet with the same destination address of the data packet is DNCP-encapsulated to obtain the second DNCP data packet;
  • the IP encapsulation module 1450 is further configured to perform IP encapsulation on the second DNCP data packet to obtain a fourth IP data packet, where the DNCP packet header of the second DNCP data packet includes the identifier of the first source and the first IP data packet. logo.
  • the source address recorded in the IP header of the fourth IP packet may be the same as the source address recorded in the IP header of the first IP packet, and the destination address and the first IP recorded in the IP header of the fourth IP packet.
  • the destination address recorded in the IP header of the packet is the same.
  • the IP header of the fourth IP data packet may further include a DNCP data packet identifier (the DNCP data packet identifier may be, for example, a protocol field that may be carried in the IP header of the fourth IP data packet, for example, the protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP data packets), so that other network nodes can directly know the IP layer payload of the fourth IP data packet according to the DNCP data packet identifier included in the IP header of the fourth IP data packet.
  • DNCP packet may be, for example, a protocol field that may be carried in the IP header of the fourth IP data packet, for example, the protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP data packets
  • the coding device 1400 in this embodiment may be the coding device in the foregoing method embodiment, and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment, and the specific implementation process may refer to the foregoing method. The related description of the embodiment is not described herein again.
  • an encoding device 1500 may include: The second receiving module 1510 is configured to receive the fifth Internet Protocol IP data packet, and the second encoding coefficient selecting module 1520 is configured to receive the first receiving module 1510 after receiving the fifth IP data packet.
  • Six IP data packets, and the destination addresses of the sixth IP data packet and the fifth IP data packet are the same, and the IP layer payloads of the sixth IP data packet and the fifth IP data packet both contain the DNCP data packet, and the sixth IP data packet
  • the DNCP header of the DNCP packet in the IP layer payload contains two source identifiers and two IP packet identifiers, and two letters contained in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet. If the source identifier and the two IP packet identifiers are the same, the coding coefficient vector is randomly selected for the payload of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload in the finite field;
  • the second coding coefficient selection module 1520 may randomly select a coding coefficient for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload, respectively, in the Galois field GF2 n .
  • the coding module 1530 is configured to perform random linear coding on the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the sixth IP data packet by using the coding coefficient vector randomly selected by the second coding coefficient selection module 1520. Two linearly encoded data packets;
  • the DNCP encapsulating module 1540 is configured to perform DNCP encapsulation on the second linearly encoded data packet to obtain a third DNCP data packet, where the DNCP packet header of the third DNCP data packet includes the foregoing two source identifiers, the foregoing two IP packet identifiers, and the encoding.
  • the IP encapsulation module 1550 is configured to perform IP encapsulation on the third DNCP data packet obtained by the DNCP encapsulation module 1540 to obtain a seventh IP data packet and send the same.
  • the source address recorded in the IP header of the seventh IP data packet is, for example, the same as the source address recorded in the IP header of the fifth IP data packet or the sixth IP data packet, and the IP header of the seventh IP data packet is in the IP header.
  • the recorded destination address may be, for example, the same as the destination address recorded in the IP header of the fifth IP packet or the sixth IP packet (wherein the IP packet of the fifth IP packet and the sixth IP packet)
  • the IP address header of the seventh IP data packet may also include a DNCP data packet identifier (the DNCP data packet identifier, for example, a protocol field that may be carried in the IP header of the seventh IP data packet, for example, The protocol field can be padded with FE or other specific values to indicate that its IP layer payload contains DNCP packets.
  • the DNCP data packet identifier for example, a protocol field that may be carried in the IP header of the seventh IP data packet, for example,
  • the protocol field can be padded with FE or other specific values to indicate that
  • the second receiving module 1510 does not receive the sixth IP data packet with the same destination address within the set duration after receiving the fifth IP data packet, or the sixth IP received in the set duration
  • the DNCP header of the DNCP packet in the IP layer payload of the packet contains two source identifiers and two IP packet identifiers
  • the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet contains two If the source identifier is different from the two IP packet identifiers, the IP encapsulation module 1550 can send the fifth IP data packet.
  • the second encoding coefficient selection module 1520 is further configured to: if the second receiving module 1510 receives the eighth IP data packet within the set duration after receiving the fifth IP data packet, and the eighth IP The destination address of the data packet and the fifth IP data packet are the same, and the IP layer payload of one of the eighth IP data packet and the fifth IP data packet includes the DNCP data packet, and the other IP data packet is obtained by random linear coding to obtain the DNCP.
  • One of the original IP data packets of the data packet payload, and the coding coefficient vector is randomly selected for the payload of the DNCP data packet and the other IP data packet in the finite field;
  • the encoding module 1530 is further configured to use, by using the second encoding coefficient selection module 1520, the payload of the DNCP data packet and the encoding coefficient vector randomly selected by another IP data packet in the finite field, the payload of the DNCP data packet, and the other An IP data packet is randomly linearly encoded to obtain a third linearly encoded data packet;
  • the DNCP encapsulating module 1540 is further configured to perform DNCP encapsulation on the third linearly encoded data packet obtained by the encoding module 1530 to obtain a fourth DNCP data packet, where the DNCP packet header of the fourth DNCP data packet includes two source identifiers and two IP data packets. Identification and selection with the second coding coefficient Obtaining coding coefficient vector information related to the coding coefficient vector randomly selected by the module 1520, wherein the two source identifiers and the two IP data packet identifiers and the two letters included in the DNCP header of the DNCP data packet in the IP layer payload The source identifier is the same as the two IP packet identifiers;
  • the IP encapsulation module 1550 is further configured to perform IP encapsulation on the fourth DNCP packet obtained by the DNCP encapsulation module 1540 to obtain a ninth IP data packet and send the same.
  • the source address recorded in the IP header of the ninth IP packet is, for example, the same as the source address recorded in the IP header of the fifth IP packet or the eighth IP packet, and the IP header of the ninth IP packet is in the IP header.
  • the recorded destination address may be, for example, the same as the destination address recorded in the IP header of the fifth IP data packet or the eighth IP data packet (where the fifth IP data packet and the IP header of the eighth IP data packet are recorded in the same IP header.
  • the IP header of the ninth IP packet may also include a DNCP packet identifier (the DNCP packet identifier may be, for example, a protocol field that may be carried in the IP header of the ninth IP packet, for example, its protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP packets), so that other network nodes can directly know the IP layer payload of the ninth IP packet according to the DNCP packet identifier contained in the IP header of the ninth IP packet.
  • DNCP packet may be, for example, a protocol field that may be carried in the IP header of the ninth IP packet, for example, its protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP packets
  • the second encoding coefficient selection module 1520 is further configured to: if the second receiving module 1510 receives the tenth IP data packet within a set duration after receiving the fifth IP data packet, and the tenth IP
  • the destination address of the data packet and the fifth IP data packet are the same, and the IP layer payloads of the tenth IP data packet and the fifth IP data packet both contain the DNCP data packet, and one of the tenth IP data packet and the fifth IP data packet
  • the DNCP header of the DNCP packet in the IP layer payload contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains the two source identifiers.
  • one of the two IP data packet identifiers, and the coding coefficient vector is randomly selected for the payload of the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the finite field;
  • the encoding module 1530 is further configured to use the second encoding coefficient selection module 1520 to load the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the finite field respectively. Randomly selecting a coding coefficient vector, performing random linear coding on the payload of the PNCP data packet in the IP packet of the fifth IP data packet and the foregoing tenth IP data packet to obtain a fourth linearly encoded data packet;
  • the DNCP encapsulating module 1540 is further configured to perform DNCP encapsulation on the fourth linearly encoded data packet obtained by the encoding module 1530 to obtain a fifth DNCP data packet, where the DNCP packet header of the fifth DNCP data packet includes the foregoing two source identifiers, and the foregoing Two IP data packet identifiers are associated with a coding coefficient vector randomly selected by the second coding coefficient selection module 1520 in the finite field for the load of the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload, respectively. Coding coefficient vector information;
  • the IP encapsulation module 1550 is further configured to perform IP encapsulation on the fifth DNCP packet obtained by the DNCP encapsulation module 1540 to obtain an eleventh IP data packet and send the IP packet.
  • the source address recorded in the IP header of the eleventh IP packet is, for example, the same as the source address recorded in the IP header of the fifth IP packet or the tenth IP packet, and the IP of the eleventh IP packet.
  • the destination address recorded in the header may be, for example, the same as the destination address recorded in the IP header of the fifth IP packet or the tenth IP packet (where the IP header of the fifth IP packet and the tenth IP packet are recorded in the IP header) The same destination address); the IP header of the eleventh IP packet may also include a DNCP packet identifier (the DNCP packet identifier, for example, a protocol field that may be carried in the IP header of the eleventh IP packet, eg, the protocol field may be padded For FE or other specific values to indicate that its IP layer payload contains DNCP packets, so that other network nodes can directly know the eleventh IP packet according to the DNCP packet identifier contained in the IP header of the eleventh IP packet.
  • the IP layer payload contains DNCP packet
  • the finite field is, for example, a Galois field GF2 n , wherein the range of n is, for example, an integer between 4 and 16 (for example, an integer between 8 and 16), or n may be greater than 16. Integer.
  • the encoding device 1500 in this embodiment may be the encoding device in the foregoing method embodiment, and the functions of the respective functional modules may be specifically determined according to the method in the foregoing method embodiment.
  • the specific implementation process reference may be made to the related description of the foregoing method embodiments, and details are not described herein again.
  • a decoding device 1600 may include: a third receiving module 1610, configured to receive an IP data packet;
  • the first storage module 1620 is configured to: when the IP layer payload of the IP data packet received by the third receiving module 1610 includes the DNCP data packet, store the DNCP data packet into the buffer area;
  • the first reading module 1630 is configured to: when the DNCP data packet stored in the buffer area reaches a preset number, read the DNCP data packet from the buffer area;
  • the second reading module 1640 is configured to: if the DNCP packet of the DNCP packet read by the first reading module 1630 includes two source identifiers, two IP packet identifiers, and a set of encoding coefficients related to the encoding coefficient vector Vector information, then it is found in the buffer area that another DNCP packet whose DNCP header contains the above two source identifiers and two IP packet identifiers, if any, reads the other DNCP packet from the buffer area.
  • the DNCP header of the another DNCP packet further includes another set of coding coefficient vector information related to the coding coefficient vector.
  • the decoding module 1650 is configured to perform random linear decoding on the load of the read DNCP data packet by using two sets of coding coefficient vector information.
  • the decoding module 1650 can perform random linear decoding on the load of the read DNCP packet by, for example, matrix multiplication, Gaussian elimination, or Clemme's law.
  • the decoding device 1600 can obtain two original IP data packets from different sources and can send the original IP data packet. If the decoding module 1650 fails to perform random linear decoding, the device can be lost. Discard the read DNCP packet.
  • the decoding device 1600 may further include:
  • the index includes: at least one IP packet identifier included in a DNCP header of the DNCP packet.
  • the third receiving module 1610 is specifically configured to receive IP data packets from the first link and the second link, respectively.
  • the first storage module 1620 is specifically configured to: if the IP layer payload of the IP data packet received by the third receiving module 1610 from the first link includes a DNCP data packet, store the DNCP data packet in the first buffer area;
  • the IP layer payload of the IP data packet received by the third receiving module 1610 from the second link includes a DNCP data packet, and the DNCP data packet is stored in the second buffer area;
  • the first reading module 1630 is specifically configured to: when the DNCP data packet stored in the first buffer area reaches a preset number and/or the DNCP data packet stored in the second buffer area reaches a preset number, or When the sum of the DNCP packets entering the first buffer area and the second buffer area reaches a preset number, the DNCP data packet is read from the first buffer area in a predetermined reading order.
  • the second reading module 1640 may be specifically configured to: if the first read mode, two IP data packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, according to the At least one of the two source identifiers and at least one of the two IP packet identifiers, or, according to at least one of the two IP packet identifiers, finding whether the DNCP header exists in the second buffer includes the above Two source identifiers and another DNCP packet identified by two IP packets, if present, the other DNCP packet can be read from the second buffer, wherein the DNCP of the other DNCP packet
  • the header also contains another set of coding coefficient vector information associated with the coding coefficient vector.
  • the decoding device 1600 in this embodiment may be the decoding device in the foregoing method embodiment, and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment, and the specific implementation process may refer to the foregoing method. The related description of the embodiment is not described herein again.
  • an encoding device 1700 may include: an IP layer module 1710 and a DNCP layer module 1720.
  • the IP layer module 1710 is configured to receive a first Internet Protocol IP data packet from the first source.
  • the DNCP layer module 1720 is configured to receive, by the IP layer module, a second IP data packet from the second source, and the first IP data packet and the second IP data, within a set duration after receiving the first IP data packet. If the destination address of the packet is the same, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field; the first IP data packet and the second IP data packet are randomly linearized by using the coding coefficient vector.
  • the first linearly encoded data packet is encapsulated by a dual source network coding protocol DNCP to obtain a first DNCP data packet, where a DNCP header of the first DNCP data packet includes an identifier of the first source, An identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the coding coefficient vector; and performing IP encapsulation on the first DNCP data packet to obtain a third IP data packet
  • the above IP layer module is further configured to send the third IP data packet obtained by the DNCP layer module.
  • the IP layer module 1710 is further configured to receive a fifth Internet Protocol IP data packet.
  • the DNCP layer module 1720 is further configured to: if the IP layer module 1710 receives the sixth IP data packet within a set duration after receiving the fifth IP data packet, and the destination addresses of the sixth IP data packet and the fifth IP data packet Similarly, the IP layer payloads of the sixth IP data packet and the fifth IP data packet both contain a dual source network coding protocol DNCP data packet, and the DNCP header of the DNCP data packet in the IP layer payload of the sixth IP data packet includes two The source identifier and the two IP packet identifiers are the same as the two source identifiers and the two IP packet identifiers contained in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet, and then in the finite field The coding coefficient vector is randomly selected for the load of the DNCP data packet in the IP packet of the fifth IP data packet and the sixth IP data packet respectively; and is used in the IP layer payload of the fifth IP data packet and the sixth IP data packet in the finite field respectively.
  • the coded coefficient vector randomly selected by the payload of the DNCP data packet is subjected to random linear coding of the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the sixth IP data packet to obtain a second linear coded data packet;
  • Linear coded packet The DNCP encapsulation obtains a third DNCP packet, and the DNCP header of the third DNCP packet includes the above two source identifiers, the above two IP packet identifiers, and the fifth IP packet and the sixth IP in the finite field respectively.
  • the DNCP data packet is IP-encapsulated to obtain a seventh IP data packet
  • the IP layer module 1710 is further configured to send the seventh IP data packet obtained by the DNCP layer module 1720.
  • the DNCP layer module 1720 is further configured to: if the IP layer module 1710 receives the eighth IP data packet within a set duration after receiving the fifth IP data packet, and the eighth IP data packet and the first The destination addresses of the five IP data packets are the same, and the IP layer payload of one of the eighth IP data packet and the fifth IP data packet includes the DNCP data packet, and the other IP data packet is obtained by random linear coding to obtain the DNCP data packet payload.
  • the load of the DNCP data packet and the other IP data packet are randomly selected from the coding coefficient vector; using the load of the DNCP data packet in the finite field and the above
  • the other coding data vector randomly selected by the IP data packet is subjected to random linear coding of the payload of the DNCP data packet and the another IP data packet to obtain a third linearly encoded data packet; and the third linearly encoded data packet is encapsulated by DNCP.
  • the fourth DNCP packet, the DNCP header of the fourth DNCP packet contains two source identifiers and two IP packet identifiers.
  • coding coefficient vector information related to the coding coefficient vector where the two source identifiers and the two IP packet identifiers and the two source identifiers included in the DNCP header of the DNCP packet in the IP layer payload are The two IP data packets are identified by the same identifier; the fourth DNCP data packet is IP-encapsulated to obtain the ninth IP data packet.
  • the IP layer module 1710 is further configured to send the ninth IP data packet obtained by the DNCP layer module 1720.
  • the DNCP layer module 1720 is further configured to: if the IP layer module 1710 receives the tenth IP data packet within a set duration after receiving the fifth IP data packet, and the tenth IP data packet and the first The destination addresses of the five IP data packets are the same, and the IP layer payloads of the tenth IP data packet and the fifth IP data packet all contain the DNCP data packet, and the IP layer payload of one of the tenth IP data packet and the fifth IP data packet is included.
  • the DNCP header of the DNCP packet contains two source identifiers and two IP packet identifiers
  • the DNCP header of the DNCP packet in the other IP layer payload contains one of the above two source identifiers and the above two Among the IP packet identifiers
  • the coding coefficient vector is randomly selected for the load of the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the finite field; respectively, using the fifth IP data packet and the first in the finite field
  • the above-mentioned coding coefficient vector randomly selected from the payload of the DNCP packet in the IP packet payload of the IP packet is randomly linearly encoded by the payload of the DNCP packet in the IP layer payload of the fifth IP packet and the tenth IP packet.
  • the fourth linearly encoded data packet is DNCP-encapsulated to obtain a fifth DNCP data packet, where the DNCP header of the fifth DNCP data packet includes the two source identifiers, the two IP packet identifiers, and Encoding coefficient vector information related to the coding coefficient vector; performing IP encapsulation on the fifth DNCP packet to obtain an eleventh IP data packet;
  • the IP layer module 1710 is further configured to send the eleventh IP data packet obtained by the DNCP layer module 1720.
  • the encoding device 1700 in this embodiment may be the encoding device in the foregoing method embodiment (for example, the hardware structure shown in FIG. 11), and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment.
  • the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment.
  • a decoding device 1800 may include: an IP layer module 1810 and a DNCP layer module 1820.
  • the IP layer module 1810 is configured to receive an Internet Protocol IP data packet.
  • a DNCP layer module configured to store the DNCP data packet into the buffer area if the IP layer payload of the IP data packet received by the IP layer module 1810 includes the dual source network coding protocol DNCP data packet;
  • the DNCP data packet of the buffer area reaches a preset number, the DNCP data packet is read out from the buffer area; if the DNCP header of the DNCP data packet read above includes two source identifiers, two IP data packet identifiers, and one Grouping the coding coefficient vector information related to the coding coefficient vector, and searching whether there is another DNCP packet whose DNCP header contains the above two source identifiers and two IP packet identifiers in the buffer area, and if present, the slave buffer area Reading out another DNCP packet, where the DNCP header of the other DNCP packet Another set of coding coefficient vector information related to the coding coefficient vector is further included; the load of the read DNCP data packet is randomly linearly decoded by using the two sets of coding coefficient vector information
  • the IP layer module 1810 is further configured to send the seventh IP packet that is randomly and linearly decoded by the DNCP layer module 1820.
  • the decoding device 1800 in this embodiment may be the decoding device in the foregoing method embodiment (for example, the hardware structure shown in FIG. 12), and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment.
  • the decoding device 1800 in this embodiment may be the decoding device in the foregoing method embodiment (for example, the hardware structure shown in FIG. 12), and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment.
  • the embodiment of the invention further provides a communication system, including:
  • the embodiment of the present invention proposes DNCP to support codec between two sources. Since the encoding device performs random linear coding on two IP data packets whose arrival interval is less than the set duration and the destination address is the same, which is beneficial to To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet carries two source identifiers, two IP packet identifiers, and coding coefficients related to the coding coefficient vector.
  • the mechanism based on DNCP is beneficial to improve the versatility of the encoding in the actual network; It is implemented based on network coding technology, so it can fully utilize network resources, significantly improve network throughput and achieve higher transmission efficiency.
  • the program can be stored in a computer readable storage medium.
  • the storage medium can include: Read-only memory, random access memory, disk or optical disk, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Disclosed in the embodiment of the present invention are a method for coding thereof related device and communication system. In the embodiment of the present invention, DNCP(DNCP: Doublesource Network Coding Protocol) is provided for supporting coding and decoding between two signal sources, wherein, the coding device performs random linear coding to two IP packages whose arrival interval are smaller than the setting duration and the destination addresses are same, through this ,it is useful for partly eliminating the influence of mismatch of transmitting rate and transfer delay in the actual network; at the same time, the header of DNCP package carries two source IDs, two IP package IDs and coding coefficient vector information which is related to the coding coefficient vector, which lays the foundation for the coding device continuously to code multi times or for the decoding device to decode rapidly, and benefits improving the generality of network coding in the actual network; and as the present invention is carried out based on network coding technology, therefore it can make full use of network resource and increase the network throughout rate obviously and achieve higher transmission efficiency.

Description

编解码方法及相关设备和通信系统 本申请要求于 2011 年 8 月 1 日提交中国专利局、 申请号为 201110217978.X, 发明名称为 "编解码方法及相关设备和通信系统" 的中 国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域 本发明涉及通信技术领域, 具体涉及编解码方法及相关设备和通信系 统。 背景技术  Codec method and related equipment and communication system The application is filed on August 1, 2011, the Chinese Patent Office, the application number is 201110217978.X, and the invention is entitled "Codec and Decoding Method and Related Equipment and Communication System" Priority is hereby incorporated by reference in its entirety. TECHNICAL FIELD The present invention relates to the field of communications technologies, and in particular, to a codec method and related devices and communication systems. Background technique
2000年诞生的网络编码( NC , Network Coding )提出了通信网络中单 信源或多信源对多个接收点组播或广播时, 如何达到由 "最大流最小割定 理" 确定的网络通信容量极限的一个思路。 The network coding (NC, Network Coding) born in 2000 proposed how to achieve the network communication capacity determined by the "maximum flow minimum cut theorem" when a single source or multiple sources in a communication network multicast or broadcast to multiple receiving points. An idea of the limit.
传统通信网络节点上的路由交换机只完成 "存储-转发" 功能, 将信息 看作 "货物", 因而认为信息是不可叠加的。 而这一认知上的局限导致网络 难以达到最大流传输。 NC指出如果允许路由交换机对输入的多条信息流编 码后再发送, 则可以使得网络通信可以达到最大流传输。 目前, 业内提出 了针对单信源对多个接收点场景的编码方案, 其基于的思想是对数据包进 行分割, 将分割得到的数据包进行网络编码后发送。  The routing switch on the traditional communication network node only performs the "store-and-forward" function, and regards the information as "goods", so that the information is considered to be non-superimposable. This cognitive limitation makes it difficult for the network to achieve maximum streaming. The NC indicates that if the routing switch is allowed to encode multiple incoming streams and then send it, the network communication can achieve maximum streaming. At present, the industry proposes a coding scheme for a single source to multiple receiving point scenes, which is based on the idea of dividing a data packet, and transmitting the divided data packet after network coding.
研究和实践发现, 现有技术主要针对单信源对多个接收点的场景, 而 实际网络中更多的存在多信源对多个接收点的场景, 这使得现有技术无法 满足实际网络的应用需要, 并且, 现有技术釆用分割编码的机制, 这较大 的增加了网络节点的数据处理负荷。  Research and practice have found that the prior art is mainly directed to a scenario where a single source is connected to multiple receiving points, and in the actual network, there are more scenarios in which multiple sources are connected to multiple receiving points, which makes the prior art unable to satisfy the actual network. The application requires, and the prior art uses a partition coding mechanism, which greatly increases the data processing load of the network node.
发明内容 本发明实施例提供一种编解码方法及相关设备和通信系统, 以期提高 网络编解码的灵活性, 降低网络节点编解码的复杂度。 SUMMARY OF THE INVENTION Embodiments of the present invention provide a codec method, a related device, and a communication system, with a view to improving The flexibility of network codec reduces the complexity of network node codec.
一种编码方法, 包括:  An encoding method, including:
接收来自第一信源的第一网际协议 IP数据包;  Receiving a first internet protocol IP data packet from the first source;
若在接收到所述第一 IP数据包后的设定时长内接收到来自第二信源的 第二 IP数据包, 且所述第一 IP数据包和所述第二 IP数据包的目的地址相 同,则在有限域中分别为所述第一 IP数据包和所述第二 IP数据包随机选取 编码系数矢量;  Receiving, by the set time duration after receiving the first IP data packet, a second IP data packet from the second source, and the destination address of the first IP data packet and the second IP data packet Similarly, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field;
利用所述编码系数矢量对所述第一 IP数据包和所述第二 IP数据包进行 随机线性编码得到第一线性编码数据包;  And randomly encoding the first IP data packet and the second IP data packet by using the coding coefficient vector to obtain a first linearly encoded data packet;
将所述第一线性编码数据包进行双信源网络编码协议 DNCP封装得到 第一 DNCP数据包, 其中, 所述第一 DNCP数据包的 DNCP包头包含所述 第一信源的标识、 所述第二信源的标识、 所述第一 IP数据包的标识、 所述 第二 IP数据包的标识以及与所述编码系数矢量相关的编码系数矢量信息; 将所述第一 DNCP数据包进行 IP封装得到第三 IP数据包并发送。 一种编码方法, 包括:  The first linearly encoded data packet is encapsulated by a dual source network coding protocol (DNCP) to obtain a first DNCP data packet, where the DNCP header of the first DNCP data packet includes an identifier of the first source, An identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the coding coefficient vector; performing IP encapsulation on the first DNCP data packet The third IP packet is obtained and sent. An encoding method, including:
接收第五网际协议 IP数据包;  Receiving a fifth internet protocol IP data packet;
若在接收到所述第五 IP数据包后的设定时长内接收到第六 IP数据包, 且所述第六 IP数据包和所述第五 IP数据包的目的地址相同 ,且所述第六 IP 数据包和所述第五 IP数据包的 IP层载荷都包含双信源网络编码协议 DNCP 数据包, 且所述第六 IP数据包的 IP层载荷中 DNCP数据包的 DNCP包头 包含的两个信源标识和两个 IP数据包标识, 与所述第五 IP数据包的 IP层 载荷中 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标 识相同, 则在有限域中分别为所述第五 IP数据包和所述第六 IP数据包 IP 层载荷中 DNCP数据包的载荷随机选取编码系数矢量;  Receiving a sixth IP data packet within a set duration after receiving the fifth IP data packet, and the sixth IP data packet and the fifth IP data packet have the same destination address, and the The IP layer payloads of the six IP data packets and the fifth IP data packet both contain a dual source network coding protocol DNCP data packet, and the DNCP header of the DNCP data packet in the IP layer payload of the sixth IP data packet includes two The source identifier and the two IP packet identifiers are the same as the two source identifiers and the two IP packet identifiers included in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet, and are limited. Randomly selecting a coding coefficient vector for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload in the domain;
利用所述编码系数矢量对所述第五 IP数据包和所述第六 IP数据包的 IP 层载荷中 DNCP数据包的载荷进行随机线性编码得到第二线性编码数据 包; Performing random linear coding on the payload of the DNCP packet in the IP layer payload of the fifth IP data packet and the sixth IP data packet by using the coding coefficient vector to obtain second linear encoded data Package
将所述第二线性编码数据包进行 DNCP封装得到第三 DNCP数据包, 其中, 所述第三 DNCP数据包的 DNCP包头包含所述两个信源标识、 所述 两个 IP数据包标识以及与所述编码系数矢量相关的编码系数矢量信息; 将所述第三 DNCP数据包进行 IP封装得到第七 IP数据包并发送。 一种解码方法, 包括:  DNCP encapsulating the second linearly encoded data packet to obtain a third DNCP data packet, where the DNCP header of the third DNCP data packet includes the two source identifiers, the two IP packet identifiers, and Encoding coefficient vector information related to the coding coefficient vector; IP encapsulating the third DNCP data packet to obtain a seventh IP data packet and transmitting. A decoding method, including:
接收网际协议 IP数据包;  Receiving Internet Protocol IP data packets;
若接收到的所述 IP数据包的 IP层载荷包含双信源网络编码协议 DNCP 数据包, 则将该 DNCP数据包存入到緩存区;  If the IP layer payload of the received IP data packet includes a dual source network coding protocol DNCP data packet, the DNCP data packet is stored in the buffer area;
当存入到所述緩存区的 DNCP数据包达到预设数目时, 从所述緩存区 读取出 DNCP数据包;  When the DNCP data packet stored in the buffer area reaches a preset number, the DNCP data packet is read from the buffer area;
若所述读取出的 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢量相关的编码系数矢量信息, 则查找 緩存区中是否存在其 DNCP包头包含所述两个信源标识和两个 IP数据包标 识的另一个 DNCP数据包, 若存在, 则从緩存区读取出该另一个 DNCP数 据包, 其中, 该另一个 DNCP数据包的 DNCP包头还包含另一组与编码系 数矢量相关的编码系数矢量信息;  If the DNCP header of the read DNCP data packet includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, whether the DNCP header is present in the buffer area Another DNCP packet containing the two source identifiers and two IP packet identifiers, if any, reads the other DNCP packet from the buffer area, wherein the DNCP header of the other DNCP packet Also including another set of coding coefficient vector information related to the coding coefficient vector;
利用所述两组编码系数矢量信息对读取出的 DNCP数据包的载荷进行 随机线性解码。  The load of the read DNCP packet is randomly linearly decoded using the two sets of coding coefficient vector information.
一种编码设备, 包括:  An encoding device comprising:
第一接收模块, 用于接收来自第一信源的第一网际协议 IP数据包; 第一编码系数选取模块, 用于若所述第一接收模块在接收到所述第一 IP数据包后的设定时长内接收到来自第二信源的第二 IP数据包, 且所述第 一 IP数据包和所述第二 IP数据包的目的地址相同,则在有限域中分别为所 述第一 IP数据包和所述第二 IP数据包随机选取编码系数矢量;  a first receiving module, configured to receive a first Internet Protocol IP data packet from the first source, and a first encoding coefficient selection module, configured to: after the first receiving module receives the first IP data packet, Receiving a second IP data packet from the second source within a set duration, and the first IP data packet and the second IP data packet have the same destination address, respectively, the first in the finite field The IP data packet and the second IP data packet randomly select a coding coefficient vector;
编码模块, 用于利用所述第一编码系数选取模块随机选取的编码系数 矢量对所述第一 IP数据包和所述第二 IP数据包进行随机线性编码得到第一 线性编码数据包; An encoding module, configured to use the first coding coefficient selection module to randomly select a coding coefficient Performing random linear coding on the first IP data packet and the second IP data packet to obtain a first linear encoded data packet;
DNCP封装模块, 用于将所述第一线性编码数据包进行双信源网络编 码协议 DNCP封装得到第一 DNCP数据包,所述第一 DNCP数据包的 DNCP 包头包含所述第一信源的标识、 所述第二信源的标识、 所述第一 IP数据包 的标识、 所述第二 IP数据包的标识以及与所述编码系数矢量相关的编码系 数矢量信息;  a DNCP encapsulation module, configured to perform a DNCP encapsulation of the first linearly encoded data packet by using a dual source network coding protocol (DNCP), where a DNCP header of the first DNCP data packet includes an identifier of the first source And an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the coding coefficient vector;
IP封装模块, 用于将所述 DNCP封装模块得到的第一 DNCP数据包进 行 IP封装得到第三 IP数据包并发送。  The IP encapsulation module is configured to perform IP encapsulation on the first DNCP data packet obtained by the DNCP encapsulation module to obtain a third IP data packet and send the same.
一种编码设备, 包括:  An encoding device comprising:
第二接收模块, 用于接收第五网际协议 IP数据包;  a second receiving module, configured to receive a fifth internet protocol IP data packet;
第二编码系数选取模块, 用于若所述第二接收模块在接收到第五 IP数 据包后的设定时长内接收到第六 IP数据包,且所述第六 IP数据包和所述第 五 IP数据包的目的地址相同, 且所述第六 IP数据包和所述第五 IP数据包 的 IP层载荷都包含双信源网络编码协议 DNCP数据包, 且所述第六 IP数 据包 IP层载荷中的 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标识,与所述第五 IP数据包 IP层载荷中的 DNCP数据包的 DNCP 包头包含的两个信源标识和两个 IP数据包标识相同, 则在有限域中分别为 所述第五 IP数据包和所述第六 IP数据包 IP层载荷中的 DNCP数据包的载 荷随机选取编码系数矢量;  a second coding coefficient selection module, configured to: if the second receiving module receives the sixth IP data packet within a set duration after receiving the fifth IP data packet, and the sixth IP data packet and the first The destination addresses of the five IP data packets are the same, and the IP layer payloads of the sixth IP data packet and the fifth IP data packet both include a dual source network coding protocol DNCP data packet, and the sixth IP data packet IP address Two source identifiers and two IP packet identifiers included in the DNCP header of the DNCP packet in the layer payload, and two sources included in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet The identifier and the two IP data packet identifiers are the same, and the coding coefficient vector is randomly selected in the finite field for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload respectively;
编码模块, 用于利用所述编码系数选取模块随机选取的编码系数矢量, 对所述第五 IP数据包和所述第六 IP数据包 IP层载荷中的 DNCP数据包的 载荷进行随机线性编码得到第二线性编码数据包;  An encoding module, configured to perform random linear coding on a load of the DNCP data packet in the fifth IP data packet and the IP layer payload of the sixth IP data packet by using a coding coefficient vector randomly selected by the coding coefficient selection module a second linearly encoded data packet;
DNCP封装模块, 用于将所述编码模块得到的第二线性编码数据包进 行 DNCP封装得到第三 DNCP数据包, 其中, 所述第三 DNCP数据包的 DNCP包头包含所述两个信源标识、 所述两个 IP数据包标识以及与所述编 码系数矢量相关的编码系数矢量信息; a DNCP encapsulating module, configured to perform DNCP encapsulation on a second linearly encoded data packet obtained by the encoding module to obtain a third DNCP data packet, where a DNCP packet header of the third DNCP data packet includes the two source identifiers, The two IP data packet identifiers and the Coding coefficient vector correlation coding coefficient vector information;
IP封装模块, 用于将所述 DNCP封装模块得到的第三 DNCP数据包进 行 IP封装得到第七 IP数据包并发送。  The IP encapsulation module is configured to perform IP encapsulation on the third DNCP data packet obtained by the DNCP encapsulation module to obtain a seventh IP data packet and send the same.
一种编码设备, 包括:  An encoding device comprising:
IP层模块, 用于接收来自第一信源的第一网际协议 IP数据包;  An IP layer module, configured to receive a first Internet Protocol IP data packet from the first source;
DNCP层模块,用于若所述 IP层模块在接收到所述第一 IP数据包后的 设定时长内接收到来自第二信源的第二 IP数据包,且所述第一 IP数据包和 所述第二 IP数据包的目的地址相同,则在有限域中分别为所述第一 IP数据 包和所述第二 IP数据包随机选取编码系数矢量; 利用该编码系数矢量对所 述第一 IP数据包和所述第二 IP数据包进行随机线性编码得到第一线性编码 数据包; 将所述第一线性编码数据包进行双信源网络编码协议 DNCP封装 得到第一 DNCP数据包, 其中, 所述第一 DNCP数据包的 DNCP包头包含 所述第一信源的标识、 所述第二信源的标识、 所述第一 IP数据包的标识、 所述第二 IP数据包的标识以及与所述编码系数矢量相关的编码系数矢量信 息; 将所述第一 DNCP数据包进行 IP封装得到第三 IP数据包;  a DNCP layer module, configured to receive, by the IP layer module, a second IP data packet from a second source within a set duration after receiving the first IP data packet, and the first IP data packet And the same as the destination address of the second IP data packet, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field; An IP data packet and the second IP data packet are randomly linearly encoded to obtain a first linearly encoded data packet; and the first linearly encoded data packet is encapsulated by a dual source network coding protocol (DNCP) to obtain a first DNCP data packet, where The DNCP header of the first DNCP data packet includes an identifier of the first source, an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and Coding coefficient vector information related to the coding coefficient vector; performing IP encapsulation on the first DNCP data packet to obtain a third IP data packet;
所述 IP层模块还用于, 发送所述 DNCP层模块得到的第三 IP数据包。 一种解码设备, 其特征在于, 包括:  The IP layer module is further configured to send the third IP data packet obtained by the DNCP layer module. A decoding device, comprising:
第三接收模块, 用于接收网际协议 IP数据包;  a third receiving module, configured to receive an internet protocol IP data packet;
第一存储模块,用于当所述第三接收模块接收到的 IP数据包的 IP层载 荷包含 DNCP数据包时, 将该 DNCP数据包存入到緩存区;  a first storage module, configured to: when the IP layer payload of the IP data packet received by the third receiving module includes a DNCP data packet, store the DNCP data packet into a buffer area;
第一读取模块,用于当存入到緩存区的 DNCP数据包达到预设数目时, 从所述緩存区读取出 DNCP数据包;  a first reading module, configured to read a DNCP data packet from the buffer area when a DNCP data packet stored in the buffer area reaches a preset number;
第二读取模块, 用于若所述第一读取模块读取出的 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢 量相关的编码系数矢量信息, 则查找緩存区中是否存在其 DNCP包头包含 所述两个信源标识和两个 IP数据包标识的另一个 DNCP数据包, 若存在, 则从緩存区读取出该另一个 DNCP数据包, 其中, 该另一个 DNCP数据包 的 DNCP包头还包含另一组与编码系数矢量相关的编码系数矢量信息; 解码模块, 用于利用两组编码系数矢量信息对读取出的 DNCP数据包 的载荷进行随机线性解码。 a second reading module, configured to: if the DNCP packet of the DNCP packet read by the first reading module includes two source identifiers, two IP packet identifiers, and a set of coding coefficients related to the coding coefficient vector Vector information, then it is found in the buffer area that another DNCP packet whose DNCP header contains the two source identifiers and two IP packet identifiers, if any, And reading the another DNCP data packet from the buffer area, where the DNCP packet header of the another DNCP data packet further includes another set of coding coefficient vector information related to the coding coefficient vector; and a decoding module, configured to utilize two sets of coding The coefficient vector information performs a random linear decoding on the load of the read DNCP packet.
一种解码设备, 包括:  A decoding device, comprising:
IP层模块, 用于接收网际协议 IP数据包;  An IP layer module, configured to receive an Internet Protocol IP data packet;
DNCP层模块, 用于若所述 IP层模块接收到的所述 IP数据包的 IP层 载荷包含双信源网络编码协议 DNCP数据包, 则将该 DNCP数据包存入到 緩存区; 当存入到所述緩存区的 DNCP数据包达到预设数目时, 从所述緩 存区读取出 DNCP数据包; 若所述读取出的 DNCP数据包的 DNCP包头包 含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢量相关的编码 系数矢量信息, 则查找緩存区中是否存在其 DNCP包头包含所述两个信源 标识和两个 IP数据包标识的另一个 DNCP数据包, 若存在, 则从緩存区读 取出该另一个 DNCP数据包, 其中, 该另一个 DNCP数据包的 DNCP包头 还包含另一组与编码系数矢量相关的编码系数矢量信息; 利用所述两组编 码系数矢量信息对读取出的 DNCP数据包的载荷进行随机线性解码;  a DNCP layer module, configured to: if the IP layer payload of the IP data packet received by the IP layer module includes a dual source network coding protocol DNCP data packet, store the DNCP data packet into a buffer area; When the DNCP data packet of the buffer area reaches a preset number, the DNCP data packet is read out from the buffer area; if the DNCP header of the read DNCP data packet includes two source identifiers, two IP addresses The data packet identifier and a set of coding coefficient vector information related to the coding coefficient vector, and whether there is another DNCP data packet whose DNCP header contains the two source identifiers and two IP packet identifiers in the buffer area, if If yes, the another DNCP data packet is read from the buffer area, where the DNCP header of the another DNCP data packet further includes another set of coding coefficient vector information related to the coding coefficient vector; The vector information performs random linear decoding on the load of the read DNCP data packet;
所述 IP层模块还用于, 发送所述 DNCP层模块随机线性解码出的第七 IP数据包。  The IP layer module is further configured to send a seventh IP data packet that is randomly and linearly decoded by the DNCP layer module.
一种通信系统, 包括:  A communication system comprising:
如上述实施例所述的编码设备和 /或解码设备。  An encoding device and/or a decoding device as described in the above embodiments.
由上可见, 本发明实施例提出 DNCP来支持两信源间的编解码, 由于 编码设备是对到达间隔小于设定时长且目的地址相同的两个 IP数据包进行 随机线性编码, 这就有利于在一定程度上消除实际网络中的传输延迟及发 送速率等不匹配问题的影响; 同时, DNCP数据包的 DNCP包头携带两个 信源标识、 两个 IP数据包标识以及与编码系数矢量相关的编码系数矢量信 息, 这就为编码设备继续多次编码或为解码设备快速解码奠定了基础, 有 利于提高网络编码在实际网络中的通用性; 并且由于是基于网络编码技术 来实施, 因而能够充分利用网络资源, 明显提高网络的吞吐率, 达到更高 的传输效率。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员 来讲, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的 附图。 As can be seen from the above, the embodiment of the present invention proposes DNCP to support codec between two sources. Since the encoding device performs random linear coding on two IP data packets whose arrival interval is less than the set duration and the destination address is the same, this is advantageous. To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet carries two source identifiers, two IP packet identifiers, and an encoding associated with the coding coefficient vector. Coefficient vector information, which lays the foundation for the encoding device to continue encoding multiple times or for decoding the decoding device quickly. It is beneficial to improve the versatility of network coding in actual networks; and because it is implemented based on network coding technology, it can fully utilize network resources, significantly improve network throughput and achieve higher transmission efficiency. BRIEF DESCRIPTION OF THE DRAWINGS In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings to be used in the embodiments or the description of the prior art will be briefly described below, and obviously, in the following description The drawings are only some of the embodiments of the present invention, and other drawings may be obtained from those skilled in the art without departing from the drawings.
图 1-a是本发明实施例提供的一种扩展 DNCP层后的数据包结构示意 图;  FIG. 1 is a schematic diagram of a data packet structure after extending a DNCP layer according to an embodiment of the present disclosure;
图 1-b是本发明实施例提供的一种 DNCP数据包的包头结构示意图; 图 1-c是本发明实施例提供的一种 DNCP包头中的标志字段的取值与含 义对比示意图;  FIG. 1 is a schematic diagram of a packet header structure of a DNCP data packet according to an embodiment of the present invention; FIG. 1 is a schematic diagram showing a comparison between a value and a meaning of a flag field in a DNCP packet header according to an embodiment of the present invention;
图 2是本发明实施例提供的一种蝶形网络的编解码示意图;  2 is a schematic diagram of codec decoding of a butterfly network according to an embodiment of the present invention;
图 3是本发明实施例提供的一种编码方法的流程示意图;  3 is a schematic flowchart of an encoding method according to an embodiment of the present invention;
图 4是本发明实施例提供的另一种编码方法的流程示意图;  4 is a schematic flowchart of another coding method according to an embodiment of the present invention;
图 5是本发明实施例提供的另一种编码方法的流程示意图;  FIG. 5 is a schematic flowchart of another coding method according to an embodiment of the present invention;
图 6是本发明实施例提供的另一种编码方法的流程示意图;  6 is a schematic flowchart of another coding method according to an embodiment of the present invention;
图 7是本发明实施例提供的一种解码方法的流程示意图;  FIG. 7 is a schematic flowchart diagram of a decoding method according to an embodiment of the present invention;
图 8-a是本发明实施例提供的另一种编码方法的流程示意图;  FIG. 8 is a schematic flowchart of another coding method according to an embodiment of the present disclosure;
图 8-b是本发明实施例提供的一种 IP数据包编码结构示意图;  FIG. 8 is a schematic diagram of an IP packet coding structure according to an embodiment of the present invention;
图 9是本发明实施例提供的另一种解码方法的流程示意图;  FIG. 9 is a schematic flowchart diagram of another decoding method according to an embodiment of the present invention;
图 10是本发明实施例提供的一种编解码设备的硬件层级架构示意图; 图 11是本发明实施例提供的一种编码设备的硬件模块架构示意图; 图 12是本发明实施例提供的一种解编码设备的硬件模块架构示意图 图 13是本发明实施例提供的一种小区网络拓朴结构示意图; 10 is a schematic diagram of a hardware hierarchy of a codec device according to an embodiment of the present invention; FIG. 11 is a schematic structural diagram of a hardware module of an encoding device according to an embodiment of the present invention; FIG. 12 is a schematic structural diagram of a hardware module of a decoding apparatus according to an embodiment of the present invention; FIG. 13 is a schematic diagram of a topology structure of a cell network according to an embodiment of the present invention;
图 14是本发明实施例提供的一种编码设备示意图  FIG. 14 is a schematic diagram of an encoding device according to an embodiment of the present invention;
图 15是本发明实施例提供的一种编码设备示意图  FIG. 15 is a schematic diagram of an encoding device according to an embodiment of the present invention;
图 16是本发明实施例提供的一种解码设备示意图  FIG. 16 is a schematic diagram of a decoding device according to an embodiment of the present invention;
图 17是本发明实施例提供的一种编码设备示意图  FIG. 17 is a schematic diagram of an encoding device according to an embodiment of the present invention;
图 18是本发明实施例提供的一种解码设备示意图  FIG. 18 is a schematic diagram of a decoding device according to an embodiment of the present invention;
具体实施方式 本发明实施例提供一种编解码方法及相关设备和通信系统, 以期提高 网络编解码的灵活性, 降低网络节点编解码的复杂度。 DETAILED DESCRIPTION OF THE EMBODIMENTS The embodiments of the present invention provide a codec method, a related device, and a communication system, so as to improve the flexibility of network codec and reduce the complexity of coding and decoding of a network node.
为使得本发明的发明目的、 特征、 优点能够更加的明显和易懂, 下面 将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 下面所描述的实施例仅仅是本发明一部分实施例, 而 非全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其它实施例, 都属于本发明保护的范围。  In order to make the object, the features and the advantages of the present invention more obvious and easy to understand, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the drawings in the embodiments of the present invention. The described embodiments are only a part of the embodiments of the invention, and not all of the embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative efforts are within the scope of the present invention.
其中, 本发明说明书和权利要求书及附图中的术语 "第一"、 "第二"、 "第三" "第四" 等(如果存在)是用于区别类似的对象, 而不必用于描述 特定的顺序或先后次序。  Wherein the terms "first", "second", "third", "fourth", etc. (if present) in the specification and claims of the present invention are used to distinguish similar objects, and are not necessarily used for Describe a specific order or order.
为便于更好的规范和实施网络编解码, 本发明实施例提出了一种双信 源网络编码协议 ( DNCP, Doublesource Network Coding Protocol )。  In order to facilitate the specification and implementation of the network codec, the embodiment of the present invention proposes a Double Source Network Coding Protocol (DNCP).
下面首先介绍 DNCP协议的相关内容。  The following describes the relevant content of the DNCP protocol.
来自不同信源的网际协议( IP, Internet Protocol )数据包的 IP包头所 携带的信息不同, 当 IP数据包在网络中传输时, 网络中间节点可对其进行 编码或者解码操作。 为更好的规范和实施网络编解码, 本发明实施例提出 了支持双信源之间的编解码操作的 DNCP, DNCP例如可添加到 IP层和运 输层之间, 即 DNCP包头插入到 IP包头和运输层包头之间 (例如图 1-a所 示)。 The IP headers of Internet Protocol (IP) packets from different sources have different information. When IP packets are transmitted in the network, the network intermediate nodes can encode or decode them. For better specification and implementation of network codec, the embodiment of the present invention proposes For DNCP that supports codec operations between dual sources, DNCP can be added, for example, between the IP layer and the transport layer, ie the DNCP header is inserted between the IP header and the transport layer header (see Figure 1-a).
本发明实施例提供的一种 DNCP包头的数据格式例如图 1-b所示。 其中, 图 1-b所示 DNCP包头各字段的含义可做如下定义:  A data format of a DNCP packet header provided by an embodiment of the present invention is shown in FIG. 1-b. The meaning of each field of the DNCP header shown in Figure 1-b can be defined as follows:
版本字段: 例如占 4比特(或可占其它长度 ), 可用于记录 DNCP数据 包格式的演进版本, 以便于区分后续开发研究版本和此前版本。  Version field: For example, 4 bits (or other length), can be used to record the evolved version of the DNCP packet format, in order to distinguish between the subsequent development research version and the previous version.
首部长度字段: 例如占 4比特(或可占其它长度), 可用于记录首部长 度;  The length field of the header: for example, 4 bits (or other length), which can be used to record the first degree;
其中, 首部长度是指 DNCP数据包中除了有效数据载荷以外的部分, 其单位是 4字节, 其最小值为 3。 例如当首部长度为 3 时, 可能意味着该 DNCP数据包的载荷没有被编码, 只是添加了 DNCP包头。  The header length refers to the part of the DNCP packet except the valid data payload. The unit is 4 bytes and the minimum value is 3. For example, when the header length is 3, it may mean that the payload of the DNCP packet is not encoded, but the DNCP header is added.
总长度字段: 例如占 16比特(或可占其它长度), 可用于记录总长度; 其中, 该总长度是指首部长度和有效载荷之和的长度, 单位为字节。 标志字段: 例如占 2位(或可占其它长度), 可用于标识 DNCP数据包 载荷的编码情况, 标志字段不同取值对应的含义例如可如图 1-c所示。  The total length field: for example, 16 bits (or other length), can be used to record the total length; where the total length is the length of the sum of the header length and the payload, in bytes. The flag field: for example, 2 bits (or other lengths), can be used to identify the encoding of the DNCP packet payload. The meaning of the different values of the flag field can be as shown in Figure 1-c.
编码次数字段: 例如占 2位(或可占其它长度), 可用于记录数据包被 编码的次数, 即从原始数据包算起, 被编码的次数。  The number of encoding fields: for example, 2 bits (or other lengths), can be used to record the number of times the packet is encoded, that is, the number of times the packet is encoded from the original packet.
其中, 在一个实际的网络中, 数据包的编码可能是递归的, 即可以多 次被编码,有时也可能直接在某数据包前面加上 DNCP包头而不进行编码。 记录编码次数是为便于在多次编码后进行解码。 其中, 若 DNCP数据包的 载荷为原始 IP数据包, 则其编码次数为 0, 其它情况则编码次数 > 1。 例如 当一个 IP数据包和一个已编码的数据包进行编码时, 参考编码次数, 可以 避免解码路由器将 DNCP数据包误以为时 IP数据包而交给目的节点。  Among them, in an actual network, the encoding of the data packet may be recursive, that is, it may be encoded multiple times, and sometimes the DNCP header may be directly added to a certain data packet without encoding. The number of times of encoding is recorded to facilitate decoding after multiple encodings. Wherein, if the payload of the DNCP packet is the original IP packet, the number of encodings is 0, and in other cases, the number of encodings is >1. For example, when an IP packet and an encoded packet are encoded, referring to the number of encodings, the decoding router can prevent the decoding router from mistaking the DNCP packet as an IP packet and hand it to the destination node.
原始包长度字段: 例如占 12位(或可占其它长度), 可用于记录未编 码的原始数据包的长度。 其中, 原始包长度字段的作用是便于在解码的时候准确地恢复出原始 数据包。 因为不同数据源的数据包的长度可能不一样, 为了便于编码计算, 可能将其补 0 使得长度一致。 由于一个典型的以太网数据包的长度在 500-1500字节之间, 所以填充长度一般不超过 1000 字节。 另外, 考虑待 MAC层的最大传送单元( MTU )的限制, 即编码后的 MAC帧的长度不能 超过 1518字节。 Original packet length field: For example, 12 bits (or other length) can be used to record the length of the unencoded original data packet. The original packet length field is used to facilitate accurate recovery of the original data packet at the time of decoding. Because the length of the data packets of different data sources may be different, in order to facilitate the coding calculation, it may be complemented by 0 to make the length consistent. Since a typical Ethernet packet is between 500 and 1500 bytes in length, the padding length is typically no more than 1000 bytes. In addition, consider the limitation of the maximum transmission unit (MTU) of the MAC layer, that is, the length of the encoded MAC frame cannot exceed 1518 bytes.
编码系数字段: 例如占 8位(或可占 8其它长度), 可用于记录编码系 数矢量, 例如可以是在一个伽罗瓦域 GF2n (该 n的取值范围例如为 4~16 的整数, 例如 GF256 ) 的有限域中随机选择编码系数矢量。 而在多次编码 的情况下, 可将当前编码系数矢量和原来记录的编码系数矢量进行特定计 算后得到的新编码系数填入该字段中;若是直接在某数据包前面加上 DNCP 包头而未对其进行编码, 则 DNCP包头的该字段可作为保留字段, 此时该 字段例如可填写为 FF或其它值。 Coding coefficient field: for example, 8 bits (or 8 other lengths), can be used to record the coding coefficient vector, for example, in a Galois field GF2 n (the value range of n is, for example, an integer of 4-16). For example, GF256) randomly selects the coding coefficient vector in the finite field. In the case of multiple encoding, the new encoding coefficient obtained by performing the specific calculation of the current encoding coefficient vector and the originally recorded encoding coefficient vector may be filled in the field; if the DNCP header is directly added in front of a certain data packet, To encode it, the field of the DNCP header can be used as a reserved field, for example, the field can be filled in with FF or other values.
原始包标识字段: 例如占 10位(或占其它长度), 可用于记录被编码 的原始数据包的标识, 其作用是便于解码, 该标识例如可以是按照顺序产 生的序编号或从原始 IP数据包的 IP包头的标识符(identifier )字段截取的 10比特或更少比特, 当然也可能是基于其它方式产生的用于标识原始包的 标识。  The original packet identification field: for example, occupying 10 bits (or other lengths), can be used to record the identifier of the encoded original data packet, and its function is to facilitate decoding, and the identifier can be, for example, an order number generated in order or from the original IP data. The identifier of the IP header of the packet is 10 bits or less, and may of course be an identifier generated by other means for identifying the original packet.
信源标识字段: 例如占 4位(或其它长度), 可用于记录原始数据包对 应的信源的标识, 其作用是为了方便解码。  Source identification field: For example, 4 bits (or other length), which can be used to record the identifier of the source corresponding to the original data packet, and its function is to facilitate decoding.
保留字段: 例如占 30位(或其它长度), 可用于多信源同时编码使用。 本领域技术人员可以理解, 图 1-b所示数据格式的 DNCP包头中的部 分字段并不是必须的, 并且各个字段之间也可能釆用其它排列方式, 即 DNCP包头的数据格式并不限于上述举例。  Reserved fields: For example, 30 bits (or other length) can be used for simultaneous encoding of multiple sources. Those skilled in the art can understand that some of the fields in the DNCP header of the data format shown in FIG. 1-b are not necessary, and other arrangements may also be used between the fields, that is, the data format of the DNCP header is not limited to the above. For example.
下面基于如图 2所示蝶形网络(Butterfly Network )对 NC的基本原理 进行简单的介绍。 在图 1 所示的无环、 单向蝶形网络中, 带箭头的实线表 示单位信道。 由 "最大流最小割定理" 可知, 该网络的最大流为 2, 即若信 宿 Rl、 R2同时向信源 Sl、 S2请求 2比特信息 、 b, 其中, a来自 SI , b 来自 S2, 则在最大流传输的情况下只需一个单位时间便可完成通信。 但是 若使用传统的 "存储-转发" 方式, 则会在节点 M造成拥塞, 因而完成上述 通信目标最少需要两个单位时间。 若使用 NC, 令 M节点对同时输入的两 比特信息 a, b进行编码运算(例如异或运算), 将其编码为 1比特 a @ b发 送, 这样, 在一个单位时间内, R1收到两比特信息 a和 a @ b, 经过解码即 可还原出原始信息 a、 b。 R2同理。 可见, 引入 NC可以最大限度利用网络 资源,使网络通信更有效率(不需要增加链路资源就可以提高网络吞吐量)。 The basic principle of NC is briefly introduced based on the butterfly network shown in Figure 2. In the acyclic, one-way butterfly network shown in Figure 1, the solid line table with arrows Show unit channel. It can be seen from the "maximum flow minimum cut theorem" that the maximum flow of the network is 2, that is, if the sinks R1, R2 simultaneously request 2 bits of information from the sources S1, S2, b, where a comes from SI and b comes from S2, then In the case of maximum streaming, communication takes place in one unit of time. However, if the traditional "store-and-forward" mode is used, congestion will occur at node M, and it takes at least two unit time to complete the above communication target. If NC is used, the M node performs encoding operation (for example, XOR operation) on the two-bit information a, b input at the same time, and encodes it into 1-bit a @ b transmission, so that R1 receives two in one unit time. The bit information a and a @ b, after decoding, can restore the original information a, b. R2 is the same. It can be seen that the introduction of NC can make full use of network resources and make network communication more efficient (the network throughput can be improved without increasing link resources).
下面通过具体实施例进行详细说明。  The details will be described below by way of specific examples.
本发明编码方法的一个实施例, 本实施例主要针对将两个 IP数据包进 行编码的场景。 一种编码方法可包括: 编码设备接收来自第一信源的第一 网际协议 IP数据包;若在接收到第一 IP数据包后的设定时长内接收到来自 第二信源的第二 IP数据包, 且第一 IP数据包和第二 IP数据包的目的地址 相同,则在有限域中分别为第一 IP数据包和第二 IP数据包随机选取编码系 数矢量;利用该编码系数矢量对第一 IP数据包和第二 IP数据包进行随机线 性编码得到第一线性编码数据包; 将第一线性编码数据包进行双信源网络 编码协议 DNCP封装得到第一 DNCP数据包, 第一 DNCP数据包的 DNCP 包头包含第一信源的标识、 第二信源的标识、 第一 IP数据包的标识、 第二 IP数据包的标识以及与上述编码系数矢量相关的编码系数矢量信息; 将第 一 DNCP数据包进行 IP封装得到第三 IP数据包并发送。  One embodiment of the encoding method of the present invention is mainly directed to a scenario in which two IP data packets are encoded. An encoding method may include: the encoding device receives a first internet protocol IP data packet from a first source; and receives a second IP from a second source within a set time period after receiving the first IP data packet a data packet, and the destination addresses of the first IP data packet and the second IP data packet are the same, and the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field respectively; using the coding coefficient vector pair The first IP data packet and the second IP data packet are randomly linearly encoded to obtain a first linearly encoded data packet; the first linearly encoded data packet is encapsulated by a dual source network coding protocol DNCP to obtain a first DNCP data packet, and the first DNCP data packet The DNCP header of the packet includes an identifier of the first source, an identifier of the second source, an identifier of the first IP packet, an identifier of the second IP packet, and coding coefficient vector information related to the coding coefficient vector; The DNCP packet is IP encapsulated to obtain a third IP packet and sent.
参见图 3 , 具体步骤可包括:  Referring to Figure 3, specific steps may include:
301、 编码设备接收来自第一信源的第一网际协议 IP数据包;  301: The encoding device receives the first internet protocol IP data packet from the first source;
302、若在接收到第一 IP数据包后的设定时长(该设定时长可根据实际 网络具体设定, 例如可设置为 1毫秒、 5毫秒、 10毫秒、 50毫秒或其它值) 内接收到来自第二信源的第二 IP数据包, 且第一 IP数据包和第二 IP数据 包的目的地址相同, 则编码设备在有限域中分别为第一 IP数据包和第二 IP 数据包随机选取编码系数矢量; 302. If the set time duration after receiving the first IP data packet (the set duration may be set according to an actual network, for example, may be set to 1 millisecond, 5 milliseconds, 10 milliseconds, 50 milliseconds, or other values) To a second IP packet from the second source, and the first IP packet and the second IP data If the destination addresses of the packets are the same, the encoding device randomly selects the coding coefficient vector for the first IP data packet and the second IP data packet in the finite field;
在实际网络中, 编码设备通常会从不同的链路分别接收来自第一信源 和第二信源的 IP数据包, 当然其也可能从同一链路接收到来自第一信源和 第二信源的 IP数据包。  In an actual network, the encoding device usually receives IP data packets from the first source and the second source from different links, and of course, it may also receive the first source and the second letter from the same link. Source IP packet.
在实际应用中, 编码设备例如可在伽罗瓦域(GF, Galois Field ) 2n中 分别为第一 IP数据包和第二 IP数据包随机选取编码系数矢量, 其中, 该 n 的取值范围例如为 4至 16之间的整数(例如 8~16间的整数), 或 n也可为 大于 16的整数, n越大, 解码概率也就越大。 In an actual application, the encoding device may randomly select a coding coefficient vector for the first IP data packet and the second IP data packet, respectively, in a Galois Field (GF, Galois Field) 2 n , where the value range of the n For example, an integer between 4 and 16 (for example, an integer between 8 and 16), or n may be an integer greater than 16, and the larger the n, the greater the decoding probability.
303、 编码设备利用选取的该编码系数矢量对第一 IP数据包和第二 IP 数据包进行随机线性编码得到第一线性编码数据包;  303. The encoding device performs random linear coding on the first IP data packet and the second IP data packet by using the selected coding coefficient vector to obtain a first linearly encoded data packet.
304、 编码设备将第一线性编码数据包进行双信源网络编码协议 DNCP 封装得到第一 DNCP数据包;  304. The encoding device encapsulates the first linear encoded data packet into a dual source network coding protocol DNCP to obtain a first DNCP data packet.
其中, 第一 DNCP数据包的 DNCP包头包含第一信源的标识、 第二信 源的标识、 第一 IP数据包的标识、 第二 IP数据包的标识以及与上述编码系 数矢量相关的编码系数矢量信息 (其中, 与上述编码系数矢量相关的编码 系数矢量信息可能是该编码系数矢量本身, 或者也可能是将上述编码系数 矢量通过特定计算后得到的编码系数矢量信息, 而解码设备例如可以通过 该特定计算对应的逆运算, 还原出该编码系数矢量)。  The DNCP header of the first DNCP data packet includes an identifier of the first source, an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and a coding coefficient related to the coding coefficient vector. Vector information (wherein the coding coefficient vector information related to the above-mentioned coding coefficient vector may be the coding coefficient vector itself, or may be the coding coefficient vector information obtained by passing the above-mentioned coding coefficient vector through a specific calculation, and the decoding device may pass, for example, The inverse of the specific calculation corresponds to the coding coefficient vector.
305、 编码设备将第一 DNCP数据包进行 IP封装得到第三 IP数据包并 发送。  305. The encoding device performs IP encapsulation on the first DNCP data packet to obtain a third IP data packet and sends the data packet.
在实际应用中,第三 IP数据包的 IP包头中记录的源地址例如与第一 IP 数据包或第二 IP数据包的 IP包头中记录的源地址相同, 第三 IP数据包的 IP包头中记录的目的地址例如可与第一 IP数据包或第二 IP数据包的 IP包 头中记录的目的地址相同 (其中, 第一 IP数据包和第二 IP数据包的 IP包 头中记录的是同一个目的地址)。 此外, 第三 IP数据包的 IP包头中还可包 含有 DNCP数据包标识( DNCP数据包标识例如可携带在第三 IP数据包的 IP包头的协议字段,例如可将其协议字段填充为 FE或其它特定值以指示其 IP层载荷包含 DNCP数据包 ), 如此, 其它网络节点便可直接根据第三 IP 数据包的 IP包头包含的 DNCP数据包标识, 获知第三 IP数据包的 IP层载 荷包含 DNCP数据包。 In an actual application, the source address recorded in the IP header of the third IP packet is, for example, the same as the source address recorded in the IP header of the first IP packet or the second IP packet, and the IP header of the third IP packet is in the IP header. The recorded destination address may be, for example, the same as the destination address recorded in the IP header of the first IP data packet or the second IP data packet (where the first IP data packet and the IP header of the second IP data packet are recorded in the same IP header. Destination address). In addition, the third IP packet can also be included in the IP header. Contains the DNCP packet identifier (the DNCP packet identifier, for example, a protocol field that can be carried in the IP header of the third IP packet, for example, its protocol field can be padded with FE or other specific value to indicate that its IP layer payload contains DNCP packets) In this way, the other network node can directly know that the IP layer payload of the third IP data packet includes the DNCP data packet according to the DNCP data packet identifier included in the IP packet header of the third IP data packet.
此外, 编码设备若在接收到第一 IP数据包后的设定时长内, 未接收到 来自第二信源的与第一 IP数据包的目的地址相同的 IP数据包,则编码设备 可发送第一 IP数据包,或将第一 IP数据包进行 DNCP封装得到第二 DNCP 数据包, 将第二 DNCP数据包进行 IP封装得到第四 IP数据包并发送, 其 中,第二 DNCP数据包的 DNCP包头可包含第一信源的标识和第一 IP数据 包的标识。 此时, 第四 IP数据包的 IP包头中记录的源地址与第一 IP数据 包的 IP包头中记录的源地址相同, 第四 IP数据包的 IP包头中记录的目的 地址与第一 IP数据包的 IP包头中记录的目的地址相同。 此外, 第四 IP数 据包的 IP包头还可包含有 DNCP数据包标识(该 DNCP数据包标识例如可 携带在第四 IP数据包的 IP 包头的协议字段, 例如可将该协议字段填充为 FE或其它特定值以指示其 IP层载荷包含 DNCP数据包), 如此, 其它网络 节点便可直接根据第四 IP数据包的 IP包头包含的 DNCP数据包标识, 获 知第四 IP数据包的 IP层载荷包含 DNCP数据包。  In addition, if the encoding device does not receive the same IP data packet from the second source as the destination address of the first IP data packet within the set duration after receiving the first IP data packet, the encoding device may send the first An IP data packet, or the first IP data packet is DNCP-encapsulated to obtain a second DNCP data packet, and the second DNCP data packet is IP-encapsulated to obtain a fourth IP data packet, and the DNCP packet header of the second DNCP data packet is sent. An identifier of the first source and an identification of the first IP packet may be included. At this time, the source address recorded in the IP header of the fourth IP packet is the same as the source address recorded in the IP header of the first IP packet, and the destination address and the first IP data recorded in the IP header of the fourth IP packet. The destination address recorded in the IP header of the packet is the same. In addition, the IP header of the fourth IP data packet may further include a DNCP data packet identifier (the DNCP data packet identifier may be, for example, a protocol field that may be carried in the IP header of the fourth IP data packet, for example, the protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP data packets), so that other network nodes can directly know the IP layer payload of the fourth IP data packet according to the DNCP data packet identifier included in the IP header of the fourth IP data packet. DNCP packet.
由上可见, 本实施例提出 DNCP来支持两信源间的编解码, 由于编码 设备是对到达间隔小于设定时长且目的地址相同的两个 IP数据包进行随机 线性编码, 这就有利于在一定程度上消除实际网络中的传输延迟及发送速 率等不匹配问题的影响; 同时, DNCP数据包的 DNCP包头携带两个信源 标识、 两个 IP数据包标识以及与编码系数矢量相关的编码系数矢量信息, 这就为编码设备继续多次编码或为解码设备快速解码奠定了基础, 有利于 提高网络编码在实际网络中的通用性; 并且由于是基于网络编码技术来实 施, 因而能够充分利用网络资源, 明显提高网络的吞吐率, 达到更高的传 输效率。 As can be seen from the above, this embodiment proposes DNCP to support codec between two sources. Since the encoding device performs random linear coding on two IP packets whose arrival interval is less than the set duration and the destination address is the same, this is advantageous. To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet carries two source identifiers, two IP packet identifiers, and coding coefficients related to the coding coefficient vector. Vector information, which lays the foundation for the encoding device to continue encoding multiple times or for decoding the decoding device quickly, which is beneficial to improve the versatility of the network coding in the actual network; and because it is implemented based on the network coding technology, it can fully utilize the network Resources, significantly improve the throughput of the network, to achieve higher transmission Transmission efficiency.
本发明编码方法的另一个实施例, 本实施例主要针对将两个已被编码 过的数据包进行编码的一种场景。 一种编码方法可包括: 编码设备接收第 五网际协议 IP数据包;若在接收到第五 IP数据包后的设定时长内接收到第 六 IP数据包, 且第六 IP数据包和第五 IP数据包的目的地址相同, 且第六 IP数据包和第五 IP数据包的 IP层载荷都包含 DNCP数据包, 且第六 IP数 据包的 IP层载荷中的 DNCP数据包的 DNCP包头包含的两个信源标识和两 个 IP数据包标识,与第五 IP数据包的 IP层载荷中的 DNCP数据包的 DNCP 包头包含的两个信源标识和两个 IP数据包标识相同, 则在有限域中分别为 第五 IP数据包和第六 IP数据包 IP层载荷中的 DNCP数据包的载荷随机选 取编码系数矢量; 利用该编码系数矢量,对第五 IP数据包和第六 IP数据包 的 IP层载荷中的 DNCP数据包的载荷进行随机线性编码得到第二线性编码 数据包; 将第二线性编码数据包进行 DNCP封装得到第三 DNCP数据包, 第三 DNCP数据包的 DNCP包头包含上述两个信源标识、上述两个 IP数据 包标识以及与上述编码系数矢量相关的编码系数矢量信息; 将第三 DNCP 数据包进行 IP封装得到第七 IP数据包并发送。  Another embodiment of the encoding method of the present invention is directed to a scenario in which two encoded data packets are encoded. An encoding method may include: the encoding device receives the fifth internet protocol IP data packet; if the sixth IP data packet is received within a set time period after receiving the fifth IP data packet, and the sixth IP data packet and the fifth The destination address of the IP data packet is the same, and the IP layer payload of the sixth IP data packet and the fifth IP data packet both contain the DNCP data packet, and the DNCP packet header of the DNCP data packet in the IP layer payload of the sixth IP data packet is included. Two source identifiers and two IP packet identifiers, which are the same as the two source identifiers and the two IP packet identifiers contained in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet, are limited Randomly selecting a coding coefficient vector for the payload of the DNCP packet in the fifth IP data packet and the sixth IP data packet IP layer payload in the domain; using the coding coefficient vector, for the fifth IP data packet and the sixth IP data packet The payload of the DNCP packet in the IP layer payload is randomly linearly encoded to obtain a second linearly encoded data packet; the second linearly encoded data packet is DNCP-encapsulated to obtain a third DNCP data packet, and the third DNCP data packet The DNCP header of the packet includes the two source identifiers, the two IP packet identifiers, and the coding coefficient vector information related to the coding coefficient vector. The third DNCP packet is IP-encapsulated to obtain a seventh IP packet and sent.
参见图 4、 具体步骤可以包括:  Referring to Figure 4, specific steps may include:
401、 编码设备接收第五网际协议 IP数据包;  401. The encoding device receives the fifth internet protocol IP data packet.
402、 若编码设备在接收到第五 IP数据包后的设定时长内接收到第六 IP数据包, 且第六 IP数据包和第五 IP数据包的目的地址相同, 且第六 IP 数据包和第五 IP数据包的 IP层载荷都包含 DNCP数据包, 且第六 IP数据 包的 IP层载荷中的 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标识, 与第五 IP数据包的 IP层载荷中的 DNCP数据包的 DNCP 包头包含的两个信源标识和两个 IP数据包标识相同, 则编码设备在有限域 中分别为第五 IP数据包和第六 IP数据包 IP层载荷中的 DNCP数据包的载 荷随机选取编码系数矢量; 在实际应用中,编码设备例如可检测第五 IP数据包和第六 IP数据包的 IP包头是否包含 DNCP数据包标识, 若其 IP包头包含 DNCP数据包标识, 则可据此获知其 IP层载荷包含 DNCP数据包, 当然, 编码设备亦可通过其 它可能的方式获知其 IP层载荷是否包含 DNCP数据包, 例如可通过检测第 五 IP数据包和第六 IP数据包的 IP层载荷,获知其 IP层载荷是否包含 DNCP 数据包。 402. If the encoding device receives the sixth IP data packet within a set duration after receiving the fifth IP data packet, and the sixth IP data packet and the fifth IP data packet have the same destination address, and the sixth IP data packet And the IP layer payload of the fifth IP packet includes the DNCP packet, and the DNCP header of the DNCP packet in the IP layer payload of the sixth IP packet contains two source identifiers and two IP packet identifiers, and The DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet contains two source identifiers and the same two IP packet identifiers, and the encoding device is the fifth IP packet and the sixth in the finite field respectively. The payload of the DNCP packet in the IP layer payload of the IP packet is randomly selected from the coding coefficient vector; In an actual application, the encoding device can detect, for example, whether the IP header of the fifth IP data packet and the sixth IP data packet includes the DNCP data packet identifier, and if the IP packet header includes the DNCP data packet identifier, the IP layer payload can be obtained according to the identifier. The DNCP data packet is included. Of course, the encoding device can also know whether the IP layer payload includes the DNCP data packet by other possible methods. For example, the IP layer payload of the fifth IP data packet and the sixth IP data packet can be detected to obtain the IP address. Whether the layer payload contains DNCP packets.
编码设备例如可在伽罗瓦域 GF2n中, 分别为第五 IP数据包和第六 IP 数据包 IP层载荷中的 DNCP数据包的载荷随机选取编码系数矢量, 其中, 该 n的取值范围例如为 4至 16之间的整数(例如 8~16间的整数 ), 或者, n也可为大于 16的整数。 The encoding device may randomly select a coding coefficient vector for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload, respectively, in the Galois field GF2 n , where the value range of the n For example, an integer between 4 and 16 (for example, an integer between 8 and 16), or n may be an integer greater than 16.
403、 编码设备利用选取的该编码系数矢量, 对第五 IP数据包和第六 IP数据包的 IP层载荷中的 DNCP数据包的载荷进行随机线性编码得到第二 线性编码数据包;  403. The encoding device performs random linear coding on the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the sixth IP data packet by using the selected coding coefficient vector to obtain a second linear encoded data packet.
404、编码设备将第二线性编码数据包进行 DNCP封装得到第三 DNCP 数据包, 第三 DNCP数据包的 DNCP包头包含上述两个信源标识、 上述两 个 IP数据包标识以及与上述编码系数矢量相关的编码系数矢量信息(其中, 与上述编码系数矢量相关的编码系数矢量信息可能是编码系数矢量本身, 或者也可能是将上述编码系数矢量与 DNCP数据包的 DNCP包头包含的编 码系数矢量信息通过特定计算后得到的数据)。  404. The encoding device performs DNCP encapsulation on the second linearly encoded data packet to obtain a third DNCP data packet, where the DNCP packet header of the third DNCP data packet includes the foregoing two source identifiers, the foregoing two IP data packet identifiers, and the foregoing coding coefficient vector. Corresponding coding coefficient vector information (wherein the coding coefficient vector information related to the above coding coefficient vector may be the coding coefficient vector itself, or it may be that the coding coefficient vector and the coding coefficient vector information included in the DNCP packet of the DNCP packet are passed Data obtained after a specific calculation).
405、 编码设备将第三 DNCP数据包进行 IP封装得到第七 IP数据包并 发送。  405. The encoding device performs IP encapsulation on the third DNCP data packet to obtain a seventh IP data packet and sends the data packet.
在实际应用中,第七 IP数据包的 IP包头中记录的源地址例如与第五 IP 数据包或第六 IP数据包的 IP包头中记录的源地址相同, 第七 IP数据包的 IP包头中记录的目的地址例如可与第五 IP数据包或第六 IP数据包的 IP包 头中记录的目的地址相同 (其中, 第五 IP数据包和第六 IP数据包的 IP包 头中记录的是同一个目的地址);第七 IP数据包的 IP包头还可包含有 DNCP 数据包标识(DNCP数据包标识例如可携带在第七 IP数据包的 IP包头的协 议字段, 例如该协议字段可填充为 FE或其它特定值以指示其 IP层载荷包 含 DNCP数据包), 如此, 其它网络节点便可直接根据第七 IP数据包的 IP 包头包含的 DNCP数据包标识,获知第七 IP数据包的 IP层载荷包含 DNCP 数据包。 In practical applications, the source address recorded in the IP header of the seventh IP data packet is, for example, the same as the source address recorded in the IP header of the fifth IP data packet or the sixth IP data packet, and the IP header of the seventh IP data packet is in the IP header. The recorded destination address may be, for example, the same as the destination address recorded in the IP header of the fifth IP packet or the sixth IP packet (where the fifth IP packet and the sixth IP packet are recorded in the same IP header) Destination address); the IP header of the seventh IP packet may also contain DNCP Packet identification (DNCP packet identification, for example, may be carried in the protocol field of the IP header of the seventh IP packet, eg the protocol field may be padded with FE or other specific value to indicate that its IP layer payload contains DNCP packets), thus The other network node can directly know that the IP layer payload of the seventh IP data packet includes the DNCP data packet according to the DNCP data packet identifier included in the IP header of the seventh IP data packet.
此外, 编码设备若在接收到第五 IP数据包后的设定时长内未接收到与 其目的地址相同的第六 IP数据包, 或者,在设定时长接收到的第六 IP数据 包的 IP层载荷中的 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标识, 与第五 IP数据包的 IP层载荷中 DNCP数据包的 DNCP包 头包含的两个信源标识和两个 IP数据包标识不同, 则编码设备可发送第五 IP数据包。  In addition, the encoding device does not receive the sixth IP data packet having the same address as the destination address within the set duration after receiving the fifth IP data packet, or the IP layer of the sixth IP data packet received in the set duration The DNCP header of the DNCP packet in the payload contains two source identifiers and two IP packet identifiers, and two source identifiers and two DNCP headers of the DNCP packet in the IP layer payload of the fifth IP packet. If the IP packet identifiers are different, the encoding device can send the fifth IP packet.
由上可见, 本实施例提出 DNCP来支持两信源间的编解码, 由于编码 设备是对到达间隔小于设定时长,且目的地址相同的两个 IP数据包的 IP层 载荷中 DNCP数据包的载荷进行随机线性编码, 这就有利于在一定程度上 消除实际网络中的传输延迟及发送速率等不匹配问题的影响; 且随机线性 编码后封装的 DNCP数据包的 DNCP包头携带两个信源标识、两个 IP数据 包标识以及与随机选取的编码系数矢量相关的编码系数矢量信息, 这就为 下游编码设备继续进行一次或多次编码或为解码设备快速解码奠定了基 础, 有利于提高网络编码在实际网络中的通用性; 并且由于是基于网络编 码技术来实施, 因而能够充分利用网络资源, 明显提高网络的吞吐率, 达 到更高的传输效率。  As can be seen from the above, this embodiment proposes DNCP to support codec between two sources, because the encoding device is a DNCP packet in the IP layer payload of two IP data packets whose arrival interval is less than the set duration and the destination address is the same. The load is randomly linearly coded, which is beneficial to eliminate the influence of the mismatch problem such as transmission delay and transmission rate in the actual network to some extent; and the DNCP header of the DNCP packet encapsulated by the random linear coding carries two source identifiers. Two IP packet identifiers and coding coefficient vector information related to the randomly selected coding coefficient vector, which provides a basis for the downstream encoding device to continue encoding one or more times or for decoding the decoding device quickly, which is beneficial to improve network coding. The versatility in the actual network; and because it is implemented based on the network coding technology, it can fully utilize the network resources, significantly improve the throughput rate of the network, and achieve higher transmission efficiency.
本发明编码方法的另一个实施例, 本实施例主要对应将一个未被编码 过的 IP数据包和一个已被编码过的 IP数据包进行编码的一种场景。 其中, 一种编码方法, 可包括: 编码设备接收第五网际协议 IP数据包; 若在接收 到第五 IP数据包后的设定时长内接收到第八 IP数据包, 且第八 IP数据包 和第五 IP数据包的目的地址相同, 且第八 IP数据包和第五 IP数据包其中 一个的 IP层载荷包含 DNCP数据包, 且另一个 IP数据包为通过随机线性 编码获得该 DNCP数据包载荷的原始 IP数据包中的其中一个, 则在有限域 中分别为该另一个 IP数据包和该 DNCP数据包的载荷随机选取编码系数矢 量; 利用该编码系数矢量对该 DNCP数据包的载荷和该另一个 IP数据包进 行随机线性编码得到第三线性编码数据包; 将第三线性编码数据包进行 DNCP封装得到第四 DNCP数据包, 其中, 第四 DNCP数据包的 DNCP包 头包含两个信源标识、 两个 IP数据包标识以及与选取的编码系数矢量相关 的编码系数矢量信息, 其中, 该两个信源标识和两个 IP数据包标识与上述 IP层载荷中的 DNCP数据包的包头所包含的两个信源标识和两个 IP数据包 标识相同; 将第四 DNCP数据包进行 IP封装得到第八 IP数据包并发送。 Another embodiment of the encoding method of the present invention, this embodiment mainly corresponds to a scenario of encoding an unencoded IP data packet and an encoded IP data packet. The encoding method may include: the encoding device receives the fifth internet protocol IP data packet; if the eighth IP data packet is received within the set time period after receiving the fifth IP data packet, and the eighth IP data packet And the destination address of the fifth IP data packet is the same, and the eighth IP data packet and the fifth IP data packet are One IP layer payload contains a DNCP data packet, and the other IP data packet is one of the original IP data packets obtained by random linear coding to obtain the DNCP data packet payload, and the other IP data packet is respectively in the finite field. Randomly selecting a coding coefficient vector from the payload of the DNCP data packet; using the coding coefficient vector to randomly linearly encode the payload of the DNCP data packet and the other IP data packet to obtain a third linearly encoded data packet; The packet is subjected to DNCP encapsulation to obtain a fourth DNCP data packet, where the DNCP header of the fourth DNCP data packet includes two source identifiers, two IP packet identifiers, and coding coefficient vector information related to the selected coding coefficient vector, where The two source identifiers and the two IP packet identifiers are the same as the two source identifiers and the two IP packet identifiers included in the header of the DNCP packet in the IP layer payload; the fourth DNCP packet is IP-enabled. The package gets the eighth IP packet and sends it.
参见图 5、 具体步骤可包括:  Referring to Figure 5, specific steps may include:
501、 编码设备接收第五网际协议 IP数据包;  501. The encoding device receives a fifth internet protocol IP data packet.
502、 编码设备若在接收到第五 IP数据包后的设定时长内接收到第八 IP数据包, 且第八 IP数据包和第五 IP数据包的目的地址相同, 且第八 IP 数据包和第五 IP数据包其中一个的 IP层载荷包含 DNCP数据包, 且另一 个 IP数据包为通过随机线性编码获得该 DNCP数据包载荷的原始 IP数据 包中的其中一个, 则编码设备在有限域中分别为上述另一个 IP数据包和上 述 DNCP数据包的载荷随机选取编码系数矢量;  502. The encoding device receives the eighth IP data packet within a set duration after receiving the fifth IP data packet, and the eighth IP data packet and the fifth IP data packet have the same destination address, and the eighth IP data packet And the IP layer payload of one of the fifth IP data packets includes a DNCP data packet, and the other IP data packet is one of original IP data packets obtained by random linear coding to obtain the DNCP data packet payload, and the encoding device is in a finite field Randomly selecting a coding coefficient vector for the load of the other IP data packet and the DNCP data packet;
在实际应用中,编码设备例如可检测第五 IP数据包和第八 IP数据包的 IP包头是否包含 DNCP数据包标识, 若其 IP包头包含 DNCP数据包标识, 则可据此获知其 IP层载荷包含 DNCP数据包, 当然, 编码设备亦可通过其 它可能的方式获知其 IP层载荷是否包含 DNCP数据包, 例如可通过检测第 五 IP数据包和第八 IP数据包的 IP层载荷,获知其 IP层载荷是否包含 DNCP 数据包。  In an actual application, the encoding device can detect, for example, whether the IP header of the fifth IP data packet and the eighth IP data packet includes the DNCP data packet identifier, and if the IP packet header includes the DNCP data packet identifier, the IP layer payload can be known according to the data packet header. Include DNCP data packets. Of course, the encoding device can also know whether its IP layer payload contains DNCP data packets by other possible means. For example, the IP layer payload of the fifth IP data packet and the eighth IP data packet can be detected to obtain the IP address. Whether the layer payload contains DNCP packets.
编码设备例如可在伽罗瓦域 GF2n中,分别为上述 DNCP数据包的载荷 和上述另一个 IP数据包随机选取编码系数矢量随机选取编码系数矢量, 该 n的取值范围例如为 4至 16之间的整数 (例如 8~16的整数), 或者, n也 可为大于 16的整数。 The encoding device may randomly select a coding coefficient vector in the Galois field GF2 n for the load of the DNCP data packet and the random selection of the coding coefficient vector of the other IP data packet, respectively. The value range of n is, for example, an integer between 4 and 16 (for example, an integer of 8 to 16), or n may be an integer greater than 16.
503、编码设备利用随机选取的编码系数矢量对上述 DNCP数据包的载 荷和上述另一个 IP数据包进行随机线性编码得到第三线性编码数据包;  503. The encoding device randomly encodes the payload of the DNCP data packet and the another IP data packet by using a randomly selected coding coefficient vector to obtain a third linear encoded data packet.
504、编码设备将第三线性编码数据包进行 DNCP封装得到第四 DNCP 数据包; 其中, 第四 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及与选取的编码系数矢量相关的编码系数矢量信息,其中, 该两个信源标识和两个 IP数据包标识, 与上述 IP层载荷中的 DNCP数据 包的包头所包含两个信源标识和两个 IP数据包标识相同;  504. The encoding device performs DNCP encapsulation on the third linearly encoded data packet to obtain a fourth DNCP data packet. The DNCP packet header of the fourth DNCP data packet includes two source identifiers, two IP packet identifiers, and selected coding coefficients. Vector related coding coefficient vector information, wherein the two source identifiers and two IP packet identifiers, and the header of the DNCP packet in the IP layer payload include two source identifiers and two IP packet identifiers the same;
505、 编码设备将第四 DNCP数据包进行 IP封装得到第九 IP数据包并 发送。  505. The encoding device performs IP encapsulation on the fourth DNCP packet to obtain a ninth IP data packet and sends the packet.
在实际应用中,第九 IP数据包的 IP包头中记录的源地址例如与第五 IP 数据包或第八 IP数据包的 IP包头中记录的源地址相同, 第九 IP数据包的 IP包头中记录的目的地址例如可与第五 IP数据包或第八 IP数据包的 IP包 头中记录的目的地址相同 (其中, 第五 IP数据包和第八 IP数据包的 IP包 头中记录的是同一个目的地址);第九 IP数据包的 IP包头还可包含有 DNCP 数据包标识( DNCP数据包标识例如可携带在第九 IP数据包的 IP包头的协 议字段, 例如其协议字段可填充为 FE或其它特定值以指示其 IP层载荷包 含 DNCP数据包), 如此, 其它网络节点便可直接根据第九 IP数据包的 IP 包头包含的 DNCP数据包标识,获知第九 IP数据包的 IP层载荷包含 DNCP 数据包。  In an actual application, the source address recorded in the IP header of the ninth IP packet is, for example, the same as the source address recorded in the IP header of the fifth IP packet or the eighth IP packet, and the IP header of the ninth IP packet is in the IP header. The recorded destination address may be, for example, the same as the destination address recorded in the IP header of the fifth IP data packet or the eighth IP data packet (where the fifth IP data packet and the IP header of the eighth IP data packet are recorded in the same IP header. Destination IP address; the IP header of the ninth IP packet may also include a DNCP packet identifier (the DNCP packet identifier may be, for example, a protocol field that may be carried in the IP header of the ninth IP packet, for example, its protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP packets), so that other network nodes can directly know the IP layer payload of the ninth IP packet according to the DNCP packet identifier contained in the IP header of the ninth IP packet. DNCP packet.
由上可见, 本实施例提出 DNCP来支持两信源间的编解码, 若两个 IP 数据包到达间隔小于设定时长且目的地址相同, 且两个 IP数据包中的一个 的 IP层载荷包含 DNCP数据包, 且另一个 IP数据包为通过随机线性编码 获得该 DNCP数据包载荷的原始 IP数据包中的其中一个, 编码设备对该另 一个 IP数据包和该 DNCP数据包的载荷进行随机线性编码, 这就有利于在 一定程度上消除实际网络中的传输延迟及发送速率等不匹配问题的影响; 同时, 随机线性编码后封装的 DNCP数据包的 DNCP包头携带两个信源标 识、 两个 IP数据包标识以及编码系数矢量信息, 这就为下游编码设备继续 进行一次或多次编码或为解码设备快速解码奠定了基础, 有利于提高网络 编码在实际网络中的通用性; 并且由于是基于网络编码技术来实施, 因而 能够充分利用网络资源, 明显提高网络的吞吐率, 达到更高的传输效率。 As can be seen from the above, this embodiment proposes DNCP to support codec between two sources. If the IP packet arrival interval is less than the set duration and the destination address is the same, and the IP layer payload of one of the two IP packets is included a DNCP packet, and another IP packet is one of original IP packets obtained by random linear coding to obtain the DNCP packet payload, and the encoding device randomly linearizes the load of the other IP packet and the DNCP packet Coding, this is beneficial in To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet encapsulated by the random linear coding carries two source identifiers, two IP packet identifiers, and coding coefficients. Vector information, which provides a basis for the downstream encoding device to continue encoding one or more times or for decoding the decoding device quickly, which is beneficial to improve the versatility of the network coding in the actual network; and since it is implemented based on the network coding technology, It can make full use of network resources, significantly improve network throughput and achieve higher transmission efficiency.
本发明编码方法的另一个实施例, 本实施例主要对应将一个未被编码 过的 IP数据包和一个已被编码过的 IP数据包进行编码的另一种场景。其中, 一种编码方法, 可包括: 编码设备接收第五网际协议 IP数据包; 若在接收 到第五 IP数据包后的设定时长内接收到第十 IP数据包, 且第十 IP数据包 和第五 IP数据包的目的地址相同, 且第十 IP数据包和第五 IP数据包的 IP 层载荷都包含 DNCP数据包, 且第十 IP数据包和第五 IP数据包其中一个 的 IP层载荷中的 DNCP数据包的 DNCP包头包含两个信源标识和两个 IP 数据包标识,而另一个的 IP层载荷中的 DNCP数据包的 DNCP包头包含该 两个信源标识中的其中一个以及该两个 IP数据包标识中的其中一个, 则在 有限域中分别为第五 IP数据包和第十 IP数据包 IP层载荷中 DNCP数据包 的载荷随机选取编码系数矢量; 利用该选取的编码系数矢量, 对第五 IP数 据包和第十 IP数据包的 IP层载荷中的 DNCP数据包的载荷进行随机线性 编码得到第四线性编码数据包; 将第四线性编码数据包进行 DNCP封装得 到第五 DNCP数据包, 其中, 第五 DNCP数据包的 DNCP包头包含上述两 个信源标识和两个 IP数据包标识, 以及与随机选取的编码系数矢量相关的 编码系数矢量信息; 将第五 DNCP数据包进行 IP封装得到第十一 IP数据 包并发送。  Another embodiment of the encoding method of the present invention, this embodiment primarily corresponds to another scenario of encoding an unencoded IP packet and an encoded IP packet. The encoding method may include: the encoding device receives the fifth internet protocol IP data packet; if the tenth IP data packet is received within the set time period after receiving the fifth IP data packet, and the tenth IP data packet And the destination address of the fifth IP data packet is the same, and the IP layer payloads of the tenth IP data packet and the fifth IP data packet both contain the DNCP data packet, and the IP layer of one of the tenth IP data packet and the fifth IP data packet The DNCP header of the DNCP packet in the payload contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains one of the two source identifiers and One of the two IP packet identifiers randomly selects a coding coefficient vector for the payload of the DNCP packet in the fifth IP packet and the tenth IP packet IP layer payload in the finite field; using the selected encoding a coefficient vector, performing random linear coding on the payload of the DNCP packet in the IP layer payload of the fifth IP packet and the tenth IP packet to obtain a fourth linearly encoded data packet; The encoded data packet is DNCP-encapsulated to obtain a fifth DNCP data packet, wherein the DNCP header of the fifth DNCP data packet includes the above two source identifiers and two IP packet identifiers, and a coding coefficient associated with the randomly selected coding coefficient vector. Vector information; IP encapsulation of the fifth DNCP packet to obtain the eleventh IP packet and sent.
参见图 6, 具体步骤可包括:  Referring to Figure 6, specific steps may include:
601、 编码设备接收第五网际协议 IP数据包;  601. The encoding device receives the fifth internet protocol IP data packet.
602、 编码设备若在接收到第五 IP数据包后的设定时长内接收到第十 IP数据包, 且第十 IP数据包和第五 IP数据包的目的地址相同, 且第十 IP 数据包和第五 IP数据包的 IP层载荷都包含 DNCP数据包, 且第十 IP数据 包和第五 IP数据包其中一个的 IP层载荷中的 DNCP数据包的 DNCP包头 包含两个信源标识和两个 IP数据包标识,而另一个的 IP层载荷中的 DNCP 数据包的 DNCP包头包含该两个信源标识中的其中一个以及该两个 IP数据 包标识中的其中一个, 则编码设备在有限域中分别为第五 IP数据包和第十 IP数据包 IP层载荷中的 DNCP数据包的载荷随机选取编码系数矢量; 602. The encoding device receives the tenth in the set duration after receiving the fifth IP data packet. IP data packet, and the destination address of the tenth IP data packet and the fifth IP data packet are the same, and the IP layer payloads of the tenth IP data packet and the fifth IP data packet both contain the DNCP data packet, and the tenth IP data packet and The DNCP header of the DNCP packet in the IP layer payload of one of the fifth IP data packets contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains the One of the two source identifiers and one of the two IP packet identifiers, the encoding device is the DNCP packet in the fifth IP packet and the tenth IP packet IP layer payload in the finite field respectively The load is randomly selected from the coding coefficient vector;
在实际应用中,编码设备例如可检测第五 IP数据包和第十 IP数据包的 IP包头是否包含 DNCP数据包标识, 若其 IP包头包含 DNCP数据包标识, 则可据此获知其 IP层载荷包含 DNCP数据包, 当然, 编码设备亦可通过其 它可能的方式获知其 IP层载荷是否包含 DNCP数据包, 例如可通过检测第 五 IP数据包和第十 IP数据包的 IP层载荷,获知其 IP层载荷是否包含 DNCP 数据包。  In an actual application, the encoding device can detect, for example, whether the IP header of the fifth IP data packet and the tenth IP data packet includes the DNCP data packet identifier, and if the IP packet header includes the DNCP data packet identifier, the IP layer payload can be known according to the data packet header. Include DNCP data packets. Of course, the encoding device can also know whether its IP layer payload contains DNCP data packets through other possible methods. For example, the IP layer payload of the fifth IP data packet and the tenth IP data packet can be detected to obtain the IP address. Whether the layer payload contains DNCP packets.
编码设备例如可在伽罗瓦域 GF2n中, 分别为第五 IP数据包和第十 IP 数据包 IP层载荷中的 DNCP数据包的载荷随机选取编码系数矢量, 该 n的 取值范围例如为 4至 16之间的整数, 或者 n也可为大于 16的整数。 For example, the encoding device may randomly select a coding coefficient vector for the load of the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the Galois field GF2 n , for example, the value range of the n is An integer between 4 and 16, or n may also be an integer greater than 16.
603、 编码设备利用该编码系数矢量对第五 IP数据包和第十 IP数据包 的 IP层载荷中的 DNCP数据包的载荷进行随机线性编码得到第四线性编码 数据包;  603. The encoding device performs random linear coding on the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the tenth IP data packet by using the coding coefficient vector to obtain a fourth linearly encoded data packet.
604、编码设备将第四线性编码数据包进行 DNCP封装得到第五 DNCP 数据包, 第五 DNCP数据包的 DNCP包头包含上述两个信源标识、 上述两 个 IP数据包标识以及与上述编码系数矢量相关的编码系数矢量信息;  604. The encoding device performs DNCP encapsulation on the fourth linearly encoded data packet to obtain a fifth DNCP data packet, where the DNCP packet header of the fifth DNCP data packet includes the foregoing two source identifiers, the foregoing two IP data packet identifiers, and the foregoing coding coefficient vector. Correlated coding coefficient vector information;
605、 编码设备将第五 DNCP数据包进行 IP封装得到第十一 IP数据包 并发送。  605. The encoding device performs IP encapsulation on the fifth DNCP packet to obtain the eleventh IP data packet and sends the packet.
在实际应用中,第十一 IP数据包的 IP包头中记录的源地址例如与第五 IP数据包或第十 IP数据包的 IP包头中记录的源地址相同, 第十一 IP数据 包的 IP包头中记录的目的地址例如可与第五 IP数据包或第十 IP数据包的 IP包头中记录的目的地址相同 (其中, 第五 IP数据包和第十 IP数据包的 IP包头中记录的是同一个目的地址); 第十一 IP数据包的 IP包头还可包含 有 DNCP数据包标识( DNCP数据包标识例如可携带在第十一 IP数据包的 IP包头的协议字段, 例如协议字段可填充为 FE或其它特定值以指示其 IP 层载荷包含 DNCP数据包), 如此, 其它网络节点便可直接根据第十一 IP 数据包的 IP包头包含的 DNCP数据包标识, 获知第十一 IP数据包的 IP层 载荷包含 DNCP数据包。 In practical applications, the source address recorded in the IP header of the eleventh IP packet is, for example, the same as the source address recorded in the IP header of the fifth IP packet or the tenth IP packet, and the eleventh IP data. The destination address recorded in the IP header of the packet may be, for example, the same as the destination address recorded in the IP header of the fifth IP packet or the tenth IP packet (wherein the IP header of the fifth IP packet and the tenth IP packet) The same destination address is recorded); the IP header of the eleventh IP packet may also contain a DNCP packet identifier (the DNCP packet identifier, for example, a protocol field that can be carried in the IP header of the eleventh IP packet, such as an agreement The field can be filled with FE or other specific values to indicate that its IP layer payload contains DNCP packets. Thus, other network nodes can directly learn the eleventh according to the DNCP packet identifier contained in the IP header of the eleventh IP packet. The IP layer payload of the IP packet contains the DNCP packet.
由上可见, 本实施例提出 DNCP来支持两信源间的编解码, 若两个 IP 数据包到达间隔小于设定时长且目的地址相同, 且两个 IP数据包都包含 DNCP数据包,且其中一个的 IP层载荷中的 DNCP数据包的 DNCP包头包 含两个信源标识和两个 IP数据包标识, 而另一个的 IP层载荷中的 DNCP 数据包的 DNCP包头包含该两个信源标识中的其中一个以及该两个 IP数据 包标识中的其中一个,则编码设备对该两个 IP数据包 IP层载荷中的 DNCP 数据包的载荷进行随机线性编码, 这就有利于在一定程度上消除实际网络 中的传输延迟及发送速率等不匹配问题的影响; 同时, 随机线性编码后封 装的 DNCP数据包的 DNCP包头携带两个信源标识、两个 IP数据包标识以 及与编码系数矢量相关的编码系数矢量信息, 这就为下游编码设备继续进 行一次或多次编码或为解码设备快速解码奠定了基础, 有利于提高网络编 码在实际网络中的通用性; 并且由于是基于网络编码技术来实施, 因而能 够充分利用网络资源, 明显提高网络的吞吐率, 达到更高的传输效率。  As can be seen from the above, this embodiment proposes DNCP to support codec between two sources. If two IP packets arrive at an interval less than the set duration and the destination address is the same, and both IP packets contain DNCP packets, and The DNCP header of the DNCP packet in one IP layer payload contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains the two source identifiers. One of the two IP packet identifiers, and the encoding device randomly and linearly encodes the payload of the DNCP packet in the IP layer payload of the two IP packets, which is beneficial to some extent The impact of the mismatch problem such as the transmission delay and the transmission rate in the actual network; meanwhile, the DNCP header of the DNCP packet encapsulated by the random linear coding carries two source identifiers, two IP packet identifiers, and a code coefficient vector. Coding coefficient vector information, which lays the foundation for the downstream encoding device to continue encoding one or more times or for decoding the decoding device quickly. Help to improve the versatility of the network coding in real networks; and because it is implemented based on network coding, which can be full use of network resources, significantly improve network throughput, achieve higher transmission efficiency.
本发明解码方法的一个实施例, 一种解码方法, 可包括: 解码设备接 收 IP数据包; 若接收到的 IP数据包的 IP层载荷包含 DNCP数据包, 则解 码设备将该 DNCP数据包存入到緩存区; 当存入到緩存区的 DNCP数据包 达到预设数目时, 从该緩存区读取出 DNCP数据包; 若读取出的 DNCP数 据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及一组与编码 系数矢量相关的编码系数矢量信息, 则查找緩存区中是否存在其 DNCP包 头包含该两个信源标识和两个 IP数据包标识的另一个 DNCP数据包, 若存 在, 则从緩存区读取出该另一个 DNCP数据包, 其中, 该另一个 DNCP数 据包的 DNCP 包头还包含另一组与编码系数矢量相关的编码系数矢量信 息; 利用该两组编码系数矢量信息对读取出的 DNCP数据包的载荷进行随 机线性解码。 An embodiment of the decoding method of the present invention, a decoding method, may include: the decoding device receives an IP data packet; if the IP layer payload of the received IP data packet includes a DNCP data packet, the decoding device stores the DNCP data packet To the buffer area; when the DNCP data packet stored in the buffer area reaches a preset number, the DNCP data packet is read from the buffer area; if the DNCP packet header of the read DNCP data packet contains two source identifiers, two IP packet identification and a set of encodings Coefficient vector related coding coefficient vector information, then it is found in the buffer area that another DNCP packet whose DNCP header contains the two source identifiers and two IP packet identifiers, if present, is read out from the buffer area The other DNCP packet, wherein the DNCP header of the another DNCP packet further includes another set of coding coefficient vector information related to the coding coefficient vector; and the read DNCP packet is obtained by using the two sets of coding coefficient vector information The load is subjected to random linear decoding.
参见图 7, 具体步骤可包括:  Referring to Figure 7, specific steps may include:
701、 解码设备接收 IP数据包;  701. The decoding device receives an IP data packet.
其中, 解码设备例如可从第一链路接收 IP数据包, 或者也可分别从第 一链路和第二链路接收 IP数据包。  The decoding device may, for example, receive an IP data packet from the first link, or may also receive an IP data packet from the first link and the second link, respectively.
702、 若接收到的 IP数据包的 IP层载荷包含 DNCP数据包, 则解码设 备将该 DNCP数据包存入到緩存区;  702. If the IP layer payload of the received IP data packet includes a DNCP data packet, the decoding device stores the DNCP data packet into the buffer area.
在实际应用中,编码设备例如可检测接收到的 IP数据包的 IP包头是否 包含 DNCP数据包标识, 若其 IP包头包含 DNCP数据包标识, 则可据此获 知其 IP层载荷包含 DNCP数据包, 当然, 编码设备亦可通过其它可能的方 式获知其 IP层载荷是否包含 DNCP数据包, 例如可通过检测接收到的 IP 数据包的 IP层载荷来获知其 IP层载荷是否包含 DNCP数据包。  In an actual application, the encoding device can detect, for example, whether the IP header of the received IP packet includes a DNCP packet identifier, and if the IP header includes the DNCP packet identifier, it can be learned that the IP layer payload includes the DNCP packet. Of course, the encoding device can also know whether the IP layer payload includes the DNCP data packet by other possible means. For example, the IP layer payload of the received IP data packet can be used to know whether the IP layer payload includes the DNCP data packet.
703、 当存入到緩存区的 DNCP数据包达到预设数目 (该预设数目可根 据具体网络场景和编码场景具体设置, 例如可设置为 32个、 64个、 128个、 256或其它个数) 时, 解码设备从该緩存区读取出 DNCP数据包;  703. When the DNCP data packet stored in the buffer area reaches a preset number, the preset number may be specifically set according to a specific network scenario and a coding scenario, for example, may be set to 32, 64, 128, 256, or other numbers. When the decoding device reads the DNCP data packet from the buffer area;
在实际应用中, 在将该 DNCP数据包存入到緩存区之后, 解码设备还 可将该 DNCP数据包的索引(该索引例如可包括:该 DNCP数据包的 DNCP 包头中包含的至少一个 IP数据包标识、 或者包括该 DNCP数据包的 DNCP 包头中包含的至少一个 IP数据包标识和至少一个信源标识, 或者也可包括 其它能够索引到该 DNCP数据包的信息)和该 DNCP数据包在该緩存区的 地址存入到内容可寻址存储器 (CAM, Content Addressable Memory ) 中。 704、若读取出的 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢量相关的编码系数矢量信息, 则解码 设备查找緩存区中是否存其 DNCP包头包含该两个信源标识和两个 IP数据 包标识的另一个 DNCP数据包; In an actual application, after the DNCP data packet is stored in the buffer area, the decoding device may further index the DNCP data packet (the index may include, for example, at least one IP data included in the DNCP header of the DNCP data packet. a packet identifier, or at least one IP packet identifier included in the DNCP header of the DNCP packet, and at least one source identifier, or may also include other information that can be indexed to the DNCP packet) and the DNCP packet is The address of the buffer is stored in the Content Addressable Memory (CAM). 704. If the DNCP header of the read DNCP data packet includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, the decoding device searches whether the buffer is stored in the buffer area. The DNCP header contains the two source identifiers and another DNCP packet identified by two IP packets;
其中, 若读取出的 DNCP数据包的 DNCP包头包含两个信源标识、 两 个 IP数据包标识以及一组编码系数矢量信息, 表示该 DNCP数据包的载荷 是经过随机线性编码的, 当然, 解码设备也可通过检测 DNCP包头的标志 字段(该标志字段指示该 DNCP数据包的载荷的编码情况),来获知该 DNCP 数据包的载荷是否经过随机线性编码, 若经过随机线性编码, 则需要查找 到与该 DNCP数据包具有相同待解码数据的其它 DNCP数据包(即, 其 DNCP包头包含该两个信源标识和两个 IP数据包标识的 DNCP数据包)来 进行解码。  Wherein, if the DNCP header of the read DNCP packet includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information, indicating that the payload of the DNCP packet is randomly linearly encoded, of course, The decoding device may also detect whether the payload of the DNCP packet is randomly linearly encoded by detecting a flag field of the DNCP packet header indicating the encoding of the payload of the DNCP packet, and if it is subjected to random linear coding, it needs to be searched. The decoding is performed to other DNCP packets having the same data to be decoded as the DNCP packet (ie, the DNCP header of the DNCP packet containing the two source identifiers and the two DNCP packets identified by the IP packet).
此外, 若读取出的 DNCP数据包的载荷未经过随机线性编码(即: 该 DNCP数据包可能是将原始 IP数据包直接进行 DNCP封装后得到的 ), 则 去除该 DNCP数据包的 DNCP包头得到 IP数据包(该 IP数据包为原始 IP 数据包)。  In addition, if the load of the read DNCP data packet is not randomly linearly encoded (ie, the DNCP data packet may be obtained by directly DNCP encapsulating the original IP data packet), then the DNCP header of the DNCP data packet is removed. IP packet (this IP packet is the original IP packet).
705、 若存在, 则解码设备从緩存区读取出该另一个 DNCP数据包; 其中, 该另一个 DNCP数据包的 DNCP包头可包含另一组与编码系数 矢量相关的编码系数矢量信息 (其中, 该另一组与编码系数矢量相关的编 码系数矢量信息, 可能与此前读取的 DNCP数据包的 DNCP包头包含的一 组与编码系数矢量相关的编码系数矢量信息相同, 也可能与之不同)及上 述两个信源标识和两个 IP数据包标识。  705. If yes, the decoding device reads the another DNCP data packet from the buffer area, where the DNCP packet header of the another DNCP data packet may include another set of coding coefficient vector information related to the coding coefficient vector (where The other set of coding coefficient vector information related to the coding coefficient vector may be the same as or different from the coding coefficient vector information related to the coding coefficient vector included in the DNCP packet header of the previously read DNCP data packet) The above two source identifiers and two IP packet identifiers.
在一种应用场景下, 若解码设备是分别从第一链路和第二链路接收 IP 数据包的, 则若从第一链路接收到的 IP数据包的 IP层载荷包含 DNCP数 据包, 解码设备可将该 DNCP数据包存入到第一緩存区; 若从第二链路接 收到的 IP数据包的 IP层载荷包含 DNCP数据包,则解码设备可将该 DNCP 数据包存入到第二緩存区, 其中, 第一緩存区和第二緩存区可位于同一存 储芯片, 也可能位于不同的存储芯片。 在此场景下, 当存入到第一緩存区 的 DNCP数据包达到预设数目和 /或存入到第二緩存区的 DNCP数据包达到 预设数目时, 或者, 存入到第一緩存区和第二緩存区的 DNCP数据包的总 和达到预设数目时, 按照预定的读取顺序 (例如可按照先存先取的原则读 取,或者,可按照存储地址由低到高的顺序读取 )从第一緩存区读取出 DNCP 数据包。 若从第一緩存区读取出的 DNCP数据包的 DNCP包头包含有两个 信源标识、两个 IP数据包标识及与该两个 IP数据包标识对应的一组编码系 数矢量信息, 则可根据该两个信源标识中的至少一个及该两个 IP数据包标 识中的至少一个, 或, 根据该两个 IP数据包标识中的至少一个, 查找第二 緩存区中是否存在其 DNCP包头包含上述两个信源标识和两个 IP数据包标 识的另一个 DNCP数据包(即, 具有相同待解码数据的另一个 DNCP数据 包), 若不存在, 解码设备可丟弃该读取出的 DNCP数据包; 若存在, 则解 码设备从緩存区读取出该另一个 DNCP数据包。 In an application scenario, if the decoding device receives the IP data packet from the first link and the second link, respectively, if the IP layer payload of the IP data packet received from the first link includes the DNCP data packet, The decoding device may store the DNCP data packet into the first buffer area; if the IP layer payload of the IP data packet received from the second link includes a DNCP data packet, the decoding device may The data packet is stored in the second buffer area, where the first buffer area and the second buffer area may be located on the same memory chip, or may be located in different memory chips. In this scenario, when the DNCP data packet stored in the first buffer area reaches a preset number and/or the DNCP data packet stored in the second buffer area reaches a preset number, or is stored in the first buffer area. And when the sum of the DNCP data packets of the second buffer area reaches a preset number, according to a predetermined reading order (for example, may be read according to the principle of preemption first, or may be read in order of storage address from low to high) The DNCP packet is read from the first buffer. If the DNCP header of the DNCP packet read from the first buffer includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information corresponding to the two IP packet identifiers, Determining whether there is a DNCP header in the second buffer according to at least one of the two source identifiers and at least one of the two IP packet identifiers, or according to at least one of the two IP packet identifiers Another DNCP packet containing the above two source identifiers and two IP packet identifiers (ie, another DNCP packet having the same data to be decoded), if not present, the decoding device may discard the read DNCP packet; if present, the decoding device reads the other DNCP packet from the buffer.
706、解码设备利用两组编码系数矢量信息对读取出的 DNCP数据包的 载荷进行随机线性解码。  706. The decoding device performs random linear decoding on the load of the read DNCP data packet by using two sets of coding coefficient vector information.
在实际应用中, 解码设备例如可运用矩阵相乘、 高斯消元法或克莱默 法则对读取出的 DNCP数据包的载荷进行随机线性解码。 其中, 若随机线 性解码成功, 则解码设备可获得来自不同信源的两个原始 IP数据包并可发 送该原始 IP数据包, 若随机线性解码失败, 则解码设备可丟弃该读取出的 DNCP数据包, 并可按照上述机制继续从緩存区继续读取其它 DNCP数据 包来进行解码。  In practical applications, the decoding device can perform random linear decoding on the load of the read DNCP packet by, for example, matrix multiplication, Gaussian elimination, or Kramer's law. If the random linear decoding succeeds, the decoding device can obtain two original IP data packets from different sources and can send the original IP data packet. If the random linear decoding fails, the decoding device can discard the read out data. The DNCP packet can continue to read other DNCP packets from the buffer for decoding according to the above mechanism.
由上可见, 本实施例中解码设备接收 IP数据包; 若接收到的 IP数据包 的 IP层载荷包含 DNCP数据包, 将该 DNCP数据包存入到緩存区; 当存入 到緩存区的 DNCP数据包达到预设数目时, 从该緩存区读取出 DNCP数据 包; 若读取出的 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数 据包标识以及一组与编码系数矢量相关的编码系数矢量信息, 则查找出緩 存区中的其 DNCP包头包含该两个信源标识和两个 IP数据包标识的另一个 DNCP数据包, 该另一个 DNCP数据包的 DNCP包头还包含另一组与编码 系数矢量相关的编码系数矢量信息; 解码设备利用该两组编码系数矢量信 息对读取出的 DNCP数据包的载荷进行随机线性解码。 由于编码设备在随 机线性编码后封装的 DNCP数据包的 DNCP包头携带两个信源标识、 两个 IP数据包标识以及与编码系数矢量相关的编码系数矢量信息, 解码设备可 据此快速解码, 该机制有利于提高网络编码在实际网络中的通用性; 并且 由于是基于网络编码技术来实施, 因而能够充分利用网络资源, 明显提高 网络的吞吐率, 达到更高的传输效率。 It can be seen that, in this embodiment, the decoding device receives the IP data packet; if the IP layer payload of the received IP data packet includes the DNCP data packet, the DNCP data packet is stored in the buffer area; when the DNCP is stored in the buffer area When the data packet reaches the preset number, the DNCP data packet is read out from the buffer area; if the DNCP packet header of the read DNCP data packet contains two source identifiers and two IP numbers According to the packet identifier and a set of coding coefficient vector information related to the coding coefficient vector, it is found that another DNCP packet whose DNCP header contains the two source identifiers and two IP packet identifiers in the buffer area, the other The DNCP header of a DNCP packet further includes another set of coding coefficient vector information related to the coding coefficient vector; the decoding device performs random linear decoding on the payload of the read DNCP packet by using the two sets of coding coefficient vector information. Since the DNCP header of the DNCP packet encapsulated by the encoding apparatus after random linear coding carries two source identifiers, two IP packet identifiers, and coding coefficient vector information related to the coding coefficient vector, the decoding device can quickly decode according to the decoding device. The mechanism is beneficial to improve the versatility of the network coding in the actual network; and because it is implemented based on the network coding technology, it can fully utilize the network resources, significantly improve the throughput rate of the network, and achieve higher transmission efficiency.
为便于更好的理解实施本发明实施例的技术方案, 下面以一种举例场 景下的编解码过程为例, 进行详细描述。  In order to facilitate a better understanding of the technical solution of the embodiments of the present invention, a codec process in the example scenario is taken as an example for detailed description.
参见图 8-a, 图 8-a为编码流程示意图, 具体步骤可包括:  Referring to Figure 8-a, Figure 8-a is a schematic diagram of the coding process. The specific steps may include:
801、 编码设备 Eel接收来自信源 S1的数据包 PS11; 801, the encoding device Eel receives the data packet P S11 from the source S1;
802、 编码设备 Eel判断接收到的该数据包是否为 IP数据包; 若否, 则执行步骤 809;  802, the encoding device Eel determines whether the received data packet is an IP data packet; if not, then step 809;
若是, 则执行步骤 803;  If yes, go to step 803;
803、 编码设备 Eel为接收到的数据包 PS11分配标识; 803. The encoding device Eel allocates an identifier to the received data packet P S11 .
在实际应用中, 为了便于在解码时容易区分相同信源的 IP数据包, 并 在解码后能够容易的恢复出原始 IP数据包的顺序, 编码设备 Eel可为接收 到的每个 IP数据包分配标识(如顺序编号)。  In practical applications, in order to facilitate easy identification of IP packets of the same source during decoding, and to easily recover the original IP packet sequence after decoding, the encoding device Eel can allocate each IP packet received. Identification (such as sequential numbering).
为了方便表述, 编码设备 Eel为 IP数据包分配的标识定义如下: 殳设在某个网络的拓朴图 G= ( V, E ) 中, 例如有 n个信源 S V, m 个信宿 Rj e v, 其中, i=l,2,…! 1 , j=l,2,— m。  For convenience of description, the identifier assigned by the encoding device Eel to the IP data packet is defined as follows: 殳 In the topology map G=(V, E) of a certain network, for example, there are n source SVs, m sinks Rj ev, Where i=l,2,...! 1 , j=l, 2, — m.
编码设备 Eel例如可将信源 S1发出的第 1个数据包记为 S(1,0), 第 2 个数据包记为 S(l,l), 依次类推, 信源 Sn的第 X个数据包记为 S(n,x-1)。依 据实际应用需求, 来自每个信源的 IP数据包的序编号例如可从 0 开始至 1024(或其它值)结束,并依此重复,即信源 Sn的最大的序编号为 S(n,1024)。 For example, the encoding device Eel can record the first data packet sent by the source S1 as S(1, 0), the second data packet as S(l, l), and so on, and the Xth data of the source Sn. The package is denoted as S(n, x-1). According to According to the actual application requirements, the sequence number of the IP data packet from each source can end, for example, from 0 to 1024 (or other value), and repeats accordingly, that is, the maximum sequence number of the source Sn is S(n, 1024).
804、 编码设备 Ec 1启动定时器;  804. The encoding device Ec 1 starts a timer.
其中, 启动定时器的目的是为了确定在此后的设定时长内是否能接收 到来自信源 S2的数 β据包。  The purpose of starting the timer is to determine whether the number of packets arriving at the confidence source S2 can be received within the set duration thereafter.
805、 编码设备 Eel若在定时器时间到达前接收到来自信源 S2的数据 包(例如表示为数据包 PS21 ), 且该数据包卩^为 IP数据包, 则编码设备 Eel判断 IP数据包 PS11和 IP数据包 PS21的目的地址是否相同; 805. If the encoding device Eel receives the data packet of the self-confidence source S2 (for example, represented as the data packet P S21 ) before the timer expires, and the data packet is an IP data packet, the encoding device Eel determines the IP data packet. Whether the destination address of P S11 and IP data packet P S21 are the same;
若相同, 则执行步骤 809;  If they are the same, step 809 is performed;
若不同, 则执行步骤 806 ,  If it is different, step 806 is performed.
其中, 若在定时器时间到达前接收到来自信源 S2的数据包 PS21 , 则可 将 IP数据包 PS11和 IP数据包 PS21看做是 "同时到达"。 If the packet P S21 of the confidence source S2 is received before the timer expires, the IP packet P S11 and the IP packet P S21 can be regarded as "simultaneous arrival".
806、 编码设备 Eel在有限域内分别为 IP数据包 PS11和 IP数据包 PS21 随机选取编码系数矢量, 并利用随机选取的编码系数矢量对 IP数据包 PS11 和 IP数据包 PS21进行线性编码得到线性编码数据包。 806, the encoding apparatus Eel limited domain are IP packets P S11 and IP packet P S21 randomly coded coefficient vectors, and the IP packet P S11 and IP packet P S21 linearly encoded with encoding coefficient vector randomly selected A linearly encoded data packet is obtained.
在实际应用中, 编码设备 Eel例如可从 GF256 (或其它 GF ) 中为 IP 数据包 PS11和 IP数据包 PS21随机选择编码系数矢量。 In an actual application, the encoding device Eel can, for example, randomly select a coding coefficient vector for the IP data packet P S11 and the IP data packet P S21 from the GF256 (or other GF).
例如,若为来自不同信源的 IP数据包 S(l ,x) 和 IP数据包 S(2,y)选取的 编码系数矢量分别为 α、 β , 则其线性编码后的输出 out e)可如下:
Figure imgf000028_0001
= o S(l ,x)+ p S(2,y)。
For example, if the coding coefficient vectors selected for IP data packets S(l, x) and IP data packets S(2, y) from different sources are α, β, respectively, the linearly encoded output out e) can be as follows:
Figure imgf000028_0001
= o S(l ,x)+ p S(2,y).
此外, 考虑到多次编码的情形和实际的应用, 编码的对象例如为整个 IP数据包 ( IP包头 +其有效载荷 )。  Furthermore, considering the case of multiple encoding and the actual application, the encoded object is, for example, the entire IP packet (IP header + its payload).
807、 编码设备 Eel将对 IP数据包 PS11和 IP数据包 PS21进行线性编码 得到线性编码数据包得到的线性编码数据包进行 DNCP封装得到 DNCP数 据包; 其中, giaDNCP数据包的 DNCP包头可包含信源 S1和信源 S2的标识、 IP数据包 PS11和 IP数据包 PS11的标识, 以及随机选取的编码系数矢量。 807. The encoding device Eel linearly encodes the IP data packet P S11 and the IP data packet P S21 to obtain a linear encoded data packet obtained by linearly coding the data packet, and performs DNCP encapsulation to obtain a DNCP data packet. The DNCP header of the giaDNCP data packet may include the identifiers of the source S1 and the source S2, the identifiers of the IP data packet P S11 and the IP data packet P S11 , and the randomly selected coding coefficient vector.
808、 编码设备 Eel对得到的 DNCP数据包进行 IP封装得到 IP数据包 PDSII ;  808. The encoding device Eel performs IP encapsulation on the obtained DNCP data packet to obtain an IP data packet PDSII;
其中, 编码设备 Eel对 DNCP数据包进行 IP封装后得到的 IP数据包 PDS11的格式可如图 8-b所示。 The format of the IP data packet P DS11 obtained by the IP encoding of the DNCP data packet by the encoding device Eel can be as shown in FIG. 8-b.
在实际应用中, 例如可将 IP数据包 PS11和 IP数据包 PS21的 IP包头中 的总长度字段中较大值填入 IP数据包 PDS11的 IP包头的总长度字段, 可将 IP数据包 PS11和 IP数据包 PS21的 IP包头中的 TTL字段中较大值填入 IP数 据包 PDSIIIP包头的 TTL字段, 且 IP数据包 PDS11的源 IP地址和目的 IP地 址, 与 IP数据包 Psii或 IP数据包 PS2i的源 IP地址和目的 IP地址相同。 In practical applications, for example, the larger value in the total length field in the IP header of the IP packet P S11 and the IP packet P S21 may be filled in the total length field of the IP header of the IP packet P DS11 , and the IP data may be package P S11 and P S21 IP packet IP header TTL field values into larger TTL field PDSIIIP IP packet header, and the source IP address and destination IP address of the IP packet P DS11, the IP packet The source IP address and destination IP address of the Psii or IP packet P S2 i are the same.
此外, IP数据包 PDS11IP包头还可包含有 DNCP数据包标识(该 DNCP 数据包标识例如可携带在 IP数据包 PDS11IP包头的协议字段,例如可将该协 议字段填充为 FE或其它特定值以指示其 IP层载荷包含 DNCP数据包),如 此,其它网络节点便可直接根据该 IP数据包 PDS11 « IP包头包含的 DNCP数 据包标识, 获知 IP数据包 PDS1 々 IP层载荷包含 DNCP数据包。 In addition, the IP packet P DS11 IP header may also contain a DNCP packet identifier (the DNCP packet identifier may be, for example, a protocol field that may be carried in the IP packet P DS11 IP header, for example, the protocol field may be filled with FE or other specific value to indicate that the IP layer packet payload contains DNCP), thus, other network node may «DNCP packet identification included in the IP header of the IP packet directly from P DS11, known IP layer packet payload contains P DS1 々IP DNCP data pack.
809、 编码设备 Eel的 IP层查表转发数据包。  809. Encoding device Eel's IP layer lookup table forwards the data packet.
参见图 9, 图 9为一种解码方法流程示意图, 具体步骤可包括:  Referring to FIG. 9, FIG. 9 is a schematic flowchart of a decoding method, and specific steps may include:
901、解码设备 Del (例如解码路由器 )分别从两条链路接收 IP数据包; 902、 解码设备 Del判断接收到的 IP数据包 IP层载荷是否包含 DNCP 数据包;  901. The decoding device Del (for example, a decoding router) respectively receives IP data packets from two links; 902. The decoding device Del determines whether the received IP data packet IP layer payload includes a DNCP data packet.
若否, 则执行步骤 910;  If no, go to step 910;
若是, 则执行步骤 903;  If yes, proceed to step 903;
在实际应用中, 解码设备 Del例如可检测接收到得 IP数据包的 IP包 头是否包含 DNCP数据包标识, 若其 IP包头包含 DNCP数据包标识, 则可 据此获知其 IP层载荷包含 DNCP数据包, 当然, 解码设备 Del亦可通过其 它可能的方式获知其 IP层载荷是否包含 DNCP数据包, 例如可通过检测接 收到得 IP数据包的 IP层载荷, 获知其 IP层载荷是否包含 DNCP数据包。 In an actual application, the decoding device Del can detect, for example, whether the IP header of the received IP packet contains a DNCP packet identifier, and if its IP header contains a DNCP packet identifier, it can be learned that the IP layer payload includes the DNCP packet. , of course, the decoding device Del can also pass its It is possible to know whether its IP layer payload contains DNCP packets. For example, by detecting the IP layer payload of the received IP packet, it is known whether its IP layer payload contains DNCP packets.
903、 若接收到的 IP数据包来自第一链路, 则解码设备 Del可将该 IP 数据包的 IP层载荷中的 DNCP数据包存入 SRAM緩存 SR1 , 若接收到的 IP数据包来自第二链路, 则解码设备 Del可将该 IP数据包的 IP层载荷中 的 DNCP数据包存入 SRAM緩存 SR2;  903. If the received IP data packet is from the first link, the decoding device Del may store the DNCP data packet in the IP layer payload of the IP data packet into the SRAM cache SR1, if the received IP data packet is from the second. Link, the decoding device Del can store the DNCP data packet in the IP layer payload of the IP data packet into the SRAM buffer SR2;
在实际应用中,在将该 DNCP数据包存入到緩存区之后,解码设备 Del 还可将该 DNCP数据包的索引 (该索引例如可包括: 该 DNCP数据包的 DNCP包头中包含的至少一个 IP数据包标识、 或者, 包括该 DNCP数据包 的 DNCP包头中包含的至少一个 IP数据包标识和至少一个信源标识, 或者 也可包括其它能够索引到该 DNCP数据包的信息)和该 DNCP数据包在緩 存区的地址存入到内容可寻址存储器( CAM, Content Addressable Memory )。  In an actual application, after the DNCP data packet is stored in the buffer area, the decoding device Del may also index the DNCP data packet (the index may include, for example, at least one IP included in the DNCP packet header of the DNCP data packet. The data packet identifier, or at least one IP data packet identifier included in the DNCP header of the DNCP data packet and at least one source identifier, or may also include other information that can be indexed to the DNCP data packet) and the DNCP data packet The address in the buffer area is stored in the Content Addressable Memory (CAM).
其中, 使用 CAM和存入緩存 SRAM的原因是, 由于经过编码及网络 环境非理想等, 解码设备收到的编码数据包可能是乱序的、 不同步的。 因 此需在解码设备中对输入的 DNCP数据包先緩存起来。 当收集到足够的信 息量(例如緩存的 DNCP数据包数量达到设定数目) 时, 进行解码操作。  Among them, the reason for using CAM and storing the cache SRAM is that the encoded data packets received by the decoding device may be out of order and not synchronized due to the non-ideal coding and network environment. Therefore, the input DNCP data packet needs to be buffered first in the decoding device. The decoding operation is performed when a sufficient amount of information is collected (for example, the number of buffered DNCP packets reaches a set number).
DNCP数据包存入 SRAM的顺序可以是从地址由低到高的顺序。  The order in which DNCP packets are stored in the SRAM can be from the lowest to the highest order of the addresses.
查询 CAM的输出即可为对应 DNCP数据包在 SRAM中的地址。  The output of the CAM can be the address corresponding to the DNCP packet in the SRAM.
904、 解码设备 Dc 1读取其中一片 SRAM中緩存的 DNCP数据包; 其中, 例如当存入到其中一片 SRAM的 DNCP数据包达到预设数目和 /或存入到另一片 SRAM的 DNCP数据包达到预设数目时, 或,存入到两片 SRAM的 DNCP数据包的总和达到预设数目时, 解码设备 Del可开始解码 操作。  904. The decoding device D11 reads a DNCP data packet buffered in one of the SRAMs; wherein, for example, when the DNCP data packet stored in one of the SRAMs reaches a preset number and/or the DNCP data packet stored in another SRAM reaches At the preset number, or when the sum of the DNCP packets stored in the two SRAMs reaches a preset number, the decoding device Del can start the decoding operation.
对于解码设备 Del , 其接收到的 DNCP数据包分为两种情况: a. DNCP数据包的载荷未经过随机线性编码(解码设备 Del例如可根 据 DNCP数据包的 DNCP包头中相关字段的内容获知 DNCP数据包的载荷 是否经过编码), 但进行了 DNCP封装; For the decoding device Del, the received DNCP data packet is divided into two cases: a. The payload of the DNCP data packet is not randomly linearly encoded (the decoding device Del can learn DNCP according to the content of the relevant field in the DNCP header of the DNCP data packet, for example. Packet payload Whether it is encoded), but it is packaged in DNCP;
此种数据包只需去掉 DNCP包头即可得到原始 IP数据包;  Such a packet can be obtained by simply removing the DNCP header to obtain the original IP packet;
b. DNCP数据包的载荷经过随机线性编码, 则 DNCP数据包的载荷可 表示为如以方程组(1 ) 所描述的形式:  b. The payload of the DNCP packet is randomly linearly encoded, and the payload of the DNCP packet can be expressed as in the form described by equation (1):
aX ( 0, i ) + b Y ( 1 , j ) = K  aX ( 0, i ) + b Y ( 1 , j ) = K
cX ( 0, i ) + d Y ( 1 , j ) = P ( 1 )  cX ( 0, i ) + d Y ( 1 , j ) = P ( 1 )
解码时, 例如可对接收到的 DNCP数据包釆取先入先解的策略, 并可 按解码顺序输出 IP数据包。  When decoding, for example, a first-in-first-solution strategy can be extracted for the received DNCP data packet, and the IP data packet can be output in the decoding order.
在实际应用中, 解码设备 Del例如可按照地址大小顺序 (例如存储时 可按照地址由低到高的顺序存储), 依次轮流读取两片 SRAM 中緩存的 DNCP数据包, 即可按照地址由低到高的顺序, 先从緩存 SR1 中读取一 DNCP数据包进行随机线性解码, 再从緩存 SR2中读取一 DNCP数据包进 行随机线性解码, 然后再緩存 SR1中读取一 DNCP数据包进行随机线性解 码, 依此类推。  In practical applications, the decoding device Del may, for example, store the DNCP data packets buffered in two SRAMs in turn according to the address size order (for example, the storage may be stored in order of low to high address), and the address may be low according to the address. In the high order, a DNCP packet is read from the buffer SR1 for random linear decoding, then a DNCP packet is read from the buffer SR2 for random linear decoding, and then a DNCP packet is read in the buffer SR1 for randomization. Linear decoding, and so on.
其中, 轮流读取两片 SRAM的目的在于 "尽最大努力交付" 到来的数 据包。  Among them, the purpose of reading two SRAMs in turn is to "deliver as much as possible" the incoming packets.
905、解码设备 Del判断读取的 DNCP数据包的载荷是否经过随机线性 编码;  905. The decoding device Del determines whether the load of the read DNCP data packet is randomly linearly encoded.
若读取出的 DNCP数据包的载荷未经过编码, 则去除该 DNCP数据包 的去掉 DNCP包头即可得到原始 IP数据包, 并执行步骤 910;  If the payload of the read DNCP packet is not encoded, the original DN packet is removed by removing the DNCP header from the DNCP packet, and step 910 is performed;
若读取出的 DNCP数据包的载荷经过编码, 则执行步骤 907;  If the load of the read DNCP data packet is encoded, step 907 is performed;
906、 解码设备 Del判断读取出的该 DNCP数据包是否已经被解码; 其中, 在每个原始 IP数据包被解码出来后, 可在解码标志寄存器对应 进行标记, 因此, 解码设备 Del可查询解码标志寄存器来判断读取出的该 DNCP数据包是否已经被解码;  906. The decoding device Del determines whether the read DNCP data packet has been decoded. After each original IP data packet is decoded, the decoding flag register may be correspondingly marked. Therefore, the decoding device Del may query and decode. A flag register to determine whether the read DNCP packet has been decoded;
其中, 若读取出的该 DNCP数据包已经被解码, 解码设备 Del可将对 应解码标志位复位, 并执行步骤 904, 继续读取下一 DNCP数据包来进行 解码。 Wherein, if the read DNCP data packet has been decoded, the decoding device Del may be paired The flag bit should be reset, and step 904 is executed to continue reading the next DNCP packet for decoding.
若读取出的该 DNCP数据包未被解码, 则执行 907;  If the read DNCP packet is not decoded, execute 907;
其中, 需要查询数据包是否解码的理由是:  Among them, the reason to query whether the data packet is decoded is:
经过编码的数据包形式总可由方程组( 1 )所示, 即每块 SRAM中均可 能存储有对应原始 IP数据包 X (0, i), Y (1, j) 的待解码数据。 故, 若 以某一块 SRAM为基准已经解出了原始 IP数据包 X (0, i), Y (l, j), 而下一次读取到另一块 SRAM时读取的待解码 DNCP数据包时, 依然可能 读取出对应原始 IP数据包 X (0, i), Y (1, j) 的待解码 DNCP数据包, 此时若查询到其已经被解码, 则可无需再对其进行解码操作了。  The encoded packet form can always be represented by the equation group (1), that is, each SRAM can store data to be decoded corresponding to the original IP packet X (0, i), Y (1, j). Therefore, if the original IP data packet X (0, i), Y (l, j) has been solved based on a certain SRAM, and the DNCP data packet to be decoded is read when reading the next SRAM next time, It is still possible to read out the DNCP data packet to be decoded corresponding to the original IP data packet X (0, i), Y (1, j), and if it is queried that it has been decoded, it may not need to decode it. It is.
907、 解码设备 Del根据已读取出的 DNCP数据包的 DNCP包头信息, 查找另一块 SRAM中是否存在与之具有相同待解码信息的另一 DNCP数据 包;  907. The decoding device Del searches, according to the DNCP header information of the read DNCP packet, whether another DNCP data packet having the same information to be decoded exists in another SRAM;
若存在, 则解码设备 Del 读取出另一块 SRAM存储的与已读取出的 DNCP数据包具有相同待解码信息的另一 DNCP数据包。  If so, the decoding device Del reads another DNCP packet stored by another SRAM having the same information to be decoded as the read DNCP packet.
其中, 具有相同待解码信息的两个 DNCP数据包 DNCP包头包含的两 个信源标识和两个 IP数据包标识是相同的。 例如, 某两个 DNCP数据包 DNCP包头都包含信源 S1和信源 S2的标识,ΙΡ数据包 Psl oIP数据包 PS21 的标识,则可认为这两个两个 DNCP数据包的载荷中具有相同待解码信息。 The two source identifiers and the two IP packet identifiers included in the DNCP header of the two DNCP packets having the same information to be decoded are the same. For example, the DNCP header of a certain DNCP packet contains the identifiers of the source S1 and the source S2, and the identifier of the packet P sl oIP packet P S21 can be considered as having the payload of the two DNCP packets. The same information to be decoded.
其中, 这两个 DNCP数据包的编码信息都包含在 DNCP包头中 (具体 见 DNCP包头格式说明)。 例如以 IP数据包 X (0, 0的标识为索引, 或者 以 IP数据包 X (0, i) 的标识和其对应信源的标识为索引, 通过 CAM可 查出 IP数据包 X (0, 0对应的 DNCP数据包在另一块 SRAM中的存储地 址, 再依据此存储地址可读取出该另一个 DNCP数据包, cX (0, i) +d Y (1, j)。  The coding information of the two DNCP data packets is included in the DNCP header (see the DNCP header format description for details). For example, the IP packet X (0, 0) is indexed, or the identifier of the IP packet X (0, i) and the identifier of its corresponding source are indexed, and the IP packet X (0, can be detected by the CAM. 0 corresponds to the storage address of the DNCP packet in another SRAM, and the other DNCP packet, cX (0, i) + d Y (1, j), can be read and read according to the storage address.
908、解码设备 Del判断读取出的两个 DNCP数据包中的待解码数据对 应的编码系数矢量是否线性相关; ― , a b l 是否为零。 908. The decoding device Del determines the pair of data to be decoded in the two DNCP data packets that are read out. Whether the vector of the coding coefficient should be linearly related; ― , whether abl is zero.
若系数矩阵为零, 则说明系数线性相关, 当前无法解码此数据包, 可 丟弃该数据包, 返回步骤 904, 继续解码下一 DNCP数据包。  If the coefficient matrix is zero, the coefficient is linearly correlated. Currently, the data packet cannot be decoded, and the data packet can be discarded. Returning to step 904, the decoding of the next DNCP data packet is continued.
若系数矩阵不为零, 则说明线性不相关, 可以解码, 执行步骤 909。 909、解码设备 Del运用克莱默法则解码读取出的两个 DNCP数据包中 的待解码数据得到的原始的 IP数据包;  If the coefficient matrix is not zero, it indicates that the linearity is irrelevant and can be decoded. Step 909 is performed. 909. Decoding device Del uses Kramer's law to decode the original IP data packet obtained by reading the data to be decoded in the two DNCP data packets;
基于方程组的解码方法有多种, 如矩阵相乘、 高斯消元法等, 考虑到 硬件的实现, 在此使用基于克莱默法则的解码算法。 ≠o, 那么,
Figure imgf000033_0001
There are various decoding methods based on equations, such as matrix multiplication, Gaussian elimination, etc. Considering the implementation of hardware, a decoding algorithm based on Kramer's law is used here. ≠o, then,
Figure imgf000033_0001
p  p
― .― . a b  ― .― . a b
在解码完成后可将 IP数据包 X ( 0, i )、 IP数据包 Y ( l , j )标志为已 解  After the decoding is completed, the IP packet X ( 0, i ) and the IP packet Y ( l , j ) can be marked as solved.
910, 解码设备 Del在 IP层查表转发 IP数据包。  910, decoding device Del forwards IP packets in the IP layer lookup table.
返回步骤 904, 继续解码下一 DNCP数据包。  Returning to step 904, the decoding of the next DNCP packet continues.
为便于更好的实施本发明实施例的方案, 下面还提供具有网络编解码 功能路由器 DNCP层硬件结构。  In order to facilitate the implementation of the solution of the embodiment of the present invention, the hardware structure of the router DNCP layer with network codec function is also provided below.
要在网络中实现网络编解码功能(进而分别对应两种路由器), 即改变 普通路由器对数据流简单 "存储-转发" 的处理方式, 需要在普通路由器上 添加一 DNCP层模块。  To implement the network codec function in the network (and corresponding to the two routers respectively), that is, to change the simple "storage-forward" processing mode of the ordinary router, it is necessary to add a DNCP layer module to the ordinary router.
DNCP 的层次位于网络层和运输层之间, 即改变后的路由器体系结构 框图如图 10所示, 整个 DNCP层的硬件结构如图 11、 图 12所示。 ( 1 ) 实现编码功能的 DNCP层模块说明如下: The DNCP hierarchy is located between the network layer and the transport layer, that is, the block diagram of the changed router architecture is shown in Figure 10. The hardware structure of the entire DNCP layer is shown in Figure 11 and Figure 12. (1) The DNCP layer module that implements the encoding function is described as follows:
输入仲裁模块( Input— Arbiter ), 设置于 IP层。  Input the Arbitration Module (Input-Arbiter) and set it on the IP layer.
由于编码操作只针对 IP数据包进行, 可在 Input— Arbiter中对传输的数 据包进行协议判断, 如果是 IP数据包, 则传输至 DNCP层模块, 并在条件 满足的情况下进行编码操作;  Since the encoding operation is only performed for the IP data packet, the transmitted data packet can be protocol-determined in the Input-Arbiter, and if it is an IP data packet, it is transmitted to the DNCP layer module, and the encoding operation is performed if the condition is satisfied;
如果是非 IP数据包, 则在 IP层模块直接转发。  If it is a non-IP packet, it is forwarded directly at the IP layer module.
编码控制模块(Control ):  Code Control Module (Control):
a.提取 IP包头信息, 为每一个信源分配一信源标识, 为每一个 IP数据 包分配一 IP数据包标识, (例如序号 0至 1024 )。  a. Extract the IP header information, assign a source identifier to each source, and assign an IP packet identifier to each IP packet (for example, sequence number 0 to 1024).
b.判断是否需要进行编码:  b. Determine if encoding is required:
①判断数据包到达的时间间隔是否小于设定时长。  1 Determine whether the time interval at which the packet arrives is less than the set duration.
②在①满足的情况下判断是否是发往同一目的 IP地址的数据包。  2 If 1 is satisfied, it is judged whether it is a packet addressed to the same destination IP address.
若是, 则发送至编码模块(Encoding ) 进行随机线性编码运算, 否则 直接发送至打包模块( Packing )进行 DNCP封装, 加上 DNCP包头。  If yes, it is sent to the encoding module (Encoding) for random linear encoding operation, otherwise it is sent directly to the packing module (Packing) for DNCP encapsulation, plus DNCP header.
编码模块(Encoding )执行编码运算。  The encoding module (Encoding) performs the encoding operation.
编码模块 Encoding可包括:  Encoding module Encoding can include:
随机数产生模块, 两个乘法器、 两个全加器, 以及随机数产生器 (例 如产生 8bit的随机数)。 其中, 当有 IP数据包到达时, 随机数产生器可产 生 2个随机数, 并分别与来自某一个信源的 IP数据包相乘, 最后将所得结 果相加并输出至打包模块( Packing )。  The random number generation module, two multipliers, two full adders, and a random number generator (for example, an 8-bit random number). Wherein, when an IP data packet arrives, the random number generator can generate two random numbers, respectively multiply the IP data packets from a certain source, and finally add the obtained results to the packing module (Packing). .
打包模块 (Packing ): 为随机线性编码得到的线性编码数据包封装 DNCP包头得到 DNCP数据包,再为该 DNCP数据包封装一个新的 IP包头 得到 IP数据包, 封装的 DNCP包头和 IP包头携带的信息可参见上述实施 例的描述。  Packing module: Packing the DNCP packet for the linearly encoded data packet obtained by random linear coding to obtain the DNCP data packet, and then encapsulating a new IP packet header for the DNCP data packet to obtain the IP data packet, which is carried by the encapsulated DNCP header and the IP header. For information, see the description of the above embodiment.
输出队列模块 ( Output— Queue )将打包模块得到的 IP数据包整理排队, 并将其发往 IP层进行查表转发。 ( 2 ) 实现解码功能的 DNCP层模块说明如下: The output queue module (Output-Queue) queues the IP packets obtained by the packet module and sends them to the IP layer for table lookup forwarding. (2) The DNCP layer module that implements the decoding function is described as follows:
输入仲裁模块( Input_Arbiter ): 位于 IP层。  Input Arbitration Module ( Input_Arbiter ): Located at the IP layer.
由于解码操作只针对 DNCP数据包进行, 在 Input— Arbiter中对传输的 数据包进行协议判断, 判断 IP层接收的 IP数据包的载荷是否包含 DNCP 数据包, 例如当 IP数据包 IP包头协议字段为 OX FE (指示该 IP数据包的 载荷包含 DNCP数据包)时,输入仲裁模块传送该 IP数据包载荷中的 DNCP 数据包至 DNCP层; 若 IP数据包的载荷不包含 DNCP数据包, 则可直接在 IP层查表转发。  Since the decoding operation is only performed for the DNCP data packet, the data packet of the transmitted data packet is judged in the Input-Arbiter to determine whether the payload of the IP data packet received by the IP layer includes the DNCP data packet, for example, when the IP packet IP header protocol field is When OX FE (indicating that the payload of the IP packet includes a DNCP packet), the input arbitration module transmits the DNCP packet in the IP packet payload to the DNCP layer; if the payload of the IP packet does not include the DNCP packet, Look up table forwarding at the IP layer.
SRAM— Control和 CAM Control, 完成对 SRAM和 CAM的读写控制。 解码模块(Decoding ): 在緩存的信息量足够(例如当 SRAM中緩存的 DNCP数据包达到设定数量时) 时进行解码运算。  SRAM—Control and CAM Control, complete read and write control of SRAM and CAM. Decoding module: Decodes when the amount of information buffered is sufficient (for example, when the DNCP packet buffered in the SRAM reaches a set number).
解码标志模块( Decoded— flag ) , 例如将解码出的原始 IP数据包对应的 解码标志位置 1 (或 0 ), 表示该原始 IP数据包已经被解码。 当被解码的数 据包对应的解码标志位经查询过之后, 则可复位为 0 (或 1 )。  The decoding flag module (Decoded_flag), for example, the decoding flag position 1 (or 0) corresponding to the decoded original IP data packet, indicates that the original IP data packet has been decoded. When the decoded flag bit corresponding to the decoded packet has been queried, it can be reset to 0 (or 1).
输出队列模块( Output— Queue ) ,将解码模块解码后获得的原始 IP数据 包整理排队, 并发往 IP层进行查表转发。  The output queue module (Output-Queue) sorts the original IP data packets obtained by decoding the decoding module and sends them to the IP layer for table lookup forwarding.
需要说明的是, 上述举例硬件结构, 只是能够实现本发明实施例的编 解码功能的众多可能的编解码路由器硬件结构的其中一种, 本领域技术人 员基于该举例编解码路由器硬件结构, 还可获得其它多种编解码路由器硬 件结构, 此处不再——赘述。  It should be noted that the foregoing exemplary hardware structure is only one of many possible codec router hardware structures capable of implementing the codec function of the embodiment of the present invention, and those skilled in the art may, based on the example, codec the hardware structure of the router, Obtaining a variety of other codec router hardware structures, no longer here - repeat.
本发明实施例还介绍在一种具体应用场景下的实施过程。  The embodiment of the present invention also introduces an implementation process in a specific application scenario.
例如在小区网络中施行, 考虑解码操作的困难程度, 先只考虑 2个信 源间的编解码问题。 小区树形网络的典型拓朴如附图 13所示:  For example, in a cell network, considering the difficulty of the decoding operation, only the codec problem between the two sources is considered first. A typical topology of a cell tree network is shown in Figure 13:
在同一时刻, 信源 S1和 S2想将 IP数据包(分别记为 P1和 P2 )发送 至同一广播网络。 在图中, 有 2个信源 (Sl、 S2 )和 10信宿节点 DCi ( 1 < i < 10 ), 很显然, 若在中间节点 ECj ( l j 5 )不使用网络编码, 则无法 使 10个信宿节点都能够同时接收到 S1和 S2的数据 (只有部分节点可以 ), 若使用网络编码后, 在信宿节点可以通过解方程组, 使得每个信宿节点都 可以同时得到来自信源 S1和 S2的数据。 At the same time, sources S1 and S2 want to send IP packets (respectively labeled P1 and P2) to the same broadcast network. In the figure, there are 2 sources (S1, S2) and 10 sink nodes DCi (1 < i < 10). Obviously, if the intermediate node ECj ( lj 5 ) does not use network coding, it cannot The 10 sink nodes can receive the data of S1 and S2 at the same time (only some nodes can). If the network coding is used, the solution node can solve the equations so that each sink node can get the source S1 at the same time. And S2 data.
进一步的, 考虑小区网络结构相对简单, 为了提高解码的概率, 消除 信源发送数据包的速率差带来的影响, 在每个编码路由器上开设一块緩存 空间, 对从来自该两信源来数据包进行一同步化, 这样将编码的情况简单 化, 提高了解码的概率。 其同步机制例如是:  Further, considering that the cell network structure is relatively simple, in order to improve the probability of decoding, and to eliminate the influence of the rate difference of the source sending data packet, a buffer space is opened on each coding router, and data is obtained from the two sources. The packet is synchronized, which simplifies the coding and increases the probability of decoding. Its synchronization mechanism is for example:
例如在 EC路由器 DNCP层开辟两块 RAM (如 72bit 1024 ), 分别顺 序存储来自两信源的 IP数据包, 当其中一块 RAM存满时, 从最低地址开 始同时读出两块 RAM中的 IP数据包, 送至其 DNCP层进行编码运算。  For example, in the DNCP layer of the EC router, two pieces of RAM (such as 72bit 1024) are opened, and IP data packets from two sources are sequentially stored, and when one of the RAMs is full, the IP data in the two RAMs are simultaneously read from the lowest address. The packet is sent to its DNCP layer for encoding operations.
编码, S1和 S2例如可通过一交换机,将数据包转发给 ECj ( 1 j 5 ), 在 ECj ( 1 j 5 )节点, 对输入 IP数据包的目的 IP地址, 输出路径进行判 断, 若发现是发往同一目的地址的 IP数据包, 且路由输出有瓶颈 (即竟争 一条输出通道), 则发送至 DNCP层进行随机线性编码。 DNCP层用一个伪 随机数产生模块生成一 GF256域内的编码系数矢量, 对同时到达(即, 到 达时间间隔小于设定时长 ) 的两个 IP数据包进行线性编码。  Encoding, S1 and S2, for example, can forward the data packet to ECj (1 j 5 ) through a switch, and judge the destination IP address and output path of the input IP data packet at the ECj (1 j 5 ) node, if it is found to be IP packets destined for the same destination address, and the routing output has a bottleneck (that is, an output channel is competed), and then sent to the DNCP layer for random linear coding. The DNCP layer uses a pseudo-random number generation module to generate a coded coefficient vector in the GF256 domain, and linearly encodes two IP packets that arrive at the same time (i.e., the arrival time interval is less than the set duration).
然后按要求产生 DNCP包头和新的 IP包头, 新 IP包头中, 源地址例 如为本地 IP地址, 而目的 IP地址为组播地址, IP包头的协议字段为 FF。  Then, the DNCP header and the new IP header are generated as required. In the new IP header, the source address is, for example, a local IP address, and the destination IP address is a multicast address, and the protocol field of the IP header is FF.
同时例如可将信源 S1定义为 1号信源, 信源 S2定义为 2号信源, 并 将对应的信源标识填入 DNCP包头相应字段中。  At the same time, for example, the source S1 can be defined as the source 1 and the source S2 is defined as the source 2, and the corresponding source identifier is filled in the corresponding field of the DNCP header.
可以预见, ECj ( Kj < 5 ) 节点编码操作完成后所得到的结果分别是: ajPl+bjP2 ( 1 <j < 5 )„  It can be foreseen that the results obtained after the ECj (Kj < 5 ) node coding operation is completed are: ajPl+bjP2 ( 1 <j < 5 ) „
解码设备釆用两块 SRAM分别存储从两条输入路径到来的数据包, 并 可釆用 CAM作为索引, 当收集到一定信息量的数据包时(如 32、 64个、 128个或其它个数), 便可开始执行解码运算。 以 DC1节点为例, 若其收到 alPl+blP2 以及 a2Pl+b2P2两条信息, 可釆用更有利于硬件实现的克莱默 法则进行运算, 恢复出信息 PI和 P2。 由于编码时是对整个 IP数据包进行 编码, 故可以直接将解码出的 IP数据包(原始 IP数据包)进行转发。 The decoding device uses two SRAMs to store the data packets coming from the two input paths, and can use the CAM as an index, when collecting a certain amount of information packets (such as 32, 64, 128 or other numbers) ), you can start the decoding operation. Taking the DC1 node as an example, if it receives two information of alp1+blP2 and a2Pl+b2P2, it can use Kramer which is more conducive to hardware implementation. The law is calculated to recover the information PI and P2. Since the entire IP data packet is encoded during encoding, the decoded IP data packet (original IP data packet) can be directly forwarded.
由上可见, 本实施例提出 DNCP来解决两信源间的编解码问题, 由于 编码设备是对到达间隔小于设定时长且目的地址相同的两个 IP数据包进行 随机线性编码, 这就有利于在一定程度上消除实际网络中的传输延迟及发 送速率等不匹配问题的影响; 同时, DNCP数据包的 DNCP包头携带两个 信源标识、 两个 IP数据包标识以及随机选取的编码系数矢量, 解码设备可 据此快速解码, 该编解码机制有利于提高网络编码在实际网络中的通用性; 并且由于是基于网络编码技术来实施, 因而能够充分利用网络资源, 明显 提高网络的吞吐率, 达到更高的传输效率。  As can be seen from the above, this embodiment proposes DNCP to solve the codec problem between two sources. Since the encoding device performs random linear coding on two IP data packets whose arrival interval is less than the set duration and the destination address is the same, this is advantageous. To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet carries two source identifiers, two IP packet identifiers, and a randomly selected coding coefficient vector. The decoding device can be quickly decoded according to the same, and the codec mechanism is beneficial to improve the versatility of the network coding in the actual network; and because it is implemented based on the network coding technology, the network resources can be fully utilized, and the throughput of the network is obviously improved. Higher transmission efficiency.
需要说明的是, 对于前述的各方法实施例, 为了简单描述, 故将其都 表述为一系列的动作组合, 但是本领域技术人员应该知悉, 本发明并不受 所描述的动作顺序的限制, 因为依据本发明, 某些步骤可以釆用其他顺序 或者同时进行。 其次, 本领域技术人员也应该知悉, 说明书中所描述的实 施例均属于优选实施例, 所涉及的动作和模块并不一定是本发明所必须的。  It should be noted that, for the foregoing method embodiments, for the sake of simple description, they are all expressed as a series of action combinations, but those skilled in the art should understand that the present invention is not limited by the described action sequence. Because in accordance with the present invention, certain steps may be performed in other sequences or concurrently. Further, those skilled in the art should also understand that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present invention.
为便于更好的实施本发明实施例的上述方案, 下面还提供用于实施上 述方案的相关装置。  In order to facilitate the better implementation of the above described embodiments of the embodiments of the present invention, related apparatus for implementing the above schemes are also provided below.
参见图 14、 本发明实施例提供的一种编码设备 1400, 可包括: 第一接收模块 1410 ,用于接收来自第一信源的第一网际协议 IP数据包; 第一编码系数选取模块 1420,用于若第一接收模块 1410在接收到第一 IP数据包后的设定时长内接收到来自第二信源的第二 IP数据包,且第一 IP 数据包和第二 IP数据包的目的地址相同,则在有限域中分别为第一 IP数据 包和第二 IP数据包随机选取编码系数矢量;  Referring to FIG. 14, an encoding device 1400 according to an embodiment of the present invention may include: a first receiving module 1410, configured to receive a first Internet Protocol IP data packet from a first source; a first encoding coefficient selecting module 1420, For receiving the second IP data packet from the second source within the set duration after the first receiving module 1410 receives the first IP data packet, and the purpose of the first IP data packet and the second IP data packet If the addresses are the same, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field;
在实际网络中, 第一接收模块 1410通常会从不同的链路分别接收来自 第一信源和第二信源的 IP数据包, 当然其也可能从同一链路接收到来自第 一信源和第二信源的 IP数据包。 在实际应用中, 第一编码系数选取模块 1420例如可在 GF2n中分别为 第一 IP数据包和第二 IP数据包随机选取编码系数矢量, 其中, 该 n的取值 范围例如为 4至 16之间的整数(例如 8~16间的整数),或 n也可为大于 16 的整数, n越大, 解码概率也就越大。 In the actual network, the first receiving module 1410 usually receives IP data packets from the first source and the second source respectively from different links, and of course, it may also receive the first source and the same link from the same link. IP packet of the second source. In a practical application, the first coding coefficient selection module 1420 may randomly select a coding coefficient vector for the first IP data packet and the second IP data packet, respectively, in the GF2 n , where the value range of the n is, for example, 4 to 16. An integer between (for example, an integer between 8 and 16), or n can also be an integer greater than 16, and the larger the n, the greater the decoding probability.
编码模块 1430,用于利用第一编码系数选取模块 1420随机选取的编码 系数矢量对第一 IP数据包和第二 IP数据包进行随机线性编码得到第一线性 编码数据包;  The encoding module 1430 is configured to perform random linear coding on the first IP data packet and the second IP data packet by using a coding coefficient vector randomly selected by the first coding coefficient selection module 1420 to obtain a first linearly encoded data packet;
DNCP封装模块 1440 , 用于将第一线性编码数据包进行 DNCP封装得 到第一 DNCP数据包, 第一 DNCP数据包的 DNCP包头包含第一信源的标 识、 第二信源的标识、 第一 IP数据包的标识、 第二 IP数据包的标识以及与 上述编码系数矢量相关的编码系数矢量信息;  The DNCP encapsulation module 1440 is configured to perform DNCP encapsulation on the first linearly encoded data packet to obtain a first DNCP data packet, where the DNCP packet header of the first DNCP data packet includes an identifier of the first source, an identifier of the second source, and a first IP address. An identifier of the data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the above-described coding coefficient vector;
IP封装模块 1450 , 用于将 DNCP封装模块 1440得到的第一 DNCP数 据包进行 IP封装得到第三 IP数据包并发送。  The IP encapsulation module 1450 is configured to perform IP encapsulation on the first DNCP data packet obtained by the DNCP encapsulation module 1440 to obtain a third IP data packet and send the same.
其中, 第一 DNCP数据包的 DNCP包头可包含第一信源的标识、 第二 信源的标识、第一 IP数据包的标识、第二 IP数据包的标识以及与第一编码 系数选取模块 1420随机选取的编码系数矢量相关的编码系数矢量信息(其 中, 与上述编码系数矢量相关的编码系数矢量信息可能是该编码系数矢量 本身, 或者也可能是将上述编码系数矢量通过特定计算后得到的编码系数 矢量信息, 而解码设备例如可以通过该特定计算对应的逆运算, 还原出该 编码系数矢量)。  The DNCP packet header of the first DNCP data packet may include an identifier of the first source, an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and the first coding coefficient selection module 1420. Randomly selected coding coefficient vector correlation coding coefficient vector information (where the coding coefficient vector information related to the above coding coefficient vector may be the coding coefficient vector itself, or may be an encoding obtained by passing the above coding coefficient vector through a specific calculation The coefficient vector information, and the decoding device can restore the coding coefficient vector by, for example, the inverse of the specific calculation.
在实际应用中,第三 IP数据包的 IP包头中记录的源地址例如与第一 IP 数据包或第二 IP数据包的 IP包头中记录的源地址相同, 第三 IP数据包的 IP包头中记录的目的地址例如可与第一 IP数据包或第二 IP数据包的 IP包 头中记录的目的地址相同 (其中, 第一 IP数据包和第二 IP数据包的 IP包 头中记录的是同一个目的地址)。 此外, 第三 IP数据包的 IP包头中还可包 含有 DNCP数据包标识( DNCP数据包标识例如可携带在第三 IP数据包的 IP包头的协议字段,例如可将其协议字段填充为 FE或其它特定值以指示其 IP层载荷包含 DNCP数据包 ), 如此, 其它网络节点便可直接根据第三 IP 数据包的 IP包头包含的 DNCP数据包标识, 获知第三 IP数据包的 IP层载 荷包含 DNCP数据包。 In an actual application, the source address recorded in the IP header of the third IP packet is, for example, the same as the source address recorded in the IP header of the first IP packet or the second IP packet, and the IP header of the third IP packet is in the IP header. The recorded destination address may be, for example, the same as the destination address recorded in the IP header of the first IP data packet or the second IP data packet (where the first IP data packet and the IP header of the second IP data packet are recorded in the same IP header. Destination address). In addition, the IP header of the third IP data packet may further include a DNCP data packet identifier (the DNCP data packet identifier may be carried, for example, in the third IP data packet. The protocol field of the IP header, for example, may fill its protocol field with FE or other specific value to indicate that its IP layer payload contains DNCP packets, so that other network nodes can directly include the IP header according to the third IP packet. The DNCP packet identifies that the IP layer payload of the third IP packet contains the DNCP packet.
在一种应用场景下, IP封装模块 1450还可用于,若第一接收模块 1410 在接收到第一 IP数据包后的设定时长内, 没有接收到来自第二信源的与第 一 IP数据包的目的地址相同的 IP数据包, 则发送第一 IP数据包。  In an application scenario, the IP encapsulation module 1450 is further configured to: if the first receiving module 1410 receives the first IP data packet, the first IP data is not received from the second source. The IP packet with the same destination address of the packet transmits the first IP packet.
在另一种应用场景下, DNCP封装模块 1440还可用于, 若第一接收模 块 1410在接收到第一 IP数据包后的设定时长内,没有接收到来自第二信源 的与第一 IP数据包的目的地址相同的 IP数据包, 则将第一 IP数据包进行 DNCP封装得到第二 DNCP数据包;  In another application scenario, the DNCP encapsulation module 1440 is further configured to: if the first receiving module 1410 receives the first IP data packet, does not receive the first IP from the second source within the set duration after receiving the first IP data packet. The IP packet with the same destination address of the data packet is DNCP-encapsulated to obtain the second DNCP data packet;
IP封装模块 1450还可用于, 将第二 DNCP数据包进行 IP封装得到第 四 IP数据包并发送, 其中, 第二 DNCP数据包的 DNCP包头包含第一信源 的标识和第一 IP数据包的标识。 此时, 第四 IP数据包的 IP包头中记录的 源地址可与第一 IP数据包的 IP包头中记录的源地址相同, 第四 IP数据包 的 IP包头中记录的目的地址与第一 IP数据包的 IP包头中记录的目的地址 相同。 此外, 第四 IP数据包的 IP包头还可包含有 DNCP数据包标识(该 DNCP数据包标识例如可携带在第四 IP数据包的 IP包头的协议字段,例如 可将该协议字段填充为 FE或其它特定值以指示其 IP层载荷包含 DNCP数 据包), 如此, 其它网络节点便可直接根据第四 IP数据包的 IP包头包含的 DNCP数据包标识, 获知第四 IP数据包的 IP层载荷包含 DNCP数据包。  The IP encapsulation module 1450 is further configured to perform IP encapsulation on the second DNCP data packet to obtain a fourth IP data packet, where the DNCP packet header of the second DNCP data packet includes the identifier of the first source and the first IP data packet. Logo. At this time, the source address recorded in the IP header of the fourth IP packet may be the same as the source address recorded in the IP header of the first IP packet, and the destination address and the first IP recorded in the IP header of the fourth IP packet. The destination address recorded in the IP header of the packet is the same. In addition, the IP header of the fourth IP data packet may further include a DNCP data packet identifier (the DNCP data packet identifier may be, for example, a protocol field that may be carried in the IP header of the fourth IP data packet, for example, the protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP data packets), so that other network nodes can directly know the IP layer payload of the fourth IP data packet according to the DNCP data packet identifier included in the IP header of the fourth IP data packet. DNCP packet.
可以理解的是, 本实施例中的编码设备 1400可如上述方法实施例中的 编码设备, 其各个功能模块的功能可以根据上述方法实施例中的方法具体 实现, 其具体实现过程可以参照上述方法实施例的相关描述, 此处不再赘 述。  It can be understood that the coding device 1400 in this embodiment may be the coding device in the foregoing method embodiment, and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment, and the specific implementation process may refer to the foregoing method. The related description of the embodiment is not described herein again.
参见图 15、 本发明实施例提供的一种编码设备 1500, 可包括: 第二接收模块 1510, 用于接收第五网际协议 IP数据包; 第二编码系数选取模块 1520,用于若第二接收模块 1510在接收到第五 IP数据包后的设定时长内接收到第六 IP数据包, 且第六 IP数据包和第五 IP数据包的目的地址相同, 且第六 IP数据包和第五 IP数据包的 IP层载荷 都包含 DNCP数据包, 且第六 IP数据包的 IP层载荷中的 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标识,与第五 IP数据包的 IP层载荷中的 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP 数据包标识相同, 则在有限域中分别为第五 IP数据包和第六 IP数据包 IP 层载荷中的 DNCP数据包的载荷随机选取编码系数矢量; Referring to FIG. 15, an encoding device 1500 according to an embodiment of the present invention may include: The second receiving module 1510 is configured to receive the fifth Internet Protocol IP data packet, and the second encoding coefficient selecting module 1520 is configured to receive the first receiving module 1510 after receiving the fifth IP data packet. Six IP data packets, and the destination addresses of the sixth IP data packet and the fifth IP data packet are the same, and the IP layer payloads of the sixth IP data packet and the fifth IP data packet both contain the DNCP data packet, and the sixth IP data packet The DNCP header of the DNCP packet in the IP layer payload contains two source identifiers and two IP packet identifiers, and two letters contained in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet. If the source identifier and the two IP packet identifiers are the same, the coding coefficient vector is randomly selected for the payload of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload in the finite field;
在实际应用中, 第二编码系数选取模块 1520例如可在伽罗瓦域 GF2n 中, 分别为第五 IP数据包和第六 IP数据包 IP层载荷中的 DNCP数据包的 载荷随机选取编码系数矢量, 其中, 该 n的取值范围例如为 4至 16之间的 整数(例如 8~16间的整数), 或者, n也可为大于 16的整数。 In a practical application, the second coding coefficient selection module 1520 may randomly select a coding coefficient for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload, respectively, in the Galois field GF2 n . The vector, where n ranges from 4 to 16 (for example, an integer between 8 and 16), or n may be an integer greater than 16.
编码模块 1530,用于利用第二编码系数选取模块 1520随机选取的编码 系数矢量, 对第五 IP数据包和第六 IP数据包的 IP层载荷中的 DNCP数据 包的载荷进行随机线性编码得到第二线性编码数据包;  The coding module 1530 is configured to perform random linear coding on the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the sixth IP data packet by using the coding coefficient vector randomly selected by the second coding coefficient selection module 1520. Two linearly encoded data packets;
DNCP封装模块 1540, 用于将第二线性编码数据包进行 DNCP封装得 到第三 DNCP数据包, 第三 DNCP数据包的 DNCP包头包含上述两个信源 标识、上述两个 IP数据包标识以及与编码模块 1530随机选取的编码系数矢 量相关的编码系数矢量信息;  The DNCP encapsulating module 1540 is configured to perform DNCP encapsulation on the second linearly encoded data packet to obtain a third DNCP data packet, where the DNCP packet header of the third DNCP data packet includes the foregoing two source identifiers, the foregoing two IP packet identifiers, and the encoding. The coding coefficient vector information related to the coding coefficient vector randomly selected by the module 1530;
IP封装模块 1550, 用于将 DNCP封装模块 1540得到的第三 DNCP数 据包进行 IP封装得到第七 IP数据包并发送。  The IP encapsulation module 1550 is configured to perform IP encapsulation on the third DNCP data packet obtained by the DNCP encapsulation module 1540 to obtain a seventh IP data packet and send the same.
在实际应用中,第七 IP数据包的 IP包头中记录的源地址例如与第五 IP 数据包或第六 IP数据包的 IP包头中记录的源地址相同, 第七 IP数据包的 IP包头中记录的目的地址例如可与第五 IP数据包或第六 IP数据包的 IP包 头中记录的目的地址相同 (其中, 第五 IP数据包和第六 IP数据包的 IP包 头中记录的是同一个目的地址);第七 IP数据包的 IP包头还可包含有 DNCP 数据包标识(DNCP数据包标识例如可携带在第七 IP数据包的 IP包头的协 议字段, 例如该协议字段可填充为 FE或其它特定值以指示其 IP层载荷包 含 DNCP数据包), 如此, 其它网络节点便可直接根据第七 IP数据包的 IP 包头包含的 DNCP数据包标识,获知第七 IP数据包的 IP层载荷包含 DNCP 数据包。 In practical applications, the source address recorded in the IP header of the seventh IP data packet is, for example, the same as the source address recorded in the IP header of the fifth IP data packet or the sixth IP data packet, and the IP header of the seventh IP data packet is in the IP header. The recorded destination address may be, for example, the same as the destination address recorded in the IP header of the fifth IP packet or the sixth IP packet (wherein the IP packet of the fifth IP packet and the sixth IP packet) The IP address header of the seventh IP data packet may also include a DNCP data packet identifier (the DNCP data packet identifier, for example, a protocol field that may be carried in the IP header of the seventh IP data packet, for example, The protocol field can be padded with FE or other specific values to indicate that its IP layer payload contains DNCP packets. Thus, other network nodes can directly learn the seventh IP according to the DNCP packet identifier contained in the IP header of the seventh IP packet. The IP layer payload of the packet contains the DNCP packet.
此夕卜,若第二接收模块 1510在接收到第五 IP数据包后的设定时长内未 接收到与其目的地址相同的第六 IP数据包, 或者, 在设定时长接收到的第 六 IP数据包的 IP层载荷中的 DNCP数据包的 DNCP包头包含的两个信源 标识和两个 IP数据包标识, 与第五 IP数据包的 IP层载荷中 DNCP数据包 的 DNCP包头包含的两个信源标识和两个 IP数据包标识不同, 则 IP封装 模块 1550可发送第五 IP数据包。  In addition, if the second receiving module 1510 does not receive the sixth IP data packet with the same destination address within the set duration after receiving the fifth IP data packet, or the sixth IP received in the set duration The DNCP header of the DNCP packet in the IP layer payload of the packet contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet contains two If the source identifier is different from the two IP packet identifiers, the IP encapsulation module 1550 can send the fifth IP data packet.
在一种应用场景下, 第二编码系数选取模块 1520还可用于, 若第二接 收模块 1510在接收到第五 IP数据包后的设定时长内接收到第八 IP数据包, 且第八 IP数据包和第五 IP数据包的目的地址相同, 且第八 IP数据包和第 五 IP数据包其中一个的 IP层载荷包含 DNCP数据包, 并且另一个 IP数据 包为通过随机线性编码获得该 DNCP数据包载荷的原始 IP数据包中的其中 一个, 则在有限域中分别为该 DNCP数据包的载荷和该另一个 IP数据包随 机选取编码系数矢量;  In an application scenario, the second encoding coefficient selection module 1520 is further configured to: if the second receiving module 1510 receives the eighth IP data packet within the set duration after receiving the fifth IP data packet, and the eighth IP The destination address of the data packet and the fifth IP data packet are the same, and the IP layer payload of one of the eighth IP data packet and the fifth IP data packet includes the DNCP data packet, and the other IP data packet is obtained by random linear coding to obtain the DNCP. One of the original IP data packets of the data packet payload, and the coding coefficient vector is randomly selected for the payload of the DNCP data packet and the other IP data packet in the finite field;
编码模块 1530还可用于, 利用第二编码系数选取模块 1520在有限域 中分别为上述 DNCP数据包的载荷和另一个 IP数据包随机选取的编码系数 矢量, 对该 DNCP数据包的载荷和该另一个 IP数据包进行随机线性编码得 到第三线性编码数据包;  The encoding module 1530 is further configured to use, by using the second encoding coefficient selection module 1520, the payload of the DNCP data packet and the encoding coefficient vector randomly selected by another IP data packet in the finite field, the payload of the DNCP data packet, and the other An IP data packet is randomly linearly encoded to obtain a third linearly encoded data packet;
DNCP封装模块 1540还可用于, 将编码模块 1530得到的第三线性编 码数据包进行 DNCP封装得到第四 DNCP数据包, 第四 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及与第二编码系数选 取模块 1520随机选取的编码系数矢量相关的编码系数矢量信息, 其中, 该 两个信源标识和两个 IP数据包标识与该 IP层载荷中的 DNCP数据包的 DNCP包头所包含的两个信源标识和两个 IP数据包标识相同; The DNCP encapsulating module 1540 is further configured to perform DNCP encapsulation on the third linearly encoded data packet obtained by the encoding module 1530 to obtain a fourth DNCP data packet, where the DNCP packet header of the fourth DNCP data packet includes two source identifiers and two IP data packets. Identification and selection with the second coding coefficient Obtaining coding coefficient vector information related to the coding coefficient vector randomly selected by the module 1520, wherein the two source identifiers and the two IP data packet identifiers and the two letters included in the DNCP header of the DNCP data packet in the IP layer payload The source identifier is the same as the two IP packet identifiers;
IP封装模块 1550还可用于,将 DNCP封装模块 1540得到的第四 DNCP 数据包进行 IP封装得到第九 IP数据包并发送。  The IP encapsulation module 1550 is further configured to perform IP encapsulation on the fourth DNCP packet obtained by the DNCP encapsulation module 1540 to obtain a ninth IP data packet and send the same.
在实际应用中,第九 IP数据包的 IP包头中记录的源地址例如与第五 IP 数据包或第八 IP数据包的 IP包头中记录的源地址相同, 第九 IP数据包的 IP包头中记录的目的地址例如可与第五 IP数据包或第八 IP数据包的 IP包 头中记录的目的地址相同 (其中, 第五 IP数据包和第八 IP数据包的 IP包 头中记录的是同一个目的地址);第九 IP数据包的 IP包头还可包含有 DNCP 数据包标识( DNCP数据包标识例如可携带在第九 IP数据包的 IP包头的协 议字段, 例如其协议字段可填充为 FE或其它特定值以指示其 IP层载荷包 含 DNCP数据包), 如此, 其它网络节点便可直接根据第九 IP数据包的 IP 包头包含的 DNCP数据包标识,获知第九 IP数据包的 IP层载荷包含 DNCP 数据包。  In an actual application, the source address recorded in the IP header of the ninth IP packet is, for example, the same as the source address recorded in the IP header of the fifth IP packet or the eighth IP packet, and the IP header of the ninth IP packet is in the IP header. The recorded destination address may be, for example, the same as the destination address recorded in the IP header of the fifth IP data packet or the eighth IP data packet (where the fifth IP data packet and the IP header of the eighth IP data packet are recorded in the same IP header. Destination IP address; the IP header of the ninth IP packet may also include a DNCP packet identifier (the DNCP packet identifier may be, for example, a protocol field that may be carried in the IP header of the ninth IP packet, for example, its protocol field may be filled with FE or Other specific values to indicate that their IP layer payload contains DNCP packets), so that other network nodes can directly know the IP layer payload of the ninth IP packet according to the DNCP packet identifier contained in the IP header of the ninth IP packet. DNCP packet.
在一种应用场景下, 第二编码系数选取模块 1520还可用于, 若第二接 收模块 1510在接收到第五 IP数据包后的设定时长内接收到第十 IP数据包, 且第十 IP数据包和第五 IP数据包的目的地址相同, 且第十 IP数据包和第 五 IP数据包的 IP层载荷都包含 DNCP数据包, 且第十 IP数据包和第五 IP 数据包其中一个的 IP层载荷中的 DNCP数据包的 DNCP包头包含两个信源 标识和两个 IP数据包标识, 而另一个的 IP层载荷中的 DNCP数据包的 DNCP包头包含该两个信源标识中的其中一个以及该两个 IP数据包标识中 的其中一个, 则在有限域中分别为第五 IP数据包和第十 IP数据包 IP层载 荷中的 DNCP数据包的载荷随机选取编码系数矢量;  In an application scenario, the second encoding coefficient selection module 1520 is further configured to: if the second receiving module 1510 receives the tenth IP data packet within a set duration after receiving the fifth IP data packet, and the tenth IP The destination address of the data packet and the fifth IP data packet are the same, and the IP layer payloads of the tenth IP data packet and the fifth IP data packet both contain the DNCP data packet, and one of the tenth IP data packet and the fifth IP data packet The DNCP header of the DNCP packet in the IP layer payload contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains the two source identifiers. And one of the two IP data packet identifiers, and the coding coefficient vector is randomly selected for the payload of the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the finite field;
编码模块 1530还用于, 利用第二编码系数选取模块 1520在有限域中 分别为第五 IP数据包和第十 IP数据包 IP层载荷中的 DNCP数据包的载荷 随机选取的编码系数矢量, 对第五 IP数据包和上述第十 IP数据包的 IP层 载荷中的 DNCP数据包的载荷进行随机线性编码得到第四线性编码数据 包; The encoding module 1530 is further configured to use the second encoding coefficient selection module 1520 to load the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the finite field respectively. Randomly selecting a coding coefficient vector, performing random linear coding on the payload of the PNCP data packet in the IP packet of the fifth IP data packet and the foregoing tenth IP data packet to obtain a fourth linearly encoded data packet;
DNCP封装模块 1540还可用于, 将编码模块 1530得到的第四线性编 码数据包进行 DNCP封装得到第五 DNCP数据包, 其中, 该第五 DNCP数 据包的 DNCP包头包含上述两个信源标识、 上述两个 IP数据包标识以及与 第二编码系数选取模块 1520在有限域中分别为第五 IP数据包和第十 IP数 据包 IP层载荷中的 DNCP数据包的载荷随机选取的编码系数矢量相关的编 码系数矢量信息;  The DNCP encapsulating module 1540 is further configured to perform DNCP encapsulation on the fourth linearly encoded data packet obtained by the encoding module 1530 to obtain a fifth DNCP data packet, where the DNCP packet header of the fifth DNCP data packet includes the foregoing two source identifiers, and the foregoing Two IP data packet identifiers are associated with a coding coefficient vector randomly selected by the second coding coefficient selection module 1520 in the finite field for the load of the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload, respectively. Coding coefficient vector information;
IP封装模块 1550还用于, 将 DNCP封装模块 1540得到的第五 DNCP 数据包进行 IP封装得到第十一 IP数据包并发送。  The IP encapsulation module 1550 is further configured to perform IP encapsulation on the fifth DNCP packet obtained by the DNCP encapsulation module 1540 to obtain an eleventh IP data packet and send the IP packet.
在实际应用中,第十一 IP数据包的 IP包头中记录的源地址例如与第五 IP数据包或第十 IP数据包的 IP包头中记录的源地址相同, 第十一 IP数据 包的 IP包头中记录的目的地址例如可与第五 IP数据包或第十 IP数据包的 IP包头中记录的目的地址相同 (其中, 第五 IP数据包和第十 IP数据包的 IP包头中记录的是同一个目的地址); 第十一 IP数据包的 IP包头还可包含 有 DNCP数据包标识( DNCP数据包标识例如可携带在第十一 IP数据包的 IP包头的协议字段, 例如协议字段可填充为 FE或其它特定值以指示其 IP 层载荷包含 DNCP数据包), 如此, 其它网络节点便可直接根据第十一 IP 数据包的 IP包头包含的 DNCP数据包标识, 获知第十一 IP数据包的 IP层 载荷包含 DNCP数据包。  In practical applications, the source address recorded in the IP header of the eleventh IP packet is, for example, the same as the source address recorded in the IP header of the fifth IP packet or the tenth IP packet, and the IP of the eleventh IP packet. The destination address recorded in the header may be, for example, the same as the destination address recorded in the IP header of the fifth IP packet or the tenth IP packet (where the IP header of the fifth IP packet and the tenth IP packet are recorded in the IP header) The same destination address); the IP header of the eleventh IP packet may also include a DNCP packet identifier (the DNCP packet identifier, for example, a protocol field that may be carried in the IP header of the eleventh IP packet, eg, the protocol field may be padded For FE or other specific values to indicate that its IP layer payload contains DNCP packets, so that other network nodes can directly know the eleventh IP packet according to the DNCP packet identifier contained in the IP header of the eleventh IP packet. The IP layer payload contains DNCP packets.
其中, 上述有限域例如为伽罗瓦域 GF2n, 其中, 该 n的取值范围例如 为 4至 16之间的整数(例如 8~16间的整数), 或者, n也可为大于 16的整 数。 The finite field is, for example, a Galois field GF2 n , wherein the range of n is, for example, an integer between 4 and 16 (for example, an integer between 8 and 16), or n may be greater than 16. Integer.
可以理解的是, 本实施例中的编码设备 1500可如上述方法实施例中的 编码设备, 其各个功能模块的功能可以根据上述方法实施例中的方法具体 实现, 其具体实现过程可以参照上述方法实施例的相关描述, 此处不再赘 述。 It can be understood that the encoding device 1500 in this embodiment may be the encoding device in the foregoing method embodiment, and the functions of the respective functional modules may be specifically determined according to the method in the foregoing method embodiment. For the specific implementation process, reference may be made to the related description of the foregoing method embodiments, and details are not described herein again.
参见图 16、 本发明实施例提供的一种解码设备 1600, 可包括: 第三接收模块 1610, 用于接收 IP数据包;  Referring to FIG. 16, a decoding device 1600 according to an embodiment of the present invention may include: a third receiving module 1610, configured to receive an IP data packet;
第一存储模块 1620, 用于当第三接收模块 1610接收到的 IP数据包的 IP层载荷包含 DNCP数据包时, 将该 DNCP数据包存入到緩存区;  The first storage module 1620 is configured to: when the IP layer payload of the IP data packet received by the third receiving module 1610 includes the DNCP data packet, store the DNCP data packet into the buffer area;
第一读取模块 1630, 用于当存入到緩存区的 DNCP数据包达到预设数 目时, 从该緩存区读取出 DNCP数据包;  The first reading module 1630 is configured to: when the DNCP data packet stored in the buffer area reaches a preset number, read the DNCP data packet from the buffer area;
第二读取模块 1640, 用于若第一读取模块 1630读取出的 DNCP数据 包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及一组与编码系 数矢量相关的编码系数矢量信息, 则查找緩存区中是否存在其 DNCP包头 包含上述两个信源标识和两个 IP数据包标识的另一个 DNCP数据包, 若存 在, 则从緩存区读取出该另一个 DNCP数据包, 其中, 该另一个 DNCP数 据包的 DNCP包头还包含另一组编码系数矢量相关的编码系数矢量信息。  The second reading module 1640 is configured to: if the DNCP packet of the DNCP packet read by the first reading module 1630 includes two source identifiers, two IP packet identifiers, and a set of encoding coefficients related to the encoding coefficient vector Vector information, then it is found in the buffer area that another DNCP packet whose DNCP header contains the above two source identifiers and two IP packet identifiers, if any, reads the other DNCP packet from the buffer area. The DNCP header of the another DNCP packet further includes another set of coding coefficient vector information related to the coding coefficient vector.
解码模块 1650, 用于利用两组编码系数矢量信息对读取出的 DNCP数 据包的载荷进行随机线性解码。  The decoding module 1650 is configured to perform random linear decoding on the load of the read DNCP data packet by using two sets of coding coefficient vector information.
在实际应用中, 解码模块 1650例如可运用矩阵相乘、 高斯消元法或克 莱默法则对读取出的 DNCP数据包的载荷进行随机线性解码。  In a practical application, the decoding module 1650 can perform random linear decoding on the load of the read DNCP packet by, for example, matrix multiplication, Gaussian elimination, or Clemme's law.
其中, 若解码模块 1650随机线性解码成功, 则解码设备 1600可获得 来自不同信源的两个原始 IP数据包并可发送该原始 IP数据包,若解码模块 1650随机线性解码失败, 则其可丟弃该读取出的 DNCP数据包。  If the decoding module 1650 obtains the random linear decoding successfully, the decoding device 1600 can obtain two original IP data packets from different sources and can send the original IP data packet. If the decoding module 1650 fails to perform random linear decoding, the device can be lost. Discard the read DNCP packet.
在一种应用场景下, 解码设备 1600还可包括:  In an application scenario, the decoding device 1600 may further include:
第二存储模块,用于在第一存储模块 1620将 DNCP数据包存入到緩存 区后, 将该 DNCP数据包的索引和该 DNCP数据包在上述緩存区中的地址 存入到内容可寻址存储器 CAM中, 其中, 该索引包括: 该 DNCP数据包 的 DNCP包头中包含的至少一个 IP数据包标识。 在一种应用场景下, 第三接收模块 1610具体用于, 分别从第一链路和 第二链路接收 IP数据包; a second storage module, configured to store the index of the DNCP data packet and the address of the DNCP data packet in the buffer area into the content addressable after the first storage module 1620 stores the DNCP data packet into the buffer area In the memory CAM, the index includes: at least one IP packet identifier included in a DNCP header of the DNCP packet. In an application scenario, the third receiving module 1610 is specifically configured to receive IP data packets from the first link and the second link, respectively.
第一存储模块 1620具体用于, 若第三接收模块 1610从第一链路接收 到的 IP数据包的 IP层载荷包含 DNCP数据包, 则将该 DNCP数据包存入 到第一緩存区; 若第三接收模块 1610从第二链路接收到的 IP数据包的 IP 层载荷包含 DNCP数据包, 则将该 DNCP数据包存入到第二緩存区;  The first storage module 1620 is specifically configured to: if the IP layer payload of the IP data packet received by the third receiving module 1610 from the first link includes a DNCP data packet, store the DNCP data packet in the first buffer area; The IP layer payload of the IP data packet received by the third receiving module 1610 from the second link includes a DNCP data packet, and the DNCP data packet is stored in the second buffer area;
第一读取模块 1630具体用于, 当存入到第一緩存区的 DNCP数据包达 到预设数目和 /或存入到第二緩存区的 DNCP数据包达到预设数目时,或者, 当存入到第一緩存区和第二緩存区的 DNCP数据包的总和达到预设数目 时, 按照预定的读取顺序从第一緩存区读取出 DNCP数据包。  The first reading module 1630 is specifically configured to: when the DNCP data packet stored in the first buffer area reaches a preset number and/or the DNCP data packet stored in the second buffer area reaches a preset number, or When the sum of the DNCP packets entering the first buffer area and the second buffer area reaches a preset number, the DNCP data packet is read from the first buffer area in a predetermined reading order.
在一种应用场景下, 第二读取模块 1640可具体体用于, 若第一读取模 识、 两个 IP数据包标识及一组与编码系数矢量相关的编码系数矢量信息, 则根据该两个信源标识中的至少一个及该两个 IP数据包标识中的至少一 个, 或, 根据该两个 IP数据包标识中的至少一个, 查找第二緩存区中是否 存在其 DNCP 包头包含上述两个信源标识和两个 IP数据包标识的另一个 DNCP数据包, 若存在, 则可从该第二緩存区读取出该另一个 DNCP数据 包, 其中, 该另一个 DNCP数据包的 DNCP包头还包含另一组与编码系数 矢量相关的编码系数矢量信息。  In an application scenario, the second reading module 1640 may be specifically configured to: if the first read mode, two IP data packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, according to the At least one of the two source identifiers and at least one of the two IP packet identifiers, or, according to at least one of the two IP packet identifiers, finding whether the DNCP header exists in the second buffer includes the above Two source identifiers and another DNCP packet identified by two IP packets, if present, the other DNCP packet can be read from the second buffer, wherein the DNCP of the other DNCP packet The header also contains another set of coding coefficient vector information associated with the coding coefficient vector.
可以理解的是, 本实施例中的解码设备 1600可如上述方法实施例中的 解码设备, 其各个功能模块的功能可以根据上述方法实施例中的方法具体 实现, 其具体实现过程可以参照上述方法实施例的相关描述, 此处不再赘 述。  It can be understood that the decoding device 1600 in this embodiment may be the decoding device in the foregoing method embodiment, and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment, and the specific implementation process may refer to the foregoing method. The related description of the embodiment is not described herein again.
参见图 17、 本发明实施例提供的一种编码设备 1700, 可包括: IP层模 块 1710和 DNCP层模块 1720。  Referring to FIG. 17, an encoding device 1700 according to an embodiment of the present invention may include: an IP layer module 1710 and a DNCP layer module 1720.
IP层模块 1710, 用于接收来自第一信源的第一网际协议 IP数据包; DNCP层模块 1720, 用于若 IP层模块在接收到第一 IP数据包后的设 定时长内接收到来自第二信源的第二 IP数据包,且第一 IP数据包和第二 IP 数据包的目的地址相同,则在有限域中分别为第一 IP数据包和第二 IP数据 包随机选取编码系数矢量; 利用该编码系数矢量对第一 IP数据包和第二 IP 数据包进行随机线性编码得到第一线性编码数据包; 将第一线性编码数据 包进行双信源网络编码协议 DNCP封装得到第一 DNCP数据包, 其中, 第 一 DNCP数据包的 DNCP包头包含第一信源的标识、 第二信源的标识、 第 一 IP数据包的标识、第二 IP数据包的标识以及与上述编码系数矢量相关的 编码系数矢量信息; 将第一 DNCP数据包进行 IP封装得到第三 IP数据包; 上述 IP层模块还用于, 发送上述 DNCP层模块得到的第三 IP数据包。 在一种应用场景下, IP层模块 1710还用于, 接收第五网际协议 IP数 据包; The IP layer module 1710 is configured to receive a first Internet Protocol IP data packet from the first source. The DNCP layer module 1720 is configured to receive, by the IP layer module, a second IP data packet from the second source, and the first IP data packet and the second IP data, within a set duration after receiving the first IP data packet. If the destination address of the packet is the same, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field; the first IP data packet and the second IP data packet are randomly linearized by using the coding coefficient vector. Encoding to obtain a first linearly encoded data packet; the first linearly encoded data packet is encapsulated by a dual source network coding protocol DNCP to obtain a first DNCP data packet, where a DNCP header of the first DNCP data packet includes an identifier of the first source, An identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the coding coefficient vector; and performing IP encapsulation on the first DNCP data packet to obtain a third IP data packet The above IP layer module is further configured to send the third IP data packet obtained by the DNCP layer module. In an application scenario, the IP layer module 1710 is further configured to receive a fifth Internet Protocol IP data packet.
DNCP层模块 1720还用于,若 IP层模块 1710在接收到第五 IP数据包 后的设定时长内接收到第六 IP数据包, 且第六 IP数据包和第五 IP数据包 的目的地址相同, 且第六 IP数据包和第五 IP数据包的 IP层载荷都包含双 信源网络编码协议 DNCP数据包, 且第六 IP数据包的 IP层载荷中 DNCP 数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标识,与第五 IP 数据包的 IP层载荷中 DNCP数据包的 DNCP包头包含的两个信源标识和两 个 IP数据包标识相同, 则在有限域中分别为第五 IP数据包和第六 IP数据 包 IP层载荷中 DNCP数据包的载荷随机选取编码系数矢量; 利用在有限域 中分别为第五 IP数据包和第六 IP数据包 IP层载荷中 DNCP数据包的载荷 随机选取的上述编码系数矢量, 对第五 IP数据包和第六 IP数据包的 IP层 载荷中 DNCP数据包的载荷进行随机线性编码得到第二线性编码数据包; 将第二线性编码数据包进行 DNCP封装得到第三 DNCP数据包,第三 DNCP 数据包的 DNCP包头包含上述两个信源标识、上述两个 IP数据包标识以及, 与在有限域中分别为第五 IP数据包和第六 IP数据包 IP层载荷中 DNCP数 据包的载荷随机选取的编码系数矢量相关的编码系数矢量信息; 将第三The DNCP layer module 1720 is further configured to: if the IP layer module 1710 receives the sixth IP data packet within a set duration after receiving the fifth IP data packet, and the destination addresses of the sixth IP data packet and the fifth IP data packet Similarly, the IP layer payloads of the sixth IP data packet and the fifth IP data packet both contain a dual source network coding protocol DNCP data packet, and the DNCP header of the DNCP data packet in the IP layer payload of the sixth IP data packet includes two The source identifier and the two IP packet identifiers are the same as the two source identifiers and the two IP packet identifiers contained in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet, and then in the finite field The coding coefficient vector is randomly selected for the load of the DNCP data packet in the IP packet of the fifth IP data packet and the sixth IP data packet respectively; and is used in the IP layer payload of the fifth IP data packet and the sixth IP data packet in the finite field respectively. The coded coefficient vector randomly selected by the payload of the DNCP data packet is subjected to random linear coding of the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the sixth IP data packet to obtain a second linear coded data packet; Linear coded packet The DNCP encapsulation obtains a third DNCP packet, and the DNCP header of the third DNCP packet includes the above two source identifiers, the above two IP packet identifiers, and the fifth IP packet and the sixth IP in the finite field respectively. DNCP number in packet IP layer payload Coding coefficient vector information related to the coding coefficient vector randomly selected according to the payload of the packet;
DNCP数据包进行 IP封装得到第七 IP数据包; The DNCP data packet is IP-encapsulated to obtain a seventh IP data packet;
IP层模块 1710还用于,发送 DNCP层模块 1720得到的第七 IP数据包。 在一种应用场景下, DNCP层模块 1720还可用于, 若 IP层模块 1710 在接收到第五 IP数据包后的设定时长内接收到第八 IP数据包, 且第八 IP 数据包和第五 IP数据包的目的地址相同, 且第八 IP数据包和第五 IP数据 包其中一个的 IP层载荷包含 DNCP数据包, 并且另一个 IP数据包为通过 随机线性编码获得该 DNCP数据包载荷的原始 IP数据包中的其中一个, 则 在有限域中分别为上述 DNCP数据包的载荷和上述另一个 IP数据包随机选 取编码系数矢量; 利用在有限域中分别为上述 DNCP数据包的载荷和上述 另一个 IP数据包随机选取的上述编码系数矢量, 对上述 DNCP数据包的载 荷和上述另一个 IP数据包进行随机线性编码得到第三线性编码数据包; 将 第三线性编码数据包进行 DNCP封装得到第四 DNCP数据包, 第四 DNCP 数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及与上述编 码系数矢量相关的编码系数矢量信息, 其中, 上述两个信源标识和两个 IP 数据包标识与上述 IP层载荷中的 DNCP数据包的 DNCP包头所包含的两个 信源标识和两个 IP数据包标识相同; 将第四 DNCP数据包进行 IP封装得 到第九 IP数据包,  The IP layer module 1710 is further configured to send the seventh IP data packet obtained by the DNCP layer module 1720. In an application scenario, the DNCP layer module 1720 is further configured to: if the IP layer module 1710 receives the eighth IP data packet within a set duration after receiving the fifth IP data packet, and the eighth IP data packet and the first The destination addresses of the five IP data packets are the same, and the IP layer payload of one of the eighth IP data packet and the fifth IP data packet includes the DNCP data packet, and the other IP data packet is obtained by random linear coding to obtain the DNCP data packet payload. One of the original IP data packets, in the finite field, respectively, the load of the DNCP data packet and the other IP data packet are randomly selected from the coding coefficient vector; using the load of the DNCP data packet in the finite field and the above The other coding data vector randomly selected by the IP data packet is subjected to random linear coding of the payload of the DNCP data packet and the another IP data packet to obtain a third linearly encoded data packet; and the third linearly encoded data packet is encapsulated by DNCP. The fourth DNCP packet, the DNCP header of the fourth DNCP packet contains two source identifiers and two IP packet identifiers. And coding coefficient vector information related to the coding coefficient vector, where the two source identifiers and the two IP packet identifiers and the two source identifiers included in the DNCP header of the DNCP packet in the IP layer payload are The two IP data packets are identified by the same identifier; the fourth DNCP data packet is IP-encapsulated to obtain the ninth IP data packet.
IP层模块 1710还用于,发送 DNCP层模块 1720得到的第九 IP数据包。 在一种应用场景下, DNCP层模块 1720还可用于, 若 IP层模块 1710 在接收到第五 IP数据包后的设定时长内接收到第十 IP数据包, 且第十 IP 数据包和第五 IP数据包的目的地址相同, 且第十 IP数据包和第五 IP数据 包的 IP层载荷都包含 DNCP数据包, 且第十 IP数据包和第五 IP数据包其 中一个的 IP层载荷中的 DNCP数据包的 DNCP包头包含两个信源标识和两 个 IP数据包标识, 而另一个的 IP层载荷中的 DNCP数据包的 DNCP包头 包含上述两个信源标识中的其中一个以及上述两个 IP数据包标识中的其中 一个, 则在有限域中分别为第五 IP数据包和第十 IP数据包 IP层载荷中的 DNCP数据包的载荷随机选取编码系数矢量; 利用在有限域中分别为第五 IP数据包和第十 IP数据包 IP层载荷中的 DNCP数据包的载荷随机选取的 上述编码系数矢量, 对第五 IP数据包和第十 IP数据包的 IP层载荷中的 DNCP数据包的载荷进行随机线性编码得到第四线性编码数据包; 将第四 线性编码数据包进行 DNCP封装得到第五 DNCP数据包, 该第五 DNCP数 据包的 DNCP包头包含上述两个信源标识、 上述两个 IP数据包标识以及与 上述编码系数矢量相关的编码系数矢量信息; 将第五 DNCP数据包进行 IP 封装得到第十一 IP数据包; The IP layer module 1710 is further configured to send the ninth IP data packet obtained by the DNCP layer module 1720. In an application scenario, the DNCP layer module 1720 is further configured to: if the IP layer module 1710 receives the tenth IP data packet within a set duration after receiving the fifth IP data packet, and the tenth IP data packet and the first The destination addresses of the five IP data packets are the same, and the IP layer payloads of the tenth IP data packet and the fifth IP data packet all contain the DNCP data packet, and the IP layer payload of one of the tenth IP data packet and the fifth IP data packet is included. The DNCP header of the DNCP packet contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains one of the above two source identifiers and the above two Among the IP packet identifiers One, the coding coefficient vector is randomly selected for the load of the DNCP data packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the finite field; respectively, using the fifth IP data packet and the first in the finite field The above-mentioned coding coefficient vector randomly selected from the payload of the DNCP packet in the IP packet payload of the IP packet is randomly linearly encoded by the payload of the DNCP packet in the IP layer payload of the fifth IP packet and the tenth IP packet. a fourth linearly encoded data packet; the fourth linearly encoded data packet is DNCP-encapsulated to obtain a fifth DNCP data packet, where the DNCP header of the fifth DNCP data packet includes the two source identifiers, the two IP packet identifiers, and Encoding coefficient vector information related to the coding coefficient vector; performing IP encapsulation on the fifth DNCP packet to obtain an eleventh IP data packet;
IP层模块 1710还可用于,发送 DNCP层模块 1720得到的第十一 IP数 据包。  The IP layer module 1710 is further configured to send the eleventh IP data packet obtained by the DNCP layer module 1720.
可以理解的是, 本实施例中的编码设备 1700可如上述方法实施例中的 编码设备(例如图 11 所示硬件结构), 其各个功能模块的功能可以根据上 述方法实施例中的方法具体实现, 其具体实现过程可以参照上述方法实施 例的相关描述, 此处不再赘述。  It can be understood that the encoding device 1700 in this embodiment may be the encoding device in the foregoing method embodiment (for example, the hardware structure shown in FIG. 11), and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment. For a specific implementation process, reference may be made to the related description of the foregoing method embodiments, and details are not described herein again.
参见图 17、 本发明实施例提供的一种解码设备 1800, 可包括: IP层模 块 1810和 DNCP层模块 1820。  Referring to FIG. 17, a decoding device 1800 according to an embodiment of the present invention may include: an IP layer module 1810 and a DNCP layer module 1820.
IP层模块 1810, 用于接收网际协议 IP数据包;  The IP layer module 1810 is configured to receive an Internet Protocol IP data packet.
DNCP层模块, 用于若 IP层模块 1810接收到的上述 IP数据包的 IP层 载荷包含双信源网络编码协议 DNCP数据包, 则将该 DNCP数据包存入到 緩存区; 当存入到上述緩存区的 DNCP数据包达到预设数目时, 从上述緩 存区读取出 DNCP数据包; 若上述读取出的 DNCP数据包的 DNCP包头包 含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢量相关的编码 系数矢量信息, 则查找緩存区中是否存在其 DNCP包头包含上述两个信源 标识和两个 IP数据包标识的另一个 DNCP数据包, 若存在, 则从緩存区读 取出该另一个 DNCP数据包, 其中, 该另一个 DNCP数据包的 DNCP包头 还包含另一组与编码系数矢量相关的编码系数矢量信息; 利用上述两组编 码系数矢量信息对读取出的 DNCP数据包的载荷进行随机线性解码。 a DNCP layer module, configured to store the DNCP data packet into the buffer area if the IP layer payload of the IP data packet received by the IP layer module 1810 includes the dual source network coding protocol DNCP data packet; When the DNCP data packet of the buffer area reaches a preset number, the DNCP data packet is read out from the buffer area; if the DNCP header of the DNCP data packet read above includes two source identifiers, two IP data packet identifiers, and one Grouping the coding coefficient vector information related to the coding coefficient vector, and searching whether there is another DNCP packet whose DNCP header contains the above two source identifiers and two IP packet identifiers in the buffer area, and if present, the slave buffer area Reading out another DNCP packet, where the DNCP header of the other DNCP packet Another set of coding coefficient vector information related to the coding coefficient vector is further included; the load of the read DNCP data packet is randomly linearly decoded by using the two sets of coding coefficient vector information.
IP层模块 1810还用于, 发送 DNCP层模块 1820随机线性解码出的第 七 IP数据包。  The IP layer module 1810 is further configured to send the seventh IP packet that is randomly and linearly decoded by the DNCP layer module 1820.
可以理解的是, 本实施例中的解码设备 1800可如上述方法实施例中的 解码设备(例如图 12 所示硬件结构), 其各个功能模块的功能可以根据上 述方法实施例中的方法具体实现, 其具体实现过程可以参照上述方法实施 例的相关描述, 此处不再赘述。  It can be understood that the decoding device 1800 in this embodiment may be the decoding device in the foregoing method embodiment (for example, the hardware structure shown in FIG. 12), and the functions of the respective functional modules may be specifically implemented according to the method in the foregoing method embodiment. For a specific implementation process, reference may be made to the related description of the foregoing method embodiments, and details are not described herein again.
本发明实施例还提供一种通信系统, 包括:  The embodiment of the invention further provides a communication system, including:
上述实施例中编码设备和 /或解码设备。  The encoding device and/or the decoding device in the above embodiments.
在上述实施例中, 对各个实施例的描述都各有侧重, 某个实施例中没 有详述的部分, 可以参见其他实施例的相关描述。  In the above embodiments, the descriptions of the various embodiments are different, and the details are not described in detail in an embodiment, and the related descriptions of other embodiments can be referred to.
综上, 本发明实施例提出 DNCP来支持两信源间的编解码, 由于编码 设备是对到达间隔小于设定时长且目的地址相同的两个 IP数据包进行随机 线性编码, 这就有利于在一定程度上消除实际网络中的传输延迟及发送速 率等不匹配问题的影响; 同时, DNCP数据包的 DNCP包头携带两个信源 标识、 两个 IP数据包标识以及与编码系数矢量相关的编码系数矢量信息, 这就为编码设备继续多次编码或为解码设备快速解码奠定了基础, 而解码 设备可据此快速解码, 基于 DNCP的该机制有利于提高编码在实际网络中 的通用性; 并且由于是基于网络编码技术来实施, 因而能够充分利用网络 资源, 明显提高网络的吞吐率, 达到更高的传输效率。  In summary, the embodiment of the present invention proposes DNCP to support codec between two sources. Since the encoding device performs random linear coding on two IP data packets whose arrival interval is less than the set duration and the destination address is the same, which is beneficial to To some extent, the effect of mismatching problems such as transmission delay and transmission rate in the actual network is eliminated. Meanwhile, the DNCP header of the DNCP packet carries two source identifiers, two IP packet identifiers, and coding coefficients related to the coding coefficient vector. Vector information, which lays the foundation for the encoding device to continue encoding multiple times or for decoding the decoding device quickly, and the decoding device can quickly decode according to this, the mechanism based on DNCP is beneficial to improve the versatility of the encoding in the actual network; It is implemented based on network coding technology, so it can fully utilize network resources, significantly improve network throughput and achieve higher transmission efficiency.
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分 步骤是可以通过程序来指令相关的硬件来完成, 该程序可以存储于一计算 机可读存储介质中, 存储介质可以包括: 只读存储器、 随机存储器、 磁盘 或光盘等。  A person skilled in the art can understand that all or part of the steps of the foregoing embodiments can be completed by a program to instruct related hardware. The program can be stored in a computer readable storage medium. The storage medium can include: Read-only memory, random access memory, disk or optical disk, etc.
以上对本发明实施例所提供的网络编解码方法及相关设备和通信系统 了阐述, 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想; 同时, 对于本领域的一般技术人员, 依据本发明的思想, 在具体实施方式 及应用范围上均会有改变之处, 综上, 本说明书内容不应理解为对本发明 的限制。 Network codec method and related device and communication system provided by embodiment of the present invention It is to be noted that the description of the above embodiments is only for helping to understand the method of the present invention and its core ideas; at the same time, for those skilled in the art, according to the idea of the present invention, there will be changes in specific embodiments and applications. In conclusion, the contents of this specification are not to be construed as limiting the invention.

Claims

权利要求 Rights request
1、 一种编码方法, 其特征在于, 包括:  1. An encoding method, comprising:
接收来自第一信源的第一网际协议 IP数据包;  Receiving a first internet protocol IP data packet from the first source;
若在接收到所述第一 IP数据包后的设定时长内接收到来自第二信源的 第二 IP数据包, 且所述第一 IP数据包和所述第二 IP数据包的目的地址相 同,则在有限域中分别为所述第一 IP数据包和所述第二 IP数据包随机选取 编码系数矢量;  Receiving, by the set time duration after receiving the first IP data packet, a second IP data packet from the second source, and the destination address of the first IP data packet and the second IP data packet Similarly, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field;
利用所述编码系数矢量对所述第一 IP数据包和所述第二 IP数据包进行 随机线性编码得到第一线性编码数据包;  And randomly encoding the first IP data packet and the second IP data packet by using the coding coefficient vector to obtain a first linearly encoded data packet;
将所述第一线性编码数据包进行双信源网络编码协议 DNCP封装得到 第一 DNCP数据包, 其中, 所述第一 DNCP数据包的 DNCP包头包含所述 第一信源的标识、 所述第二信源的标识、 所述第一 IP数据包的标识、 所述 第二 IP数据包的标识以及与所述编码系数矢量相关的编码系数矢量信息; 将所述第一 DNCP数据包进行 IP封装得到第三 IP数据包并发送。  The first linearly encoded data packet is encapsulated by a dual source network coding protocol (DNCP) to obtain a first DNCP data packet, where the DNCP header of the first DNCP data packet includes an identifier of the first source, An identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the coding coefficient vector; performing IP encapsulation on the first DNCP data packet The third IP packet is obtained and sent.
2、 根据权利要求 1所述的方法, 其特征在于, 所述方法还包括: 若在接收到所述第一 IP数据包后的设定时长内, 没有接收到来自第二 信源的与所述第一 IP数据包的目的地址相同的 IP数据包,则发送所述第一 IP数据包;或将所述第一 IP数据包进行 DNCP封装得到第二 DNCP数据包, 将所述第二 DNCP数据包进行 IP封装得到第四 IP数据包并发送, 所述第 二 DNCP数据包的 DNCP包头包含所述第一信源的标识和所述第一 IP数据 包的标识。  2. The method according to claim 1, wherein the method further comprises: if the received time from the second source is not received within the set duration after receiving the first IP packet Transmitting the first IP data packet by using an IP data packet with the same destination address of the first IP data packet; or performing DNCP encapsulation on the first IP data packet to obtain a second DNCP data packet, where the second DNCP packet is used The data packet is IP-encapsulated to obtain a fourth IP data packet, and the DNCP packet header of the second DNCP data packet includes an identifier of the first source and an identifier of the first IP data packet.
3、 根据权利要求 1所述的方法, 其特征在于, 所述在有限域中分别为 所述第一 IP数据包和所述第二 IP数据包随机选取编码系数矢量, 包括: 在伽罗瓦域 GF2n中分别为所述第一 IP数据包和所述第二 IP数据包随 机选取编码系数矢量, 其中, 所述 n的取值范围为 8至 16之间的整数。  The method according to claim 1, wherein the randomly selecting the coding coefficient vector for the first IP data packet and the second IP data packet in the finite field, respectively: A coding coefficient vector is randomly selected in the domain GF2n for the first IP data packet and the second IP data packet, where the value of the n is an integer between 8 and 16.
4、 根据权利要求 1或 3所述的方法, 其特征在于, 所述第三 IP数据包的 IP包头中记录的源地址, 与所述第一 IP数据包 或所述第二 IP数据包的 IP包头中记录的源地址相同, 所述第三 IP数据包 的 IP包头中记录的目的地址, 与所述第一 IP数据包或所述第二 IP数据包 的 IP包头中记录的目的地址相同; 4. Method according to claim 1 or 3, characterized in that The source address recorded in the IP header of the third IP data packet is the same as the source address recorded in the IP header of the first IP data packet or the second IP data packet, where the third IP data packet is The destination address recorded in the IP header is the same as the destination address recorded in the IP header of the first IP packet or the second IP packet;
所述第三 IP数据包的 IP包头还包含有 DNCP数据包标识。  The IP header of the third IP packet further includes a DNCP packet identifier.
5、 一种编码方法, 其特征在于, 包括:  5. An encoding method, comprising:
接收第五网际协议 IP数据包;  Receiving a fifth internet protocol IP data packet;
若在接收到所述第五 IP数据包后的设定时长内接收到第六 IP数据包, 且所述第六 IP数据包和所述第五 IP数据包的目的地址相同 ,且所述第六 IP 数据包和所述第五 IP数据包的 IP层载荷都包含双信源网络编码协议 DNCP 数据包, 且所述第六 IP数据包的 IP层载荷中 DNCP数据包的 DNCP包头 包含的两个信源标识和两个 IP数据包标识, 与所述第五 IP数据包的 IP层 载荷中 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标 识相同, 则在有限域中分别为所述第五 IP数据包和所述第六 IP数据包 IP 层载荷中 DNCP数据包的载荷随机选取编码系数矢量;  Receiving a sixth IP data packet within a set duration after receiving the fifth IP data packet, and the sixth IP data packet and the fifth IP data packet have the same destination address, and the The IP layer payloads of the six IP data packets and the fifth IP data packet both contain a dual source network coding protocol DNCP data packet, and the DNCP header of the DNCP data packet in the IP layer payload of the sixth IP data packet includes two The source identifier and the two IP packet identifiers are the same as the two source identifiers and the two IP packet identifiers included in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet, and are limited. Randomly selecting a coding coefficient vector for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload in the domain;
利用所述编码系数矢量对所述第五 IP数据包和所述第六 IP数据包的 IP 层载荷中 DNCP数据包的载荷进行随机线性编码得到第二线性编码数据 包;  And performing random linear coding on the payload of the DNCP data packet in the IP layer payload of the fifth IP data packet and the sixth IP data packet by using the coding coefficient vector to obtain a second linear coding data packet;
将所述第二线性编码数据包进行 DNCP封装得到第三 DNCP数据包, 其中, 所述第三 DNCP数据包的 DNCP包头包含所述两个信源标识、 所述 两个 IP数据包标识以及与所述编码系数矢量相关的编码系数矢量信息; 将所述第三 DNCP数据包进行 IP封装得到第七 IP数据包并发送。  DNCP encapsulating the second linearly encoded data packet to obtain a third DNCP data packet, where the DNCP header of the third DNCP data packet includes the two source identifiers, the two IP packet identifiers, and Encoding coefficient vector information related to the coding coefficient vector; IP encapsulating the third DNCP data packet to obtain a seventh IP data packet and transmitting.
6、 根据权利要求 5所述的方法, 其特征在于, 所述方法还包括: 若在接收到所述第五 IP数据包后的设定时长内接收到第八 IP数据包, 且所述第八 IP数据包和所述第五 IP数据包的目的地址相同 ,且所述第八 IP 数据包和所述第五 IP数据包其中一个的 IP层载荷包含 DNCP数据包, 并 且另一个 IP数据包为通过随机线性编码获得该 DNCP数据包载荷的原始 IP 数据包中的其中一个, 则在有限域中分别为所述 DNCP数据包的载荷和所 述另一个 IP数据包随机选取编码系数矢量; The method according to claim 5, wherein the method further comprises: receiving an eighth IP data packet within a set duration after receiving the fifth IP data packet, and the method The eight IP data packets and the fifth IP data packet have the same destination address, and the IP layer payload of one of the eighth IP data packet and the fifth IP data packet includes a DNCP data packet, and And another IP data packet is one of original IP data packets obtained by random linear coding to obtain the DNCP data packet payload, and the load of the DNCP data packet and the other IP data packet are respectively random in a finite field. Select a coding coefficient vector;
利用在有限域中分别为所述 DNCP数据包的载荷和所述另一个 IP数据 包随机选取的所述编码系数矢量, 对所述 DNCP数据包的载荷和所述另一 个 IP数据包进行随机线性编码得到第三线性编码数据包;  Randomly linearizing the load of the DNCP data packet and the another IP data packet by using the coded coefficient vector randomly selected by the payload of the DNCP data packet and the another IP data packet in a finite field Encoding to obtain a third linearly encoded data packet;
将所述第三线性编码数据包进行 DNCP封装得到第四 DNCP数据包, 所述第四 DNCP数据包的 DNCP包头包含两个信源标识、两个 IP数据包标 识以及与所述编码系数矢量相关的编码系数矢量信息, 其中, 所述两个信 源标识和两个 IP数据包标识与所述 IP层载荷中的 DNCP数据包的 DNCP 包头所包含的两个信源标识和两个 IP数据包标识相同;  The third linearly encoded data packet is DNCP-encapsulated to obtain a fourth DNCP data packet, where the DNCP header of the fourth DNCP data packet includes two source identifiers, two IP data packet identifiers, and is associated with the coding coefficient vector. Coding coefficient vector information, wherein the two source identifiers and two IP packet identifiers and two source identifiers and two IP packets included in the DNCP header of the DNCP packet in the IP layer payload The same identifier;
将所述第四 DNCP数据包进行 IP封装得到第九 IP数据包并发送。  The fourth DNCP data packet is IP-encapsulated to obtain a ninth IP data packet and sent.
7、 根据权利要求 5所述的方法, 其特征在于, 所述方法还包括: 若在接收到所述第五 IP数据包后的设定时长内接收到第十 IP数据包, 且所述第十 IP数据包和所述第五 IP数据包的目的地址相同 ,且所述第十 IP 数据包和所述第五 IP数据包的 IP层载荷都包含 DNCP数据包, 且所述第 十 IP数据包和所述第五 IP数据包其中一个的 IP层载荷中的 DNCP数据包 的 DNCP包头包含两个信源标识和两个 IP数据包标识, 而另一个的 IP层 载荷中的 DNCP数据包的 DNCP包头包含所述两个信源标识中的其中一个 以及所述两个 IP数据包标识中的其中一个, 则在有限域中分别为所述第五 IP数据包和所述第十 IP数据包 IP层载荷中的 DNCP数据包的载荷随机选 取编码系数矢量;  The method according to claim 5, wherein the method further comprises: receiving a tenth IP data packet within a set duration after receiving the fifth IP data packet, and the method The ten IP data packet and the fifth IP data packet have the same destination address, and the tenth IP data packet and the fifth IP data packet IP layer payload both contain a DNCP data packet, and the tenth IP data packet The DNCP header of the DNCP packet in the IP layer payload of one of the packet and the fifth IP packet contains two source identifiers and two IP packet identifiers, and the other DNCP packet in the IP layer payload The DNCP header includes one of the two source identifiers and one of the two IP packet identifiers, and the fifth IP data packet and the tenth IP data packet are respectively in a finite field. The code of the DNCP packet in the IP layer payload is randomly selected from the coding coefficient vector;
利用在有限域中分别为所述第五 IP数据包和所述第十 IP数据包 IP层 载荷中的 DNCP数据包的载荷随机选取的所述编码系数矢量, 对所述第五 IP数据包和所述第十 IP数据包的 IP层载荷中的 DNCP数据包的载荷进行 随机线性编码得到第四线性编码数据包; 将所述第四线性编码数据包进行 DNCP封装得到第五 DNCP数据包, 该第五 DNCP数据包的 DNCP包头包含所述两个信源标识、所述两个 IP数 据包标识以及与所述编码系数矢量相关的编码系数矢量信息; Using the coding coefficient vector randomly selected for the load of the DNCP packet in the fifth IP data packet and the tenth IP data packet IP layer payload in the finite field, respectively, for the fifth IP data packet and The load of the DNCP data packet in the IP layer payload of the tenth IP data packet is randomly linearly encoded to obtain a fourth linearly encoded data packet; Performing DNCP encapsulation on the fourth linearly encoded data packet to obtain a fifth DNCP data packet, where the DNCP header of the fifth DNCP data packet includes the two source identifiers, the two IP packet identifiers, and the encoding Coefficient vector related coding coefficient vector information;
将所述第五 DNCP数据包进行 IP封装得到第十一 IP数据包并发送。  The fifth DNCP data packet is IP-encapsulated to obtain an eleventh IP data packet and sent.
8、 根据权利要求 5至 7任一项所述的方法, 其特征在于,  8. A method according to any one of claims 5 to 7, characterized in that
所述有限域为伽罗瓦域 GF2n, 该 n的取值范围为 8至 16之间的整数。  The finite field is the Galois field GF2n, and the value of n ranges from 8 to 16 integers.
9、 一种解码方法, 其特征在于, 包括:  9. A decoding method, comprising:
接收网际协议 IP数据包;  Receiving Internet Protocol IP data packets;
若接收到的所述 IP数据包的 IP层载荷包含双信源网络编码协议 DNCP 数据包, 则将该 DNCP数据包存入到緩存区;  If the IP layer payload of the received IP data packet includes a dual source network coding protocol DNCP data packet, the DNCP data packet is stored in the buffer area;
当存入到所述緩存区的 DNCP数据包达到预设数目时, 从所述緩存区 读取出 DNCP数据包;  When the DNCP data packet stored in the buffer area reaches a preset number, the DNCP data packet is read from the buffer area;
若所述读取出的 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢量相关的编码系数矢量信息, 则查找 緩存区中是否存在其 DNCP包头包含所述两个信源标识和两个 IP数据包标 识的另一个 DNCP数据包, 若存在, 则从緩存区读取出该另一个 DNCP数 据包, 其中, 该另一个 DNCP数据包的 DNCP包头还包含另一组与编码系 数矢量相关的编码系数矢量信息;  If the DNCP header of the read DNCP data packet includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, whether the DNCP header is present in the buffer area Another DNCP packet containing the two source identifiers and two IP packet identifiers, if any, reads the other DNCP packet from the buffer area, wherein the DNCP header of the other DNCP packet Also including another set of coding coefficient vector information related to the coding coefficient vector;
利用所述两组编码系数矢量信息对读取出的 DNCP数据包的载荷进行 随机线性解码。  The load of the read DNCP packet is randomly linearly decoded using the two sets of coding coefficient vector information.
10、 根据权利要求 9所述的方法, 其特征在于, 所述方法还包括: 所述将该 DNCP数据包存入到緩存区之后还包括:  The method according to claim 9, wherein the method further comprises: after the storing the DNCP data packet into the buffer area, further comprising:
将该 DNCP数据包的索引和该 DNCP数据包在所述緩存区中的地址存 入到内容可寻址存储器 CAM中, 其中, 所述索引包括: 该 DNCP数据包 的 DNCP包头中包含的至少一个 IP数据包标识。  And storing the index of the DNCP data packet and the address of the DNCP data packet in the buffer area into the content addressable memory CAM, wherein the index comprises: at least one included in a DNCP packet header of the DNCP data packet IP packet identification.
11、 根据权利要求 9或 10所述的方法, 其特征在于, 包括: 所述接收 IP数据包, 包括: The method according to claim 9 or 10, comprising: Receiving the IP data packet includes:
分别从第一链路和第二链路接收 IP数据包;  Receiving IP data packets from the first link and the second link, respectively;
所述若接收到的所述 IP数据包的 IP层载荷包含 DNCP数据包, 则将 该 DNCP数据包存入到緩存区, 包括:  If the IP layer payload of the received IP data packet includes a DNCP data packet, the DNCP data packet is stored in the buffer area, including:
若从所述第一链路接收到的 IP数据包的 IP层载荷包含 DNCP数据包, 将该 DNCP数据包存入到第一緩存区; 若从所述第二链路接收到的 IP数据 包的 IP层载荷包含 DNCP数据包,则将该 DNCP数据包存入到第二緩存区; 所述当存入到所述緩存区的 DNCP数据包达到预设数目时, 从所述緩 存区读取出 DNCP数据包, 包括:  If the IP layer payload of the IP data packet received from the first link includes a DNCP data packet, the DNCP data packet is stored in the first buffer area; if the IP data packet is received from the second link The IP layer payload includes a DNCP data packet, and the DNCP data packet is stored in the second buffer area. When the DNCP data packet stored in the buffer area reaches a preset number, the DNCP data packet is read from the buffer area. Out DNCP packets, including:
当存入到所述第一緩存区的 DNCP数据包达到预设数目和 /或存入到所 述第二緩存区的 DNCP数据包达到预设数目时, 或者, 当存入到所述第一 緩存区和所述第二緩存区的 DNCP数据包的总和达到预设数目时, 按照预 定的读取顺序从所述第一緩存区读取出 DNCP数据包。  When the DNCP data packet stored in the first buffer area reaches a preset number and/or the DNCP data packet stored in the second buffer area reaches a preset number, or is stored in the first When the sum of the DNCP data packets of the buffer area and the second buffer area reaches a preset number, the DNCP data packet is read from the first buffer area according to a predetermined reading order.
12、 根据权利要求 11所述的方法, 其特征在于, 包括:  12. The method according to claim 11, comprising:
所述若所述读取出的 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢量相关的编码系数矢量信息, 则 查找緩存区中是否存在其 DNCP包头包含所述两个信源标识和两个 IP数据 包标识的另一个 DNCP数据包, 包括:  If the DNCP header of the read DNCP data packet includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, it is found in the buffer area whether it exists. The DNCP header contains the two source identifiers and another DNCP packet identified by two IP packets, including:
若从所述第一緩存区读取出的 DNCP数据包的 DNCP包头包含两个信 源标识、 两个 IP数据包标识及一组与编码系数矢量相关的编码系数矢量信 息, 则根据该两个信源标识中的至少一个及该两个 IP数据包标识中的至少 一个, 或, 根据该两个 IP数据包标识中的至少一个, 查找所述第二緩存区 中是否存在其 DNCP包头包含所述两个信源标识和两个 IP数据包标识的另 一个 DNCP数据包。  If the DNCP header of the DNCP packet read from the first buffer area includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, according to the two At least one of the source identifiers and at least one of the two IP packet identifiers, or, according to at least one of the two IP packet identifiers, finding whether the DNCP header includes the second buffer area Two source identifiers and another DNCP packet identified by two IP packets.
13、 根据权利要求 9所述的方法, 其特征在于, 所述方法还包括: 若所述读取出的 DNCP数据包的载荷未经过随机线性编码, 则去除该 DNCP数据包的 DNCP包头得到 IP数据包。 The method according to claim 9, wherein the method further comprises: removing the load of the read DNCP data packet without random linear coding The DNCP header of the DNCP packet gets the IP packet.
14、 一种编码设备, 其特征在于, 包括:  14. An encoding device, comprising:
第一接收模块, 用于接收来自第一信源的第一网际协议 IP数据包; 第一编码系数选取模块, 用于若所述第一接收模块在接收到所述第一 IP数据包后的设定时长内接收到来自第二信源的第二 IP数据包, 且所述第 一 IP数据包和所述第二 IP数据包的目的地址相同,则在有限域中分别为所 述第一 IP数据包和所述第二 IP数据包随机选取编码系数矢量;  a first receiving module, configured to receive a first Internet Protocol IP data packet from the first source, and a first encoding coefficient selection module, configured to: after the first receiving module receives the first IP data packet, Receiving a second IP data packet from the second source within a set duration, and the first IP data packet and the second IP data packet have the same destination address, respectively, the first in the finite field The IP data packet and the second IP data packet randomly select a coding coefficient vector;
编码模块, 用于利用所述第一编码系数选取模块随机选取的编码系数 矢量对所述第一 IP数据包和所述第二 IP数据包进行随机线性编码得到第一 线性编码数据包;  And an encoding module, configured to perform random linear coding on the first IP data packet and the second IP data packet by using a coding coefficient vector randomly selected by the first coding coefficient selection module to obtain a first linearly encoded data packet;
DNCP封装模块, 用于将所述第一线性编码数据包进行双信源网络编 码协议 DNCP封装得到第一 DNCP数据包,所述第一 DNCP数据包的 DNCP 包头包含所述第一信源的标识、 所述第二信源的标识、 所述第一 IP数据包 的标识、 所述第二 IP数据包的标识以及与所述编码系数矢量相关的编码系 数矢量信息;  a DNCP encapsulation module, configured to perform a DNCP encapsulation of the first linearly encoded data packet by using a dual source network coding protocol (DNCP), where a DNCP header of the first DNCP data packet includes an identifier of the first source And an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and coding coefficient vector information related to the coding coefficient vector;
IP封装模块, 用于将所述 DNCP封装模块得到的第一 DNCP数据包进 行 IP封装得到第三 IP数据包并发送。  The IP encapsulation module is configured to perform IP encapsulation on the first DNCP data packet obtained by the DNCP encapsulation module to obtain a third IP data packet and send the same.
15、 根据权利要求 14所述的编码设备, 其特征在于,  15. The encoding device according to claim 14, wherein:
所述 IP封装模块还用于,若所述第一接收模块在接收到所述第一 IP数 据包后的设定时长内, 没有接收到来自第二信源的与所述第一 IP数据包的 目的地址相同的 IP数据包, 则发送所述第一 IP数据包;  The IP encapsulating module is further configured to: if the first receiving module receives the first IP data packet from the second source, within a set duration after receiving the first IP data packet Sending the first IP data packet with the same IP data packet of the destination address;
或,  Or,
所述 DNCP封装模块还用于, 若所述第一接收模块在接收到所述第一 IP数据包后的设定时长内, 没有接收到来自第二信源的与所述第一 IP数据 包的目的地址相同的 IP数据包, 则将所述第一 IP数据包进行 DNCP封装 得到第二 DNCP数据包; 所述 IP封装模块还用于, 将所述第二 DNCP数据包进行 IP封装得到 第四 IP数据包并发送,所述第二 DNCP数据包的 DNCP包头包含所述第一 信源的标识和所述第一 IP数据包的标识。 The DNCP encapsulating module is further configured to: if the first receiving module receives the first IP data packet from the second source, within a set duration after receiving the first IP data packet The IP data packet with the same destination address, the DNCP encapsulation of the first IP data packet to obtain the second DNCP data packet; The IP encapsulation module is further configured to perform IP encapsulation on the second DNCP data packet to obtain a fourth IP data packet, where the DNCP packet header of the second DNCP data packet includes an identifier and a location of the first source The identifier of the first IP data packet.
16、 一种编码设备, 其特征在于, 包括:  16. An encoding device, comprising:
第二接收模块, 用于接收第五网际协议 IP数据包;  a second receiving module, configured to receive a fifth internet protocol IP data packet;
第二编码系数选取模块, 用于若所述第二接收模块在接收到第五 IP数 据包后的设定时长内接收到第六 IP数据包,且所述第六 IP数据包和所述第 五 IP数据包的目的地址相同, 且所述第六 IP数据包和所述第五 IP数据包 的 IP层载荷都包含双信源网络编码协议 DNCP数据包, 且所述第六 IP数 据包 IP层载荷中的 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标识,与所述第五 IP数据包 IP层载荷中的 DNCP数据包的 DNCP 包头包含的两个信源标识和两个 IP数据包标识相同, 则在有限域中分别为 所述第五 IP数据包和所述第六 IP数据包 IP层载荷中的 DNCP数据包的载 荷随机选取编码系数矢量;  a second coding coefficient selection module, configured to: if the second receiving module receives the sixth IP data packet within a set duration after receiving the fifth IP data packet, and the sixth IP data packet and the first The destination addresses of the five IP data packets are the same, and the IP layer payloads of the sixth IP data packet and the fifth IP data packet both include a dual source network coding protocol DNCP data packet, and the sixth IP data packet IP address Two source identifiers and two IP packet identifiers included in the DNCP header of the DNCP packet in the layer payload, and two sources included in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet The identifier and the two IP data packet identifiers are the same, and the coding coefficient vector is randomly selected in the finite field for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload respectively;
编码模块, 用于利用所述编码系数选取模块随机选取的编码系数矢量, 对所述第五 IP数据包和所述第六 IP数据包 IP层载荷中的 DNCP数据包的 载荷进行随机线性编码得到第二线性编码数据包;  An encoding module, configured to perform random linear coding on a load of the DNCP data packet in the fifth IP data packet and the IP layer payload of the sixth IP data packet by using a coding coefficient vector randomly selected by the coding coefficient selection module a second linearly encoded data packet;
DNCP封装模块, 用于将所述编码模块得到的第二线性编码数据包进 行 DNCP封装得到第三 DNCP数据包, 其中, 所述第三 DNCP数据包的 DNCP包头包含所述两个信源标识、 所述两个 IP数据包标识以及与所述编 码系数矢量相关的编码系数矢量信息;  a DNCP encapsulating module, configured to perform DNCP encapsulation on a second linearly encoded data packet obtained by the encoding module to obtain a third DNCP data packet, where a DNCP packet header of the third DNCP data packet includes the two source identifiers, The two IP data packet identifiers and coding coefficient vector information related to the coding coefficient vector;
IP封装模块, 用于将所述 DNCP封装模块得到的第三 DNCP数据包进 行 IP封装得到第七 IP数据包并发送。  The IP encapsulation module is configured to perform IP encapsulation on the third DNCP data packet obtained by the DNCP encapsulation module to obtain a seventh IP data packet and send the same.
17、 根据权利要求 16所述的编码设备, 其特征在于,  17. The encoding device according to claim 16, wherein:
所述第二编码系数选取模块还用于, 若所述第二接收模块在接收到所 述第五 IP数据包后的设定时长内接收到第八 IP数据包, 且所述第八 IP数 据包和所述第五 IP数据包的目的地址相同 ,且所述第八 IP数据包和所述第 五 IP数据包其中一个的 IP层载荷包含 DNCP数据包, 并且另一个 IP数据 包为通过随机线性编码获得该 DNCP数据包载荷的原始 IP数据包中的其中 一个, 则在有限域中分别为所述 DNCP数据包的载荷和所述另一个 IP数据 包随机选取编码系数矢量; The second coding coefficient selection module is further configured to: if the second receiving module receives the eighth IP data packet within a set duration after receiving the fifth IP data packet, and the eighth IP number And the destination address of the fifth IP data packet is the same, and the IP layer payload of one of the eighth IP data packet and the fifth IP data packet includes a DNCP data packet, and another IP data packet is passed Obtaining one of the original IP data packets of the DNCP data packet payload by random linear coding, and randomly selecting a coding coefficient vector for the payload of the DNCP data packet and the another IP data packet in the finite field;
所述编码模块还用于, 利用所述第二编码系数选取模块在有限域中分 别为所述 DNCP数据包的载荷和所述另一个 IP数据包随机选取的编码系数 矢量, 对所述 DNCP数据包的载荷和所述另一个 IP数据包进行随机线性编 码得到第三线性编码数据包;  The encoding module is further configured to: use the second coding coefficient selection module to respectively obtain, in the finite field, a load of the DNCP data packet and a coding coefficient vector randomly selected by the another IP data packet, and the DNCP data The payload of the packet and the other IP data packet are randomly linearly encoded to obtain a third linearly encoded data packet;
所述 DNCP封装模块还用于, 将所述编码模块得到的第三线性编码数 据包进行 DNCP封装得到第四 DNCP数据包, 所述第四 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及与所述编码系数矢 量相关的编码系数矢量信息, 其中, 所述两个信源标识和两个 IP数据包标 和两个 IP数据包标识相同;  The DNCP encapsulation module is further configured to: perform DNCP encapsulation on the third linearly encoded data packet obtained by the coding module to obtain a fourth DNCP data packet, where the DNCP packet header of the fourth DNCP data packet includes two source identifiers, and two And an IP data packet identifier and coding coefficient vector information related to the coding coefficient vector, where the two source identifiers and the two IP data packet identifiers are the same as the two IP data packet identifiers;
所述 IP封装模块还用于,将所述 DNCP封装模块得到的第四 DNCP数 据包进行 IP封装得到第九 IP数据包并发送。  The IP encapsulation module is further configured to perform IP encapsulation on the fourth DNCP data packet obtained by the DNCP encapsulation module to obtain a ninth IP data packet and send the same.
18、 根据权利要求 16所述的编码设备, 其特征在于,  18. The encoding device according to claim 16, wherein:
第二编码系数选取模块还用于 , 若所述第二接收模块在接收到所述第 五 IP数据包后的设定时长内接收到第十 IP数据包, 且所述第十 IP数据包 和所述第五 IP数据包的目的地址相同,且所述第十 IP数据包和所述第五 IP 数据包的 IP层载荷都包含 DNCP数据包, 且所述第十 IP数据包和所述第 五 IP数据包其中一个的 IP层载荷中的 DNCP数据包的 DNCP包头包含两 个信源标识和两个 IP数据包标识, 而另一个的 IP层载荷中的 DNCP数据 包的 DNCP包头包含所述两个信源标识中的其中一个以及所述两个 IP数据 包标识中的其中一个, 则在有限域中分别为所述第五 IP数据包和所述第十 IP数据包 IP层载荷中的 DNCP数据包的载荷随机选取编码系数矢量; 所述编码模块还用于, 利用所述第二编码系数选取模块在有限域中分 别为所述第五 IP数据包和所述第十 IP数据包 IP层载荷中的 DNCP数据包 的载荷随机选取的编码系数矢量,对所述第五 IP数据包和所述第十 IP数据 包的 IP层载荷中的 DNCP数据包的载荷进行随机线性编码得到第四线性编 码数据包; The second coding coefficient selection module is further configured to: if the second receiving module receives the tenth IP data packet within a set duration after receiving the fifth IP data packet, and the tenth IP data packet and The destination address of the fifth IP data packet is the same, and the IP layer payload of the tenth IP data packet and the fifth IP data packet both contain a DNCP data packet, and the tenth IP data packet and the first The DNCP header of the DNCP packet in the IP layer payload of one of the five IP packets contains two source identifiers and two IP packet identifiers, and the DNCP header of the DNCP packet in the other IP layer payload contains the One of the two source identifiers and one of the two IP packet identifiers are respectively the fifth IP data packet and the tenth in the finite field The encoding of the DNCP data packet in the IP packet payload of the IP packet randomly selects a coding coefficient vector; the encoding module is further configured to: use the second encoding coefficient selection module to respectively be the fifth IP data packet in a finite field a randomly selected coding coefficient vector of a load of the DNCP data packet in the IP layer payload of the tenth IP data packet, and a DNCP data packet in the IP layer payload of the fifth IP data packet and the tenth IP data packet The load is subjected to random linear coding to obtain a fourth linearly encoded data packet;
所述 DNCP封装模块还用于, 将所述编码模块得到的第四线性编码数 据包进行 DNCP封装得到第五 DNCP数据包, 其中, 该第五 DNCP数据包 的 DNCP包头包含所述两个信源标识、 所述两个 IP数据包标识以及与所述 编码系数矢量相关的编码系数矢量信息;  The DNCP encapsulation module is further configured to perform DNCP encapsulation on the fourth linearly encoded data packet obtained by the coding module to obtain a fifth DNCP data packet, where the DNCP packet header of the fifth DNCP data packet includes the two sources Identification, the two IP data packet identifiers, and coding coefficient vector information related to the coding coefficient vector;
所述 IP封装模块还用于,将所述 DNCP封装模块得到的所述第五 DNCP 数据包进行 IP封装得到第十一 IP数据包并发送。  The IP encapsulation module is further configured to perform IP encapsulation on the fifth DNCP data packet obtained by the DNCP encapsulation module to obtain an eleventh IP data packet and send the same.
19、 一种编码设备, 其特征在于, 包括:  19. An encoding device, comprising:
IP层模块, 用于接收来自第一信源的第一网际协议 IP数据包;  An IP layer module, configured to receive a first Internet Protocol IP data packet from the first source;
DNCP层模块,用于若所述 IP层模块在接收到所述第一 IP数据包后的 设定时长内接收到来自第二信源的第二 IP数据包,且所述第一 IP数据包和 所述第二 IP数据包的目的地址相同,则在有限域中分别为所述第一 IP数据 包和所述第二 IP数据包随机选取编码系数矢量; 利用该编码系数矢量对所 述第一 IP数据包和所述第二 IP数据包进行随机线性编码得到第一线性编码 数据包; 将所述第一线性编码数据包进行双信源网络编码协议 DNCP封装 得到第一 DNCP数据包, 其中, 所述第一 DNCP数据包的 DNCP包头包含 所述第一信源的标识、 所述第二信源的标识、 所述第一 IP数据包的标识、 所述第二 IP数据包的标识以及与所述编码系数矢量相关的编码系数矢量信 息; 将所述第一 DNCP数据包进行 IP封装得到第三 IP数据包;  a DNCP layer module, configured to receive, by the IP layer module, a second IP data packet from a second source within a set duration after receiving the first IP data packet, and the first IP data packet And the same as the destination address of the second IP data packet, the coding coefficient vector is randomly selected for the first IP data packet and the second IP data packet in the finite field; An IP data packet and the second IP data packet are randomly linearly encoded to obtain a first linearly encoded data packet; and the first linearly encoded data packet is encapsulated by a dual source network coding protocol (DNCP) to obtain a first DNCP data packet, where The DNCP header of the first DNCP data packet includes an identifier of the first source, an identifier of the second source, an identifier of the first IP data packet, an identifier of the second IP data packet, and Coding coefficient vector information related to the coding coefficient vector; performing IP encapsulation on the first DNCP data packet to obtain a third IP data packet;
所述 IP层模块还用于, 发送所述 DNCP层模块得到的第三 IP数据包。  The IP layer module is further configured to send the third IP data packet obtained by the DNCP layer module.
20、 根据权利要求 19所述的编码设备, 其特征在于, 所述 IP层模块还用于, 接收第五网际协议 IP数据包; 20. The encoding device according to claim 19, characterized in that The IP layer module is further configured to receive a fifth internet protocol IP data packet;
所述 DNCP层模块还用于, 若所述 IP层模块在接收到所述第五 IP数 据包后的设定时长内接收到第六 IP数据包,且所述第六 IP数据包和所述第 五 IP数据包的目的地址相同, 且所述第六 IP数据包和所述第五 IP数据包 的 IP层载荷都包含双信源网络编码协议 DNCP数据包, 且所述第六 IP数 据包的 IP层载荷中 DNCP数据包的 DNCP包头包含的两个信源标识和两个 IP数据包标识,与所述第五 IP数据包的 IP层载荷中 DNCP数据包的 DNCP 包头包含的两个信源标识和两个 IP数据包标识相同, 则在有限域中分别为 所述第五 IP数据包和所述第六 IP数据包 IP层载荷中 DNCP数据包的载荷 随机选取编码系数矢量; 利用在有限域中分别为所述第五 IP数据包和所述 第六 IP数据包 IP层载荷中 DNCP数据包的载荷随机选取的所述编码系数 矢量, 对所述第五 IP数据包和所述第六 IP数据包的 IP层载荷中 DNCP数 据包的载荷进行随机线性编码得到第二线性编码数据包; 将所述第二线性 编码数据包进行 DNCP封装得到第三 DNCP数据包, 所述第三 DNCP数据 包的 DNCP包头包含所述两个信源标识、 所述两个 IP数据包标识以及, 与 在有限域中分别为所述第五 IP数据包和所述第六 IP数据包 IP层载荷中 DNCP数据包的载荷随机选取的编码系数矢量相关的编码系数矢量信息; 将所述第三 DNCP数据包进行 IP封装得到第七 IP数据包;  The DNCP layer module is further configured to: if the IP layer module receives a sixth IP data packet within a set duration after receiving the fifth IP data packet, and the sixth IP data packet and the The destination address of the fifth IP data packet is the same, and the IP layer payload of the sixth IP data packet and the fifth IP data packet both include a dual source network coding protocol DNCP data packet, and the sixth IP data packet The IP address of the DNCP packet in the IP layer payload contains two source identifiers and two IP packet identifiers, and two letters contained in the DNCP header of the DNCP packet in the IP layer payload of the fifth IP packet. If the source identifier and the two IP data packet identifiers are the same, the coding coefficient vector is randomly selected for the load of the DNCP data packet in the fifth IP data packet and the sixth IP data packet IP layer payload in the finite field; The coding domain vector randomly selected in the finite field for the load of the DNCP packet in the fifth IP data packet and the sixth IP data packet IP layer payload, respectively, for the fifth IP data packet and the first IP layer payload of six IP packets The payload of the DNCP data packet is randomly linearly encoded to obtain a second linearly encoded data packet; the second linearly encoded data packet is DNCP-encapsulated to obtain a third DNCP data packet, and the DNCP header of the third DNCP data packet includes the Two source identifiers, the two IP packet identifiers, and a random selection of loads of the DNCP packets in the fifth IP data packet and the sixth IP data packet IP layer payload in the finite field, respectively Coding coefficient vector correlation coding coefficient vector information; performing IP encapsulation on the third DNCP data packet to obtain a seventh IP data packet;
所述 IP层模块还用于, 发送所述 DNCP层模块得到的第七 IP数据包。  The IP layer module is further configured to send the seventh IP data packet obtained by the DNCP layer module.
21、 一种解码设备, 其特征在于, 包括:  A decoding device, comprising:
第三接收模块, 用于接收网际协议 IP数据包;  a third receiving module, configured to receive an internet protocol IP data packet;
第一存储模块,用于当所述第三接收模块接收到的 IP数据包的 IP层载 荷包含 DNCP数据包时, 将该 DNCP数据包存入到緩存区;  a first storage module, configured to: when the IP layer payload of the IP data packet received by the third receiving module includes a DNCP data packet, store the DNCP data packet into a buffer area;
第一读取模块,用于当存入到緩存区的 DNCP数据包达到预设数目时, 从所述緩存区读取出 DNCP数据包;  a first reading module, configured to read a DNCP data packet from the buffer area when a DNCP data packet stored in the buffer area reaches a preset number;
第二读取模块, 用于若所述第一读取模块读取出的 DNCP数据包的 DNCP包头包含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢 量相关的编码系数矢量信息, 则查找緩存区中是否存在其 DNCP包头包含 所述两个信源标识和两个 IP数据包标识的另一个 DNCP数据包, 若存在, 则从緩存区读取出该另一个 DNCP数据包, 其中, 该另一个 DNCP数据包 的 DNCP包头还包含另一组与编码系数矢量相关的编码系数矢量信息; 解码模块, 用于利用两组编码系数矢量信息对读取出的 DNCP数据包 的载荷进行随机线性解码。 a second reading module, configured to: if the first reading module reads the DNCP data packet The DNCP header contains two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector. Then, if there is a DNCP header in the buffer, the two source identifiers and the two are included. Another DNCP packet identified by the IP packet, if present, the other DNCP packet is read from the buffer, wherein the DNCP header of the other DNCP packet further contains another set of coding coefficient vectors. Coding coefficient vector information; a decoding module, configured to perform random linear decoding on the load of the read DNCP data packet by using two sets of coding coefficient vector information.
22、 根据权利要求 21所述的解码设备, 其特征在于, 还包括: 第二存储模块,用于在第一存储模块将 DNCP数据包存入到緩存区后, 将该 DNCP数据包的索引和该 DNCP数据包在所述緩存区中的地址存入到 内容可寻址存储器 CAM中,其中,所述索引包括:该 DNCP数据包的 DNCP 包头中包含的至少一个 IP数据包标识。  The decoding device according to claim 21, further comprising: a second storage module, configured to: after the first storage module stores the DNCP data packet into the buffer area, index the DNCP data packet The address of the DNCP packet in the buffer is stored in the content addressable memory CAM, wherein the index comprises: at least one IP packet identifier contained in the DNCP header of the DNCP packet.
23、 根据权利要求 21或 22所述的解码设备, 其特征在于,  A decoding device according to claim 21 or 22, characterized in that
所述第三接收模块具体用于, 分别从第一链路和第二链路接收 IP数据 包;  The third receiving module is specifically configured to receive an IP data packet from the first link and the second link, respectively;
所述第一存储模块具体用于, 若所述第三接收模块从所述第一链路接 收到的 IP数据包的 IP层载荷包含 DNCP数据包, 则将该 DNCP数据包存 入到第一緩存区; 若所述第三接收模块从所述第二链路接收到的 IP数据包 的 IP层载荷包含 DNCP数据包, 则将该 DNCP数据包存入到第二緩存区; 所述第一读取模块具体用于, 当存入到所述第一緩存区的 DNCP数据 包达到预设数目和 /或存入到所述第二緩存区的 DNCP数据包达到预设数目 时, 或者, 当存入到所述第一緩存区和所述第二緩存区的 DNCP数据包的 总和达到预设数目时,按照预定的读取顺序从所述第一緩存区读取出 DNCP 数据包。  The first storage module is specifically configured to: if the IP layer payload of the IP data packet received by the third receiving module from the first link includes a DNCP data packet, store the DNCP data packet into the first a buffer area; if the IP layer payload of the IP data packet received by the third receiving module from the second link includes a DNCP data packet, storing the DNCP data packet into the second buffer area; The reading module is specifically configured to: when the DNCP data packet stored in the first buffer area reaches a preset number and/or the DNCP data packet stored in the second buffer area reaches a preset number, or When the sum of the DNCP data packets stored in the first buffer area and the second buffer area reaches a preset number, the DNCP data packet is read from the first buffer area according to a predetermined reading order.
24、 根据权利要求 23所述的解码设备, 其特征在于,  24. The decoding device according to claim 23, wherein
所述第二读取模块具体用于, 若所述第一读取模块从所述第一緩存区 读取出的 DNCP数据包的 DNCP包头包含两个信源标识、两个 IP数据包标 识及一组与编码系数矢量相关的编码系数矢量信息, 则根据该两个信源标 识中的至少一个及该两个 IP数据包标识中的至少一个, 或, 根据该两个 IP 数据包标识中的至少一个, 查找所述第二緩存区中是否存在其 DNCP包头 包含所述两个信源标识和两个 IP数据包标识的另一个 DNCP数据包, 若存 在, 则从所述第二緩存区读取出该另一个 DNCP数据包, 其中, 该另一个 DNCP数据包的 DNCP包头还包含另一组与编码系数矢量相关的编码系数 矢量信息。 The second reading module is specifically configured to: if the first reading module is from the first buffer area The DNCP header of the read DNCP packet includes two source identifiers, two IP packet identifiers, and a set of coding coefficient vector information related to the coding coefficient vector, according to at least one of the two source identifiers and At least one of the two IP packet identifiers, or, according to at least one of the two IP packet identifiers, finding whether the DNCP header exists in the second buffer area, including the two source identifiers and two Another DNCP data packet identified by the IP data packet, if present, the other DNCP data packet is read from the second buffer area, wherein the DNCP header of the other DNCP data packet further includes another group Coding coefficient vector correlation coding coefficient vector information.
25、 一种解码设备, 其特征在于, 包括:  25. A decoding device, comprising:
IP层模块, 用于接收网际协议 IP数据包;  An IP layer module, configured to receive an Internet Protocol IP data packet;
DNCP层模块, 用于若所述 IP层模块接收到的所述 IP数据包的 IP层 载荷包含双信源网络编码协议 DNCP数据包, 则将该 DNCP数据包存入到 緩存区; 当存入到所述緩存区的 DNCP数据包达到预设数目时, 从所述緩 存区读取出 DNCP数据包; 若所述读取出的 DNCP数据包的 DNCP包头包 含两个信源标识、 两个 IP数据包标识以及一组与编码系数矢量相关的编码 系数矢量信息, 则查找緩存区中是否存在其 DNCP包头包含所述两个信源 标识和两个 IP数据包标识的另一个 DNCP数据包, 若存在, 则从緩存区读 取出该另一个 DNCP数据包, 其中, 该另一个 DNCP数据包的 DNCP包头 还包含另一组与编码系数矢量相关的编码系数矢量信息; 利用所述两组编 码系数矢量信息对读取出的 DNCP数据包的载荷进行随机线性解码;  a DNCP layer module, configured to: if the IP layer payload of the IP data packet received by the IP layer module includes a dual source network coding protocol DNCP data packet, store the DNCP data packet into a buffer area; When the DNCP data packet of the buffer area reaches a preset number, the DNCP data packet is read out from the buffer area; if the DNCP header of the read DNCP data packet includes two source identifiers, two IP addresses The data packet identifier and a set of coding coefficient vector information related to the coding coefficient vector, and whether there is another DNCP data packet whose DNCP header contains the two source identifiers and two IP packet identifiers in the buffer area, if If yes, the another DNCP data packet is read from the buffer area, where the DNCP header of the another DNCP data packet further includes another set of coding coefficient vector information related to the coding coefficient vector; The vector information performs random linear decoding on the load of the read DNCP data packet;
所述 IP层模块还用于, 发送所述 DNCP层模块随机线性解码出的第七 IP数据包。  The IP layer module is further configured to send a seventh IP data packet that is randomly and linearly decoded by the DNCP layer module.
26、 一种通信系统, 其特征在于, 包括:  26. A communication system, comprising:
如权利要求 14至 25任一项所述的设备。  The apparatus according to any one of claims 14 to 25.
PCT/CN2012/079469 2011-08-01 2012-08-01 Method for coding thereof related device and communication system WO2013017077A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110217978.XA CN102916761B (en) 2011-08-01 2011-08-01 Coding and decoding method, related devices and related communication system
CN201110217978.X 2011-08-01

Publications (1)

Publication Number Publication Date
WO2013017077A1 true WO2013017077A1 (en) 2013-02-07

Family

ID=47615008

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/079469 WO2013017077A1 (en) 2011-08-01 2012-08-01 Method for coding thereof related device and communication system

Country Status (2)

Country Link
CN (1) CN102916761B (en)
WO (1) WO2013017077A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138459A1 (en) * 2022-01-18 2023-07-27 维沃移动通信有限公司 Decoding method, device, and readable storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104917702B (en) * 2015-06-03 2020-04-28 香港中文大学深圳研究院 Algebraic exchange system with network coding function and preprocessing algorithm thereof
CN113965294B (en) * 2021-10-22 2024-10-01 北京灵汐科技有限公司 Data packet encoding method, data packet decoding method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080075080A1 (en) * 2006-09-27 2008-03-27 Dina Katabi Methods and apparatus for network coding
CN101325540A (en) * 2007-06-11 2008-12-17 华为技术有限公司 Method and apparatus for improving multicast transmission efficiency based on random network encoding
CN101621353A (en) * 2008-07-03 2010-01-06 华为技术有限公司 Method, device and system for random linear network encoding
CN101667885A (en) * 2009-09-29 2010-03-10 天津大学 Method for reducing redundancy message by using network coding technique on DTN or ICN network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080075080A1 (en) * 2006-09-27 2008-03-27 Dina Katabi Methods and apparatus for network coding
CN101325540A (en) * 2007-06-11 2008-12-17 华为技术有限公司 Method and apparatus for improving multicast transmission efficiency based on random network encoding
CN101621353A (en) * 2008-07-03 2010-01-06 华为技术有限公司 Method, device and system for random linear network encoding
CN101667885A (en) * 2009-09-29 2010-03-10 天津大学 Method for reducing redundancy message by using network coding technique on DTN or ICN network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138459A1 (en) * 2022-01-18 2023-07-27 维沃移动通信有限公司 Decoding method, device, and readable storage medium

Also Published As

Publication number Publication date
CN102916761B (en) 2015-04-15
CN102916761A (en) 2013-02-06

Similar Documents

Publication Publication Date Title
WO2017161999A1 (en) Packet processing method and related device
KR101696776B1 (en) Enhanced acknowledgement and retransmission mechanism
US11218572B2 (en) Packet processing based on latency sensitivity
CN102415065B (en) The method and apparatus that redundant host connects in the network having route
US9578292B2 (en) Device and method for transmitting/receiving a packet in communication system
EP2437421B1 (en) Method, device and communication system for retransmitting based on forward error correction
US11258698B2 (en) Multicast forwarding method and related device
CN1798101A (en) Network device and method for disposing grouping
WO2010000147A1 (en) Method, apparatus and system for the random linear network coding
KR20150002622A (en) Apparatus and methods of routing with control vectors in a synchronized adaptive infrastructure (sain) network
WO2019149053A1 (en) Data transmission method based on fusion transmission system
WO2010124651A1 (en) Method, apparatus and system for forward error correction
WO2020210779A2 (en) Coded data chunks for network qualitative services
WO2019047840A1 (en) Packet forwarding method and device
WO2013017077A1 (en) Method for coding thereof related device and communication system
JP6055553B2 (en) Queue scheduling method, apparatus and system
CN104506272A (en) Method for monitoring network coding in X-shaped wireless network topology
US20210211220A1 (en) Method and apparatus for packet wash in networks
Liu et al. NCoS: A framework for realizing network coding over software-defined network
WO2008034365A1 (en) Methods and a system and devices for ipv6 datagram transmission in the ethernet
WO2013023509A1 (en) Message receiving and sending method, device, and system
GB2595638A (en) Method for PDCP network coding in 5G-Ran or 4G E-Utran
WO2011097859A1 (en) Method and device for realizing flexible qinq
WO2015096512A1 (en) Packet transmission method and device based on trill network
Zhang et al. A general co/decoder of network coding in hdl

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12820157

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12820157

Country of ref document: EP

Kind code of ref document: A1