Distributed Decoding of Convolutional Network Error Correction Codes
Abstract
A Viterbilike decoding algorithm is proposed in this paper for generalized convolutional network error correction coding. Different from classical Viterbi algorithm, our decoding algorithm is based on minimum error weight rather than the shortest Hamming distance between received and sent sequences. Network errors may disperse or neutralize due to network transmission and convolutional network coding. Therefore, classical decoding algorithm cannot be employed any more. Source decoding was proposed by multiplying the inverse of network transmission matrix, where the inverse is hard to compute. Starting from the Maximum A Posteriori (MAP) decoding criterion, we find that it is equivalent to the minimum error weight under our model. Inspired by Viterbi algorithm, we propose a Viterbilike decoding algorithm based on minimum error weight of combined error vectors, which can be carried out directly at sink nodes and can correct any network errors within the capability of convolutional network error correction codes (CNECC). Under certain situations, the proposed algorithm can realize the distributed decoding of CNECC.
I Introduction
Network coding is a new technique introduced in [1] which allows nodes to make the combination of multiple information before forwarding it. It is shown with large advantages in throughput, load equalization and security and so on, and has attracted lots of attention [2][3]. Network error correction coding was first proposed by Cai & Yeung to correct errors caused by adversaries, which was then completely introduced in[4][5]. They extended the Hamming bound, Singleton bound and GilbertVarshamov bound from classical error correction coding to network coding. Refined coding bounds for network error correction were given in [6]. Zhang studied network error correction in packet networks [7], where an algebraic definition of the minimum distance for linear network codes was introduced and the decoding problem was studied. Network error detection by random network coding has been studied by Ho et al. [8]. Jaggi et al. [9] have developed random algorithms for network error correction with various assumptions on adversaries. A new general framework for noncoherent network error correction was introduced in [10]. In their framework, messages are modulated as subspaces, so a code for noncoherent network error correction is also called a subspace code. Using rankmetric codes, nearly optimal subspace codes are constructed and decoding algorithms are also studied in [11].
Convolutional network coding is shown to have advantages in field size, small decoding delay and so on, which is more suitable for practical communications [12][13]. Convolutional networkerror correcting coding was introduced in [14] in the context of coherent network coding for acyclic instantaneous or unitdelay networks. They presented a convolutional code construction for a given acyclic instantaneous or unitdelay memoryfree network that corrects a given pattern of network errors. For the same network, if the network code changes, then the convolutional code obtained through their scheme may also change. They also consider the decoding. Decoding may be carried out at source or sink nodes based on the distance of equivalent received sequences. If the decoding needs to be done at the source node, the inverse of network transmission matrix is multiplied to the received sequences at a sink node, and then messages are decoded with the classical Viterbi algorithm. Distance measures for convolutional codes in rank metric were given in [15], and two constructions of (partial) unit memory ((P)UM) codes in rank metric based on the generator matrices of maximum rank distance codes were presented to correct network errors for noncoherent multishot networks. They also provided an efficient decoding algorithm based on rankmetric block decoders for error correction in random linear network coding.
In this paper, we consider the decoding for a generalized convolutional network errorcorrection code constructed by the extended method in [14], where network errors on each edge occur with the same probability and are separated by fixed timeslots. Source encoding is always needed due to the error correction purpose in networks.
However, given a delayinvariant, single source multicast network with a generalized multicast convolutional code, the ideal scenario is to decode CNECC in a distributed way while ensuring the decoded sequence is identical to the input sequence, which we refer to as the distributed decoding of CNECC. To realize it, we propose a Viterbilike decoding algorithm based on minimum error weight and give a sufficient condition to show the feasibility of such decoding process.
The main contributions of this paper are as follows:

A Viterbilike decoding algorithm is proposed based on minimum error weight for generalized convolutional error correction coding.

The algorithm can be carried out directly at sink nodes and no additional processing matrix is required.

