WO2014043908A1 - Method and apparatus for multi-source dynamic network coding - Google Patents

Method and apparatus for multi-source dynamic network coding Download PDF

Info

Publication number
WO2014043908A1
WO2014043908A1 PCT/CN2012/081820 CN2012081820W WO2014043908A1 WO 2014043908 A1 WO2014043908 A1 WO 2014043908A1 CN 2012081820 W CN2012081820 W CN 2012081820W WO 2014043908 A1 WO2014043908 A1 WO 2014043908A1
Authority
WO
WIPO (PCT)
Prior art keywords
path
node
source
paths
link
Prior art date
Application number
PCT/CN2012/081820
Other languages
French (fr)
Chinese (zh)
Inventor
李挥
侯韩旭
冯俊秋
张华宇
朱兵
韩元波
Original Assignee
北京大学深圳研究生院
深圳市矽伟智科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京大学深圳研究生院, 深圳市矽伟智科技有限公司 filed Critical 北京大学深圳研究生院
Priority to CN201280075605.6A priority Critical patent/CN104704760B/en
Priority to PCT/CN2012/081820 priority patent/WO2014043908A1/en
Publication of WO2014043908A1 publication Critical patent/WO2014043908A1/en

Links

Classifications

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

Definitions

  • the present invention relates to the field of network coding, and more particularly to a method and apparatus for multi-source dynamic network coding.
  • 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 the input multiple streams of information before sending, the network communication can be maximized.
  • This type of network coding is called intra-session network coding.
  • the data output by the intermediate node is a linear combination of the input data.
  • the receiving node can decode when it receives enough independent coded packets.
  • This type of network coding is called multi-source network coding, also known as multi-session network. Encoding problems or inter-session networks give coding problems.
  • PA poison-antidote method
  • the PA tracks all sessions.
  • the coded packet is called a poison
  • the packet used for decoding is called an antidote. Every time a poison is produced, an antidote must be sent immediately; the PA uses an XOR encoding method.
  • the disadvantage of PA is its high complexity, which has a complexity of at least 0 ( ⁇ 1 £ 11 V I), where m is the number of sessions, k is the number of sessions allowed to encode, and does not take into account dynamic changes in the network.
  • the intermediate node uses selective random linear coding, and the coding coefficients are controlled by genetic algorithms. Its shortcomings ⁇ because the algorithm will become more complicated as the number of sessions increases, making the SRLC algorithm very complex, and does not consider the dynamic changes of the network.
  • PINC For the above two inter-session network coding algorithm PINC: PINC only allows encoding two data packets, the coding uses random linear network coding. The disadvantage is that the complexity is high, and only the encoding between the two sessions is allowed, and the throughput is reduced.
  • the technical problem to be solved by the present invention is to provide a multi-source dynamic network with low complexity and low data throughput, which is high in complexity of the above-mentioned coding and may reduce data throughput. Coding method and device.
  • the source node selects one or more data packets to be transmitted on multiple paths to the receiving node according to the encoded path data received by the source node;
  • the intermediate node encodes and transmits the data packets sent by different source nodes it receives to the receiving node.
  • step A) further includes:
  • A1 searching for a data transmission path from the source node to the receiving node according to the data request that the receiving node sends to the source node; and storing the found path set on the source node ;
  • the receiving node reversely routes to the source node, obtains multiple links included in each path, and stores the link parameters on the tail node of the link;
  • the link parameters include: a source node involved, a receiving node, a number of paths, and a path number of the link.
  • the step A) further includes:
  • step C) further includes:
  • step C1) judging whether the number of data packets
  • step C2) setting the path of the link from the source node to the receiving node as a non-encoding path, and jumping to step C4);
  • step D determining whether all paths from the source node to the receiving node in the session are set, and if so, performing step D); otherwise, repeating steps CI) - C4 for the remaining intermediate nodes.
  • the step D) further includes: if there is no coding path in all paths of the source node to the receiving node, the source node sends the same data packet on all paths; If there are A coding paths in all the paths from the source node to the receiving node, and the number of paths from the source node to the receiving node is greater than the number of the encoded paths, then the source node is in all
  • the steps A) - E) are performed on the changed receiving node and the source node requesting the data.
  • the intermediate node XORs the data packets from different source nodes and transmits the encoded data packets on the link.
  • the invention also relates to an apparatus for implementing the above method, comprising:
  • a pre-processing unit configured to perform pre-processing on a source node, a receiving node, and an intermediate node involved in the session for multiple sessions existing on the current network, so that the source node involved in the session obtains the current The path parameter of the session, and the tail node of the multiple links involved in the session obtains its link parameters;
  • An initial stage data packet sending unit configured to send the same data packet on all paths of a receiving node to which the source node currently requests data;
  • the encoding path setting unit is configured to sequentially determine the number of data packets transmitted from different sessions on each link in the path, for example, if there is only one data packet, setting a path involving the link in the session to a non-encoding path If the number of data packets transmitted from different sessions on the link is
  • - i paths are coded paths, the remaining path is a non-coded path, and the source node involved in the coded path is notified;
  • a packet transmitting unit is configured to cause the source node to receive the encoded path according to the source path Data, selecting one or more data packets to be respectively transmitted on multiple paths to the receiving node;
  • Coding unit configured to cause the intermediate node to encode and transmit a data packet sent by a different source node that it receives to the receiving node.
  • the pre-processing unit further includes:
  • a forward path search module configured to search for a data transmission path from the source node to the receiving node according to a data request that is sent by the receiving node to the source node; and on the source node Store the set of found paths;
  • the reverse path searching module is configured to: in turn, reversely route the receiving node to the source node according to the obtained path, obtain multiple links included in each path, and store the link on the tail node of the link.
  • the link parameter includes: a source node, a receiving node, a number of paths, and a path number of the link;
  • Initial Path Setup Module Used to set all paths to non-coded paths at the beginning. Further, the encoding path setting unit further includes:
  • a link receiving data packet judging module configured to determine whether the number of data packets
  • the non-coding path setting module is configured to: when the data packet received by the link is 1, set a path where the link is located, and the path from the source node to the receiving node is a non-encoding path;
  • An encoding path setting module configured to set, in the path of the different source node to the receiving node, the encoding path, and the remaining one is a non-encoding path, and notify the source node;
  • a setting completion judgment module configured to determine, by the source node to the receiving node in the session Whether all paths are set.
  • the method and apparatus for implementing the multi-source dynamic network coding of the present invention have the following beneficial effects: instead of performing network coding on all input data of a node, only performing network coding on the required data and using an exclusive OR coding method, The coding is less complex and does not reduce data throughput.
  • FIG. 1 is a flowchart of a method in a method and apparatus for multi-source dynamic network coding according to the present invention
  • FIG. 2 is a specific flowchart of a pre-processing step in the embodiment
  • Figure 3 is a flow chart showing the setting of the encoding path in the embodiment
  • Figure 5 is a schematic view showing a topology of the embodiment
  • Figure 6 is a schematic view showing another topology of the embodiment.
  • Figure 7 is a schematic structural view of the device in the embodiment.
  • the multi-source dynamic network coding method includes the following steps:
  • Step S11 performs pre-processing on the path between each source node and the receiving node according to the current data request:
  • the set of source nodes to the network is ⁇ s 1 s 2 , s h ⁇
  • the set of receiving nodes is ⁇ t 1 t 2
  • the multicast session is represented as ( Si , Ti).
  • i l, 2, ..., h.
  • Each multicast session (s i T is represented by
  • unicast sessions (s i tj), 7;, ⁇ 1,2,..., ⁇ 7; ⁇ .
  • is the number of elements of the set,
  • is also the maximum flow of the session (s i tj).
  • Each receiving node tj is described by three parameters (S(tj), L(tj), Rj).
  • S(tj) is a set of source nodes requested by the receiving node tj, and a path set from the source set S(tj) to the receiving node tj is represented by Rj
  • the set of links used by the receiving node tj when receiving the source is L(tj).
  • the set of receiving nodes that are using link e is denoted by T e .
  • Tail(e) indicates the tail node of the directed link e, and the number of sessions transmitted by link e is expressed as). Since the capacity of all links is unit capacity, any link does not transmit data or transmits a data amount per unit time.
  • Each intermediate node records some identification information, which is information that the source node uses its downlink and information that the source requested by the receiving node uses its link. All intermediate nodes only need to assign appropriate coding packets to their downlinks based on these identification information. The source node only needs to count the encoded information fed back from the intermediate node and allocate the packet on its path.
  • each session is processed according to the method of step S11-step S15, but for the convenience of description, it is not repeated one by one.
  • Step S12 The source node transmits the same data packet on each path to the receiving node: in this step, since each of the source nodes obtains a path capable of reaching the receiving node to which the data request is sent in the foregoing preprocessing step Therefore, a source node sends the same data packet on all paths of a receiving node that currently requests data; likewise, each source node is able to reach a data request to which it is sent in this step. The same packet is sent on the path of the receiving node.
  • the intermediate node on the path of step S13 sets the coding path according to the data packet parameters received by the node, and reports the source path to the source node.
  • the number of coding paths is the number of coding paths in the path set R ld .
  • each of the receiving nodes T e selects ( ⁇ R(e) ⁇ -l ) paths as encoding paths, the other is non-encoding paths, and the number of encoding paths Feedback to the corresponding source node.
  • the encoded packet has 1) 1 data packet to participate in the encoding, so an additional encoding packet that is not linearly related to it is needed to solve the encoded packet.
  • the intermediate node selects (wl-1) paths as the encoding path and feeds back to the corresponding source node, and then the source node allocates (( e )ll) to the receiving node that received the encoded packet.
  • the other is the encoding path. That is to say, in this step, the number of data packets from different sessions transmitted on each link in the path is determined in turn, for example, if there is only one data packet, the path related to the link in the session is set to be non-coded.
  • Step S14 The source node sends one or multiple data packets according to the encoding path parameter: In this step, a source node selects one or more data packets according to the encoded path data received by the source node respectively.
  • the node transmits to multiple paths of a receiving node; in fact, in this embodiment, one source node may need to send the same or different data packets for different receiving nodes, so, in this step, similarly, The above one source node may repeat the above operations for different receiving nodes respectively.
  • the session has IR l paths, where there are j encoding paths
  • the receiving node is enabled to decode the encoded packet transmitted in the encoding path, and the source node selects a non-encoding path for each encoding path, and transmits the same data packet in the encoding path and the non-encoding path. Therefore, it is possible to transmit (IR l- ⁇ ) different data packets in up to IR paths.
  • Step S15 encodes and transmits the data packet on the encoding path:
  • each intermediate node encodes the data packet sent by the different source node it receives and passes through the link where the link is located and where the link is located.
  • the path obtained in the above step is transmitted to the receiving node.
  • the data requirements of the receiving node to the source node are not static. In some cases, for example, if a newly added data request or a previous data request is completed, The path condition of the above network changes. In this case, only the above steps need to be performed for the changed part, and the data in the still existing path and the source node, the receiving node, and the intermediate node are not needed. Or re-acquire after the parameter is cleared. This allows for a smaller cost or overhead to be used when the network changes, again maximizing network throughput.
  • Step S21 Forward path search: In this step, path search of all current sessions is first performed, that is, according to each receiving node Or a data request submitted by a plurality of source nodes, respectively searching for a data transmission path of the source node to the receiving node by the one (in the case of multiple source nodes); and storing on the source node The set of paths found.
  • Step S22 performs reverse routing one by one according to the found path:
  • one receiving node sequentially reversely routes to the source source node to obtain multiple links included in each path. And storing the link parameter on the tail node of each link; wherein the link parameters include: a cell node involved, a receiving node, a number of paths, and a path number of the link.
  • the network includes multiple receiving nodes (or multiple receiving nodes that make data requests), each receiving node will perform this step separately.
  • Step S23 sets the initial state of all the paths: In this step, all the paths in the above session are set to be non-encoded paths due to the initialization requirements.
  • preprocessing it gets the tag information that the output is the session (s i tj) at the intermediate node.
  • the information is routed according to the directed graph, and all the achievable by Si is traversed. Nodes and links, the nodes that pass through are marked as Si.
  • each link connected to the receiving node tj is reversely routed to the source node Si according to the information of the previous node being marked as Si , and the tail(e) of all the links e passing through
  • Each link e is labeled e(Si, tj,
  • each link e is marked as e(st P
  • the overall path of the receiving node is divided into three parts: The first part is a set of discrete paths, and the set of paths is represented. The second part is a non-discrete path set and all receiving nodes can decode, using (3 ⁇ 4 to represent its path set.
  • the third part is a non-discrete path set and does not satisfy all receiving nodes can decode, called this part of the path set is not available
  • Decoding the path set the path set is represented by 13 ⁇ 4.
  • the non-encoding method can achieve the best throughput; the network coding can achieve the best of the second part of the path set throughput;
  • encoding does not improve throughput.
  • a non-encoded routing strategy is used to process this part of the path set, because network coding can not only improve throughput but also generate a large amount of delay.
  • the setting of the encoding path further includes the following steps: Step S31: The number of data packets received by the link is greater than 1, if yes, step S32 is performed; if not, step S33 is performed; In this step, it is determined whether the number of data packets received from a different source node and transmitted to the same receiving node is greater than 1, and if so, step S32 is performed; otherwise, step S33 is performed; When there are multiple links, multiple links will perform the above operations separately.
  • Step S32 Set one of the paths from the different source nodes to the current receiving node of the link to be a non-encoding path, and the rest are encoding paths: In this step, set the different source nodes where the link is located. The path to the receiving node (the total number of these paths is
  • Step S33 setting the path where the link is a non-encoded path: In this step, since there is only one data packet on the link, the data packet is not required to be encoded, so the path where the link is located is a non-encoded path. . After performing this step, go to step S35.
  • Step S34 transmitting the information of the encoding path to the source node:
  • the information of the encoding node set in the above step S32 is sent to the relevant source node, that is, the data packet is sent and passed through the chain.
  • the path is transmitted to the source node of the above receiving node.
  • Step S35 The path of all the links is set: In this step, it is determined whether all the links (of course, the link related to the current data transmission) are both judged and set, and if so, jump The process proceeds to step S14; otherwise, step S36 is performed.
  • Step S36 is ready to judge the next link: In this step, it is prepared to judge and set the next unset link, and after performing this step, return to step S31.
  • the network coding uses an exclusive OR operation instead of random network coding.
  • the data packets participating in the coding are all from different source nodes, and the probability that the same receiving node receives the same coded packet is extremely small, so the correlation of the coefficients is not considered.
  • the encoding node only needs to add a bit and then XOR code to the data participating in the encoding to ensure that the received two encoded packets are irrelevant. For example, two data packets ai ( a ⁇ ! a ⁇ ... a!, B ) and a 2 ( a 2; 1 a 2 , 2 ...
  • the length of the data packet is B bits.
  • the encoding process of another encoding packet is as follows: adding a bit ⁇ ' at the end of the packet a ⁇ header and a 2 respectively to obtain a data packet (Oawau ...a !, B ) and (a 2 1 a 2 , 2 ... a 2 , B 0 ) and XOR the two data packets.
  • the two encoding packets aea? and (Oa ⁇ au ... aw ) ⁇ ( a 2 1 a 2 , 2 ...
  • a 2 , B 0 are independent of each other, and the data packet a ⁇ a 2 can be decoded.
  • the source node transmits (
  • the source node and the intermediate node in the network constitute a dynamic multi-source network coding algorithm that interacts with each other.
  • Table 1 gives the meaning of the symbol representation in this embodiment. Table 1. Symbolic meaning.
  • T is using the set of receiving nodes of the link v k v k+1 s (t receiving the path set of the source set session (S tj ) requested by the node tj
  • the action in the recursive phase is: If
  • , the same data packet is transmitted on
  • the intermediate node it can also be roughly divided into an initialization phase and a recursive phase, wherein the actions of the initialization phase are:
  • R(v k v k+1 ) kJ ⁇ - ⁇ In(v k )f] ( ⁇ ( ⁇ ))).
  • the action of the recursive phase of the intermediate node is:
  • the path to which the intermediate node v k belongs is an encoding path and v k has multiple input links
  • the data packet S q received by v k is notified to the encoding node of the encoding path, and the encoding node can S q is encoded without increasing the number of encoding paths because the data packet S q in the encoded packet can be solved at the intermediate node V k .
  • the source node Si transmits the same data packets in its path, which ensures that the receiving node can decode immediately.
  • (IR - Pi, j) different data packets are transmitted according to the number of coding paths Pi, j.
  • the number of paths of the session (s i tj) is equal to the number of encoded paths, even if the packets transmitted on all the paths are the same, the receiving node cannot decode, so only one number of encoding paths can be reduced, so that Making full use of the network resources can enable the receiving node to decode the encoded packet immediately, reducing the delay.
  • the session requested by the receiving node changes over time. For this embodiment, only the receiving node that has requested the change needs to enter the initialization phase.
  • the embodiment can enter the iterative phase.
  • the iterative phase is the best phase. Both PA and SRLC require a large number of iterations to enter the optimal phase, and even enter the optimal phase within a reasonable time.
  • the number of transmissions of the source data packet that is, the transmission rate, is adjusted according to the coding condition of the path in the network. So this embodiment is dynamically adaptive.
  • the coding algorithm is distributed in each intermediate node, which reduces the burden on the source node. It is a distributed multi-source network coding algorithm. The low complexity of the algorithm is mainly the space of the intermediate node. Computational ability in exchange for.
  • a GM NC general multi-source network coding
  • GM NC does not network encode all of the node's input data, but only performs network coding on the required data.
  • the GM NC uses an XOR encoding method, and the conventional XOR encoding may reduce the throughput.
  • An XOR encoding method proposed in this embodiment makes all XOR encoding packets linearly independent. In this embodiment, all the received packets received by the receiving node are solvable. Because if any receiving node receives an encoding packet +& 2 +...+& £ , it comes from g different source nodes.
  • the coding node will select g-1 paths as the coding path, such as the source SbSz, . . ⁇ path, the corresponding g-1 letters
  • any encoded packets it receives @ a 2 ten... ⁇ 3 ⁇ 4 are solvable.
  • each chromosome is composed of all coding vectors, so its consumption is at least ( . folk, ⁇ 1 ⁇ 1 ⁇ / .
  • the number of nodes in the network is INI, Among them are INI/8 source nodes, INI/8 receiving nodes, each node has 5 uplinks and 5 downlinks.
  • GMNC is superior to PA method in consumption performance.
  • each coded packet is encoded by at most h original packets, so the header of the SRLC is Hq bit.
  • the header size encoded by the hash packets is h.
  • g packets ( , & 2 , g ⁇ h) in order to obtain two linear independent coding packets, a bit '0' needs to be added to the original data packet.
  • FIG. 5 is a topological structure of a network in this embodiment.
  • the source S ⁇ PS 2 is multicast to the receiving nodes ⁇ and t 2 .
  • 1,
  • 2.
  • the link V1 V 2 belongs to two paths of different sessions, so it is necessary to perform a network coding operation on the link V1 V 2 .
  • the path s ⁇ v ⁇ is the encoding path
  • the other path s ⁇ v ⁇ is the non-encoding path.
  • FIG. 6 is another topology structure in this embodiment.
  • three source nodes S1 , s 2, and s 3 are multicast to t 2 and t 3 respectively , and multicast to ⁇ , t 2 , t 3 , unicast to ⁇ . That is, the source sets requested by the receiving nodes t l t 2 and t 3 are respectively S 2 ⁇ .
  • the capacity of the receiving node ⁇ to the source nodes S1 , s 2 , s 3 is 3, the capacity of the receiving node t 2 to the source nodes S1 , s 2 is 2, and the capacity of the receiving node t 3 to the source node s 2 is 2. . Therefore, in theory, the receiving nodes ⁇ , t 2 and t 3 can respectively receive the requested source data packets 3, 2, and 2 in the unit transmission time. According to the GMNC algorithm, first find the discrete path of the respective session,
  • the intermediate node can encode the received data packets and enable all receiving nodes to decode.
  • all source nodes send the same packet on their path, and the intermediate node selects the appropriate packet encoding.
  • the coded packet transmitted by the link ⁇ 3 ⁇ 4 is @ and the path Si V3V is selected for the receiving node ⁇ , t 2 , t 3 , respectively.
  • S 2 V 3 V 4 V 5 V 6 t 3 is the encoding path.
  • Other nodes also send the appropriate data packets.
  • Source Sl, s 2 and s 3 packet are represented by a, b and c indicated in FIG. 6 by a, b, c respectively represent the source node s l s 2 and s 3 packets of.
  • the tag information of the intermediate node is as shown in Table 2. Table 2. All tag information for intermediate nodes.
  • Table 3 gives a comparison of the throughput performance of the different coding strategies in Figure 6.
  • inter-session network coding is limited to special cases between two unicast sessions, so only data from source nodes Si and s 2 or s 2 and s 3 can be on link v 3 v 4
  • the package is encoded. If the link v 3 v 4 transmits the encoded packets of a and b, the receiving node can not receive the data packet of the source s 3 and can only receive the two data packets of the source S1 and s 2 , and the total throughput of the network.
  • the network coding algorithm in the session allocates a subtree for each source, and each source node transmits a corresponding data packet according to its own subtree, and the throughput of the network coding algorithm in the session is also 6.
  • the source node to the receiving unicast t 3 the source s 2 to the receiving node unicast t 2, the source s 3 ⁇ unicast to the receiving node.
  • GMNC algorithm may be such that each of three receiving node receives a data packet corresponding to the source, but can not satisfy the request PINC t 3 at the same time request satisfies ⁇ and 12, that is, such that they can not be three
  • the receiving nodes simultaneously receive a corresponding one of the requested source data packets. Therefore, compared to previous studies, the GMNC algorithm has great advantages in terms of total throughput and simultaneous requests for different receiving nodes.
  • an apparatus for implementing the foregoing encoding method is further provided.
  • the apparatus includes: a pre-processing unit 71, an initial stage data packet transmitting unit 72, an encoding path setting unit 73, and a data packet sending unit.
  • the pre-processing unit 71 is configured to perform pre-processing on the source node, the receiving node, and the intermediate node involved in the session for the plurality of sessions existing on the current network, so that the message involved in the session is
  • the source node obtains the path parameter of the current session, and causes the tail node of the multiple links involved in the session to obtain its link parameter
  • the initial stage data packet sending unit 72 is configured to request data from the source node at present. The same data packet is sent on all paths of a receiving node;
  • the encoding path setting unit 73 is configured to sequentially determine the number of data packets transmitted from different sessions on each link in the path, for example, if there is only one data packet, the session is set.
  • the path involved in the link is a non-encoded path; as the number of packets transmitted from different sessions on the link
  • the pre-processing unit 71 further includes a forward path search module 711, a reverse path search module 712, and an initial path setting module 713.
  • the forward path search module 711 is configured to send the message according to the receiving node. a data request by the source node, respectively searching for a data transmission path from the source node to the receiving node; and storing the found path set on the source node;
  • the reverse path searching module 712 is configured to obtain a path, in which the receiving node reversely routes to the source node, obtains multiple links included in each path, and stores the link parameters on a tail node of the link; the link parameter
  • the method includes: a source node involved, a receiving node, a number of paths, and a path number of the link; and an initial path setting module 713 is configured to set all paths to non-encoded paths at the beginning.
  • the encoding path setting unit 73 further includes a link receiving data packet determining module 731, a non-coding path setting module 732, an encoding path setting module 733, and a setting completion determining module 734; wherein the link receives the data packet
  • the determining module 731 is configured to determine whether the number of data packets
  • the non-coding path setting module 732 is used to determine whether the number of data packets received from the different source nodes and transmitted to the same receiving node is greater than 1;
  • the encoding path setting module 733 is configured to set the link.
  • -1 in the path from the different source node to the receiving node is the encoding path, and the remaining one is the non-encoding path, and the source node is notified; the setting completion determining module 734 is used for judging Whether all paths from the source node to the receiving node in the session are set.
  • each unit and module in the foregoing apparatus may be disposed on the same physical carrier, or may be disposed on different physical carriers.
  • the above-described encoding path setting unit is disposed on the intermediate node
  • the pre-processing unit is disposed on the source node.

Landscapes

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

Abstract

The present invention relates to construction of a multi-source dynamic network coding method, which comprises the following steps: preprocessing a source node, a receiving node and an intermediate node involved in a session; the source node sending identical data packets over all paths of the receiving node that currently requests data from the source node; sequentially determining the number of data packets that are from different sessions and transmitted on each link of the paths, setting a coding path, and notifying the coding path of the related source node; the source node selecting one or more data packets according to received coding path data and transmitting the data packet over multiple paths to the receiving node; and the intermediate node coding the received data packet. The present invention also relates to an apparatus for implementing the method. Implementing the multi-source dynamic network coding method and apparatus in the present invention has the following advantages: the coding complexity is lower and the data throughout will not be reduced.

Description

多信源动态网络编码的方法及装置  Multi-source dynamic network coding method and device
技术领域 Technical field
本发明涉及网络编码领域, 更具体地说, 涉及一种多信源动态网络编码的方 法及装置。  The present invention relates to the field of network coding, and more particularly to a method and apparatus for multi-source dynamic network coding.
背景技术 Background technique
2000年诞生的网络编码(NC, Network Coding )提出了通信网络中单信源对 多个接收点组播或广播时,如何达到由"最大流最小割定理"确定的网络通信容量极 限的一个思路。  Network Coding (NC, Network Coding), which was born in 2000, proposes how to achieve the limit of network communication capacity determined by the "maximum flow minimum cut theorem" when a single source is multicast or broadcast to multiple receiving points in a communication network. .
传统通信网络节点上的路由交换机只完成 "存储-转发"功能, 将信息看作 "货 物", 因而认为信息是不可叠加的。 而这一认知上的局限导致网络难以达到最大流 传输。 NC指出如果允许路由交换机对输入的多条信息流编码后再发送, 则可以使 得网络通信可以达到最大流传输。这种类型的网络编码称为会话内( intra-session ) 网络编码, 对于这种类型的网络编码, 中间节点输出的数据为输入数据的线性组 合。 当接收节点收到足够多的相互独立的编码包时即可解码。 但是在网络中对多 个信源使用网络编码一直是个挑战, 这种类型的网络编码称为多信源网络编码问 题 ( multi-source network coding ), 也称为多会话 (multi-session)网给编码问题或会 话间(inter-session)网给编码问题。  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 the input multiple streams of information before sending, the network communication can be maximized. This type of network coding is called intra-session network coding. For this type of network coding, the data output by the intermediate node is a linear combination of the input data. The receiving node can decode when it receives enough independent coded packets. However, the use of network coding for multiple sources in the network has always been a challenge. This type of network coding is called multi-source network coding, also known as multi-session network. Encoding problems or inter-session networks give coding problems.
当在网络中传输多个组播会话 (session)时, 一种筒单实用的方法是为每个会话 分配网络容量的一个子集。 如果每个会话分配的子容量满足最大流最小割条件, 则会话内网络编码可以达到该网络最大流的极限。 然而对于一般的多信源网络编 码问题, 会话间网络编码才有可能达到网络吞吐量的最大值。 一般而言, 会话间 网络编码比会话内网络编码更复杂, 为了保证每个接收节点都能解码, 编码时要 更小心, 不能筒单的线性组合收到的数据包, 因为接收节点很有可能没有足够的 输入容量以解出编码包。  When multiple multicast sessions are transmitted over the network, a practical approach is to allocate a subset of the network capacity for each session. If the sub-capacity allocated by each session satisfies the maximum flow minimum cut condition, the intra-session network coding can reach the limit of the maximum flow of the network. However, for general multi-source network coding problems, inter-session network coding is likely to reach the maximum network throughput. In general, inter-session network coding is more complicated than intra-session network coding. In order to ensure that each receiving node can decode, the encoding should be more careful, and the received packets cannot be linearly combined because the receiving node is very likely. There is not enough input capacity to solve the encoded package.
目前对于一般的多信源网络编码问题, 还没有实用的吞吐量最佳的网络编码方法。 文献 [N. Ratnakar, R. Koetter and T. Ho, "Linear flow equations for network coding in the multiple unicast case," in Proc. DIMACS Working Group Network Coding, Jan. 2005.]介绍了用于多个单播会话的毒药 -解药 PA(poison- antidote)方法。文献 [S. Katti H. Rahul, W. Hu, D. Katabi, M. Medard, and J. Crowcroft, "XORs in the air: Practical wireless network coding," in Proc. ACM SIGCOMM, Sep. 2006.]介绍了应用在无线 网络中的机会异或编码 OXC(opportunistic XOR coding)方法。随后,文献 [M. Kim, M Medard, U. O'Reilly, and D. Traskov, "An evolutionary approach to inter-session network coding," in Proc. IEEE INFOCOM, Brazil, Apr. 2009.]提出了选择随机线性 编码 (SRLC: Selective Random Linear Coding)方法, 在该方法中, 中间节点使用选 择随机线性编码, 而编码算法是由基因算法控制的。 文献 [Abdallah At present, for the general multi-source network coding problem, there is no practical network coding method with the best throughput. [N. Ratnakar, R. Koetter and T. Ho, "Linear flow equations for network coding in the multiple unicast case," in Proc. DIMACS Working Group Network Coding, Jan. 2005.] introduced the poison-antidote method for multiple unicast sessions. [S. Katti H. Rahul, W. Hu, D. Katabi, M. Medard, and J. Crowcroft, "XORs in the air: Practical wireless network coding," in Proc. ACM SIGCOMM, Sep. 2006.] An opportunistic XOR coding (OXC) method applied in a wireless network. Subsequently, the literature [M. Kim, M Medard, U. O'Reilly, and D. Traskov, "An evolutionary approach to inter-session network coding," in Proc. IEEE INFOCOM, Brazil, Apr. 2009.] proposed the choice The method of Selective Random Linear Coding (SRLC), in which the intermediate node uses selective random linear coding, and the coding algorithm is controlled by a genetic algorithm. Literature [Abdallah
Khrei shah, Chih- Chun Wang and Ness B. Shroff, "Rate Control With Pairwise Khrei shah, Chih- Chun Wang and Ness B. Shroff, "Rate Control With Pairwise
Intersession Network Coding", in IEEE/ACM Trans. Networking, JUNE 2010.]提出了 两个会话间网给编码算法 PINC(pairwise inter-session network coding) , PINC只允许 对两个数据包进行编码, 编码使用了随机线性网络编码。 但是以上文章均没有考 虑网络的动态改变。 Intersession Network Coding", in IEEE/ACM Trans. Networking, JUNE 2010.] proposed two pairs of inter-session network coding (PINC), PINC only allows encoding of two data packets, coding use Random linear network coding. However, none of the above articles consider the dynamic changes of the network.
对于上述的毒药 -解药 PA(poison- antidote)方法—— PA跟踪所有的会话, 当有 节点对数据包编码时, 把编码包称为毒药, 而用于解码的数据包称为解药。 每产 生一个毒药, 就必须马上发送一个解药; PA使用异或编码方法。 PA的缺点是复杂 度很高, 其复杂度至少为 0(^ 1 £ 11 V I) , 其中 m为会话的个数, k为允许编码的会话 个数, 并且没有考虑网络的动态改变。  For the above-mentioned poison-antidote method (PA), the PA tracks all sessions. When a node encodes a packet, the coded packet is called a poison, and the packet used for decoding is called an antidote. Every time a poison is produced, an antidote must be sent immediately; the PA uses an XOR encoding method. The disadvantage of PA is its high complexity, which has a complexity of at least 0 (^ 1 £ 11 V I), where m is the number of sessions, k is the number of sessions allowed to encode, and does not take into account dynamic changes in the network.
对于上述的选择随机线性编码 SRLC: 中间节点使用选择随机线性编码, 而编 码系数是由基因算法控制的。 其缺点 ^^因算法会随着会话数量的增大而变得很 复杂, 使得 SRLC算法的复杂度很高, 并且没有考虑网络的动态改变。  For the above selection of random linear coding SRLC: The intermediate node uses selective random linear coding, and the coding coefficients are controlled by genetic algorithms. Its shortcomings ^^ because the algorithm will become more complicated as the number of sessions increases, making the SRLC algorithm very complex, and does not consider the dynamic changes of the network.
而对于上述的两个会话间网络编码算法 PINC: PINC只允许对两个数据包进行 编码, 编码使用了随机线性网络编码。 其缺点是复杂度较高, 同时只允许在两个 会话之间编码, 吞吐量有一定降低。  For the above two inter-session network coding algorithm PINC: PINC only allows encoding two data packets, the coding uses random linear network coding. The disadvantage is that the complexity is high, and only the encoding between the two sessions is allowed, and the throughput is reduced.
此外, 对于上述的机会异或编码 OXC而言, 其使用异或编码方法, 计算复杂度 较低。 其缺点是编码节点的邻居节点需要马上解码, 吞吐量有所降低, 并且只适 合应用在无线网络。 发明内容 In addition, for the above-described opportunistic XOR coding OXC, the XOR coding method is used, and the computational complexity is low. The disadvantage is that the neighbor nodes of the coding node need to decode immediately, the throughput is reduced, and it is only suitable for application in the wireless network. Summary of the invention
本发明要解决的技术问题在于, 针对现有技术的上述编码复杂程度较高、 可 能会降低数据吞吐量的缺陷, 提供一种复杂程度较低、 不会降低数据吞吐量的多 信源动态网络编码的方法及装置。  The technical problem to be solved by the present invention is to provide a multi-source dynamic network with low complexity and low data throughput, which is high in complexity of the above-mentioned coding and may reduce data throughput. Coding method and device.
本发明解决其技术问题所采用的技术方案是: 构造一种多信源动态网络编码 的方法, 包括如下步骤:  The technical solution adopted by the present invention to solve the technical problem is: Constructing a multi-source dynamic network coding method, comprising the following steps:
A)针对当前网络上存在的多个会话, 分别对一个所述对话所涉及的信源节 点、 接收节点及中间节点进行预处理, 使所述会话所涉及的信源节点得到当前该 会话的路径参数, 并使所述会话所涉及的多个链路的尾节点得到其链路参数;  A) preprocessing the source node, the receiving node, and the intermediate node involved in the session for the plurality of sessions existing on the current network, so that the source node involved in the session obtains the path of the current session. a parameter that causes the tail node of the plurality of links involved in the session to obtain its link parameters;
B)所述信源节点在当前对其请求数据的一个接收节点的所有路径上发送 相同的数据包;  B) said source node transmitting the same data packet on all paths of a receiving node for which data is currently requested;
C)依次判断所述路径中各链路上传输的、 来自不同会话的数据包数量, 如 只有一个数据包, 则设置该会话中涉及所述链路的路径为非编码路径; 如所述链 路上传输来自不同会话的数据包数量为 | |个, 其中, | | >1 , 则对于一个接收节 点而言,设置该接收节点涉及的不同会话中的 |Rw | - i个路径为编码路径, 剩余一个 路径为非编码路径, 并通知所述编码路径所涉及的信源节点; C) sequentially determining the number of data packets transmitted from different sessions on each link in the path, such as only one data packet, setting a path related to the link in the session to a non-encoding path; The number of data packets transmitted from different sessions on the road is | |, where | | >1, then for a receiving node, set the |R w | - i paths in different sessions involved in the receiving node to be encoded a path, the remaining path is a non-encoded path, and notifying the source node involved in the encoded path;
D) 所述信源节点依据其收到的编码路径数据, 选择一个或多个数据包分 别在其到所述接收节点的多条路径上传输;  D) the source node selects one or more data packets to be transmitted on multiple paths to the receiving node according to the encoded path data received by the source node;
E )所述中间节点将其接收到的不同信源节点发出的数据包进行编码并传 输到所述接收节点。  E) The intermediate node encodes and transmits the data packets sent by different source nodes it receives to the receiving node.
更进一步地, 所述步骤 A )进一步包括:  Further, the step A) further includes:
A1 )依据所述接收节点向所述信源节点提出的数据请求, 分别查找由所述 信源节点到所述接收节点的数据传输路径; 并在所述信源节点上存储查找到的路 径集合;  A1) searching for a data transmission path from the source node to the receiving node according to the data request that the receiving node sends to the source node; and storing the found path set on the source node ;
A2 )依据得到的路径, 依次由所述接收节点向所述信源节点逆向路由, 得 到每条路径中包括的多个链路, 并在所述链路的尾节点上存储该链路参数; 所述 链路参数包括: 涉及的信源节点、 接收节点、 路径数量和该链路所在路径编号。 更进一步地, 所述步骤 A )进一步包括: A2) according to the obtained path, in turn, the receiving node reversely routes to the source node, obtains multiple links included in each path, and stores the link parameters on the tail node of the link; The link parameters include: a source node involved, a receiving node, a number of paths, and a path number of the link. Further, the step A) further includes:
A3 )设置所有路径为非编码路径。  A3) Set all paths to non-encoded paths.
更进一步地, 所述步骤 C )进一步包括:  Further, the step C) further includes:
C1 )判断所述链路收到的、 来自不同信源节点且传输到同一个接收节点的 数据包个数 |RW |是否大于 1 , 如是, 执行步骤 C3 ); 否则, 执行步骤 C2 ); C1) judging whether the number of data packets |R W | received from the different source nodes and transmitted to the same receiving node is greater than 1, if yes, performing step C3); otherwise, performing step C2);
C2 )设置所述链路所在的、 由所述信源节点到所述接收节点的路径为非编 码路径, 跳转到步骤 C4 );  C2) setting the path of the link from the source node to the receiving node as a non-encoding path, and jumping to step C4);
C3 )设置所述链路所在的、由不同信源节点到所述接收节点的路径中的 | | -1个为编码路径, 剩余一个为非编码路径,通知所述信源节点, 并执行步骤 C4 );  C3) setting ||-1 of the path from the different source node to the receiving node where the link is located is an encoding path, and the remaining one is a non-encoding path, notifying the source node, and performing steps C4);
C4 )判断该会话中由所述信源节点到所述接收节点的所有路径是否完成设 置, 如是, 执行步骤 D ); 否则, 对剩余的中间节点重复步骤 CI ) -C4 )。  C4) determining whether all paths from the source node to the receiving node in the session are set, and if so, performing step D); otherwise, repeating steps CI) - C4 for the remaining intermediate nodes.
更进一步地, 所述步骤 D ) 中进一步包括: 如所述信源节点到所述接收节点 的所有路径中没有编码路径, 则所述信源节点在所有路径上发送相同的数据包; 如所述信源节点到所述接收节点的所有路径中存在 A 个编码路径, 且该信源节点 到该接收节点的路径数大于所述编码路径数时,则所述信源节点在所有的 |R 个路 径上分别同时发送 (IR -/^.)个数据包。 Further, the step D) further includes: if there is no coding path in all paths of the source node to the receiving node, the source node sends the same data packet on all paths; If there are A coding paths in all the paths from the source node to the receiving node, and the number of paths from the source node to the receiving node is greater than the number of the encoded paths, then the source node is in all |R (IR - / ^.) packets are sent simultaneously on each path.
更进一步地, 如所述会话发生变化, 则对变化后的接收节点及其请求数据的 信源节点执行所述步骤 A ) -E)。  Further, if the session changes, the steps A) - E) are performed on the changed receiving node and the source node requesting the data.
更进一步地, 所述中间节点对来自不同信源节点的数据包进行异或编码并将 编码后的数据包在该链路上传输。  Further, the intermediate node XORs the data packets from different source nodes and transmits the encoded data packets on the link.
本发明还涉及一种实现上述方法的装置, 包括:  The invention also relates to an apparatus for implementing the above method, comprising:
预处理单元: 用于针对当前网络上存在的多个会话, 分别对一个所述对话 所涉及的信源节点、 接收节点及中间节点进行预处理, 使所述会话所涉及的信源 节点得到当前该会话的路径参数, 并使所述会话所涉及的多个链路的尾节点得到 其链路参数;  a pre-processing unit: configured to perform pre-processing on a source node, a receiving node, and an intermediate node involved in the session for multiple sessions existing on the current network, so that the source node involved in the session obtains the current The path parameter of the session, and the tail node of the multiple links involved in the session obtains its link parameters;
初始阶段数据包发送单元: 用于在所述信源节点当前对其请求数据的一个 接收节点的所有路径上发送相同的数据包; 编码路径设置单元: 用于依次判断所述路径中各链路上传输的、 来自不同 会话的数据包数量, 如只有一个数据包, 则设置该会话中涉及所述链路的路径为 非编码路径;如所述链路上传输来自不同会话的数据包数量为 |RW |个,其中, | | >1 , 则对于一个接收节点而言,设置该接收节点涉及的不同会话中的 |Rw| -i个路径为编 码路径, 剩余一个路径为非编码路径, 并通知所述编码路径所涉及的信源节点; 数据包发送单元: 用于使所述信源节点依据其收到的编码路径数据, 选择 一个或多个数据包分别在其到所述接收节点的多条路径上传输; An initial stage data packet sending unit: configured to send the same data packet on all paths of a receiving node to which the source node currently requests data; The encoding path setting unit is configured to sequentially determine the number of data packets transmitted from different sessions on each link in the path, for example, if there is only one data packet, setting a path involving the link in the session to a non-encoding path If the number of data packets transmitted from different sessions on the link is |R W |, where | | >1, then for a receiving node, set |R w in different sessions involved by the receiving node; | - i paths are coded paths, the remaining path is a non-coded path, and the source node involved in the coded path is notified; a packet transmitting unit is configured to cause the source node to receive the encoded path according to the source path Data, selecting one or more data packets to be respectively transmitted on multiple paths to the receiving node;
编码单元: 用于使所述中间节点将其接收到的不同信源节点发出的数据包 进行编码并传输到所述接收节点。  Coding unit: configured to cause the intermediate node to encode and transmit a data packet sent by a different source node that it receives to the receiving node.
更进一步地, 所述预处理单元进一步包括:  Further, the pre-processing unit further includes:
正向路径查找模块: 用于依据所述接收节点向所述信源节点提出的数据请 求, 分别查找由所述信源节点到所述接收节点的数据传输路径; 并在所述信源节 点上存储查找到的路径集合;  a forward path search module: configured to search for a data transmission path from the source node to the receiving node according to a data request that is sent by the receiving node to the source node; and on the source node Store the set of found paths;
逆向路径查找模块: 用于依据得到的路径, 依次由所述接收节点向所述 信源节点逆向路由, 得到每条路径中包括的多个链路, 并在所述链路的尾节点上 存储该链路参数; 所述链路参数包括: 涉及的信源节点、 接收节点、 路径数量和 该链路所在路径编号;  The reverse path searching module is configured to: in turn, reversely route the receiving node to the source node according to the obtained path, obtain multiple links included in each path, and store the link on the tail node of the link. The link parameter includes: a source node, a receiving node, a number of paths, and a path number of the link;
初始路径设置模块: 用于在开始时设置所有路径为非编码路径。 更进一步地, 所述编码路径设置单元进一步包括:  Initial Path Setup Module: Used to set all paths to non-coded paths at the beginning. Further, the encoding path setting unit further includes:
链路接收数据包判断模块: 用于判断所述链路收到的、 来自不同信源节 点且传输到同一个接收节点的数据包个数 |RW |是否大于 1; a link receiving data packet judging module: configured to determine whether the number of data packets |R W | received from the different source nodes and transmitted to the same receiving node is greater than 1;
非编码路径设置模块: 用于在链路接收到的数据包为 1时, 设置所述链路 所在的、 由所述信源节点到所述接收节点的路径为非编码路径;  The non-coding path setting module is configured to: when the data packet received by the link is 1, set a path where the link is located, and the path from the source node to the receiving node is a non-encoding path;
编码路径设置模块: 用于设置所述链路所在的、 由不同信源节点到所述接 收节点的路径中的 个为编码路径, 剩余一个为非编码路径, 通知所述信源节 点;  An encoding path setting module: configured to set, in the path of the different source node to the receiving node, the encoding path, and the remaining one is a non-encoding path, and notify the source node;
设置完成判断模块: 用于判断该会话中由所述信源节点到所述接收节点的 所有路径是否完成设置。 a setting completion judgment module: configured to determine, by the source node to the receiving node in the session Whether all paths are set.
实施本发明的多信源动态网络编码的方法及装置, 具有以下有益效果: 并不 是将节点所有的输入数据进行网络编码而是只对需要的数据执行网络编码且使用 异或编码方法, 因此其编码的复杂程度较低且不会降低数据吞吐量。  The method and apparatus for implementing the multi-source dynamic network coding of the present invention have the following beneficial effects: instead of performing network coding on all input data of a node, only performing network coding on the required data and using an exclusive OR coding method, The coding is less complex and does not reduce data throughput.
附图说明 DRAWINGS
图 1是本发明多信源动态网络编码的方法及装置实施例中的方法流程图; 图 2是所述实施例中预处理步骤的具体流程图;  1 is a flowchart of a method in a method and apparatus for multi-source dynamic network coding according to the present invention; FIG. 2 is a specific flowchart of a pre-processing step in the embodiment;
图 3是所述实施例中编码路径设置流程图;  Figure 3 is a flow chart showing the setting of the encoding path in the embodiment;
图 4是所述实施例中多信源动态网络编码方法与现有编码技术的性能比较示 意图;  4 is a schematic comparison of performance of a multi-source dynamic network coding method and an existing coding technique in the embodiment;
图 5是所述实施例中一种拓朴结构情况示意图;  Figure 5 is a schematic view showing a topology of the embodiment;
图 6是所述实施例中另一种拓朴结构情况示意图;  Figure 6 is a schematic view showing another topology of the embodiment;
图 7是所述实施例中的装置结构示意图;  Figure 7 is a schematic structural view of the device in the embodiment;
具体实施方式 detailed description
下面将结合附图对本发明实施例作进一步说明。  The embodiments of the present invention will be further described below in conjunction with the accompanying drawings.
如图 1 所示, 在本发明多信源动态网络编码的方法及装置实施例中, 该多信 源动态网络编码的方法包括如下步骤:  As shown in FIG. 1, in the method and apparatus embodiment of the multi-source dynamic network coding of the present invention, the multi-source dynamic network coding method includes the following steps:
步骤 S11依据当前的数据请求,分别对各信源节点和接收节点之间的路径进行 预处理: 为了之后的描述较为方便, 有必要就本实施例中的网络环境做出一个较 为详细的说明, 在本实施例中, 用有向网络图 G=(V,E)表示通信网络, 其中 V表示 有向图中的节点集, E为有向图 G的链路集。 设 G中的所有链路的容量为单位 1。 设有向网络中信源节点的集合为 {s1 s2, sh}, 接收节点的集合为 {t1 t2, t 信源 节点 Si的数据包的接收节点集合为 Ti, ί=1,2, ..., h, 该组播会话表示为 (Si,Ti)。 在图 G中共有 h个组播会话, i=l, 2, ... , h。 将每个组播会话 (si T用 |Ti|个单播会话 (si tj) 表示, 7;, · = 1,2,...,Ι7; ΐ。 而每个会话 (Si tj)都是由若干个路径组成的, 用 Ru表示会 话 (si tj)的路径集合, ={^| l≤k≤|Ru|}, |Ri,j|为集合 的元素个数, |RU|也是会话 (si tj)的最大流。 ^为 Ri,j的第 k个路径, 路径 为从起始点 到终点 tj的一条有向 链接, 表示为 r =Si...tj。 每个接收节点 tj由三个参数描述 (S(tj), L(tj), Rj)。 其中, S(tj) 为接收节点 tj请求的信源节点集合, 从信源集合 S(tj)到接收节点 tj的路径集合用 Rj 表示,
Figure imgf000009_0001
接收节点 tj在接收信源时使用的链路集合为 L(tj)。 正 在使用链路 e的接收节点集合用 Te表示。 tail(e)表示有向链路 e的尾节点, 链路 e 传输的会话的个数表示为 )。 因为所有链路的容量为单位容量, 所以任何链路在 单位时间内或者没有传输数据或者传输了一个数据量。
Step S11 performs pre-processing on the path between each source node and the receiving node according to the current data request: For the convenience of the following description, it is necessary to make a detailed description of the network environment in this embodiment. In the present embodiment, the communication network is represented by a directed network graph G = (V, E), where V represents a set of nodes in the directed graph and E is a set of links of the directed graph G. Let the capacity of all links in G be unity. The set of source nodes to the network is {s 1 s 2 , s h }, the set of receiving nodes is {t 1 t 2 , and the set of receiving nodes of the data source Si is Ti, ί=1 , 2, ..., h, the multicast session is represented as ( Si , Ti). There are a total of h multicast sessions in Figure G, i=l, 2, ..., h. Each multicast session (s i T is represented by |Ti| unicast sessions (s i tj), 7;, · = 1,2,...,Ι7; ΐ. And each session (S i tj ) are composed of several paths, using R u to represent the path set of the session (s i tj), ={^| l≤k≤|R u |}, |Ri,j| is the number of elements of the set, |R U | is also the maximum flow of the session (s i tj). ^ is the kth path of Ri,j, and the path is a directed from the starting point to the ending point tj Link, expressed as r = Si ... tj. Each receiving node tj is described by three parameters (S(tj), L(tj), Rj). Where S(tj) is a set of source nodes requested by the receiving node tj, and a path set from the source set S(tj) to the receiving node tj is represented by Rj,
Figure imgf000009_0001
The set of links used by the receiving node tj when receiving the source is L(tj). The set of receiving nodes that are using link e is denoted by T e . Tail(e) indicates the tail node of the directed link e, and the number of sessions transmitted by link e is expressed as). Since the capacity of all links is unit capacity, any link does not transmit data or transmits a data amount per unit time.
每个中间节点记录一些标识信息, 这些标识信息为信源节点使用其下行链路 的信息以及接收节点请求的信源使用其链路的信息。 所有的中间节点只需要根据 这些标识信息为其下行链路分配合适的编码包。 信源节点只需要统计从中间节点 反馈的编码信息并在其路径上分配数据包。  Each intermediate node records some identification information, which is information that the source node uses its downlink and information that the source requested by the receiving node uses its link. All intermediate nodes only need to assign appropriate coding packets to their downlinks based on these identification information. The source node only needs to count the encoded information fed back from the intermediate node and allocate the packet on its path.
由上面的描述可知, 网络上存在多个会话, 这些会话可以是一个或多个组播 中的, 在本步骤中, 针对当前网络上存在的多个会话, 分别对一个对话所涉及的 信源节点、 接收节点及中间节点进行预处理, 使该会话所涉及的信源节点得到当 前该会话的路径参数, 并使该会话所涉及的多个链路的尾节点得到其链路参数。 值得一提的是, 在本实施例中, 对于每个会话都会按照步骤 S11-步骤 S15的方法 进行处理, 但为了描述方便, 不再逐一重复。  It can be seen from the above description that there are multiple sessions on the network, and these sessions may be in one or more multicasts. In this step, for the multiple sessions existing on the current network, the sources involved in one dialog respectively The node, the receiving node, and the intermediate node perform pre-processing, so that the source node involved in the session obtains the path parameter of the current session, and the tail node of the multiple links involved in the session obtains its link parameter. It is worth mentioning that, in this embodiment, each session is processed according to the method of step S11-step S15, but for the convenience of description, it is not repeated one by one.
步骤 S12信源节点在到接收节点的各路径上发送相同的数据包:在本步骤中, 由于在上述预处理步骤中每个信源节点都得到能够到达向其发送数据请求的接收 节点的路径, 所以, 一个信源节点在当前对其请求数据的一个接收节点的所有路 径上发送相同的数据包; 同样地, 每个信源节点在本步骤中都分别在能够到达向 其发送数据请求的接收节点的路径上发送相同的数据包。  Step S12: The source node transmits the same data packet on each path to the receiving node: in this step, since each of the source nodes obtains a path capable of reaching the receiving node to which the data request is sent in the foregoing preprocessing step Therefore, a source node sends the same data packet on all paths of a receiving node that currently requests data; likewise, each source node is able to reach a data request to which it is sent in this step. The same packet is sent on the path of the receiving node.
步骤 S13路径上的中间节点依据其接收到的数据包参数, 设置编码路径, 并 上报信源节点: 在本实施例中, 编码路径数是路径集合 Rld中编码路径的数量为编 码路径数, 用 py表示。 ρ 表示路径 是否为编码路径, . =1表示路径 为编码 路径, 相反 ^ =0则表示 为非编码路径。 Ρ 由路径的中间节点确定, 而路径集 合 R 的编码路径数是由信源节点 统计的, p =∑ Pi „ ρ 默认为 0。 链路 e若 有 1 )1>1个数据包参与编码, 则分别为每个接收节点 Te选择 ( \R(e)\-l )个路径为编 码路径, 另一个为非编码路径, 并把编码路径数反馈给相应的信源节点。 对于接 收节点,该编码包有 1 )1个数据包参与编码,所以需要另外 个与其线性不相 关的编码包才可以解出该编码包。 在本实施例中, 中间节点选择( wl-l )个路径 为编码路径是并反馈给相应的信源节点, 然后由信源节点为收到该编码包的接收 节点分配( (e)l-l )个线性不相关的编码包, 这样接收节点才可以解码。 这也是本 实施例的主要思想。 对于每个接收节点 i . e , 假设在链路 e参与编码属于接收节 点 tj的 个路径为 rh i=l, 2, 1 /^) 1,则选择11^11(1¾) 为非编码路径, i=l, 2,The intermediate node on the path of step S13 sets the coding path according to the data packet parameters received by the node, and reports the source path to the source node. In this embodiment, the number of coding paths is the number of coding paths in the path set R ld . Expressed by p y . ρ indicates whether the path is an encoded path, . =1 indicates that the path is an encoded path, and opposite ^ =0 indicates a non-encoded path. Ρ Determined by the intermediate node of the path, and the number of encoded paths of the path set R is counted by the source node, p = ∑ Pi „ ρ defaults to 0. If 1)1>1 data packet participates in coding, then each of the receiving nodes T e selects ( \ R(e) \-l ) paths as encoding paths, the other is non-encoding paths, and the number of encoding paths Feedback to the corresponding source node. For the receiving node, the encoded packet has 1) 1 data packet to participate in the encoding, so an additional encoding packet that is not linearly related to it is needed to solve the encoded packet. In this embodiment, the intermediate node selects (wl-1) paths as the encoding path and feeds back to the corresponding source node, and then the source node allocates (( e )ll) to the receiving node that received the encoded packet. A linearly uncorrelated encoding packet so that the receiving node can decode. This is also the main idea of this embodiment. For each receiving node i.e, assume that when the link e participates in encoding the path belonging to the receiving node tj as r h i=l, 2, 1 /^) 1, then 11^11(13⁄4) is selected as the non-encoding path. , i=l, 2,
1 ^) 1 , tj Te , 其他的为编码路径。 也就是说, 在本步骤中, 依次判断上述路径中各链路上传输的、 来自不同会 话的数据包数量, 如只有一个数据包, 则设置该会话中涉及所述链路的路径为非 编码路径;如所述链路上传输来自不同会话的数据包数量为 | |个,其中, | | >1 , 则对于一个接收节点而言,设置该接收节点涉及的不同会话中的 |Rw| -i个路径为编 码路径, 剩余一个路径为非编码路径, 并通知该编码路径所涉及的信源节点; 基 本上来讲, 在本步骤中, 编码路径的设置是与一个接收节点和发送数据到该接收 节点的多个信源节点相关的。 1 ^) 1 , tj T e , the other is the encoding path. That is to say, in this step, the number of data packets from different sessions transmitted on each link in the path is determined in turn, for example, if there is only one data packet, the path related to the link in the session is set to be non-coded. Path; if the number of data packets transmitted from different sessions on the link is | |, where | | >1, then for a receiving node, set |R w in different sessions involved by the receiving node | -i paths are coded paths, and the remaining path is a non-coded path, and the source node involved in the coded path is notified; basically, in this step, the code path is set with a receiving node and sends data to The plurality of source nodes of the receiving node are related.
在本步骤中, 中间节点通知其信源节点它所属于的路径是否为编码路径, 信 源节点统计编码路径数。 编码路径数可以帮助信源节点在其路径上分配数据速率 使得接收节点的吞吐量达到最大。 步骤 S14信源节点依据编码路径参数, 发送一个或分别发送多个数据包: 在 本步骤中, 一个信源节点依据其收到的编码路径数据, 选择一个或多个数据包分 别在该信源节点到一个接收节点的多条路径上传输; 实际上, 在本实施例中, 一 个信源节点可能需要针对不同的接收节点发送相同或不同的数据包, 所以, 在本 步骤中, 同样地, 上述一个信源节点可能会分别对于不同的接收节点重复上述操 作。 在本实施例中, 当会话 拥有 IR l个路径, 其中有 j个编码路径时, 为了 使得接收节点能够解码出编码路径中传输的编码包, 信源节点 为每个编码路径 选择一个非编码路径, 在编码路径和非编码路径中发送相同的数据包。 所以最多 能在 IR l个路径中传输 (IR l- ΐ )个不同的数据包。 In this step, the intermediate node notifies whether the path to which the source node belongs is an encoding path, and the source node counts the number of encoding paths. The number of encoding paths can help the source node to allocate a data rate on its path to maximize the throughput of the receiving node. Step S14: The source node sends one or multiple data packets according to the encoding path parameter: In this step, a source node selects one or more data packets according to the encoded path data received by the source node respectively. The node transmits to multiple paths of a receiving node; in fact, in this embodiment, one source node may need to send the same or different data packets for different receiving nodes, so, in this step, similarly, The above one source node may repeat the above operations for different receiving nodes respectively. In this embodiment, when the session has IR l paths, where there are j encoding paths, The receiving node is enabled to decode the encoded packet transmitted in the encoding path, and the source node selects a non-encoding path for each encoding path, and transmits the same data packet in the encoding path and the non-encoding path. Therefore, it is possible to transmit (IR l- ΐ ) different data packets in up to IR paths.
步骤 S15在编码路径上对数据包编码并传输: 在本步骤中, 每个中间节点将 其接收到的不同信源节点发出的数据包进行编码并通过其所在的链路及该链路所 在的、 在上述步骤中得到的路径传输到所述接收节点。  Step S15 encodes and transmits the data packet on the encoding path: In this step, each intermediate node encodes the data packet sent by the different source node it receives and passes through the link where the link is located and where the link is located. The path obtained in the above step is transmitted to the receiving node.
值得一提的是, 在本实施例中, 上述接收节点对信源节点的数据要求并不是 一成不变的, 在一些情况下, 例如, 新增加了数据请求或之前的数据请求已经完 成, 则会使得上述网络的路径情况出现变化, 在这种情况下, 只需要针对变化的 部分进行上述步骤即可, 并不需要将仍然存在的路径及其上的信源节点、 接收节 点及中间节点中的数据或参数清除后重新取得。 这使得当网络变化时可以使用较 小的代价或开销, 再次达到网络吞吐量的最大化。  It is worth mentioning that, in this embodiment, the data requirements of the receiving node to the source node are not static. In some cases, for example, if a newly added data request or a previous data request is completed, The path condition of the above network changes. In this case, only the above steps need to be performed for the changed part, and the data in the still existing path and the source node, the receiving node, and the intermediate node are not needed. Or re-acquire after the parameter is cleared. This allows for a smaller cost or overhead to be used when the network changes, again maximizing network throughput.
如图 2所示, 在本实施例中, 上述预处理步骤进一步包括如下步骤: 步骤 S21正向路径查找: 在本步骤中, 首先进行当前所有会话的路径查找, 即依据每个接收节点向一个或多个信源节点提出的数据请求,分别查找由该个(多 个信源节点的情况下需要分别逐个进行 )信源节点到该接收节点的数据传输路径; 并在该信源节点上存储查找到的路径集合。  As shown in FIG. 2, in the embodiment, the foregoing pre-processing step further includes the following steps: Step S21: Forward path search: In this step, path search of all current sessions is first performed, that is, according to each receiving node Or a data request submitted by a plurality of source nodes, respectively searching for a data transmission path of the source node to the receiving node by the one (in the case of multiple source nodes); and storing on the source node The set of paths found.
步骤 S22依据查找到的路径逐条进行逆向路由: 在本步骤中, 依据上述步骤 中得到的路径, 依次由一个接收节点向上述述信源节点逆向路由, 得到每条路径 中包括的多个链路, 并在上述每个链路的尾节点上存储该链路参数; 其中, 链路 参数包括: 涉及的信元节点、 接收节点、 路径数量和该链路所在路径编号。 在本 步骤中, 如果网络包括多个接收节点 (或有多个提出数据请求的接收节点), 则每 个接收节点将分别执行本步骤。  Step S22 performs reverse routing one by one according to the found path: In this step, according to the path obtained in the foregoing step, one receiving node sequentially reversely routes to the source source node to obtain multiple links included in each path. And storing the link parameter on the tail node of each link; wherein the link parameters include: a cell node involved, a receiving node, a number of paths, and a path number of the link. In this step, if the network includes multiple receiving nodes (or multiple receiving nodes that make data requests), each receiving node will perform this step separately.
步骤 S23设置所有路径的初始状态: 在本步骤中, 由于初始化的需求, 设置 上述会话中的所有路径均为非编码路径。  Step S23 sets the initial state of all the paths: In this step, all the paths in the above session are set to be non-encoded paths due to the initialization requirements.
在预处理中, 其得到输出是会话 (si tj)在中间节点的标记信息。 基本上而言, 在本实施例中,从信源 Si开始按照有向图进行信息路由,遍历 Si所能达到的所有的 节点和链路, 所经过的节点都标记为 Si。 从接收节点 tj按照上一节点被标为 Si的信 息分别对每一个连接到接收节点 tj的链路进行逆向路由到信源节点 Si,并在所经过 的所有的链路 e的 tail(e)为每个链路 e标记为 e(Si, tj, |RM|, k), 1≤|<≤|[¾|。 在节 点 tail(e)为每个链路 e标记为 e(s tP |RU| , k), l≤k<|RM| , 表示信源 Si要传输到 接收节点 tj的路径共有 I Ri,j|个, 链路 e属于路径集 Ru的第 k条路径。 在本实施例中, 把接收节点 的全体路径 分成三个部分: 第一部分为离散 路径集合, 用 表示其路径集合。 第二部分为非离散路径集合并且所有的接收节 点都可以解码, 用 (¾表示其路径集合。 第三部分则是非离散路径集合且不满足所 有的接收节点可以解码, 称这部分路径集合为不可解码路径集, 用 1¾表示该路径 集合。 对于第一部分的路径集合, 非编码的方法即可达到其吞吐量的最佳; 网络 编码可以达到第二部分路径集吞吐量的最佳; 而对于第三部分路径集, 编码并不 能提高吞吐量, 在本实施例中, 使用非编码的路由策略来处理这部分路径集合, 因为网络编码不仅不能提高吞吐量而且会产生大量的时延。 In preprocessing, it gets the tag information that the output is the session (s i tj) at the intermediate node. Basically, in this embodiment, starting from the source Si, the information is routed according to the directed graph, and all the achievable by Si is traversed. Nodes and links, the nodes that pass through are marked as Si. From the receiving node tj, each link connected to the receiving node tj is reversely routed to the source node Si according to the information of the previous node being marked as Si , and the tail(e) of all the links e passing through Each link e is labeled e(Si, tj, |R M |, k), 1≤|<≤|[3⁄4|. In the node tail(e), each link e is marked as e(st P |R U | , k), l≤k<|R M | , indicating that the path of the source Si to be transmitted to the receiving node tj is shared by I Ri , j|, link e belongs to the kth path of the path set R u . In this embodiment, the overall path of the receiving node is divided into three parts: The first part is a set of discrete paths, and the set of paths is represented. The second part is a non-discrete path set and all receiving nodes can decode, using (3⁄4 to represent its path set. The third part is a non-discrete path set and does not satisfy all receiving nodes can decode, called this part of the path set is not available Decoding the path set, the path set is represented by 13⁄4. For the first part of the path set, the non-encoding method can achieve the best throughput; the network coding can achieve the best of the second part of the path set throughput; In the three-part path set, encoding does not improve throughput. In this embodiment, a non-encoded routing strategy is used to process this part of the path set, because network coding can not only improve throughput but also generate a large amount of delay.
如图 3所示, 在本实施例中, 编码路径的设置进一步包括如下步骤: 步骤 S31 链路收到的数据包数量是否大于 1, 如是, 执行步骤 S32; 如否, 执 行步骤 S33; 也就是说, 在本步骤中, 判断一个链路收到的、 来自不同信源节点且 传输到同一个接收节点的数据包个数 | |是否大于 1,如是,执行步骤 S32; 否则, 执行步骤 S33; 当存在多个链路时, 多个链路将分别执行上述操作内容。  As shown in FIG. 3, in this embodiment, the setting of the encoding path further includes the following steps: Step S31: The number of data packets received by the link is greater than 1, if yes, step S32 is performed; if not, step S33 is performed; In this step, it is determined whether the number of data packets received from a different source node and transmitted to the same receiving node is greater than 1, and if so, step S32 is performed; otherwise, step S33 is performed; When there are multiple links, multiple links will perform the above operations separately.
步骤 S32 设置该链路所在的、 由不同信源节点到当前接收节点的路径中的一 个为非编码路径, 其余为编码路径: 在本步骤中, 设置该链路所在的、 由不同信 源节点到该接收节点的路径 (这些路径总共有 |RW|个) 中的 个为编码路径, 剩余一个为非编码路径, 执行本步骤后执行步骤 S34。 Step S32: Set one of the paths from the different source nodes to the current receiving node of the link to be a non-encoding path, and the rest are encoding paths: In this step, set the different source nodes where the link is located. The path to the receiving node (the total number of these paths is |R W |) is the encoding path, and the remaining one is the non-encoding path. After performing this step, step S34 is performed.
步骤 S33 设置该链路所在的路径为非编码路径: 在本步骤中, 由于在该链路 上只有一个数据包, 不需要对数据包进行编码, 所以设置该链路所在的路径为非 编码路径。 执行本步骤后, 执行步骤 S35。  Step S33: setting the path where the link is a non-encoded path: In this step, since there is only one data packet on the link, the data packet is not required to be encoded, so the path where the link is located is a non-encoded path. . After performing this step, go to step S35.
步骤 S34发送编码路径的信息到信源节点: 在本步骤中, 将在上述步骤 S32 中设置的编码节点的信息发送到相关的信源节点, 也就是发送数据包并通过该链 路传输到上述的接收节点的信源节点。 Step S34: transmitting the information of the encoding path to the source node: In this step, the information of the encoding node set in the above step S32 is sent to the relevant source node, that is, the data packet is sent and passed through the chain. The path is transmitted to the source node of the above receiving node.
步骤 S35 所有链路所在路径均已设置:在本步骤中,判断是否所有的链路(当 然, 是与当前数据传输相关的链路)是否均与经过上述判断并设置过了, 如是, 跳转到步骤 S14继续执行; 否则, 执行步骤 S36。  Step S35: The path of all the links is set: In this step, it is determined whether all the links (of course, the link related to the current data transmission) are both judged and set, and if so, jump The process proceeds to step S14; otherwise, step S36 is performed.
步骤 S36 准备对下一个链路进行判断: 在本步骤中, 准备对下一个未设置的 链路进行判断并设置, 在执行完本步骤中之后, 返回步骤 S31。  Step S36 is ready to judge the next link: In this step, it is prepared to judge and set the next unset link, and after performing this step, return to step S31.
总之, 在本实施例中, 网络编码采用异或操作而不是随机网络编码。 在多信 源网络编码中, 参与编码的数据包均来自于不同的信源节点, 同一个接收节点收 到相同的编码包的概率极小, 所以不考虑系数的相关性。 即使接收节点收到了两 个相同的编码包, 编码节点只需要在参与编码的数据中添加一个比特再异或编码 即可保证收到的两个编码包数是不相关的。 比如两个数据包 ai ( a^!a^ ...a!,B )和 a2( a2;1 a2,2 ... a2,B ),数据包的长度为 B比特。若接收节点收到的一个编码包为 ai ^ a 则另一个编码包的编码过程如下:分别在数据包 a 々头部和 a2 的尾部添加比特 Ό' , 得到数据包(Oawau ...a!,B )和(a2 1 a2,2 ... a2,B0 ) 并对这两个数据包异或编码。 而 两个编码包 a e a?和(Oa^au ...aw ) Θ ( a2 1 a2,2 … a2,B0 )是相互独立的, 可以解 码出数据包 a^ a2。 在本实施例中, 首先需要为每一对会话 (si tj)启动预处理。 信源节点根据其路 径集合中的编码路径数, 在其路径 | RiJ中传输 ( | RiJ - Pu)个不同数据包, 而中间节 点则根据接收节点请求的信源信息选择合适的数据包并使用异或编码, 然后为每 个接收节点 Te选择(R(e)-1)个路径为编码路径, 另一个为非编码路径, 最后把编码 信息反馈给相应的信源节点。 这样网络中的信源节点和中间节点便构成了相互影 响的动态的多信源网络编码算法。 表格 1给出了本实施例中符号代表的意义。 表格 1.符号含义。 In summary, in this embodiment, the network coding uses an exclusive OR operation instead of random network coding. In multi-source network coding, the data packets participating in the coding are all from different source nodes, and the probability that the same receiving node receives the same coded packet is extremely small, so the correlation of the coefficients is not considered. Even if the receiving node receives two identical encoded packets, the encoding node only needs to add a bit and then XOR code to the data participating in the encoding to ensure that the received two encoded packets are irrelevant. For example, two data packets ai ( a^! a^ ... a!, B ) and a 2 ( a 2; 1 a 2 , 2 ... a 2 , B ), the length of the data packet is B bits. If an encoding packet received by the receiving node is ai ^ a, the encoding process of another encoding packet is as follows: adding a bit Ό ' at the end of the packet a 々 header and a 2 respectively to obtain a data packet (Oawau ...a !, B ) and (a 2 1 a 2 , 2 ... a 2 , B 0 ) and XOR the two data packets. The two encoding packets aea? and (Oa^au ... aw ) Θ ( a 2 1 a 2 , 2 ... a 2 , B 0 ) are independent of each other, and the data packet a^ a 2 can be decoded. In this embodiment, it is first necessary to initiate preprocessing for each pair of sessions (s i tj). The source node transmits ( | RiJ - Pu) different data packets in its path | RiJ according to the number of encoded paths in its path set, and the intermediate node selects the appropriate data packet according to the source information requested by the receiving node and uses XOR coding, then selecting (R( e )-1) paths for each receiving node T e as the encoding path and the other as the non-encoding path, and finally feeding the encoding information back to the corresponding source node. In this way, the source node and the intermediate node in the network constitute a dynamic multi-source network coding algorithm that interacts with each other. Table 1 gives the meaning of the symbol representation in this embodiment. Table 1. Symbolic meaning.
Figure imgf000013_0001
In(vk) 节点 vk在一个传输时隙内收 到的数据包 节点 vk在一个传输时隙内收 到的原始数据包
Figure imgf000013_0001
In(v k ) node v k receives the original packet received by the packet node v k in one transmission slot within one transmission slot
T 正在使用链路 vkvk+1的接收 节点集合 s(t 接收节点 tj请求的信源集合 会话 (S tj)的路径集合 T is using the set of receiving nodes of the link v k v k+1 s (t receiving the path set of the source set session (S tj ) requested by the node tj
R(vkvk+i) 在链路 vkvk+1中需要传输的 数据包集合 R(v k v k+ i) set of data packets to be transmitted in link v k v k+1
( 门 )) 接收节点 Γν +ι请求的信源 节点数据包的交集 (gate)) The intersection of the source node packets received by the receiving node ν ν +ι
此夕卜,当由节点本身的角度来描述其在编码过程中的动作时,可以看到的是 , 对于接受节点而言, 该接收节点主要进行的步骤为: Furthermore, when the action of the encoding process is described by the node itself, it can be seen that, for the receiving node, the main steps of the receiving node are:
Step 1: 接收节点 tj请求信源节点 S(t 的数据包, j=l, 2, ... , n。 Step 1: The receiving node tj requests the source node S (t packet, j=l, 2, ..., n.
Step 2: 为每一对会话 (Si, tj)启动预处理, j=l, 2, ... , n, V^. e S(tj)。 而对于信源节点而言, 可以大致将其划分为初始化阶段和递归阶段, 其中初 始化阶段的动作为: 对会话 (si tj), j=l, 2, ...,n, V^. e^ ,令 pu=0, 在每个会话 (si tj)的所有路径上传输相同的数据包。 而递归阶段的动作为: 如果 |Ri,j| >Pi,j, 在 IRijl 个路径上传输 (|Rij| - Pi,j)个数据包, 并在会话 (si tj)的编码路径和一个非编码路径上 传输相同的数据包; 如果| |= , 在 |Rij|个路径上传输相同的数据包, 并令一个 编码路径为非编码路径, 在该路径上只传输原始数据包。 对于中间节点而言, 同样可以大致将其划分为初始化阶段和递归阶段,其中初 始化阶段的动作为: Step 2: Start preprocessing for each pair of sessions (Si, tj), j=l, 2, ..., n, V^. e S(tj). For the source node, it can be roughly divided into an initialization phase and a recursive phase, wherein the actions of the initialization phase are: for the session (s i tj), j=l, 2, ..., n, V^. e^ , let p u =0, transmit the same packet on all paths of each session (s i tj). The action in the recursive phase is: If |Ri,j| >Pi,j, transmits (|Rij| - Pi,j) packets on IRijl paths, and the encoding path in session (s i tj) and one Non-coding path The same data packet is transmitted; if | |= , the same data packet is transmitted on |Rij| paths, and one encoding path is a non-encoding path, and only the original data packet is transmitted on the path. For the intermediate node, it can also be roughly divided into an initialization phase and a recursive phase, wherein the actions of the initialization phase are:
Step 1: For(k=l; k< | RM | +1; k++) = 0。 For(k=l; k<K; k++) = Φ。 R(vkvk+1)= k-J^-≡ In(vk)f] ( Π^(^)))。 (链路 vkvk+1收到的数据包集合与链路 vkvk+1的接收节 点集合请求的数据包的交集 ) Step 1: For(k=l; k< | R M | +1; k++) = 0. For(k=l; k<K; k++) = Φ. R(v k v k+1 )= kJ^-≡ In(v k )f] ( Π^(^))). (Link v k v k + 1 packets received set of link v k k + intersection set request packet receiving node 1 v)
Step 2: 为每个接收节点 Te选择(ΐ/?(νΛ+1)ΐ-1)个路径为编码路径(P =1), 另外 一个路径设置为非编码路径( = 0)。 而中间节点的递归阶段的动作为: Step 2: Select (ΐ/?(ν Λ+1 )ΐ-1) paths for each receiving node T e as the encoding path (P =1) and the other path as the non-encoding path (= 0). The action of the recursive phase of the intermediate node is:
K  K
Step 1: (vkvk+1)= {α,,Ια, ε/«(ν,)Π( 门 S(tq) [j S ) , Step 1: (v k v k+1 )= {α,,Ια, ε/«(ν,)Π( gate S(t q ) [j S ) ,
d=k+l d =k+l
Step 2: 为每个接收节点 Te选择 ( \R(vkvk+1)\-l )个路径为编码路径(P = 1), 另 外一个路径设置为非编码路径( = ο)。 如果路径 ^为编码路径, 则把节点 vk收到 的原始数据包 通知给节点 Vl, v2, ... Vw中的编码节点。 所以, 当中间节点 vk所属于的路径为编码路径且 vk有多个输入链路时, 把 vk 收到的数据包 Sq通知给该编码路径的编码节点, 编码节点可以对数据包 Sq编码且 不增加编码路径数, 因为编码包中的数据包 Sq可以在中间节点 Vk解出。 在初始化阶段,信源节点 Si在其路径中传输的数据包一样,这样可以确保接收 节点能立刻解码。 而在递归阶段, 则根据编码路径数 Pi,j传输 (IR -Pi,j)个不同的数 据包。 中间节点选择对收到的数据包进行异或编码, (门^( )为接收节点 Γν ι请 求的相同的信源集合。 而 η( Γ^( )}为在初始阶段中链路 VkVk+i上 需要传输的数据包。 如果 Ι /^Λ+1) Ι =1 , 则 R(vkvk+1)为原始数据。 相反, 则对 {α., Ι α. G /«( n( fl5^?))}使用异或编码操作并在链路 VkVk+i中传输编码包。 ϋ d为节点 vd收到的原始数据包集合,所以在节点 vd的上行链路可以对 ϋ s d=k+l d=k+l 编码, 而且不增加编码路径数。 当会话 (si tj)的路径数等于编码路径数时, 即使在 所有的路径上传输的数据包是一样的, 在接收节点也不能解码, 所以只能减少 1 个编码路径数, 这样既能充分利用网络资源又能使得接收节点收到编码包后马上 解码, 减少时延。 在实际的网络中,接收节点请求的会话会随着时间的推进而变化。对于本实施 例, 只需要把请求有改变的接收节点进入初始化阶段, 一个传输间隔后, 本实施 例即可进入迭代阶段。注意,在本实施例中,迭代阶段就是最佳阶段。而 PA和 SRLC 均需要很多的迭代次数才能进入最佳阶段, 甚至在合理的时间内不能进入最佳阶 段。 在本实施例中, 会根据网络中路径的编码情况调整信源数据包的发送个数, 也就是发送速率。 所以本实施例是动态的自适应的。 在本实施例中将编码算法分 布在各个中间节点,减轻了信源节点的负担,是一种分布式多信源网络编码算法, 本算法的很低的复杂度主要是以中间节点的空间和计算能力换取的。 在本实施例 中,提出了 GM NC(general multi-source network coding)—般的多信源网终编码算法。 GM NC 并不是将节点所有的输入数据进行网络编码而是只对需要的数据执行网络 编码。 GM NC使用异或编码方法, 而传统的异或编码可能会降低吞吐量, 本实施例 提出的一种异或编码方法使得所有的异或编码包都是线性无关的。 在本实施例中, 所有的接收节点收到的编码包均是可解的。 因为对于任意的接 收节点 若其收到了一个编码包 +&2+...+&£, 来自于 g个不同的信源节点Step 2: Select ( \R(v k v k+1 )\-l ) paths for each receiving node T e as the encoding path ( P = 1) and the other path as the non-encoding path ( = ο). If the path ^ is an encoding path, the original data packet received by the node v k is notified to the encoding node in the nodes V1 , v 2 , ... Vw. Therefore, when the path to which the intermediate node v k belongs is an encoding path and v k has multiple input links, the data packet S q received by v k is notified to the encoding node of the encoding path, and the encoding node can S q is encoded without increasing the number of encoding paths because the data packet S q in the encoded packet can be solved at the intermediate node V k . In the initialization phase, the source node Si transmits the same data packets in its path, which ensures that the receiving node can decode immediately. In the recursive phase, (IR - Pi, j) different data packets are transmitted according to the number of coding paths Pi, j. The intermediate node chooses to XOR the received data packet, (the gate ^( ) is the receiving node Γ ν ι Find the same set of sources. And η( Γ^( )} is the data packet that needs to be transmitted on the link V k V k+ i in the initial stage. If Ι /^ Λ+1 ) Ι =1 , then R(v k v k+1 ) is Raw data. Instead, an exclusive OR encoding operation is performed on {α., Ι α. G /«( n( fl 5 ^?))} and the encoded packet is transmitted in the link V k V k+ i . ϋ d is the original packet set received by node v d , so the uplink at node v d can encode ϋ sd=k+ld=k+l without increasing the number of encoding paths. When the number of paths of the session (s i tj) is equal to the number of encoded paths, even if the packets transmitted on all the paths are the same, the receiving node cannot decode, so only one number of encoding paths can be reduced, so that Making full use of the network resources can enable the receiving node to decode the encoded packet immediately, reducing the delay. In an actual network, the session requested by the receiving node changes over time. For this embodiment, only the receiving node that has requested the change needs to enter the initialization phase. After one transmission interval, the embodiment can enter the iterative phase. Note that in this embodiment, the iterative phase is the best phase. Both PA and SRLC require a large number of iterations to enter the optimal phase, and even enter the optimal phase within a reasonable time. In this embodiment, the number of transmissions of the source data packet, that is, the transmission rate, is adjusted according to the coding condition of the path in the network. So this embodiment is dynamically adaptive. In this embodiment, the coding algorithm is distributed in each intermediate node, which reduces the burden on the source node. It is a distributed multi-source network coding algorithm. The low complexity of the algorithm is mainly the space of the intermediate node. Computational ability in exchange for. In this embodiment, a GM NC (general multi-source network coding)-like multi-source network final coding algorithm is proposed. GM NC does not network encode all of the node's input data, but only performs network coding on the required data. The GM NC uses an XOR encoding method, and the conventional XOR encoding may reduce the throughput. An XOR encoding method proposed in this embodiment makes all XOR encoding packets linearly independent. In this embodiment, all the received packets received by the receiving node are solvable. Because if any receiving node receives an encoding packet +& 2 +...+& £ , it comes from g different source nodes.
S!,s2, ...,sg, 根据 GMNC算法, 在编码节点会选择 g-1个路径为编码路径, 比如信 源 SbSz, . . ^^的路径, 相应的 g-1个信源节点会在(s^ ) ,i=l,2,...,g-l中个选择一 个路径, 分别发送数据包 ^ ,.,.Α^ 则接收节点 能够同时能够收到数据包 S!, s 2 , ..., s g , according to the GMNC algorithm, the coding node will select g-1 paths as the coding path, such as the source SbSz, . . ^^ path, the corresponding g-1 letters The source node selects a path in (s^), i=l, 2, ..., gl, and sends the data packet ^, ., .Α^ respectively, and the receiving node can receive the data packet at the same time.
所以对于任意的的接收节点 tj, 其收到的任意的编码包 @ a2㊉… ω ¾均是可解的。 也就是说 GMNC能够保证所有的接收节点收到的所有的编码包都 能够解码。 注意, 在有限域 GF(2)中传统的异或运算有可能会降低网络的吞吐量, 于数据包 aF^uau...a13)和 a2=(a2,ia2,2...a2,B), 分别 4巴比特 '0' 添力口到 ai和 a2的 头部和尾部, 为(Oauan Ha^)和 (a a^ H a^O), 然后对其异或编码, 该编码包与 传统的异或编码包 @ a2是相互独立的。 中间节点需要为其下行链路记录标记信息 e(s1 tj, IRyl, k)。在网络中最多含有 hn 个会话, 并且每个会话内的所有路径是离散的, 所以每个链路 e最多会被 hn个路 径使用。 整个网络最多需要存储 hnlEI个标记信息。 图 4给出了各种编码策略在不同网络中的消耗。对于毒药 -解药方法, 我们评估 了 k=3时的消耗。 而对于选择随机线性网络编码, 每个染色体是由所有的编码向 量组成的, 所以其消耗至少为( . „, ^ 1^ 1 ^/ 。 在我们评估的网络中, 网络的节 点数为 INI, 其中有 INI/8个信源节点, INI/8个接收节点, 每个节点均有 5个上行链 路和 5个下行链路。从图 4中可以得到, GMNC在消耗性能中优于 PA方法和 SRLC, 即使是在很大的网络中。 对于 SRLC, 包头需要存储编码系数 gm, §01为有限域 GF(2q)中的元素。 在有限 域 GF(2q)中,随机线性网络编码的错误概率为 1- (1-^2 , 其中 V为网络中路径的 链路最大数。 在 SRLC中, 每个编码包最多是由 h个原始数据包编码而成, 所以 SRLC的包头为 hq比特。 对于传统的异或编码包, 由 h个数据包异或编码的包头大小为 h。 对于的 g个 数据包 ( ,&2, g <h), 为了获得两个线性独立的编码包, 需要在原始数据包 中添加一个比特' 0,。一个编码包为 βι®β2®...®β ,另一个编码包的编码方法如下: 分别把比特' 0,添加到一个数据包的头部和 g-1个数据包的尾部, 然后异或这 g个 新的数据包。 得到的这两个编码包是相互独立的。 对于第二个编码包, 添加的冗 余比特为 g, 再加上 h比特的编码系数, 所以总的包头为 (g+h) 。 图 5是本实施例中一种网络的拓朴结构, 在图 5中, 信源 S^P S2均组播到接 收节点 ^和 t2。 接收节点 ^有两个会话 (s1 和 (s2, tx), 会话 (s1 有两个路径 Slt! 和
Figure imgf000018_0001
而会话 (s^ti)只有一个路径 1(^ 1=1。 同样的, 接收节 点 t2的两个会话 (s1 t2)和 (s2,t2)也分别有一个路径和两个路径, |R |=1, |R2,2|=2。 对 于接收节点 ^来说, 链路 VlV2属于不同会话的两个路径, 所以需要在链路 VlV2执 行网络编码操作。 对于接收节点 tl 令路径 s^v^为编码路径, 另外一个路径 s^v^为非编码路径。 编码路径数分别为 p11=l 以及 ρ21=0。 类似的对于接收节点 t2, 编码路径数分别为 p2,2=l 和 1,2=0。
Therefore, for any receiving node tj, any encoded packets it receives @ a 2 ten... ω 3⁄4 are solvable. In other words, GMNC can guarantee that all the encoded packets received by all receiving nodes can be decoded. Note that the traditional XOR operation in the finite field GF(2) may reduce the throughput of the network, in the packets aF^uau...a 13 ) and a2=(a 2 , ia 2 , 2... a 2 , B ), respectively, 4 bbits '0' add force to the head and tail of ai and a 2 , (Oauan Ha^) and (aa^H a^O), and then XOR, The coded packet is independent of the traditional XOR code package @ a 2 . The intermediate node needs to record the tag information e(s 1 tj, IRyl, k) for its downlink. There are up to hn sessions in the network, and all paths within each session are discrete, so each link e is used by up to hn paths. The entire network needs to store at most hnlEI tag information. Figure 4 shows the consumption of various coding strategies in different networks. For the poison-antidote method, we evaluated the consumption at k=3. For the selection of random linear network coding, each chromosome is composed of all coding vectors, so its consumption is at least ( . „, ^ 1^ 1 ^/ . In the network we evaluated, the number of nodes in the network is INI, Among them are INI/8 source nodes, INI/8 receiving nodes, each node has 5 uplinks and 5 downlinks. As can be seen from Figure 4, GMNC is superior to PA method in consumption performance. and SRLC, even for SRLC, the header needs to be stored in the coded coefficients g m large networks, §01 finite field GF (2 q) the elements in the finite field GF (2 q), the random linear network The error probability of coding is 1- (1-^2, where V is the maximum number of links in the network. In SRLC, each coded packet is encoded by at most h original packets, so the header of the SRLC is Hq bit. For a traditional XOR coded packet, the header size encoded by the hash packets is h. For g packets ( , & 2 , g <h), in order to obtain two linear independent coding packets, a bit '0' needs to be added to the original data packet. One encoding package is βι ® β 2 ®...® β , and the encoding method of another encoding packet is as follows: Add the bit '0' to the head of a packet and the tail of g-1 packets, respectively, and then Or these g new packets. The two encoded packets obtained are independent of each other. For the second coded packet, the added redundancy bit is g, plus the coding coefficient of h bits, so the total header is (g+h). FIG. 5 is a topological structure of a network in this embodiment. In FIG. 5, the source S^PS 2 is multicast to the receiving nodes ^ and t 2 . The receiving node ^ has two sessions (s 1 and (s 2 , t x ), the session (s 1 has two paths S1 t! and
Figure imgf000018_0001
The session (s^ti) has only one path 1 (^ 1 = 1. Similarly, the two sessions (s 1 t 2 ) and (s 2 , t 2 ) of the receiving node t 2 also have one path and two respectively. Path, |R |=1, |R 2 , 2 |= 2. For the receiving node ^, the link V1 V 2 belongs to two paths of different sessions, so it is necessary to perform a network coding operation on the link V1 V 2 . For the receiving node t l, the path s^v^ is the encoding path, and the other path s^v^ is the non-encoding path. The number of encoding paths is p 11 = l and ρ 21 =0 respectively. Similarly for the receiving node t 2 , The number of coding paths is p 2 , 2 = l and 1 , 2 =0, respectively.
图 6是本实施例中另一种拓朴结构, 在图 6中, 三个信源节点 Sl、 s2和 s3分别 组播到 t2、 t3, 组播到 ^、 t2, t3, 单播到 ^。 即, 接收节点 tl t2和 t3请求的信 源集合分别为
Figure imgf000018_0002
S2}。接收节点 ^到信源节点 Sl、 s2、 s3的容量为 3, 接收节点 t2到信源节点 Sl、 s2的容量为 2, 接收节点 t3到信源节 点 s2的容量为 2。 所以理论上接收节点 ^ , t2和 t3在单位传输时间内可以分 别收到请求的信源数据包 3个, 2个, 2个。 根据 GMNC 算法, 首先寻找各自会话的离散路径,
6 is another topology structure in this embodiment. In FIG. 6, three source nodes S1 , s 2, and s 3 are multicast to t 2 and t 3 respectively , and multicast to ^, t 2 , t 3 , unicast to ^. That is, the source sets requested by the receiving nodes t l t 2 and t 3 are respectively
Figure imgf000018_0002
S 2 }. The capacity of the receiving node ^ to the source nodes S1 , s 2 , s 3 is 3, the capacity of the receiving node t 2 to the source nodes S1 , s 2 is 2, and the capacity of the receiving node t 3 to the source node s 2 is 2. . Therefore, in theory, the receiving nodes ^, t 2 and t 3 can respectively receive the requested source data packets 3, 2, and 2 in the unit transmission time. According to the GMNC algorithm, first find the discrete path of the respective session,
Figure imgf000018_0004
Figure imgf000018_0004
{ S2V3V4V5V6t2}, Ri,3 ={ SiViV3V4V5V6t3}, R2,3={ S2V3V4V5V6t3, S2V2t3 }。 根据标记信息 , 中间 节点可以对收到的数据包进行编码并使得所有的接收节点均能解码。 在初始化阶 段, 所有的信源节点在其路径上均发送相同的数据包, 中间节点选择合适的数据 包编码。在初始阶段,中间节点 v3收到了三个数据包 , , d,而 R(v3v4)={ al b! }。 所以,链路 ν3ν4传输的编码包为 @ 并分别为接收节点 ^ , t2 , t3选择路径 Si V3V , SiViV3V4V5V6t2, S2V3V4V5V6t3为编码路径。 而当进入迭代阶段后, 中间节点 V3收到了三 个数据包 a , , d,而 R(v3v4)= { a2, b2 , c2 }。所以,链路 ν3ν4传输的编码包为 a2㊉ b2㊉ c2。 其它的节点同样发送合适的数据包。 信源 Sl、 s2和 s3的数据包分别用 a、 b和 c表 示, 图 6中用 a、 b、 c分别表示信源节点 sl s2和 s3的数据包。 中间节点的标记信 息如表 2。 表 2. 中间节点的所有标记信息. { S 2 V3V 4 V5V 6 t 2 }, Ri, 3 ={ SiViV 3 V 4 V5V6t 3 }, R 2 , 3 ={ S 2 V3V 4 V5V 6 t 3 , S 2 V 2 t 3 }. Based on the tag information, the intermediate node can encode the received data packets and enable all receiving nodes to decode. In the initialization phase, all source nodes send the same packet on their path, and the intermediate node selects the appropriate packet encoding. In the initial phase, intermediate node v 3 receives three packets, d, and R(v 3 v 4 ) = { a l b! }. Therefore, the coded packet transmitted by the link ν 3 ν 4 is @ and the path Si V3V is selected for the receiving node ^, t 2 , t 3 , respectively. SiViV 3 V 4 V5V6t2, S 2 V 3 V 4 V 5 V 6 t 3 is the encoding path. When entering the iterative phase, the intermediate node V 3 received three packets a,, d, and R (v 3 v 4) = {a 2, b 2, c 2}. Therefore, the coded packet transmitted by the link ν 3 ν 4 is a 2 ten b 2 ten c 2 . Other nodes also send the appropriate data packets. Source Sl, s 2 and s 3 packet are represented by a, b and c indicated in FIG. 6 by a, b, c respectively represent the source node s l s 2 and s 3 packets of. The tag information of the intermediate node is as shown in Table 2. Table 2. All tag information for intermediate nodes.
Figure imgf000019_0001
表 3. 图 3的吞吐量。
Figure imgf000019_0001
Table 3. The throughput of Figure 3.
Figure imgf000020_0001
Figure imgf000020_0001
表 3给出了图 6中不同的编码策略在吞吐量性能的比较。 在 PINC中, 会话 间网络编码被限制在两个单播会话之间的特例,所以在链路 v3v4上只能对来自于信 源节点 Si和 s2或者 s2和 s3的数据包进行编码。 若链路 v3v4传输 a和 b的编码包, 则接收节点 ^不能收到信源 s3的数据包只能收到信源 Sl和 s2的两个数据包, 网络 的总吞吐量为 6; 若链路 v3v4传输 b和 c的编码包, 则接收节点 t3只能收到数据包 b, 网络的总吞吐量为 6。 所以文 [5][10]最多能达到的总吞吐量为 6。 会话内的网络 编码算法是为每个信源分配子树,每个信源节点根据自己的子树传输相应的数据包, 会话内的网络编码算法的吞吐量同样为 6。 在图 6中, 当信源 单播到接收节点 t3, 信源 s2单播到接收节点 t2, 信源 s3 单播到接收节点 ^时。很显然, GMNC算法可以使得三个接收节点各自收到一个相 应的信源数据包, 而 PINC则在满足 ^和12的请求时不能同时满足 t3的请求, 也就 是说, 他们不能使得三个接收节点同时收到相应的一个请求的信源数据包。 因此, 相对于先前的研究, GMNC算法在总吞吐量和同时满足不同接收节点的请求上是有 很大的优势的。 如图 7所示, 在本实施例中, 还涉及一种实现上述编码方法的装置, 该装置 包括: 预处理单元 71、 初始阶段数据包发送单元 72、 编码路径设置单元 73、 数据 包发送单元 74和编码单元 75; 其中预处理单元 71用于针对当前网络上存在的多 个会话, 分别对一个对话所涉及的信源节点、 接收节点及中间节点进行预处理, 使该会话所涉及的信源节点得到当前该会话的路径参数, 并使该会话所涉及的多 个链路的尾节点得到其链路参数; 初始阶段数据包发送单元 72用于在上述信源节 点当前对其请求数据的一个接收节点的所有路径上发送相同的数据包; 编码路径 设置单元 73用于依次判断上述路径中各链路上传输的、 来自不同会话的数据包数 量, 如只有一个数据包, 则设置该会话中涉及所述链路的路径为非编码路径; 如 所述链路上传输来自不同会话的数据包数量为 | |个, 其中, | | >1 , 则对于一个 接收节点而言,设置该接收节点涉及的不同会话中的 |RW| -1个路径为编码路径, 剩 余一个路径为非编码路径, 并通知上述编码路径所涉及的信源节点; 数据包发送 单元 74用于使上述信源节点依据其收到的编码路径数据, 选择一个或多个数据包 分别在其到上述接收节点的多条路径上传输; 编码单元 75用于使所述中间节点将 其接收到的不同信源节点发出的数据包进行编码并传输到上述接收节点。 Table 3 gives a comparison of the throughput performance of the different coding strategies in Figure 6. In PINC, inter-session network coding is limited to special cases between two unicast sessions, so only data from source nodes Si and s 2 or s 2 and s 3 can be on link v 3 v 4 The package is encoded. If the link v 3 v 4 transmits the encoded packets of a and b, the receiving node can not receive the data packet of the source s 3 and can only receive the two data packets of the source S1 and s 2 , and the total throughput of the network. 6; if the link v 3 v 4 transmits the encoded packets of b and c, the receiving node t 3 can only receive the data packet b, and the total throughput of the network is 6. Therefore, the maximum throughput that can be achieved by [5][10] is 6. The network coding algorithm in the session allocates a subtree for each source, and each source node transmits a corresponding data packet according to its own subtree, and the throughput of the network coding algorithm in the session is also 6. In FIG. 6, when the source node to the receiving unicast t 3, the source s 2 to the receiving node unicast t 2, the source s 3 ^ unicast to the receiving node. Obviously, GMNC algorithm may be such that each of three receiving node receives a data packet corresponding to the source, but can not satisfy the request PINC t 3 at the same time request satisfies ^ and 12, that is, such that they can not be three The receiving nodes simultaneously receive a corresponding one of the requested source data packets. Therefore, compared to previous studies, the GMNC algorithm has great advantages in terms of total throughput and simultaneous requests for different receiving nodes. As shown in FIG. 7, in this embodiment, an apparatus for implementing the foregoing encoding method is further provided. The apparatus includes: a pre-processing unit 71, an initial stage data packet transmitting unit 72, an encoding path setting unit 73, and a data packet sending unit. 74 and coding unit 75; wherein the pre-processing unit 71 is configured to perform pre-processing on the source node, the receiving node, and the intermediate node involved in the session for the plurality of sessions existing on the current network, so that the message involved in the session is The source node obtains the path parameter of the current session, and causes the tail node of the multiple links involved in the session to obtain its link parameter; the initial stage data packet sending unit 72 is configured to request data from the source node at present. The same data packet is sent on all paths of a receiving node; the encoding path setting unit 73 is configured to sequentially determine the number of data packets transmitted from different sessions on each link in the path, for example, if there is only one data packet, the session is set. The path involved in the link is a non-encoded path; as the number of packets transmitted from different sessions on the link | | A, where, | |> 1, then for a receiving node, the receiving node to set different session according to the | R W | -1 coding path is a path, a path of the remaining non-coding path, and Notifying the source node involved in the above encoding path; the data packet sending unit 74 is configured to enable the source node to select one or more data packets respectively in the multiple paths to the receiving node according to the encoded path data received by the source node. Up-conversion; the encoding unit 75 is configured to enable the intermediate node to encode and transmit the data packet sent by the different source node that it receives to the receiving node.
在本实施例中, 预处理单元 71进一步包括正向路径查找模块 711、 逆向路径 查找模块 712和初始路径设置模块 713; 其中, 正向路径查找模块 711用于依据所 述接收节点向所述信源节点提出的数据请求, 分别查找由所述信源节点到所述接 收节点的数据传输路径; 并在所述信源节点上存储查找到的路径集合; 逆向路径 查找模块 712用于依据得到的路径, 依次由所述接收节点向所述信源节点逆向路 由,得到每条路径中包括的多个链路,并在所述链路的尾节点上存储该链路参数; 所述链路参数包括: 涉及的信源节点、 接收节点、 路径数量和该链路所在路径编 号; 初始路径设置模块 713 用于在开始时设置所有路径为非编码路径。 同时, 在 本实施例中, 编码路径设置单元 73进一步包括链路接收数据包判断模块 731、 非 编码路径设置模块 732、编码路径设置模块 733以及设置完成判断模块 734;其中, 链路接收数据包判断模块 731 用于判断所述链路收到的、 来自不同信源节点且传 输到同一个接收节点的数据包个数 |RW |是否大于 1 ; 非编码路径设置模块 732用于 在链路接收到的数据包为 1 时, 设置所述链路所在的、 由所述信源节点到所述接 收节点的路径为非编码路径; 编码路径设置模块 733 用于设置所述链路所在的、 由不同信源节点到所述接收节点的路径中的 |RW| -1个为编码路径,剩余一个为非编 码路径, 通知所述信源节点; 设置完成判断模块 734用于判断该会话中由所述信 源节点到所述接收节点的所有路径是否完成设置。 In this embodiment, the pre-processing unit 71 further includes a forward path search module 711, a reverse path search module 712, and an initial path setting module 713. The forward path search module 711 is configured to send the message according to the receiving node. a data request by the source node, respectively searching for a data transmission path from the source node to the receiving node; and storing the found path set on the source node; the reverse path searching module 712 is configured to obtain a path, in which the receiving node reversely routes to the source node, obtains multiple links included in each path, and stores the link parameters on a tail node of the link; the link parameter The method includes: a source node involved, a receiving node, a number of paths, and a path number of the link; and an initial path setting module 713 is configured to set all paths to non-encoded paths at the beginning. In the present embodiment, the encoding path setting unit 73 further includes a link receiving data packet determining module 731, a non-coding path setting module 732, an encoding path setting module 733, and a setting completion determining module 734; wherein the link receives the data packet The determining module 731 is configured to determine whether the number of data packets |R W | received from the different source nodes and transmitted to the same receiving node is greater than 1; the non-coding path setting module 732 is used to determine whether the number of data packets received from the different source nodes and transmitted to the same receiving node is greater than 1; When the data packet received by the link is 1, the path from the source node to the receiving node where the link is located is a non-encoding path; the encoding path setting module 733 is configured to set the link. The |R W | -1 in the path from the different source node to the receiving node is the encoding path, and the remaining one is the non-encoding path, and the source node is notified; the setting completion determining module 734 is used for judging Whether all paths from the source node to the receiving node in the session are set.
值得一提的是, 在本实施例中, 上述装置中的各单元和模块可以设置在相同 的物理载体上, 也可以设置在不同的物理载体上。 例如, 在本实施例中, 上述编 码路径设置单元是设置在中间节点上的, 而预处理单元是设置在信源节点上的。 但并不能因此而理解为对本发明专利范围的限制。 应当指出的是, 对于本领域的 普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进, 这些都属于本发明的保护范围。 因此, 本发明专利的保护范围应以所附权利要求 为准。  It should be noted that, in this embodiment, each unit and module in the foregoing apparatus may be disposed on the same physical carrier, or may be disposed on different physical carriers. For example, in the embodiment, the above-described encoding path setting unit is disposed on the intermediate node, and the pre-processing unit is disposed on the source node. However, it is not to be construed as limiting the scope of the invention. It should be noted that a number of variations and modifications may be made by those skilled in the art without departing from the spirit and scope of the invention. Therefore, the scope of the invention should be determined by the appended claims.

Claims

权利要求书 claims
1、 一种多信源动态网络编码的方法, 其特征在于, 包括如下步骤: 1. A multi-source dynamic network coding method, characterized by including the following steps:
A)针对当前网络上存在的多个会话, 分别对一个所述对话所涉及的信源节 点、 接收节点及中间节点进行预处理, 使所述会话所涉及的信源节点得到当前该 会话的路径参数, 并使所述会话所涉及的多个链路的尾节点得到其链路参数; A) For multiple sessions currently existing on the network, preprocess the source node, receiving node and intermediate node involved in one of the sessions, so that the source node involved in the session obtains the current path of the session. parameters, and enable the tail nodes of the multiple links involved in the session to obtain their link parameters;
B)所述信源节点在当前对其请求数据的一个接收节点的所有路径上发送 相同的数据包; B) The source node sends the same data packet on all paths of a receiving node currently requesting data;
C)依次判断所述路径中各链路上传输的、 来自不同会话的数据包数量, 如 只有一个数据包, 则设置该会话中涉及所述链路的路径为非编码路径; 如所述链 路上传输来自不同会话的数据包数量为 | |个, 其中, | | >1 , 则对于其所有接收 节点而言,设置该接收节点涉及的不同会话中的 |Rw | - i个路径为编码路径, 剩余一 个路径为非编码路径, 并通知所述编码路径所涉及的信源节点; C) Determine the number of data packets from different sessions transmitted on each link in the path in turn. If there is only one data packet, set the path involving the link in the session to a non-coding path; as in the link The number of data packets transmitted from different sessions on the road is | Coding path, the remaining one path is a non-coding path, and the source node involved in the coding path is notified;
D) 所述信源节点依据其收到的编码路径数据, 选择一个或多个数据包分 别在其到所述接收节点的多条路径上传输; D) The source node selects one or more data packets to transmit on multiple paths to the receiving node based on the encoding path data it receives;
E )所述中间节点将其接收到的不同信源节点发出的数据包进行编码并传 输到所述接收节点。 E) The intermediate node encodes the data packets received by it from different source nodes and transmits them to the receiving node.
2、 根据权利要求 1所述的多信源动态网络编码的方法, 其特征在于, 所述步 骤 A )进一步包括: 2. The method of multi-source dynamic network coding according to claim 1, characterized in that said step A) further includes:
A1 )依据所述接收节点向所述信源节点提出的数据请求, 分别查找由所述 信源节点到所述接收节点的数据传输路径; 并在所述信源节点上存储查找到的路 径集合; A1) According to the data request made by the receiving node to the source node, respectively search for the data transmission path from the source node to the receiving node; and store the found path set on the source node ;
A2 )依据得到的路径, 依次由所述接收节点向所述信源节点逆向路由, 得 到每条路径中包括的多个链路, 并在所述链路的尾节点上存储该链路参数; 所述 链路参数包括: 涉及的信源节点、 接收节点、 路径数量和该链路所在路径编号。 A2) Based on the obtained path, reverse routing is performed from the receiving node to the source node in sequence, multiple links included in each path are obtained, and the link parameters are stored on the tail node of the link; The link parameters include: the involved source node, the receiving node, the number of paths, and the path number where the link is located.
3、 根据权利要求 2所述的多信源动态网络编码的方法, 其特征在于, 所述步 骤 A )进一步包括: 3. The method of multi-source dynamic network coding according to claim 2, characterized in that said step A) further includes:
A3 )设置所有路径为非编码路径。 A3) Set all paths to non-encoded paths.
4、 根据权利要求 3所述的多信源动态网络编码的方法, 其特征在于, 所述步 骤 C )进一步包括: 4. The multi-source dynamic network coding method according to claim 3, characterized in that step C) further includes:
C1 )判断所述链路收到的、 来自不同信源节点且传输到同一个接收节点的 数据包个数 | |是否大于 1 , 如是, 执行步骤 C3 ); 否则, 执行步骤 C2 ); C1) Determine whether the number || of data packets received by the link from different source nodes and transmitted to the same receiving node is greater than 1, if so, perform step C3); otherwise, perform step C2);
C2 )设置所述链路所在的、 由所述信源节点到所述接收节点的路径为非编 码路径, 跳转到步骤 C4 ); C2) Set the path from the source node to the receiving node where the link is located as a non-coding path, and jump to step C4);
C3 )设置所述链路所在的、由不同信源节点到所述接收节点的路径中的 |RW | -1个为编码路径, 剩余一个为非编码路径,通知所述信源节点, 并执行步骤 C4 ); C3) Set |R W | -1 of the paths from different source nodes to the receiving node where the link is located as a coded path, and the remaining one as a non-coded path, notify the source node, and Execute step C4);
C4 )判断该会话中由所述信源节点到所述接收节点的所有路径是否完成设 置, 如是, 执行步骤 D ); 否则, 对剩余的中间节点重复步骤 CI ) -C4 )。 C4) Determine whether all paths from the source node to the receiving node in the session have been set up. If so, perform step D); otherwise, repeat steps CI)-C4) for the remaining intermediate nodes.
5、 根据权利要求 4所述的多信源动态网络编码的方法, 其特征在于, 所述步 骤 D ) 中进一步包括: 如所述信源节点到所述接收节点的所有路径中没有编码路 径, 则所述信源节点在所有路径上发送互不相同的数据包; 如所述信源节点到所 述接收节点的所有路径中存在 A 个编码路径, 且该信源节点到该接收节点的路径 数大于所述编码路径数时, 则所述信源节点在所有的 |RW |个路径上分别同时发送 个数据包。 5. The multi-source dynamic network coding method according to claim 4, wherein step D) further includes: if there is no coding path in all paths from the source node to the receiving node, Then the source node sends mutually different data packets on all paths; For example, there are A coding paths in all paths from the source node to the receiving node, and the path from the source node to the receiving node When the number is greater than the number of coding paths, the source node sends data packets simultaneously on all |R W | paths.
6、 根据权利要求 1-5任意一项所述的多信源动态网络编码的方法, 其特征在 于, 如所述会话发生变化, 则对变化后的接收节点及其请求数据的信源节点执行 所述步骤 A ) -E)。 6. The multi-source dynamic network coding method according to any one of claims 1 to 5, characterized in that if the session changes, the changed receiving node and its source node requesting data are executed. Described steps A)-E).
7、 根据权利要求 1-5任意一项所述的多信源动态网络编码的方法, 其特征在 于, 所述中间节点对来自不同信源节点的数据包进行异或编码并将编码后的数据 包在该链路上传输。 7. The multi-source dynamic network coding method according to any one of claims 1-5, characterized in that the intermediate node performs XOR encoding on data packets from different source nodes and encodes the encoded data Packets are transmitted on this link.
8、 一种实现如权利要求 1所述的多信源动态网络编码方法的装置, 其特征在 于, 包括: 8. A device for implementing the multi-source dynamic network coding method as claimed in claim 1, characterized in that it includes:
预处理单元: 用于针对当前网络上存在的多个会话, 分别对一个所述对话 所涉及的信源节点、 接收节点及中间节点进行预处理, 使所述会话所涉及的信源 节点得到当前该会话的路径参数, 并使所述会话所涉及的多个链路的尾节点得到 其链路参数; Preprocessing unit: used to preprocess the source node, receiving node and intermediate node involved in one conversation respectively for multiple conversations currently existing on the network, so that the source node involved in the conversation obtains the current information. path parameters of the session, and enable the tail nodes of multiple links involved in the session to obtain its link parameters;
初始阶段数据包发送单元: 用于在所述信源节点当前对其请求数据的一个 接收节点的所有路径上发送相同的数据包; Initial stage data packet sending unit: used to send the same data packet on all paths of a receiving node for which the source node currently requests data;
编码路径设置单元: 用于依次判断所述路径中各链路上传输的、 来自不同 会话的数据包数量, 如只有一个数据包, 则设置该会话中涉及所述链路的路径为 非编码路径;如所述链路上传输来自不同会话的数据包数量为 |RW |个,其中, | | >1 , 则对于其所有接收节点而言,设置该接收节点涉及的不同会话中的 |Rw| -i个路径为 编码路径,剩余一个路径为非编码路径,并通知所述编码路径所涉及的信源节点; 数据包发送单元: 用于使所述信源节点依据其收到的编码路径数据, 选择 一个或多个数据包分别在其到所述接收节点的多条路径上传输; Encoding path setting unit: used to determine the number of data packets from different sessions transmitted on each link in the path in turn. If there is only one data packet, set the path involving the link in the session as a non-encoding path. ; If the number of data packets transmitted from different sessions on the link is |R W |, where | | >1, then for all its receiving nodes, set |R in the different sessions involved in the receiving node w | -i paths are coded paths, and the remaining one path is a non-coded path, and the source node involved in the coded path is notified; Data packet sending unit: used to enable the source node to send data according to the code it received Path data, select one or more data packets to be transmitted on multiple paths to the receiving node;
编码单元: 用于使所述中间节点将其接收到的不同信源节点发出的数据包 进行编码并传输到所述接收节点。 Encoding unit: used to enable the intermediate node to encode the received data packets sent by different source nodes and transmit them to the receiving node.
9、 根据权利要求 8所述的装置, 其特征在于, 所述预处理单元进一步包括: 正向路径查找模块: 用于依据所述接收节点向所述信源节点提出的数据请 求, 分别查找由所述信源节点到所述接收节点的数据传输路径; 并在所述信源节 点上存储查找到的路径集合; 9. The device according to claim 8, characterized in that, the preprocessing unit further includes: a forward path search module: configured to respectively search for the data requested by the receiving node according to the data request made by the receiving node to the source node. The data transmission path from the source node to the receiving node; and storing the found path set on the source node;
逆向路径查找模块: 用于依据得到的路径, 依次由所述接收节点向所述 信源节点逆向路由, 得到每条路径中包括的多个链路, 并在所述链路的尾节点上 存储该链路参数; 所述链路参数包括: 涉及的信源节点、 接收节点、 路径数量和 该链路所在路径编号; Reverse path search module: used to perform reverse routing from the receiving node to the source node based on the obtained path, obtain multiple links included in each path, and store them on the tail node of the link. The link parameters; The link parameters include: the source node, the receiving node involved, the number of paths and the path number where the link is located;
初始路径设置模块: 用于在开始时设置所有路径为非编码路径。 Initial path setting module: used to set all paths to non-encoded paths at the beginning.
10、 根据权利要求 9所述的装置, 其特征在于, 所述编码路径设置单元进一 步包括: 10. The device according to claim 9, characterized in that the encoding path setting unit further includes:
链路接收数据包判断模块: 用于判断所述链路收到的、 来自不同信源节 点且传输到同一个接收节点的数据包个数 |RW |是否大于 1; Link received data packet judgment module: used to judge whether the number |R W | of data packets received by the link from different source nodes and transmitted to the same receiving node is greater than 1;
非编码路径设置模块: 用于在链路接收到的数据包为 1时, 设置所述链路 所在的、 由所述信源节点到所述接收节点的路径为非编码路径; 编码路径设置模块: 用于设置所述链路所在的、 由不同信源节点到所述接 收节点的路径中的 个为编码路径, 剩余一个为非编码路径, 通知所述信源节 点; Non-coding path setting module: used to set the path from the source node to the receiving node where the link is located as a non-coding path when the data packet received by the link is 1; Coding path setting module: used to set one of the paths from different source nodes to the receiving node where the link is located as a coding path, and the remaining one as a non-coding path, and notify the source node;
设置完成判断模块: 用于判断该会话中由所述信源节点到所述接收节点的 所有路径是否完成设置。 Setting completion judgment module: used to judge whether all paths from the source node to the receiving node in the session have been set.
PCT/CN2012/081820 2012-09-24 2012-09-24 Method and apparatus for multi-source dynamic network coding WO2014043908A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201280075605.6A CN104704760B (en) 2012-09-24 2012-09-24 The method and device of multiple source dynamic network coding
PCT/CN2012/081820 WO2014043908A1 (en) 2012-09-24 2012-09-24 Method and apparatus for multi-source dynamic network coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/081820 WO2014043908A1 (en) 2012-09-24 2012-09-24 Method and apparatus for multi-source dynamic network coding

