WO2013017077A1 - Procédé de codage et dispositif et système de communication correspondants - Google Patents

Procédé de codage et dispositif et système de communication correspondants 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
English (en)
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/fr

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

Le mode de réalisation de la présente invention porte sur un procédé de codage et un dispositif et un système de communication correspondants. Selon le procédé de la présente invention, un protocole DNCP (DNCP : protocole de codage de réseau double source) est utilisé pour prendre en charge un codage et un décodage entre deux sources de signal, le dispositif de codage effectuant un codage linéaire aléatoire sur deux paquets IP dont l'intervalle d'arrivée est inférieur à la durée réglée et les adresses de destination sont les mêmes, ce qui est utile pour éliminer partiellement l'influence d'une désadaptation de débit de transmission et de délai de transfert dans le réseau réel ; en même temps, l'en-tête du paquet DNCP contient deux identificateurs (ID) de source, deux ID de paquet IP et des informations de vecteur de coefficient de codage qui sont relatives au vecteur de coefficient de codage, ce qui pose les bases permettant au dispositif de codage de coder plusieurs fois d'une manière continue ou au dispositif de décodage de décoder rapidement, et est avantageux pour améliorer la généralité du codage réseau dans le réseau réel ; et étant donné que la présente invention est réalisée sur la base de la technologie de codage réseau, elle peut donc utiliser pleinement les ressources réseau et augmenter le débit dans l'ensemble du réseau d'une manière nette et atteindre une plus haute efficacité de transmission.
PCT/CN2012/079469 2011-08-01 2012-08-01 Procédé de codage et dispositif et système de communication correspondants WO2013017077A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110217978.XA CN102916761B (zh) 2011-08-01 2011-08-01 编解码方法及相关设备和通信系统
CN201110217978.X 2011-08-01

Publications (1)

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

Family

ID=47615008

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/079469 WO2013017077A1 (fr) 2011-08-01 2012-08-01 Procédé de codage et dispositif et système de communication correspondants

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138459A1 (fr) * 2022-01-18 2023-07-27 维沃移动通信有限公司 Procédé de décodage, dispositif, et support d'enregistrement lisible

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104917702B (zh) * 2015-06-03 2020-04-28 香港中文大学深圳研究院 一种具有网络编码功能的代数交换系统及其预处理算法
CN113965294A (zh) * 2021-10-22 2022-01-21 北京灵汐科技有限公司 数据包编码方法、数据包解码方法及装置

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 (zh) * 2007-06-11 2008-12-17 华为技术有限公司 提高基于随机网络编码的多播传输效率的方法及装置
CN101621353A (zh) * 2008-07-03 2010-01-06 华为技术有限公司 一种随机线性网络编码的方法、装置和系统
CN101667885A (zh) * 2009-09-29 2010-03-10 天津大学 Dtn或icn网络上利用网络编码技术减少冗余消息的方法

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 (zh) * 2007-06-11 2008-12-17 华为技术有限公司 提高基于随机网络编码的多播传输效率的方法及装置
CN101621353A (zh) * 2008-07-03 2010-01-06 华为技术有限公司 一种随机线性网络编码的方法、装置和系统
CN101667885A (zh) * 2009-09-29 2010-03-10 天津大学 Dtn或icn网络上利用网络编码技术减少冗余消息的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138459A1 (fr) * 2022-01-18 2023-07-27 维沃移动通信有限公司 Procédé de décodage, dispositif, et support d'enregistrement lisible

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2017161999A1 (fr) Procédé de traitement de paquets et dispositif associé
KR101696776B1 (ko) 향상된 확인응답 및 재송신 메커니즘
US11218572B2 (en) Packet processing based on latency sensitivity
CN102415065B (zh) 在有路由的网络中冗余主机连接的方法和装置
US9578292B2 (en) Device and method for transmitting/receiving a packet in communication system
EP2437421B1 (fr) Procédé, dispositif et système de communication pour retransmission fondée sur correction d'erreur sans voie de retour
US11258698B2 (en) Multicast forwarding method and related device
CN1798101A (zh) 一种处理分组的网络设备及方法
WO2010000147A1 (fr) Procédé, appareil et système pour le codage linéaire aléatoire d'un réseau
KR20150002622A (ko) 동기화된 적응형 인프라(sain)네트워크에서 제어 벡터들을 가지고 라우팅하는 장치 및 방법
WO2019149053A1 (fr) Procédé de transmission de données fondé sur un système de transmission par fusion
WO2010124651A1 (fr) Procédé, appareil et système de correction d'erreur directe
WO2020210779A2 (fr) Segments de données codés pour services qualitatifs de réseau
WO2019047840A1 (fr) Procédé et dispositif d'acheminement de paquets
WO2013017077A1 (fr) Procédé de codage et dispositif et système de communication correspondants
US20230163875A1 (en) Method and apparatus for packet wash in networks
JP6055553B2 (ja) キュースケジューリング方法、装置及びシステム
Liu et al. NCoS: A framework for realizing network coding over software-defined network
WO2008034365A1 (fr) Procédés, système et dispositifs de transmission de datagramme ipv6 sur ethernet
GB2595638A (en) Method for PDCP network coding in 5G-Ran or 4G E-Utran
WO2011097859A1 (fr) PROCÉDÉ ET DISPOSITIF DE RÉALISATION DE QinQ FLEXIBLE
WO2015096512A1 (fr) Procédé et dispositif d'émission de paquets basé sur un réseau trill
Zhang et al. A general co/decoder of network coding in hdl
CN112564855A (zh) 报文处理方法、装置以及芯片
Ning et al. A novel localised network coding-based overhearing strategy

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