WO2012116564A1 - 编码包转发方法、编码包接收处理方法和转发节点 - Google Patents

编码包转发方法、编码包接收处理方法和转发节点 Download PDF

Info

Publication number
WO2012116564A1
WO2012116564A1 PCT/CN2011/083534 CN2011083534W WO2012116564A1 WO 2012116564 A1 WO2012116564 A1 WO 2012116564A1 CN 2011083534 W CN2011083534 W CN 2011083534W WO 2012116564 A1 WO2012116564 A1 WO 2012116564A1
Authority
WO
WIPO (PCT)
Prior art keywords
coding
coefficients
forwarding node
packet
coding coefficients
Prior art date
Application number
PCT/CN2011/083534
Other languages
English (en)
French (fr)
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 WO2012116564A1 publication Critical patent/WO2012116564A1/zh

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Definitions

  • the present invention relates to communication technologies, and in particular, to an encoding packet forwarding method, an encoding packet receiving processing method, and a forwarding node. Background technique
  • the source node first sends the encoded packet to the first node group, and selects the first optimal node from the node group, and the first optimal node is forwarded. Node, broadcasting the encoded packet to the second node group, and then selecting a second optimal node from the second node group, the second optimal node serving as a forwarding node, broadcasting the encoded packet to the third node group, Repeat until the destination node receives the encoded packet.
  • the above-mentioned network coding-based opportunistic routing protocol is adopted, and the forwarding node uses the Cumulative Coded Acknowledgments (CCACK) method for forwarding the encoded packets.
  • the downstream forwarding node in the forwarding node calculates an orthogonal vector orthogonal to all received coding vectors, and feeds the orthogonal vector to an upstream forwarding node in the forwarding node, and the upstream forwarding node according to the orthogonal vector and the novel coding
  • the coding vector of the packet is subjected to linear correlation analysis, and the linearly independent coding packet is re-encoded and transmitted.
  • the embodiment of the invention provides an encoding packet forwarding method, an encoding packet receiving processing method, and a forwarding node, which can reduce power loss.
  • An embodiment of the present invention provides a method for forwarding an encoded packet, including:
  • An embodiment of the present invention provides a method for receiving an encoded packet, including:
  • the forwarded encoded packet includes: a recoded encoded packet, a first set of coding coefficients, and a second set of coding coefficients, wherein the first set of coding coefficients is a coding coefficient of the recoded encoded packet;
  • the forward coding packet is from the downstream forwarding node, the stored feedback matrix is updated according to the first group of coding coefficients and the second group of coding coefficients;
  • the stored encoding matrix is updated according to the first set of encoding coefficients.
  • the embodiment of the invention further provides a forwarding node, including:
  • An obtaining module configured to acquire one or more novel encoding packets from an upstream forwarding node; a coding coefficient generating module, configured to randomly generate a first group of coding coefficients and a second group of coding coefficients; and a re-encoding module, configured to adopt the A set of coding coefficients encoding the one or more novel coding packets to obtain a re-encoded coding packet;
  • a forwarding coded packet generating module configured to generate a forwarded coded packet according to the one re-encoded coded packet, the first set of coded coefficients, and the second set of coded coefficients;
  • a sending module configured to broadcast the forwarding coded packet to one or more forwarding nodes, so that the upstream forwarding node updates the stored feedback matrix according to the first group of coding coefficients and the second group of coding coefficients, and the downstream forwarding node is configured according to the A set of coding coefficients updates the stored coding matrix.
  • the embodiment of the invention further provides a forwarding node, including:
  • An obtaining module configured to obtain a forwarding encoded packet, where the forwarding encoded packet includes: a re-encoded encoded packet, a first set of coding coefficients, and a second set of coding coefficients, where the first set of coding coefficients is an encoding of the re-encoded encoded packet Coefficient
  • a first control module configured to: when the forwarding coded packet is from a downstream forwarding node, update the stored feedback matrix according to the first set of coding coefficients and the second set of coding coefficients;
  • a second control module configured to: when the forwarding coded packet is from the upstream forwarding node, update the stored coding matrix according to the first group of coding coefficients.
  • the embodiment of the present invention adds the first set of coding coefficients and the second set of coding coefficients randomly generated in the forwarding coding packet, so that the upstream forwarding node updates the feedback according to the first group of coding coefficients and the second group of coding coefficients.
  • a matrix the encoding matrix is updated by the feedback matrix, and the next encoded new encoding packet is selected according to the encoding matrix. Therefore, the novel encoding packet is adjusted by adding a set of encoding coefficients to the forwarding encoding packet, instead of the existing one.
  • FIG. 1 is a flowchart of a method for forwarding an encoded packet according to Embodiment 1 of the present invention
  • FIG. 2 is a flowchart of a method for receiving an encoded packet according to Embodiment 2 of the present invention
  • FIG. 3 is a flowchart of a method for receiving an encoded packet according to Embodiment 3 of the present invention.
  • FIG. 4 is a schematic structural diagram of a forwarding node according to Embodiment 4 of the present invention.
  • FIG. 5 is a schematic structural diagram of a forwarding node according to Embodiment 5 of the present invention.
  • the technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention.
  • the embodiments are a part of the embodiments of the invention, and not all of the embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative efforts are within the scope of the present invention.
  • FIG. 1 is a flowchart of a method for forwarding an encoded packet according to Embodiment 1 of the present invention.
  • a flow of a method performed by a forwarding node as a sender is described. As shown in Figure 1, the method includes the following process.
  • Step 101 The forwarding node acquires one or more novel encoded packets from the upstream forwarding node.
  • Step 102 The forwarding node randomly generates a first group of coding coefficients and a second group of coding coefficients.
  • Step 103 The forwarding node encodes one or more novel encoding packets by using the first group of encoding coefficients to obtain a re-encoding encoded packet.
  • Step 104 The forwarding node generates a forwarding encoded packet according to the re-encoding encoded packet, the first set of encoding coefficients, and the second set of encoding coefficients, and broadcasts the broadcast encoded packet to one or more forwarding nodes, so that the upstream forwarding node according to the first group of coding coefficients and the second The group coding coefficients update the stored feedback matrix, and the downstream forwarding node updates the stored coding matrix according to the first set of coding coefficients.
  • step 101 may specifically include the following process.
  • the forwarding node obtains the forwarded encoded packet from the upstream forwarding node.
  • the forwarded encoded packet from the upstream forwarding node includes: a re-encoded encoded packet from the upstream forwarding node, a first set of coding coefficients from the upstream forwarding node, and a second set of coding coefficients from the upstream forwarding node, the first from the upstream forwarding node
  • a set of coding coefficients is the coding coefficients of the re-encoded packets from the upstream forwarding node.
  • the forwarding node determines a linear correlation between the first set of coding coefficients from the upstream forwarding node and the coding matrix stored by the forwarding node itself, and when unrelated, decodes the upstream forwarding according to the first set of coding coefficients from the upstream forwarding node.
  • the re-encoding encoded packet of the node acquires one or more novel encoded packets from the upstream forwarding node corresponding to the first set of coding coefficients from the upstream forwarding node.
  • a buffer is set in the forwarding node for storing an encoding matrix, a feedback matrix, and a novel encoding packet, wherein each element in the encoding matrix corresponds to a novel encoding packet.
  • the forwarding node acquires one or more novel encoding packets corresponding to the encoding matrix from the stored novel encoding packets according to the stored encoding matrix.
  • the three novel coding packages are represented by A, B and C respectively.
  • the forwarding node randomly generates a first set of coding coefficients and a second set of coding coefficients.
  • the first set of coding coefficients is represented by (a, b, c)
  • the second set of coding coefficients is represented by (a, b, c,).
  • the forwarding node encodes one or more new encoding packets by using the first group of encoding coefficients to obtain a re-encoding encoded packet. Specifically, (a, b, (codes for, B, and C, and obtains a re-encoding code packet aA+bB+cC).
  • the forwarding node is based on the re-encoding encoded packet, the first set of coding coefficients, and the first The two sets of coding coefficients generate a forwarded coded packet and are broadcast to more than one forwarding node.
  • the upstream forwarding node and the downstream forwarding node of the forwarding node may obtain the forwarding code packet.
  • the specific method for generating the forwarding code packet is: encapsulating a re-encoding code packet, a first group of coding coefficients, a second group of coding coefficients, and a packet header to generate a forward coding packet.
  • the re-encoded coding packet aA+bB+cC, the first set of coding coefficients (a, b, c), the second set of coding coefficients (a, b, c,), and the packet header are encapsulated together to generate one.
  • the new encoding package acts as a forward encoding package.
  • the forwarding node broadcasts the forwarded encoded packet to one or more other forwarding nodes.
  • the method of the embodiment of the present invention may be performed by a general-purpose integrated circuit (such as a central processing unit CPU) or an application specific integrated circuit (ASIC).
  • a general-purpose integrated circuit such as a central processing unit CPU
  • ASIC application specific integrated circuit
  • the forwarding node is configured as a sender, and the generated forwarding code packet includes a first group of coding coefficients and a re-encoding coded packet, and a randomly generated second group of coding coefficients, so that the upstream forwarding node can Updating a feedback matrix according to the first set of coding coefficients and the second set of coding coefficients, and updating the coding matrix by the feedback matrix, thereby selecting a new coded packet to be forwarded according to the coding matrix, and therefore, adding a set of codes to the forwarded coded packet
  • the coefficient method adjusts the novel coding packet, which replaces the method of calculating orthogonal vectors orthogonal to all received coding vectors in the prior art, thereby saving a large number of calculation processes required for orthogonal vector calculation, thereby reducing Power loss.
  • FIG. 2 is a flowchart of a method for receiving an encoded packet according to Embodiment 2 of the present invention.
  • the flow of the method performed by the forwarding node as the receiving party will be described.
  • a buffer is set in the forwarding node for storing an encoding matrix, a feedback matrix, and a novel encoding packet, wherein each element in the encoding matrix corresponds to a novel encoding packet.
  • the method includes the following process.
  • Step 201 The forwarding node obtains a forwarding code packet.
  • the forward coding packet includes: a re-encoded packet, a first set of coding coefficients, and a second set of coding coefficients, wherein the first set of coding coefficients is a coding coefficient of the re-encoded coding packet.
  • Step 202 When forwarding the encoded packet from the downstream forwarding node, the forwarding node updates the stored feedback matrix according to the first set of coding coefficients and the second set of coding coefficients.
  • the forwarding code packet is from upstream
  • the forwarding node updates the stored coding matrix according to the first set of coding coefficients.
  • the forwarding node is a receiving party, and the forwarded coding packets received from other forwarding nodes include a second set of coding coefficients randomly generated, in addition to the first group of coding coefficients and the re-encoded packets.
  • the forwarding coded packet is from the downstream forwarding node, updating the feedback matrix according to the first set of coding coefficients and the second set of coding coefficients, and updating the coding matrix by using the feedback matrix, thereby selecting a new coded packet to be forwarded according to the coding matrix, if The forwarding coded packet is from the upstream forwarding node, and the coding matrix is updated according to the first set of coding coefficients, so that the next forwarded new coding packet is selected according to the coding matrix.
  • the novel coding packet is adjusted by adding a set of coding coefficients in the forward coding packet, instead of calculating the orthogonal vector orthogonal to all received coding vectors in the prior art, thereby saving positive
  • the intersection vector calculates a large amount of computational process required, thereby reducing power loss.
  • the method of an embodiment of the invention may be performed by a general purpose integrated circuit (e.g., a central processing unit CPU) or an application specific integrated circuit (ASIC).
  • a general purpose integrated circuit e.g., a central processing unit CPU
  • ASIC application specific integrated circuit
  • FIG. 3 is a flowchart of a method for receiving an encoded packet according to Embodiment 3 of the present invention.
  • a buffer is set in the forwarding node for storing an encoding matrix, a feedback matrix, and a novel encoding packet, wherein each element in the encoding matrix corresponds to a novel encoding packet.
  • the method includes the following process.
  • Step 301 The forwarding node obtains a forwarding code packet.
  • the forward coding packet includes: a re-encoded packet, a first set of coding coefficients, and a second set of coding coefficients, wherein the first set of coding coefficients is a coding coefficient of the re-encoded coding packet.
  • the forwarding node may receive the forwarding code packet broadcasted by the upstream forwarding node, or the forwarding node may obtain the forwarding code packet by eavesdropping on the forwarding code packet broadcast by the downstream forwarding node.
  • the forwarding code packet received by the forwarding node is an example of the forwarding code packet described in the specific implementation manner of the first embodiment of the present invention.
  • the forward coded packet includes: a re-encoding code packet aA+bB+cC, and a first group of coding coefficients. (a, b, c), the second set of coding coefficients (a, b, c,) and the header.
  • Step 302 The forwarding node determines that the obtained forwarding code packet is from an upstream forwarding node or a downstream forwarding node. If the node is forwarded from the downstream, step 311 is performed; if it is from the upstream forwarding node, step 321 is performed.
  • Step 311 The forwarding node determines a linear correlation between the first group of coding coefficients and the stored feedback matrix. If so, go to step 312; if it is not, go to step 313.
  • Gaussian elimination is used, that is, Gaussian elimination is performed on the first set of coding coefficients (a, b, c) and the feedback matrix. yuan.
  • Step 312 The forwarding node discards the first group of coding coefficients (a, b, c). Then perform the steps
  • Step 313 The forwarding node adds the first group of coding coefficients to the feedback matrix. After step 313, only step 314 may be performed, and step 317 may also be performed while step 314 is performed.
  • the first set of coding coefficients (a, b, c) are added to the feedback matrix. Since the feedback matrix is modified, it is necessary to re-linearly analyze the feedback matrix and the coding matrix, and since it is possible to modify the feedback matrix according to the second set of coding coefficients in the subsequent steps, the steps of the linear correlation analysis are performed. It may be executed immediately after step 313, or may be executed after waiting for step 314 to step 316.
  • Step 314 The forwarding node determines a linear correlation between the second group of coding coefficients and the feedback matrix. If relevant, go to step 315; if it is not, go to step 316.
  • Gaussian elimination when determining the linear correlation between the second set of coding coefficients and the stored feedback matrix, Gaussian elimination is used, that is, the second set of coding coefficients (a', b', c') and the feedback matrix are used. Perform Gaussian elimination.
  • Step 315 The forwarding node discards the second group of coding coefficients (a, b, c,).
  • step 315 if the foregoing step is to step 314 from step 313, and step 317 is not performed after step 313, step 317 may be performed after step 315. If the foregoing step is to go to step 314 from step 312, or, if the foregoing step is to step 314 from step 313, step 317 has been executed after step 313, and step 317 is not executed after step 315 to end the flow.
  • Step 316 The forwarding node adds a second set of coding coefficients to the feedback matrix. Then perform the steps In this step, a second set of coding coefficients (a, b, c,) is added to the feedback matrix. Since the feedback matrix is modified, it is necessary to perform a linear correlation analysis between the feedback matrix and the coding matrix, so the subsequent step 317 is continued.
  • Step 317 The forwarding node determines a linear correlation between each coding vector and the feedback matrix in the coding matrix. If relevant, go to step 318; if it is not relevant, keep the encoding matrix unchanged.
  • Step 318 The forwarding node deletes the coding vector from the coding matrix, and deletes the stored novel coding packet corresponding to the coded vector. After step 318, step 319 can be further performed because the encoding vector in the encoding matrix is deleted.
  • Step 319 The forwarding node determines whether the coding matrix is empty. If it is empty, it stops sending the forwarding code packet to other forwarding nodes. If it is not empty, it does not stop sending the forwarding code packet to other forwarding nodes.
  • Step 321 The forwarding node determines the linear correlation between the first group of coding coefficients and the stored coding matrix. If so, step 322 is performed; if not, step 323 is performed.
  • Gaussian elimination is used, that is, Gaussian elimination is performed on the first set of coding coefficients (a, b, c) and the coding matrix. yuan.
  • Step 322 The forwarding node discards the first group of coding coefficients (a, b, c).
  • Step 323 The forwarding node adds the first group of coding coefficients (a, b, c) to the coding matrix. After step 323, step 324 can be further performed.
  • Step 324 The forwarding node decodes the re-encoding encoded packet aA+bB+cC according to the first group of encoding coefficients (a, b, c), and obtains and stores one or one corresponding to the first group of encoding coefficients (a, b, c).
  • the forwarding node acts as a receiver. If the received forwarding code packet is from the downstream forwarding node, performing linear correlation analysis according to the first group of coding coefficients and the second group of coding coefficients and the feedback matrix, updating the feedback matrix, and updating the coding matrix through the feedback matrix, thereby according to the coding The matrix selects the next coded packet that is forwarded. If the received forwarding code packet is from the upstream forwarding node, linear correlation analysis is performed according to the first group of coding coefficients and the coding matrix, and the coding matrix is updated, so that the next forwarded new coding packet is selected according to the coding matrix.
  • the novel coding package is adjusted by adding a set of coding coefficients to the forwarded coding packet instead of
  • the orthogonal vector which is orthogonal to all received coding vectors is calculated, thereby saving a large number of calculation processes required for orthogonal vector calculation, thereby reducing power loss.
  • the forwarding node is used as one of the sender or the receiver as an example, and the processing flow of the forwarding node is described.
  • each forwarding node serves as both a receiver and a receiver.
  • the sender the methods described in the above first to third embodiments are simultaneously performed.
  • the specific process of the step 101 described in the first embodiment may include the steps 301 to 302 and the steps 321 to 324 in the third embodiment, replacing the step 101 with the above steps, and performing the step 102 after the above steps.
  • the method of an embodiment of the invention may be performed by a general purpose integrated circuit (e.g., a central processing unit CPU) or an application specific integrated circuit (ASIC).
  • a general purpose integrated circuit e.g., a central processing unit CPU
  • ASIC application specific integrated circuit
  • the forwarding node includes at least: an obtaining module 41, an encoding coefficient generating module 42, a re-encoding module 43, a forward encoding packet generating module 44, and a transmitting module 45.
  • the obtaining module 41 is configured to acquire one or more novel code packages from the upstream forwarding node.
  • the coding coefficient generation module 42 is configured to randomly generate the first set of coding coefficients and the second set of coding coefficients.
  • Re-encoding module 43 is operative to encode one or more novel encoded packets using a first set of encoding coefficients to obtain a re-encoded encoded packet.
  • the forward encoded packet generation module 44 is configured to generate a forwarded encoded packet based on a recoded encoded packet, a first set of encoded coefficients, and a second set of encoded coefficients.
  • the sending module 45 is configured to broadcast the forwarding code packet to more than one forwarding node, so that the upstream forwarding node updates the stored feedback matrix according to the first group of coding coefficients and the second group of coding coefficients, and the downstream forwarding node updates the storage according to the first group of coding coefficients.
  • the coding matrix is configured to broadcast the forwarding code packet to more than one forwarding node, so that the upstream forwarding node updates the stored feedback matrix according to the first group of coding coefficients and the second group of coding coefficients, and the downstream forwarding node updates the storage according to the first group of coding coefficients.
  • the obtaining module 41 is specifically configured to acquire a forwarding code packet from an upstream forwarding node.
  • the forwarded encoded packet from the upstream forwarding node includes: a re-encoded encoded packet from the upstream forwarding node, a first set of coding coefficients from the upstream forwarding node, and a second set of coding coefficients from the upstream forwarding node, the first from the upstream forwarding node
  • a set of coding coefficients is the coding coefficient of the re-encoded packet from the upstream forwarding node.
  • the obtaining module 41 is further configured to determine a linear correlation between the first group of coding coefficients from the upstream forwarding node and the stored coding matrix, and when not relevant, decode the uplink forwarding node according to the first group of coding coefficients from the upstream forwarding node.
  • Re-encoding the packet obtaining one or more novel encoding packets from the upstream forwarding node corresponding to the first set of encoding coefficients from the upstream forwarding node.
  • the forwarding coded packet generating module 44 is specifically configured to encapsulate a re-encoded code packet, a first set of coding coefficients, a second set of coding coefficients, and a packet header into a forwarded coded packet.
  • the apparatus, module, and unit of the embodiments of the present invention may be a general-purpose integrated circuit (such as a central processing unit CPU) or an application specific integrated circuit (ASIC).
  • a general-purpose integrated circuit such as a central processing unit CPU
  • ASIC application specific integrated circuit
  • the forwarding node is used as the sending forwarding node, and the forwarding encoding packet generated by the forwarding encoding packet generating module includes the first group of encoding coefficients generated by the encoding coefficient generating module and the re-encoding encoding packet generated by the re-encoding module. And a second group of coding coefficients randomly generated by the coding coefficient generation module, so that the upstream forwarding node may update the feedback matrix according to the first group of coding coefficients and the second group of coding coefficients, and update the coding matrix by using the feedback matrix, thereby according to the coding matrix.
  • the novel encoding package for the next forwarding is selected, thus saving a large amount of computational processes required for orthogonal vector calculation in the prior art, thereby reducing power loss.
  • FIG. 5 is a schematic structural diagram of a forwarding node according to Embodiment 5 of the present invention. As shown in FIG. 5, the forwarding node includes at least: an obtaining module 51, a first control module 52, and a second control module 53.
  • the obtaining module 51 is configured to obtain a forwarding encoded packet.
  • the forward coding packet includes: a re-encoding code packet, a first set of coding coefficients, and a second set of coding coefficients, wherein the first set of coding coefficients is a coding coefficient of the re-encoded coding packet.
  • the first control module 52 is configured to update the stored feedback matrix according to the first set of coding coefficients and the second set of coding coefficients when forwarding the encoded packet from the downstream forwarding node.
  • the second control module 53 is configured to: when the forwarding coded packet is from the upstream forwarding node, update the stored coding matrix according to the first group of coding coefficients.
  • the obtaining module 51 is specifically configured to receive a forwarding code packet broadcast by the upstream forwarding node.
  • the obtaining module 51 is specifically configured to eavesdrop on the forwarding code packet of the downstream forwarding node broadcast.
  • the first control module 52 is specifically configured to determine a linear correlation between the first group of coding coefficients and the stored feedback matrix, and if relevant, discard the first group of coding coefficients, if not, if The first set of coding coefficients is added to the feedback matrix.
  • the first control module 52 is further configured to determine a linear correlation between the second set of coding coefficients and the feedback matrix. If so, discard the second set of coding coefficients. If not, add the second set of coding coefficients to the feedback matrix.
  • the first control module 52 is further configured to determine a linear correlation between each coding vector and the feedback matrix in the coding matrix, if relevant, from the coding matrix.
  • the code vector is deleted, and the stored new code package corresponding to the code vector is deleted.
  • the first control module 52 is further configured to determine whether the coding matrix is empty, and if it is empty, stop sending the forwarded coding packet.
  • the second control module 53 is specifically configured to determine a linear correlation between the first group of coding coefficients and the stored coding matrix, and if relevant, discard the first group of coding coefficients, if not, if The first set of coding coefficients is added to the coding matrix.
  • the second control module 53 is further configured to: decode and recode the encoded packet according to the first set of coding coefficients, and obtain and store one or more novel encoded packets corresponding to the first set of coding coefficients.
  • the forwarding node is used as the receiving forwarding node, and the forwarding encoding packet obtained by the acquiring module from the other forwarding node includes the first group of encoding coefficients and the re-encoding encoded packet, and the randomly generated second group. Coding coefficient. If the forwarding coded packet is from a downstream forwarding node, the first control module updates the feedback matrix according to the first set of coding coefficients and the second set of coding coefficients, and updates the coding matrix by using the feedback matrix, so as to select a novel next forwarding according to the coding matrix.
  • the encoding packet if the forwarding encoding packet is from the upstream forwarding node, the second control module updates the encoding matrix according to the first group of encoding coefficients, thereby selecting the next encoded new encoding packet according to the encoding matrix. Therefore, the novel coding packet is adjusted by adding a set of coding coefficients in the forward coding packet, instead of calculating the orthogonal vector orthogonal to all received coding vectors in the prior art, thereby saving positive The intersection vector calculates a large amount of computational process required, thereby reducing power loss.
  • each The forwarding node can serve as both the receiving forwarding node and the transmitting forwarding node, and has the components described in the fourth embodiment and the fifth embodiment.
  • the obtaining module 41 described in the fourth embodiment can be used.
  • the horn block 51 in the fifth embodiment is replaced with the second control module 53.
  • CFACK Cumulative Feedback Acknowledgments
  • the priority of forward transmission is ranked from high to low in ascending order of Expect (Expect, ETM for short) values of the number of transmissions of a packet to the destination node. The higher the priority as the forwarding node, the better.
  • the priority of the forwarding node can be any metric.
  • the ETX[3] value is used as the metric, and the throughput can also be used as the metric.
  • the number of forwarding nodes may be limited, for example, the number of forwarding nodes may be at most 8.
  • intra-stream random linear coding of blocks is adopted. Each of the code blocks has a size of 32 packets. The random linearly encoded coding coefficients are taken from the 28-size Galois field.
  • the source node and each forwarding node maintain two coding vector matrices, namely: an encoding matrix and a feedback matrix, wherein the encoding matrix stores the upstream node from the upstream node.
  • the coding vector of the novel coding packet which stores linearly independent coding vectors from downstream nodes.
  • Each node also maintains a cache for storing encoded packets that have not yet been acknowledged.
  • the encoded packet in the buffer has a corresponding relationship with the coding vector in the coding matrix.
  • CCACK sends more times in all 110 scenarios than predicted.
  • the actual number of packages is basically twice the number predicted, and sometimes even 6 to 7 times. The reason is that CCACK cannot directly judge the linear relationship between coded packets, thus causing many unnecessary coded packets to be transmitted.
  • the number of CFACKs sent in all scenarios is less than CCACK. In most scenarios, the number of CFACK packets is close to the predicted value, and in some scenarios it may even be lower than the predicted value.
  • the apparatus, module, and unit of the embodiments of the present invention may be a general-purpose integrated circuit (such as a central processing unit CPU) or an application specific integrated circuit (ASIC).
  • a general-purpose integrated circuit such as a central processing unit CPU
  • ASIC application specific integrated circuit
  • the descriptions of the various embodiments are different, and the parts that are not detailed in an embodiment can be referred to the related descriptions of other embodiments.
  • a person skilled in the art can understand that all or part of the steps of implementing the above method embodiments may be completed by using hardware related to program instructions, and the foregoing program may be stored in a computer readable storage medium, and the program is executed when executed.
  • the foregoing steps include the steps of the foregoing method embodiments; and the foregoing storage medium includes: a medium that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

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

Description

编码包转发方法、 编码包接收处理方法和转发节点 技术领域 本发明实施例涉及通信技术, 尤其涉及编码包转发方法、 编码包接收处 理方法和转发节点。 背景技术
目前, 网状网络的应用越来越广泛。 在网状网络中, 常采用基于网络编 码的机会路由协议, 源节点首先将编码包发送给第一节点组, 从该节点组中 选出第一最优节点, 该第一最优节点作为转发节点, 把该编码包广播给第二 节点组, 然后再从第二节点组中选取第二最优节点, 该第二最优节点作为转 发节点, 把该编码包广播给第三节点组, 如此重复直到目的节点接收到该编 码包。
采用上述基于网络编码的机会路由协议, 转发节点对编码包进行转发时 采用累计编码反馈 ( Cumulative Coded Acknowledgments, 简称 CCACK )方 法。 转发节点中的下游转发节点计算与收到的所有编码向量均正交的正交向 量, 将该正交向量反馈给转发节点中的上游转发节点, 该上游转发节点根据 该正交向量与新颖编码包的编码向量进行线性相关性分析, 将线性无关的编 码包进行再编码并发送。
采用现有的编码包转发方法, 转发节点计算与收到的所有编码向量均正 交的正交向量的过程需要的计算量大, 消耗的功率损耗大。 发明内容
本发明实施例提供编码包转发方法、 编码包接收处理方法和转发节点, 可以降低功率损耗。
本发明实施例提供一种编码包转发方法, 包括:
获取来自上游转发节点的一个或一个以上新颖编码包;
随机生成第一组编码系数和第二组编码系数;
采用所述第一组编码系数对所述一个或一个以上新颖编码包进行编码, 获取一个再编码编码包;
根据所述一个再编码编码包、 所述第一组编码系数和所述第二组编码系 数生成转发编码包并广播给一个以上转发节点, 以使上游转发节点根据所述 第一组编码系数和第二组编码系数更新存储的反馈矩阵, 下游转发节点根据 所述第一组编码系数更新存储的编码矩阵。
本发明实施例提供一种编码包接收处理方法, 包括:
获取转发编码包, 所述转发编码包包括: 再编码编码包、 第一组编码系 数和第二组编码系数,所述第一组编码系数为所述再编码编码包的编码系数; 当所述转发编码包来自下游转发节点时, 根据所述第一组编码系数和第 二组编码系数更新存储的反馈矩阵;
当所述转发编码包来自上游转发节点时, 根据所述第一组编码系数更新 存储的编码矩阵。
本发明实施例还提供一种转发节点, 包括:
获取模块, 用于获取来自上游转发节点的一个或一个以上新颖编码包; 编码系数生成模块, 用于随机生成第一组编码系数和第二组编码系数; 再编码模块, 用于采用所述第一组编码系数对所述一个或一个以上新颖 编码包进行编码, 获取一个再编码编码包;
转发编码包生成模块, 用于根据所述一个再编码编码包、 所述第一组编 码系数和所述第二组编码系数生成转发编码包;
发送模块, 用于将所述转发编码包广播给一个以上转发节点, 以使上游 转发节点根据所述第一组编码系数和第二组编码系数更新存储的反馈矩阵, 下游转发节点根据所述第一组编码系数更新存储的编码矩阵。
本发明实施例还提供一种转发节点, 包括:
获取模块, 用于获取转发编码包, 所述转发编码包包括: 再编码编码包、 第一组编码系数和第二组编码系数, 所述第一组编码系数为所述再编码编码 包的编码系数;
第一控制模块, 用于当所述转发编码包来自下游转发节点时, 根据所述 第一组编码系数和第二组编码系数更新存储的反馈矩阵;
第二控制模块, 用于当所述转发编码包来自上游转发节点时, 根据所述 第一组编码系数更新存储的编码矩阵。 由上述技术方案可知, 本发明实施例通过在转发编码包中加入随机生成 的第一组编码系数和第二组编码系数, 使得上游转发节点根据第一组编码系 数和第二组编码系数更新反馈矩阵, 通过该反馈矩阵更新编码矩阵, 从而根 据该编码矩阵选择下一次转发的新颖编码包, 因此, 以在转发编码包中加入 一组编码系数的方式对新颖编码包进行调整, 替代了现有技术中计算与收到 的所有编码向量均正交的正交向量的方式, 节省了正交向量计算所需的大量 计算过程, 从而降低了功率损耗。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实 施例描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附 图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性 劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1为本发明实施例一的编码包转发方法的流程图;
图 2为本发明实施例二的编码包接收处理方法的流程图;
图 3为本发明实施例三的编码包接收处理方法的流程图;
图 4为本发明实施例四的转发节点的结构示意图;
图 5为本发明实施例五的转发节点的结构示意图。 具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获 得的所有其他实施例, 都属于本发明保护的范围。
图 1为本发明实施例一的编码包转发方法的流程图。 在本发明实施例一 中, 对于转发节点作为发送方所执行的方法流程进行说明。 如图 1所示, 该 方法包括如下过程。
步骤 101 : 转发节点获取来自上游转发节点的一个或一个以上新颖编码 包。 步骤 102: 转发节点随机生成第一组编码系数和第二组编码系数。
步骤 103 : 转发节点采用第一组编码系数对一个或一个以上新颖编码包 进行编码, 获取一个再编码编码包。
步骤 104: 转发节点根据再编码编码包、 第一组编码系数和第二组编码 系数生成转发编码包并广播给一个以上转发节点, 以使上游转发节点根据所 述第一组编码系数和第二组编码系数更新存储的反馈矩阵, 下游转发节点根 据所述第一组编码系数更新存储的编码矩阵。
在上述技术方案的基础上, 步骤 101具体可以包括如下过程。 首先, 转 发节点获取来自上游转发节点的转发编码包。 该来自上游转发节点的转发编 码包包括: 来自上游转发节点的再编码编码包、 来自上游转发节点的第一组 编码系数和来自上游转发节点的第二组编码系数, 该来自上游转发节点的第 一组编码系数为所述来自上游转发节点的再编码编码包的编码系数。 然后, 转发节点判断该来自上游转发节点的第一组编码系数与转发节点自身存储的 编码矩阵的线性相关性, 当无关时, 根据该来自上游转发节点的第一组编码 系数解码该来自上游转发节点的再编码编码包, 获取该来自上游转发节点的 第一组编码系数对应的来自上游转发节点的一个或一个以上新颖编码包。
上述本发明实施例一的一种具体实现方式如下。
在转发节点中设置緩存, 用于存储编码矩阵、 反馈矩阵和新颖编码包, 其中, 编码矩阵中的每个元素对应一个新颖性编码包。 当一个转发节点需要 将编码包转发给其它转发节点时, 执行上述步骤 101至步骤 104。
在上述步骤 101 中, 转发节点根据存储的编码矩阵, 从存储的新颖编码 包中获取编码矩阵对应的一个或一个以上新颖编码包。 以 ^^据编码矩阵获取 三个新颖性编码包为例, 分别以 A、 B、 C表示该三个新颖性编码包。
在上述步骤 102中, 转发节点随机生成第一组编码系数和第二组编码系 数。 以 (a, b, c )表示第一组编码系数, 以 (a,, b,, c,)表示第二组编码 系数。
在上述步骤 103 中, 转发节点采用第一组编码系数对一个或一个以上新 颖编码包进行编码, 获取一个再编码编码包。 具体地, 采用 (a, b, ( 对 、 B、 C进行编码, 获取再编码编码包 aA+bB+cC。
在上述步骤 104中, 转发节点根据再编码编码包、 第一组编码系数和第 二组编码系数生成转发编码包并广播给一个以上转发节点。 采用广播方式, 本转发节点的上游转发节点以及下游转发节点都有可能获取到该转发编码 包, 在该转发编码包广播后, 如果上游转发节点偷听到该转发编码包, 则上 游转发节点根据第一组编码系数和第二组编码系数更新存储的反馈矩阵; 如 果下游转发节点接收到该转发编码包, 则下游转发节点根据第一组编码系数 更新存储的编码矩阵。 生成转发编码包的具体方法为: 将一个再编码编码包、 第一组编码系数、 第二组编码系数和包头进行封装, 生成转发编码包。 具体 地, 将再编码编码包 aA+bB+cC、 第一组编码系数(a, b, c )、 第二组编码系 数(a,, b,, c,)以及包头封装在一起, 生成一个新的编码包作为转发编码包。 转发节点将该转发编码包广播给其它的一个以上转发节点。
本发明实施例的方法可以由通用集成电路(如中央处理器 CPU )或专用 集成电路 ( Application Specific Integrated Circuit, 简称 ASIC )执行。
在本发明实施例一中, 转发节点作为发送方, 其生成的转发编码包中除 了包括第一组编码系数和再编码编码包,还包括随机生成的第二组编码系数, 使得上游转发节点可以根据第一组编码系数和第二组编码系数更新反馈矩 阵, 通过该反馈矩阵更新编码矩阵, 从而根据该编码矩阵选择下一次转发的 新颖编码包, 因此, 以在转发编码包中加入一组编码系数的方式对新颖编码 包进行调整, 替代了现有技术中计算与收到的所有编码向量均正交的正交向 量的方式, 因此节省了正交向量计算所需的大量计算过程, 从而降低了功率 损耗。
图 2为本发明实施例二的编码包接收处理方法的流程图。 在本发明实施 例二中, 对于转发节点作为接收方所执行的方法流程进行说明。 在本发明实 施例二中, 在转发节点中设置緩存, 用于存储编码矩阵、 反馈矩阵和新颖编 码包, 其中, 编码矩阵中的每个元素对应一个新颖性编码包。 如图 2所示, 该方法包括如下过程。
步骤 201 : 本转发节点获取转发编码包。 转发编码包包括: 再编码编码 包、 第一组编码系数和第二组编码系数, 其中, 第一组编码系数为再编码编 码包的编码系数。
步骤 202: 当转发编码包来自下游转发节点时, 本转发节点根据第一组 编码系数和第二组编码系数更新存储的反馈矩阵。 当转发编码包来自上游转 发节点时, 本转发节点根据第一组编码系数更新存储的编码矩阵。 在本发明实施例二中, 转发节点作为接收方, 其接收的来自其它转发节 点的转发编码包中除了包括第一组编码系数和再编码编码包, 还包括随机生 成的第二组编码系数。 如果该转发编码包来自下游转发节点, 则根据第一组 编码系数和第二组编码系数更新反馈矩阵, 通过该反馈矩阵更新编码矩阵, 从而根据该编码矩阵选择下一次转发的新颖编码包, 如果该转发编码包来自 上游转发节点, 则根据第一组编码系数更新编码矩阵, 从而根据该编码矩阵 选择下一次转发的新颖编码包。 因此, 以在转发编码包中加入一组编码系数 的方式对新颖编码包进行调整, 替代了现有技术中计算与收到的所有编码向 量均正交的正交向量的方式, 因此节省了正交向量计算所需的大量计算过程, 从而降低了功率损耗。
本发明实施例的方法可以由通用集成电路(如中央处理器 CPU )或专用 集成电路(ASIC )执行。
图 3为本发明实施例三的编码包接收处理方法的流程图。 在本发明实施 例三中, 在转发节点中设置緩存, 用于存储编码矩阵、 反馈矩阵和新颖编码 包, 其中, 编码矩阵中的每个元素对应一个新颖性编码包。 如图 3所示, 该 方法包括如下过程。
步骤 301 : 本转发节点获取转发编码包。 转发编码包包括: 再编码编码 包、 第一组编码系数和第二组编码系数, 其中, 第一组编码系数为再编码编 码包的编码系数。
在本步骤中,本转发节点可以通过接收上游转发节点广播的转发编码包, 或者, 本转发节点也可以通过偷听下游转发节点广播的转发编码包来获取转 发编码包。 以本转发节点接收到的转发编码包为本发明实施例一的具体实现 方式中记载的转发编码包为例,该转发编码包包括:再编码编码包 aA+bB+cC、 第一组编码系数(a, b, c )、 第二组编码系数(a,, b,, c,)和包头。
步骤 302: 本转发节点判断获取的转发编码包来自上游转发节点或下游 转发节点。 如果来自下游转发节点, 执行步骤 311 ; 如果来自上游转发节点, 执行步骤 321。
步骤 311 : 本转发节点判断第一组编码系数与存储的反馈矩阵的线性相 关性。 如果相关, 执行步骤 312; 如果无关, 执行步骤 313。 在本步骤中, 判断第一组编码系数与存储的反馈矩阵的线性相关性时, 为采用高斯消元法, 即, 将第一组编码系数(a, b, c )与反馈矩阵进行高斯 消元。
步骤 312: 本转发节点丟弃第一组编码系数(a, b, c ) 。 然后执行步骤
314。
步骤 313: 本转发节点将第一组编码系数加入反馈矩阵。 在步骤 313之 后, 可以仅执行步骤 314, 还可以在执行步骤 314的同时执行步骤 317。
在本步骤中, 将第一组编码系数(a, b, c )加入反馈矩阵。 因为对反馈 矩阵进行了修改, 因此需要重新对反馈矩阵与编码矩阵进行线性相关性分析, 并且, 由于后续步骤中还有可能根据第二组编码系数修改反馈矩阵, 所以该 线性相关性分析的步骤可以在步骤 313之后立即执行, 也可以等待一下的步 骤 314至步骤 316之后再执行。
步骤 314: 本转发节点判断第二组编码系数与反馈矩阵的线性相关性。 如果相关, 执行步骤 315; 如果无关, 执行步骤 316。
在本步骤中, 判断第二组编码系数与存储的反馈矩阵的线性相关性时, 为采用高斯消元法, 即, 将第二组编码系数( a' , b', c' )与反馈矩阵进行高 斯消元。
步骤 315: 本转发节点丟弃第二组编码系数(a,, b,, c,)。
在本步骤之后, 虽然没有根据第二组编码系数对反馈矩阵进行修改, 但 是在前述步骤中, 有可能根据第二组编码系数对反馈矩阵进行了修改, 因此 在本步骤之后,有可能需要重新对反馈矩阵与编码矩阵进行线性相关性分析。 具体地, 在步骤 315之后, 如果前述步骤是由步骤 313进入步骤 314的, 并 且在步骤 313之后没有执行步骤 317, 则可以在步骤 315之后执行步骤 317。 如果前述步骤是由步骤 312进入步骤 314的, 或者, 虽然前述步骤是由步骤 313进入步骤 314的, 但是在步骤 313之后已经执行步骤 317, 则在步骤 315 之后不执行步骤 317, 结束流程。
步骤 316: 本转发节点将第二组编码系数加入反馈矩阵。 然后执行步骤 在本步骤中, 将第二组编码系数(a,, b,, c,)加入反馈矩阵。 因为对反 馈矩阵进行了修改, 因此需要重新对反馈矩阵与编码矩阵进行线性相关性分 析, 因此继续执行后续步骤 317。
步骤 317: 本转发节点判断编码矩阵中的每一个编码向量与反馈矩阵的 线性相关性。 如果相关, 执行步骤 318; 如果无关, 保持编码矩阵不变。
步骤 318: 本转发节点从编码矩阵中删除该编码向量, 并删除存储的该 编码向量对应的新颖编码包。 在步骤 318之后, 因为对编码矩阵中的编码向 量进行了删除, 则还可以进一步执行步骤 319。
步骤 319: 本转发节点判断编码矩阵是否为空, 如果为空, 停止向其它 转发节点发送转发编码包; 如果不为空, 不停止向其它转发节点发送转发编 码包。
步骤 321 : 本转发节点判断第一组编码系数与存储的编码矩阵的线性相 关性, 如果相关, 执行步骤 322; 如果无关, 执行步骤 323。
在本步骤中, 判断第一组编码系数与存储的编码矩阵的线性相关性时, 为采用高斯消元法, 即, 将第一组编码系数(a, b, c )与编码矩阵进行高斯 消元。
步骤 322: 本转发节点丟弃第一组编码系数(a, b, c )。
步骤 323: 本转发节点将第一组编码系数(a, b, c )加入编码矩阵。 在 步骤 323之后, 还可以进一步执行步骤 324。
步骤 324: 本转发节点根据第一组编码系数(a, b, c )解码再编码编码 包 aA+bB+cC, 获取并存储第一组编码系数(a, b, c )对应的一个或一个以 上新颖编码包 A、 B、 C。
在本发明实施例三中, 转发节点作为接收方。 如果接收的转发编码包来 自下游转发节点, 则根据第一组编码系数和第二组编码系数与反馈矩阵进行 线性相关性分析, 更新反馈矩阵, 并通过该反馈矩阵更新编码矩阵, 从而根据该编码矩阵选择下一次转发的新颖编码包。 如果接收的转发编码包 来自上游转发节点,则根据第一组编码系数与编码矩阵进行线性相关性分析, 更新编码矩阵, 从而根据该编码矩阵选择下一次转发的新颖编码包。 因此, 以在转发编码包中加入一组编码系数的方式对新颖编码包进行调整, 替代了 现有技术中计算与收到的所有编码向量均正交的正交向量的方式, 因此节省 了正交向量计算所需的大量计算过程, 从而降低了功率损耗。
在以上的实施例一至三中, 仅分别以转发节点作为发送方或接收方的其 中一方为例, 对转发节点的处理流程进行了说明, 在实际应用中, 每个转发 节点既作为接收方又作为发送方, 同时执行上述实施例一至三中所记载的方 法。 在此情况下, 实施例一中记载的步骤 101的具体过程可以包括实施例三 中的步骤 301至步骤 302和步骤 321至步骤 324,采用上述步骤替代步骤 101 , 在上述步骤之后执行步骤 102。
本发明实施例的方法可以由通用集成电路(如中央处理器 CPU )或专用 集成电路(ASIC )执行。
图 4为本发明实施例四的转发节点的结构示意图。 如图 4所示, 该转发 节点至少包括: 获取模块 41、 编码系数生成模块 42、 再编码模块 43、 转发 编码包生成模块 44和发送模块 45。
其中,获取模块 41用于获取来自上游转发节点的一个或一个以上新颖编 码包。 编码系数生成模块 42 用于随机生成第一组编码系数和第二组编码系 数。再编码模块 43用于采用第一组编码系数对一个或一个以上新颖编码包进 行编码, 获取一个再编码编码包。 转发编码包生成模块 44用于根据一个再编 码编码包、 第一组编码系数和第二组编码系数生成转发编码包。 发送模块 45 用于将转发编码包广播给一个以上转发节点, 以使上游转发节点根据第一组 编码系数和第二组编码系数更新存储的反馈矩阵, 下游转发节点根据第一组 编码系数更新存储的编码矩阵。
在上述技术方案的基础上, 进一步地, 获取模块 41具体用于获取来自上 游转发节点的转发编码包。 该来自上游转发节点的转发编码包包括: 来自上 游转发节点的再编码编码包、 来自上游转发节点的第一组编码系数和来自上 游转发节点的第二组编码系数, 该来自上游转发节点的第一组编码系数为该 来自上游转发节点的再编码编码包的编码系数。获取模块 41还具体用于判断 该来自上游转发节点的第一组编码系数与存储的编码矩阵的线性相关性, 当 无关时, 根据该来自上游转发节点的第一组编码系数解码来自上游转发节点 的再编码编码包, 获取该来自上游转发节点的第一组编码系数对应的来自上 游转发节点的一个或一个以上新颖编码包。 在上述技术方案的基础上, 进一步地, 该转发编码包生成模块 44具体用 于将一个再编码编码包、 第一组编码系数、 第二组编码系数和包头封装为转 发编码包。
本发明实施例的装置、 模块、 单元可以是通用集成电路(如中央处理器 CPU )或专用集成电路(ASIC )等。
在本发明实施例四中, 转发节点作为发送方转发节点, 转发编码包生成 模块生成的转发编码包中除了包括编码系数生成模块生成的第一组编码系数 和再编码模块生成的再编码编码包, 还包括编码系数生成模块随机生成的第 二组编码系数, 使得上游转发节点可以根据第一组编码系数和第二组编码系 数更新反馈矩阵, 通过该反馈矩阵更新编码矩阵, 从而根据该编码矩阵选择 下一次转发的新颖编码包, 因此节省了现有技术中正交向量计算所需的大量 计算过程, 从而降低了功率损耗。
图 5为本发明实施例五的转发节点的结构示意图。 如图 5所示, 该转发 节点至少包括: 获取模块 51、 第一控制模块 52和第二控制模块 53。
其中, 获取模块 51用于获取转发编码包。 该转发编码包包括: 再编码编 码包、 第一组编码系数和第二组编码系数, 其中, 第一组编码系数为再编码 编码包的编码系数。 第一控制模块 52 用于当转发编码包来自下游转发节点 时, 根据第一组编码系数和第二组编码系数更新存储的反馈矩阵。 第二控制 模块 53 , 用于当转发编码包来自上游转发节点时, 根据第一组编码系数更新 存储的编码矩阵。
在上述技术方案的基础上, 进一步地, 获取模块 51具体用于接收上游转 发节点广播的转发编码包。 或者, 获取模块 51具体用于偷听下游转发节点广 播的转发编码包。
在上述技术方案的基础上, 进一步地, 第一控制模块 52具体用于判断第 一组编码系数与存储的反馈矩阵的线性相关性, 如果相关, 丟弃第一组编码 系数, 如果无关, 将第一组编码系数加入反馈矩阵。 第一控制模块 52还具体 用于判断第二组编码系数与反馈矩阵的线性相关性, 如果相关, 丟弃第二组 编码系数, 如果无关, 将第二组编码系数加入反馈矩阵。
在上述技术方案的基础上, 进一步地, 第一控制模块 52还用于判断编码 矩阵中的每一个编码向量与反馈矩阵的线性相关性, 如果相关, 从编码矩阵 中删除该编码向量, 删除存储的该编码向量对应的新颖编码包。
在上述技术方案的基础上, 进一步地, 第一控制模块 52还用于判断编码 矩阵是否为空, 如果为空, 停止发送转发编码包。
在上述技术方案的基础上, 进一步地, 第二控制模块 53具体用于判断第 一组编码系数与存储的编码矩阵的线性相关性, 如果相关, 丟弃第一组编码 系数, 如果无关, 将第一组编码系数加入编码矩阵。
在上述技术方案的基础上, 进一步地, 第二控制模块 53还用于根据第一 组编码系数解码再编码编码包, 获取并存储第一组编码系数对应的一个或一 个以上新颖编码包。
在本发明实施例五中, 转发节点作为接收方转发节点, 获取模块获取的 来自其它转发节点的转发编码包中除了包括第一组编码系数和再编码编码 包, 还包括随机生成的第二组编码系数。 如果该转发编码包来自下游转发节 点, 则第一控制模块根据第一组编码系数和第二组编码系数更新反馈矩阵, 通过该反馈矩阵更新编码矩阵, 从而根据该编码矩阵选择下一次转发的新颖 编码包, 如果该转发编码包来自上游转发节点, 则第二控制模块根据第一组 编码系数更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包。 因此, 以在转发编码包中加入一组编码系数的方式对新颖编码包进行调整, 替代了现有技术中计算与收到的所有编码向量均正交的正交向量的方式, 因 此节省了正交向量计算所需的大量计算过程, 从而降低了功率损耗。
在以上的实施例四和实施例五中, 仅分别以转发节点作为发送方转发节 点或接收方转发节点的其中一方为例, 对转发节点的组成结构进行了说明, 在实际应用中, 每个转发节点可以既作为接收方转发节点又作为发送方转发 节点, 同时具备上述实施例四和实施例五中所记载的组成结构, 在此情况下, 实施例四中记载的获耳 莫块 41可以被实施例五中的获耳 莫块 51结合第二控 制模块 53替代。
上述本发明实施例记载的技术方案中, 采用累计反馈确认( Cumulative Feedback Acknowledgments , 简称 CFACK ) 的转发方法, 其路由寻址与其它 机会路由协议相同, 即: 对于一个给定的目标节点, 所有节点向前发送的优 先级依据发送一个包到目标节点的传输次数的期望 (Expect, 简称 ETX )值 的升序排列由高到低。 作为转发节点的优先级越高越好。 在本发明实施例中, 转发节点的优先级可以采用任何度量值, 一种优选实现方案中采用 ETX[3]值 作为度量值, 还可以采用吞吐量作为度量值。 为了避免太多的转发节点导致 通信介质的竟争太激烈, 在本发明实施例中可以限制转发节点的数目, 例如 转发节点的数目最多为 8个。 与其它的基于网络编码的机会路由方案类似, 本 发明实施例的技术方案中, 采用的 于块的流内随机线性编码。 其中每个 编码块的大小为 32个包。 随机线性编码的编码系数取自 28大小的伽罗瓦域。 为了解决节点应该发送多少编码包的问题, 本发明实施例的技术方案中源节 点和每个转发节点维护两个编码向量矩阵, 即: 编码矩阵和反馈矩阵, 其中, 编码矩阵里面存放来自上游节点的新颖编码包的编码向量, 反馈矩阵里面存 放来自下游节点的线性无关的编码向量。 每个节点还同时维护一个緩存用来 存储尚未被确认的编码包。 緩存中的编码包与编码矩阵中的编码向量有—— 对应关系。
采用本发明实施例的技术方案, 在实验中随机生成 110个拓朴, 每个拓朴 运行 12次, 记录每个协议在每个拓朴上每次运行的吞吐量, 并求平均吞吐量。 实验结果表明, 本发明实施例提出的 CFACK的性能优于现有技术中 CCACK 的性能。 具体地, CCACK和 CFACK的中位数吞吐量分别为 49.526KBps和 82.254KBps。 CCACK在所有 110场景中发包次数都多于预测的次数。 实际发 包数目基本都是预测数目的两倍, 有的时候甚至达到了 6至 7倍。 其原因在于, CCACK不能直接判断编码包之间的线性关系, 因此导致发送许多不必要的编 码包。 而 CFACK在所有场景的发包数目都少于 CCACK, 在大部分场景, CFACK的发包数目都跟预测值比较靠近, 在一些场景中甚至会低于预测值。
本发明实施例的装置、 模块、 单元可以是通用集成电路(如中央处理器 CPU )或专用集成电路(ASIC )等。
需要说明的是: 对于前述的各方法实施例, 为了简单描述, 故将其都表 述为一系列的动作组合, 但是本领域技术人员应该知悉, 本发明并不受所描 述的动作顺序的限制, 因为依据本发明, 某些步骤可以采用其他顺序或者同 时进行。 其次, 本领域技术人员也应该知悉, 说明书中所描述的实施例均属 于优选实施例, 所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中, 对各个实施例的描述都各有侧重, 某个实施例中没有 详述的部分, 可以参见其他实施例的相关描述。 本领域普通技术人员可以理解: 实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读 取存储介质中, 该程序在执行时, 执行包括上述方法实施例的步骤; 而前述 的存储介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存储程序代码的介 质。
最后应说明的是: 以上实施例仅用以说明本发明的技术方案, 而非对其 限制; 尽管参照前述实施例对本发明进行了详细的说明, 本领域的普通技术 人员应当理解: 其依然可以对前述各实施例所记载的技术方案进行修改, 或 者对其中部分技术特征进行等同替换; 而这些修改或者替换, 并不使相应技 术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims

权 利 要求
1、 一种编码包转发方法, 其特征在于, 包括:
获取来自上游转发节点的一个或一个以上新颖编码包;
随机生成第一组编码系数和第二组编码系数;
采用所述第一组编码系数对所述一个或一个以上新颖编码包进行编码, 获取一个再编码编码包;
根据所述一个再编码编码包、 所述第一组编码系数和所述第二组编码系 数生成转发编码包并广播给一个以上转发节点, 以使上游转发节点根据所述 第一组编码系数和第二组编码系数更新存储的反馈矩阵, 下游转发节点根据 所述第一组编码系数更新存储的编码矩阵。
2、 根据权利要求 1所述的方法, 其特征在于, 所述获取来自上游转发节 点的一个或一个以上新颖编码包包括:
获取来自上游转发节点的转发编码包, 所述来自上游转发节点的转发编 码包包括: 来自上游转发节点的再编码编码包、 来自上游转发节点的第一组 编码系数和来自上游转发节点的第二组编码系数, 所述来自上游转发节点的 第一组编码系数为所述来自上游转发节点的再编码编码包的编码系数;
判断所述来自上游转发节点的第一组编码系数与存储的编码矩阵的线性 相关性, 当无关时, 根据所述来自上游转发节点的第一组编码系数解码所述 来自上游转发节点的再编码编码包, 获取所述来自上游转发节点的第一组编 码系数对应的来自上游转发节点的一个或一个以上新颖编码包。
3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述根据所述一个再 编码编码包、 所述第一组编码系数和所述第二组编码系数生成转发编码包包 括:
将所述一个再编码编码包、 所述第一组编码系数、 所述第二组编码系数 和包头封装为所述转发编码包。
4、 一种编码包接收处理方法, 其特征在于, 包括:
获取转发编码包, 所述转发编码包包括: 再编码编码包、 第一组编码系 数和第二组编码系数,所述第一组编码系数为所述再编码编码包的编码系数; 当所述转发编码包来自下游转发节点时, 根据所述第一组编码系数和第 二组编码系数更新存储的反馈矩阵; 当所述转发编码包来自上游转发节点时, 根据所述第一组编码系数更新 存储的编码矩阵。
5、根据权利要求 4所述的方法,其特征在于,所述获取转发编码包包括: 接收上游转发节点广播的转发编码包;
或, 偷听下游转发节点广播的转发编码包。
6、 根据权利要求 4或 5所述的方法, 其特征在于, 所述根据所述第一组 编码系数和第二组编码系数更新存储的反馈矩阵包括:
判断所述第一组编码系数与所述存储的反馈矩阵的线性相关性, 如果相 关, 丟弃所述第一组编码系数, 如果无关, 将所述第一组编码系数加入所述 反馈矩阵;
判断所述第二组编码系数与所述反馈矩阵的线性相关性, 如果相关, 丟 弃所述第二组编码系数, 如果无关, 将所述第二组编码系数加入所述反馈矩 阵。
7、 根据权利要求 6所述的方法, 其特征在于, 所述将所述第一组编码系 数加入所述反馈矩阵之后, 和 /或, 所述将所述第二组编码系数加入所述反馈 矩阵之后, 该方法还包括:
判断所述编码矩阵中的每一个编码向量与所述反馈矩阵的线性相关性 , 如果相关, 从所述编码矩阵中删除该编码向量, 删除存储的该编码向量对应 的新颖编码包。
8、 根据权利要求 7所述的方法, 其特征在于, 所述从所述编码矩阵中删 除该编码向量之后, 该方法还包括:
判断所述编码矩阵是否为空, 如果为空, 停止发送转发编码包。
9、 根据权利要求 4或 5所述的方法, 其特征在于, 所述根据所述第一组 编码系数更新存储的编码矩阵包括:
判断所述第一组编码系数与所述存储的编码矩阵的线性相关性, 如果相 关, 丟弃所述第一组编码系数, 如果无关, 将所述第一组编码系数加入所述 编码矩阵。
10、 根据权利要求 9所述的方法, 其特征在于, 所述将所述第一组编码 系数加入所述编码矩阵之后, 该方法还包括:
根据所述第一组编码系数解码所述再编码编码包, 获取并存储所述第一 组编码系数对应的一个或一个以上新颖编码包。
11、 一种转发节点, 其特征在于, 包括:
获取模块, 用于获取来自上游转发节点的一个或一个以上新颖编码包; 编码系数生成模块, 用于随机生成第一组编码系数和第二组编码系数; 再编码模块, 用于采用所述第一组编码系数对所述一个或一个以上新颖 编码包进行编码, 获取一个再编码编码包;
转发编码包生成模块, 用于根据所述一个再编码编码包、 所述第一组编 码系数和所述第二组编码系数生成转发编码包;
发送模块, 用于将所述转发编码包广播给一个以上转发节点, 以使上游 转发节点根据所述第一组编码系数和第二组编码系数更新存储的反馈矩阵, 下游转发节点根据所述第一组编码系数更新存储的编码矩阵。
12、 根据权利要求 11所述的转发节点, 其特征在于,
所述获取模块具体用于获取来自上游转发节点的转发编码包; 所述来自 上游转发节点的转发编码包包括: 来自上游转发节点的再编码编码包、 来自 上游转发节点的第一组编码系数和来自上游转发节点的第二组编码系数, 所 述来自上游转发节点的第一组编码系数为所述来自上游转发节点的再编码编 码包的编码系数; 所述获取模块还具体用于判断所述来自上游转发节点的第 一组编码系数与存储的编码矩阵的线性相关性, 当无关时, 根据所述来自上 游转发节点的第一组编码系数解码所述来自上游转发节点的再编码编码包, 获取所述来自上游转发节点的第一组编码系数对应的来自上游转发节点的一 个或一个以上新颖编码包。
13、 根据权利要求 11或 12所述的转发节点, 其特征在于,
所述转发编码包生成模块具体用于将所述一个再编码编码包、 所述第一 组编码系数、 所述第二组编码系数和包头封装为所述转发编码包。
14、 一种转发节点, 其特征在于, 包括:
获取模块, 用于获取转发编码包, 所述转发编码包包括: 再编码编码包、 第一组编码系数和第二组编码系数, 所述第一组编码系数为所述再编码编码 包的编码系数;
第一控制模块, 用于当所述转发编码包来自下游转发节点时, 根据所述 第一组编码系数和第二组编码系数更新存储的反馈矩阵; 第二控制模块, 用于当所述转发编码包来自上游转发节点时, 根据所述 第一组编码系数更新存储的编码矩阵。
15、 根据权利要求 14所述的转发节点, 其特征在于,
所述获取模块具体用于接收上游转发节点广播的转发编码包;
或, 所述获取模块具体用于偷听下游转发节点广播的转发编码包。
16、 根据权利要求 14或 15所述的转发节点, 其特征在于,
所述第一控制模块具体用于判断所述第一组编码系数与所述存储的反馈 矩阵的线性相关性, 如果相关, 丟弃所述第一组编码系数, 如果无关, 将所 述第一组编码系数加入所述反馈矩阵;
所述第一控制模块还具体用于判断所述第二组编码系数与所述反馈矩阵 的线性相关性, 如果相关, 丟弃所述第二组编码系数, 如果无关, 将所述第 二组编码系数加入所述反馈矩阵。
17、 根据权利要求 16所述的转发节点, 其特征在于,
所述第一控制模块还用于判断所述编码矩阵中的每一个编码向量与所述 反馈矩阵的线性相关性, 如果相关, 从所述编码矩阵中删除该编码向量, 删 除存储的该编码向量对应的新颖编码包。
18、 根据权利要求 17所述的转发节点, 其特征在于,
所述第一控制模块还用于判断所述编码矩阵是否为空, 如果为空, 停止 发送转发编码包。
19、 根据权利要求 14或 15所述的转发节点, 其特征在于,
所述第二控制模块具体用于判断所述第一组编码系数与所述存储的编码 矩阵的线性相关性, 如果相关, 丟弃所述第一组编码系数, 如果无关, 将所 述第一组编码系数加入所述编码矩阵。
20、 根据权利要求 19所述的转发节点, 其特征在于,
所述第二控制模块还用于根据所述第一组编码系数解码所述再编码编码 包, 获取并存储所述第一组编码系数对应的一个或一个以上新颖编码包。
PCT/CN2011/083534 2011-02-28 2011-12-06 编码包转发方法、编码包接收处理方法和转发节点 WO2012116564A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110047869.8 2011-02-28
CN 201110047869 CN102104446B (zh) 2011-02-28 2011-02-28 编码包转发方法、编码包接收处理方法和转发节点

Publications (1)

Publication Number Publication Date
WO2012116564A1 true WO2012116564A1 (zh) 2012-09-07

Family

ID=44157000

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/083534 WO2012116564A1 (zh) 2011-02-28 2011-12-06 编码包转发方法、编码包接收处理方法和转发节点

Country Status (2)

Country Link
CN (1) CN102104446B (zh)
WO (1) WO2012116564A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104446B (zh) * 2011-02-28 2013-01-30 华为技术有限公司 编码包转发方法、编码包接收处理方法和转发节点
CN105634946B (zh) * 2016-01-05 2018-10-02 大连大学 卫星网络中基于网络编码的机会路由算法
CN108848035A (zh) * 2018-05-08 2018-11-20 昆明理工大学 一种智能电网中基于部分网络编码的机会路由算法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005062472A1 (en) * 2003-12-12 2005-07-07 Analog Devices, Inc. Encoding and decoding of reed-solomon codes using look-up tables for galois field multiplications
CN101257366A (zh) * 2008-03-27 2008-09-03 华为技术有限公司 编解码方法、通讯系统及设备
US20080253443A1 (en) * 2007-04-16 2008-10-16 Texas Instruments Incorporated Entropy coding for digital codecs
US20100332955A1 (en) * 2009-06-30 2010-12-30 Anobit Technologies Ltd. Chien search using multiple basis representation
CN102104446A (zh) * 2011-02-28 2011-06-22 华为技术有限公司 编码包转发方法、编码包接收处理方法和转发节点

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005062472A1 (en) * 2003-12-12 2005-07-07 Analog Devices, Inc. Encoding and decoding of reed-solomon codes using look-up tables for galois field multiplications
US20080253443A1 (en) * 2007-04-16 2008-10-16 Texas Instruments Incorporated Entropy coding for digital codecs
CN101257366A (zh) * 2008-03-27 2008-09-03 华为技术有限公司 编解码方法、通讯系统及设备
US20100332955A1 (en) * 2009-06-30 2010-12-30 Anobit Technologies Ltd. Chien search using multiple basis representation
CN102104446A (zh) * 2011-02-28 2011-06-22 华为技术有限公司 编码包转发方法、编码包接收处理方法和转发节点

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KOUTSONIKOLAS, DIMITRIOS ET AL.: "CCACK: Efficient Network Coding Based Opportunistic Routing Through Cumulative Coded Acknowledgments.", TR-ECE-09-13, 16 December 2009 (2009-12-16) *

Also Published As

Publication number Publication date
CN102104446A (zh) 2011-06-22
CN102104446B (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
US12010016B2 (en) Data stream transmission method and device
Lim et al. Design of efficient multicast protocol for IEEE 802.11 n WLANs and cross-layer optimization for scalable video streaming
KR101605062B1 (ko) 통신 장비에 송신될 인코딩된 심벌을 재-인코딩하기 위한 네트워크 재-인코딩 방법 및 디바이스
CN103023813B (zh) 抖动缓冲器
Kwon et al. MPMTP: Multipath multimedia transport protocol using systematic raptor codes over wireless networks
WO2014179937A1 (zh) 一种编码及解码的方法、设备和系统
WO2017112744A1 (en) Improved joint fountain coding and network coding for loss-tolerant information spreading
JP2008546230A (ja) インバンド誤りパターンを使用する誤り回復のための装置と方法
CN107249203B (zh) 一种基于喷泉码的车联网远距离数据通信中继代理方法
Lin et al. Adaptive network coding for broadband wireless access networks
CN113055285A (zh) 基于mptcp与网络编码的自适应数据传输方法
Toemoeskoezi et al. On the delay characteristics for point-to-point links using random linear network coding with on-the-fly coding capabilities
Nguyen et al. Hybrid ARQ-random network coding for wireless media streaming
WO2012116564A1 (zh) 编码包转发方法、编码包接收处理方法和转发节点
US10523790B2 (en) System and method of header compression for online network codes
WO2017219216A1 (zh) 一种数据传输方法、相关设备及系统
Taghouti et al. Random linear network coding for streams with unequally sized packets: Overhead reduction without zero-padded schemes
JP5324704B2 (ja) 帯域幅自己適応型ランク付けデータ保護方法及び装置
Ahmad et al. Robust live unicast video streaming with rateless codes
CN105187326A (zh) 一种两跳无线网络拓扑结构中的网络编码侦听管理方法
Toemoeskoezi et al. On the packet delay characteristics for serially-connected links using random linear network coding with and without recoding
CN103023615A (zh) 一种在OpenFlow交换机上实现网络编码的方法
CN113133033B (zh) 一种拓扑感知随机线性网络编码重传方法
Tan et al. PNCRM: a novel real-time multicast scheme in MANETs based on partial network coding
Naderi et al. Performance analysis of selected error control protocols in wireless multimedia sensor networks

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: 11859858

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: 11859858

Country of ref document: EP

Kind code of ref document: A1