A sufficient condition of realizing the distributed decoding of CNECC is first given.
This paper is structured as follows. In Section II, definitions and notation for generalized convolutional network error correction coding as well as the relation between error and distance are given. Section III gives a sufficient condition of realizing the distributed decoding of CNECC. Section IV illustrates our Viterbilike decoding algorithm and performance analysis. Some examples are shown in Section V and simulation results are given in SectionVI. Finally, Section VII concludes this paper.
Ii Definitions and Notation
Iia Network model
In this paper, we consider the finite directed network as in [7]. A finite directed graph can be represented as where is the set of all vertices in the network and is the set of all edges in the network. A directed edge represents a channel leading from node to node where is called the tail of and is called the head of , i.e., and . Channel is called an outgoing channel for node and an incoming channel for node . For a node , let and .
Let and be two disjoint sets of . The elements in are called source nodes which only have outgoing channels. The elements in are called sink nodes which only have incoming channels. The rest of nodes in set are called internal nodes. In this paper, we only consider single source networks and denote by the unique source node.
We assume that each edge in the network has unit capacity (can carry utmost one symbol from ) and capacity between nodes greater than one is modeled as parallel edges. A cut between node and node is a set of edges whose removal will disconnect and . For unit capacity channels, the capacity of a cut is regarded as the number of edges in it. For a sink node , let be the unicast capacity between and . Then, is the maxflow mincut capacity of the multicast connection. Here we let the information rate be symbols per time instant and we only consider multicast networks.
IiB Network codes
We follow [3] in describing network codes. An dimensional network code can be described by three matrices (over ), (for every sink node ). The details of them can be found in [3].
Definition 1 ([3])
The network transfer matrix, , corresponding to a sink node for an dimensional network code, is a fullrank (over the field of rationals ) matrix defined as
In this paper, we study network codes over .
IiC Cnecc
We follow [14] in describing a CNECC. Assume the dimensional network codes have been implemented in the given single source network. Note that the network may be a timedelay network, i.e. the network whose matrix carries delay factor . The following definitions describe a convolutional code for error correction in such networks.
Definition 2 ([14])
An input convolutional code, , is a convolutional code of rate with an input generator matrix implemented at the source of the network.
Definition 3
The output convolutional code, , corresponding to a sink node , is the convolutional code generated by matrix which is given as , with being the fullrank network transfer matrix corresponding to an dimensional network code.
Definition 4
The free distance of the convolutional code is given as
where indicates the Hamming weight over .
Definition 5 ([14])
Let be a rate convolutional code with a generator matrix . Then corresponding to the information sequence and the codeword sequence , we can associate an encoder state sequence where indicates the content of the delay elements in the encoder at a time instant . Define the set of output symbols as and the set as follows.
Clearly, the definition of excludes the possibility of a zero state in between, i.e., for any . We have that the set is invariant among the set of minimal convolutional encoders. We now define
which thereby can be considered as a code property because of the fact that is invariant among minimal encoders.
Definition 6
An error pattern is a subset of which indicates the edges of the network in error. An error vector is a vector which indicates the error occurred at each edge. An error vector is said to match an error pattern if all nonzero components of occur only on the edges in .
Let be the input sequence, output sequence and network error sequence, respectively. Thus, at any particular sink node , we have
(1) 
In Section IV [14], the authors proposed a construction scheme that can correct a given set of error patterns as long as consecutive network errors are separated by a certain interval. The convolutional code constructed under their scheme is a CNECC. They also proposed two cases of decoding such CNECC under different conditions.
Iii Distributed Decoding of CNECC
We now study the characteristics of matrix at sink node . Assume the degree of is . Thus, can be written as where is a nonzero matrix. For a particular error vector , we can get its resulting combined error vector where is a subvector from (1). Combined error vector characterizes the impact of an error vector in the network. If all combined error vectors can be corrected, then all network errors can be consequently corrected. Let be the combined error vector generated by error vector in which only the bit is one and the rest are all zeros. Let be a collection of vectors in a linear space and represent the subspace spanned by the vectors in . Here we consider the subspace at sink node .
Note that can also be regarded as a subspace determined by parameter where . For a given set of error patterns, assume has been constructed using the scheme in [14]. We hope to find a minimum such that where is a zero vector and is the message subspace spanned by output convolutional codes generated by where are all possible input sequences from instant to , i.e., .
Before discussing how to realize the distributed decoding of a CNECC, we give the following proposition.
Proposition 1
Assume is available at sink node such that . Then in any sliding window with length on the output trellis of , at most one nonzero combined error vector exists as long as network errors are separated by timeslots.
Proof:
We use reduction to absurdity to prove this proposition. Before the proof, we assume all sliding window mentioned below share the same length . Apparently, proving all situations in first window hold true is enough as all situations in succeeding windows are equivalent to that in first window by removing the impact of the input sequence prior to current window. Assume in first window we find two different nonzero combined error vectors which implies that there exists two different input sequences satisfying where . Given the closure property of and , i.e., and where are another input sequences and nonzero combined error vector in first window respectively, it leads to which contradicts to the condition . The proof is completed. \qed
Proposition 1 indicates the uniqueness of nonzero combined error vector within each sliding window when network errors are separated by a certain interval. However, the crux of realizing the distributed decoding of CNECC is how to pinpoint the unique time instant when network errors occur. That is, the addition of two combined error vectors with one generating at current instant and another generating at a later instant may yield a certain correct output sequence. Under the circumstances, we cannot distinguish exactly when network errors occur as both time instants are possible. In fact, if an addition yields a correct output sequence with , we can subjectively determine the network errors occur at the time instant of which is earlier than another. We call it error preposing which can enable the decoding algorithm still to proceed. The real issue is how to determine network errors when an addition yields a correct output sequence with . The following proposition gives a sufficient condition that is able to realize the distributed decoding of CNECC.
Proposition 2
The distributed decoding of CNECC at sink node can be realized when is noncatastrophic and its free distance .
Proof:
The main feature of noncatastrophic encoder is that only finitelength consecutive zero outputs exist. Similar to Definition 5, define as follows.
where . Given the fact that is noncatastrophic, is an increasing function as increases, though at some time instant may stay the same temporarily. For , . Given the fact that the addition of arbitrarily two combined error vectors (meaning that they can generate at different time instants) can affect at most bits, there must exist a threshold such that . Let , therefore in the first sliding window , none of the addition of arbitrarily two combined error vectors is identical to a certain correct output sequence, indicating that the exact time instant when network errors occur can be pinpointed. By using mathematical induction, network errors can be pinpointed in all subsequent windows which implies that the distributed decoding is realized. The proof is completed. \qed
Proposition 2 gives a sufficient condition that can realize the distributed decoding of CNECC. In fact, introducing is to prove the feasibility of such decoding process. The real threshold value may be less than as the fundamental condition of realizing the distributed decoding of CNECC is that no addition of arbitrarily two combined error vectors can yield a certain correct output sequence with in the first sliding window. is merely a sufficient value that is able to meet this condition. An example is shown in Section V to clarify this point.
Iv Decoding Algorithm of CNECC
Assume has been determined satisfying and we consider the following model.