Publications (1)

Publication Number Publication Date
WO2014043908A1 true WO2014043908A1 (en) 2014-03-27

Family

ID=50340560

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/081820 WO2014043908A1 (en) 2012-09-24 2012-09-24 Method and apparatus for multi-source dynamic network coding

Country Status (2)

Country Link
CN (1) CN104704760B (en)
WO (1) WO2014043908A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515728B (en) * 2015-11-24 2018-07-31 湖北经济学院 A kind of network coding method based on sliding window

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101695056A (en) * 2009-10-09 2010-04-14 魏昕 Routing method based on inter-session network coding in underwater sound communication network
CN102118228A (en) * 2011-01-19 2011-07-06 中国科学技术大学 Cooperation method used under condition of multi-source single relay and based on compression forward pass
CN102148664A (en) * 2011-04-21 2011-08-10 上海大学 Inter-multicast network coding control method applied to multi-source multi-destination network

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602008002147D1 (en) * 2008-03-28 2010-09-23 Ntt Docomo Inc Method and device for increasing the data throughput in a communication network
CN101917334B (en) * 2010-08-03 2012-05-23 浙江大学 Transmission network generation method by network coding of part of nodes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101695056A (en) * 2009-10-09 2010-04-14 魏昕 Routing method based on inter-session network coding in underwater sound communication network
CN102118228A (en) * 2011-01-19 2011-07-06 中国科学技术大学 Cooperation method used under condition of multi-source single relay and based on compression forward pass
CN102148664A (en) * 2011-04-21 2011-08-10 上海大学 Inter-multicast network coding control method applied to multi-source multi-destination network