all single edge errors have the same error probability and network errors are subject to i.i.d. under this distribution.

all network errors are separated by timeslots and only occur at prior time instants.

are available at each sink node.
Clearly, MAP is equivalent to the minimum error weight in this model so we propose the following decoding algorithm that is able to find the MAP path based on this model.
Remark 1
In the above pseudocode, since we need to encompass all combined error vectors completely. Compared to the decoding algorithm in [14], our algorithm has the following advantages. First, it can work directly at each sink node and no additional processing matrix has to be multiplied. Second, our algorithm can find the MAP path regardless of the error correction capability of as in networks, MAP is equivalent to the minimum error path under our model. Third, the performance of the proposed algorithm is closely related to the characteristics of and the free distance of . If conditions in Proposition 2 can be met at each sink node , the distributed decoding process can be realized on the whole network when all network errors are separated by timeslots where is the maximum of thresholds of all sink nodes.
In fact, the whole decoding process is quite similar to the classical Viterbi algorithm as we decode messages purely based on the metric of minimum error weight. Under our model, the impact of an error vector, i.e., its corresponding combined error vector, has no overlap with one another on output trellis so that the algorithm could determine its corresponding minimum error vector by searching the reference table.
Next, we study the time complexity of the proposed algorithm. Assume the reference table is available at each sink node and at any particular time instant, the maximum processing time, including searching reference table, calculating Hamming weight, etc., is . The total time complexity is .
V Illustrative Examples
Example 1
To illustrate the concept introduced in above sections and to show the complete decoding process of the proposed algorithm, we check a simple directed cyclic network shown in Fig. 1.
With the given network code, we thus have the network transfer matrices at sink and as follows
where
and
where
As is an identity matrix, therefore at sink node . Thus, we only consider sink node in later discussion. By using the construction scheme in [14], we choose with . Thus, with .
Next, we illustrate satisfies the condition that . Let where is an zero matrix. Thus, and are given in Table I and II. Elements of with are listed in column 2 of Table I and elements of with are listed in column 3 of Table II. Thus, it can be easily checked that only is in the intersection of and .
in window  in window 
000  00 00 00 
001  00 00 10 
010  00 10 00 
011  00 10 10 
100  10 00 11 
101  10 00 01 
110  10 10 11 
111  10 10 01 
index  minimum error vector  weight  
0  00 00 00  0  
1  11 00 00  1  
2  01 01 00  1  
3  01 00 00  1  
4  10 01 00  2  
5  10 00 00  2  
6  00 01 00  2  
7  11 01 00  3 
Assume the input sequence with . We set two types of where the fomer type contains indistinguishable network errors and the latter type is the opposite. They are given as follows.
With equation (1), we have the following output sequences.
Now, we illustrate the decoding process when exerting network error sequence. At first, we list all combined error vectors (in decimal form) between and the output of trellis within the sliding window. The accumulative weight of each combined error vector at current sliding window is given in parentheses. Those with infinite weight are marked with a strikeout which indicate they cease to extend. At the next time instant, new combined error vectors are derived from previous extendable states by removing the impact of its combined error vector and appending bits of new combined errors. At each time instant, all combined error vectors are listed in an increasing order of the internal state of the output trellis. Thus, the decoding process of and are shown in Table III and IV, respectively.
In Table III, we can clearly see that two conflictions occur in window and , respectively. In window , combined error vectors and both will converge to the same trellis output of the same state. So we select due to its less weight. The case is same with and in window , we eventually select . At last, by backtracking the father path from in window , we can obtain the MAP path which is identical to . In fact, is also a possible path because its corresponding that can yield the same . However its path weight is 5 more than that of the MAP path so that the algorithm discards it. We also can notice the whole decoding process of must be carried out globally as the algorithm is unable to determine the unqiue MAP path in halfway.
In Table IV, we notice that the remaining combined error in window and are both unique suggesting that network errors are distinguishable in window so that the input sequence can be uniquely determined. Therefore, in window , the algorithm can promptly output as the first newly found input sequence. Similarly, is output in window as the second newly found sequence and are output in window , respectively. Eventually, the MAP path is obtained in a distributed way. In fact, all combined errors within are within the error capability of , which is why a distributed decoding can be realized.
window  [0,2]  [1,3]  [2,4]  [3,5]  [4,6]  [5,7]  [6,8] 
combined error vectors  0 1 1 (0)  1 1 3 ()  0 0 2 (3)  0 2 3 (3)  2 3 0 ()  1 1 3 ()  0 0 0 (4) 
2 1 2 ()  3 1 0 (3)  0 2 0 (2)  2 0 2 ()  0 1 1 (2)  3 3 2 ()  
0 3 1 (0)  1 3 3 ()  0 0 0 (2)  0 0 1 (2)  0 3 3 (3)  0 0 0 (4)  
2 3 2 ()  0 0 2 (2)  0 0 0 (3)  0 0 3 (3)  2 1 2 ()  3 1 0 (5)  
0 1 3 (0)  3 3 0 ()  0 2 2 (2)  2 2 2 ()  2 1 0 (5)  1 3 1 ()  
2 1 0 (2)  1 1 1 ()  0 0 2 (2)  0 2 1 (2)  0 0 0 (4)  
0 3 3 (0)  3 1 2 ()  0 2 1 (3)  0 3 1 (2)  
2 3 0 ()  1 3 1 ()  2 0 0 (4)  0 1 3 (3)  
0 0 0 (2)  0 0 3 (2)  2 3 2 ()  
3 3 2 ()  0 0 1 (3)  
2 2 0 ()  
0 2 3 (2) 
window  [0,2]  [1,3]  [2,4]  [3,5]  [4,6]  [5,7]  [6,8] 
combined error vectors  1 0 1 ()  0 0 1 (1)  0 1 0 (1)  1 0 2 ()  0 0 0 (2)  0 0 0 (2)  0 0 0 (2) 
3 0 2 ()  0 0 3 (1)  0 3 0 (1)  3 0 1 ()  
1 2 1 ()  0 1 2 (1)  1 2 2 ()  
3 2 2 ()  0 3 2 (1)  3 2 1 ()  
1 0 3 ()  1 0 0 (2)  
3 0 0 (1)  3 0 3 ()  
1 2 3 ()  1 2 0 ()  
3 2 0 ()  3 2 3 () 
Example 2
Assume and the network is the same as in Example 1. Thus, the output generators at sink node are as follows.
Both output generators share the same free distance of . All elements with in window of and in window of are given in Table V and Table VI. For sink node , it can be checked that no addition of arbitrarily two combined error vectors in is identical to a certain element in Table V when . For sink node , the case is same with combined error vectors in and elements in Table VI when . It implies that if all network errors are separated by timeslots, our decoding algorithm is able to decode messages in a distributed way at both and . We can notice that although the free distance of two output generators does not meet the condition in Proposition 2, the distributed decoding can still be realized.
in window  in window  in window  in window 
10 00 11 11 01 00 00  10 00 01 11 10 11 01  10 10 11 00 10 01 00  10 10 01 00 01 10 01 
10 00 11 11 01 00 10  10 00 01 11 10 11 11  10 10 11 00 10 01 10  10 10 01 00 01 10 11 
10 00 11 11 01 10 00  10 00 01 11 10 01 01  10 10 11 00 10 11 00  10 10 01 00 01 00 01 
10 00 11 11 01 10 10  10 00 01 11 10 01 11  10 10 11 00 10 11 10  10 10 01 00 01 00 11 
10 00 11 11 11 00 11  10 00 01 11 00 11 10  10 10 11 00 00 01 11  10 10 01 00 11 10 10 
10 00 11 11 11 00 01  10 00 01 11 00 11 00  10 10 11 00 00 01 01  10 10 01 00 11 10 00 
10 00 11 11 11 10 11  10 00 01 11 00 01 10  10 10 11 00 00 11 11  10 10 01 00 11 00 10 
10 00 11 11 11 10 01  10 00 01 11 00 01 00  10 10 11 00 00 11 01  10 10 01 00 11 00 00 
10 00 11 01 01 11 11  10 00 01 01 10 00 10  10 10 11 10 10 10 11  10 10 01 10 01 01 10 
10 00 11 01 01 11 01  10 00 01 01 10 00 00  10 10 11 10 10 10 01  10 10 01 10 01 01 00 
10 00 11 01 01 01 11  10 00 01 01 10 10 10  10 10 11 10 10 00 11  10 10 01 10 01 11 10 
10 00 11 01 01 01 01  10 00 01 01 10 10 00  10 10 11 10 10 00 01  10 10 01 10 01 11 00 
10 00 11 01 11 11 00  10 00 01 01 00 00 01  10 10 11 10 00 10 00  10 10 01 10 11 01 01 
10 00 11 01 11 11 10  10 00 01 01 00 00 11  10 10 11 10 00 10 10  10 10 01 10 11 01 11 
10 00 11 01 11 01 00  10 00 01 01 00 10 01  10 10 11 10 00 00 00  10 10 01 10 11 11 01 
10 00 11 01 11 01 10  10 00 01 01 00 10 11  10 10 11 10 00 00 10  10 10 01 10 11 11 11 
in window  in window 
11 01 11 11  11 10 10 00 
11 01 11 00  11 10 10 11 
11 01 00 10  11 10 01 01 
11 01 00 01  11 10 01 10 
Vi Simulation Results of the Decoding Algorithm
Via A probabilistic error model
We define a probabilistic error model for a single source network by defining the probabilities of any set of edges of the network being in error at any given time instant as follows. Across time instants, assume that the network errors are subject to i.i.d. according to this distribution.
(2)  
(3) 
where and are real numbers indicating the probability of any single network error in the network and probability of no network error, respectively, such that .
ViB Simulations on the butterfly network
We simulate the proposed algorithm in the classical butterfly network shown in Fig. 2. The transfer matrices for sink node are given as follows.
where
and
where
Let . The subspaces of for sink node and are shown as in Table VII and VIII, respectively. Thus, all with can be derived from by appending to each combined error vector in the table.
index  minimum error vector  weight  
0  (000000000)  00 00  0 
1  (100000000)  11 01  1 
2  (001000000)  10 00  1 
3  (010000000) (000100000) (000010000) (000001000) (000000100)  01 00  1 
4  (101000000)  01 01  2 
5  (110000000) (100100000) (100010000) (100001000) (100000100)  10 01  2 
6  (011000000) (001100000) (001010000) (001001000) (001000100)  11 00  2 
7  (111000000) (101100000) (101010000) (101001000) (101000100)  00 01  3 
index  minimum error vector  weight  
0  (000000000)  00 00  0 
1  (100000000)  10 10  1 
2  (010000000)  11 00  1 
3  (000000001)  01 00  1 
4  (000100000) (000010000) (000001000) (000000010)  10 00  1 
5  (110000000)  01 10  2 
6  (100000001)  11 10  2 
7  (100100000) (100010000) (100001000) (100000010)  00 10  2 
Let . The corresponding output generator matrices at sink node and are given as follows.
It can be easily checked that satisfying the basic condition that for both sink nodes. Let the input sequences be randomly given and error vectors be generated continuously in time under the probabilistic error model (but the decoding algorithm assumes they have been seperated by a certain interval ), we compare the decoded sequence obtained by the proposed decoding algorithm with the original input sequence and then compute the average BER given the single edge error probability . The simulation result is shown in Fig. 3.
In Fig. 3, it can be easily observed that the BER performances of our decoding algorithm at sink node and are likely. They both have the following features. In the region where , due to the small single edge error probability, network errors are separated by a sufficient timeslots on the output trellis with a high probability. Therefore the condition of distributed decoding of CNECC is easily satisfied resulting in a better BER performance. In the region where , the network errors on output trellis get closer as the single edge error probability increases. Therefore the condition of distributed decoding of CNECC is no longer satisfied which results in a worse BER performance. However, compared to the simulation results in [14], we obtain relatively the same BER performance without increasing the decoding complexity by directly decoding messages at sink nodes under the criterion of minimum error weight.
Vii Conclusion
In this paper, a Viterbilike decoding algorithm based on minimum error weight for generalized convolutional coding is proposed and a sufficient condition of realizing distributed decoding of CNECC is first given. The distributed decoding of CNECC is the ideal scenario we strive to pursue. However, the following issues regarding this process still remain open and will be studied in future work. First, how to design a network encoding matrix that is capable of realizing the distributed decoding with a smaller window length. Second, how to select a suitable input generator matrix such that all output generator matrices of all sink nodes are noncatastrophic. Third, how to find a sufficient condition less restricted by to realize the distributed decoding of CNECC.
References
 [1] R. Ahlswede, N. Cai, S. Y. R. Li, and R. W. Yeung, “Network information flow,” IEEE Transactions on Information Theory, vol. 46, no. 4, pp. 1204–1216, Jul 2000.
 [2] S. Y. R. Li, R. W. Yeung, and N. Cai, “Linear network coding,” IEEE Transactions on Information Theory, vol. 49, no. 2, pp. 371–381, Feb 2003.
 [3] R. Koetter and M. Medard, “An algebraic approach to network coding,” IEEE/ACM Transactions on Networking, vol. 11, no. 5, pp. 782–795, Oct 2003.
 [4] R. W. Yeung and N. Cai, “Network error correction, part i: Basic concepts and upper bounds,” Communications in Information and Systems, vol. 6, no. 1, pp. 19–36, 2006.
 [5] ——, “Network error correction, part ii: Lower bounds,” Communications in Information and Systems, vol. 6, no. 1, pp. 37–54, 2006.
 [6] S. Yang and R. W. Yeung, “Refined coding bounds for network error correction,” in Information Theory for Wireless Networks, 2007 IEEE Information Theory Workshop on, July 2007, pp. 1–5.
 [7] Z. Zhang, “Linear network error correction codes in packet networks,” IEEE Transactions on Information Theory, vol. 54, no. 1, pp. 209–218, Jan 2008.
 [8] T. Ho, B. Leong, R. Koetter, M. Medard, M. Effros, and D. R. Karger, “Byzantine modification detection in multicast networks using randomized network coding,” in Information Theory, 2004. ISIT 2004. Proceedings. International Symposium on, June 2004, pp. 144–.
 [9] S. Jaggi, M. Langberg, S. Katti, T. Ho, D. Katabi, M. Medard, and M. Effros, “Resilient network coding in the presence of byzantine adversaries,” IEEE Transactions on Information Theory, vol. 54, no. 6, pp. 2596–2603, June 2008.
 [10] R. Koetter and F. R. Kschischang, “Coding for errors and erasures in random network coding,” IEEE Transactions on Information Theory, vol. 54, no. 8, pp. 3579–3591, Aug 2008.
 [11] D. Silva, F. R. Kschischang, and R. Koetter, “A rankmetric approach to error control in random network coding,” IEEE Transactions on Information Theory, vol. 54, no. 9, pp. 3951–3967, Sept 2008.
 [12] S. Y. R. Li, Q. T. Sun, and Z. Shao, “Linear network coding: Theory and algorithms,” Proceedings of the IEEE, vol. 99, no. 3, pp. 372–387, March 2011.
 [13] W. Guo, X. Shi, N. Cai, and M. Medard, “Localized dimension growth: A convolutional random network coding approach to managing memory and decoding delay,” IEEE Transactions on Communications, vol. 61, no. 9, pp. 3894–3905, September 2013.
 [14] K. Prasad and B. S. Rajan, “Network error correction for unitdelay, memoryfree networks using convolutional codes,” in 2010 IEEE International Conference on Communications, May 2010, pp. 1–6.
 [15] A. WachterZeh, M. Stinner, and V. Sidorenko, “Convolutional codes in rank metric with application to random network coding,” IEEE Transactions on Information Theory, vol. 61, no. 6, pp. 3199–3213, June 2015.