Also Published As

Publication number Publication date
CN104704760A (en) 2015-06-10
CN104704760B (en) 2018-01-05

Similar Documents

Publication Publication Date Title
Zhu et al. Practical network coding technologies and softwarization in wireless networks
Lin et al. SlideOR: Online opportunistic network coding in wireless mesh networks
Krigslund et al. CORE: COPE with MORE in wireless meshed networks
Wei et al. Multiple tree video multicast over wireless ad hoc networks
Ge et al. A cross-layer design approach to multicast in wireless networks
KR102139721B1 (en) Apparatus and method for nested network cording for multipath protocol
CN103428803B (en) A kind of chance method for routing of combination machine meeting network code
Dong et al. Delay minimization for relay-based cooperative data exchange with network coding
Nguyen et al. Hybrid ARQ-random network coding for wireless media streaming
Han et al. Coding-aware multi-path routing in multi-hop wireless networks
WO2008151567A1 (en) Method and device for improving multicast transmission efficiency based on random network coding
Oh et al. Robust MANET routing using adaptive path redundancy and coding
US7827243B2 (en) Method for transmitting file based on multiplex forwarder
Zeng et al. Dynamic segmented network coding for reliable data dissemination in delay tolerant networks
WO2014043908A1 (en) Method and apparatus for multi-source dynamic network coding
JP5719049B2 (en) Method and apparatus for performing multicast forwarding in an optical ring
Shiming et al. A simple channel assignment for opportunistic routing in multi-radio multi-channel wireless mesh networks
CN102970117A (en) Method for suitable for end-to-end degree of freedom feedback of random linear network coding
Chow et al. Multiple tree multicast ad hoc on-demand distance vector (mt-maodv) routing protocol for video multicast over mobile ad hoc networks
Zeng et al. Segmented network coding for stream-like applications in delay tolerant networks
Xing et al. Device-aware routing and scheduling in multi-hop Device-to-Device networks
Chen et al. Performance of network coding in Ad hoc network multipath routing protocol
Mehta et al. Survey on multimedia transmission using network coding over wireless networks
Nargesi et al. Efficient multicast tree construction in wireless mesh networks
Tan et al. PNCRM: a novel real-time multicast scheme in MANETs based on partial network coding

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

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

Country of ref document: EP

Kind code of ref document: A1