Network Coding Project presentation Communication Theory 16:332:545 Amith Vikram Atin Kumar Jasvinder Singh Vinoo Ganesan Outline Introduction Study and Implementation Network coding concept Literature Survey Terminology and Notation Solvability in Multicast Networks Algorithm and Pseudo-code Low Complexity Network Codes Network Recovery and Management Scope for future work Network Coding Concept Goal: To transfer data at the maximum achievable throughput in a network. b1 b2 V1 b1 b2 V2 V3 b1 b2 b1 Idea: Process incoming data at nodes in the network V6 b1+b2 V4 V7 b1+b2 b1 b2 Introduction b2 V5 b1+b2 b1 b2 Literature Survey Network Information Flow - Ahlswede, Cai, Li, Yeung, 2000 Characterized the admissible coding rate region for multicast networks Proved that maximum throughput in a network can be achieved using ‘coding’ Linear network Coding – Li, Yeung, Cai, 2003 Coding at nodes treated as linear transformation of incoming data Showed that individual maxflow bounds of each receiver can be achieved but over a time period of the LCM of the maxflow bounds Algebraic Approach – Koetter and Medard, 2002 Proposed algebraic framework to study networks and capacity Necessary and sufficient conditions for coding to be acheivable Necessary and sufficient conditions for robustness to link failures Network Management – Ho, Koetter and Medard,2002 Quantify Network Management information required to affect link failure recovery Low complexity Network Codes – Jaggi, Kamal Jain, Philip Chou,2003 Field size and thus arithmetic complexity is small; link usage is lower Introduction Terminology and Notation Network denoted as a graph G=(V,E) V ----- Set of vertices (nodes) E ----- Set of Edges (line joining pairs of vertices) Input vector at source ’s’ x = [x1,x2,…,xn] Information on each outgoing link ‘e’ of source Y (e) [ e,1... e,n ][ x1...xn ]T Introduction Terminology and Notation Information on outgoing link e* on intermediate node T Y (e*) [ e* ,e ... e* ,e ][ ye1 ... yem ] 1 m where ‘m’ is the number of incoming edges on the node e* ‘ye’ is the incoming information on the incoming link e Output vector at the destination (sink) node z = [z1,…,zn] zi [ e1 ,i ... ek ,i ][ ye1 ... yek ]T Introduction Terminology and Notation Output vector ‘z’ is z = x * M where ‘M’ is the system transfer matrix M=A*G*B where A is [αi,j] is a n * k matrix where ‘k’ is total number of edges in the network. G = (I-F)-1 is the k * k adjacency matrix B is [εi,j] is a k * n matrix Introduction Terminology and Notation Cut: A partition of vertex set into 2 classes, S containing source and S’ containing the sink. Value of the cut: s C ( e) efromStoS' x y where ‘C(e)’ is the rate constraint of each link Min-Cut Max-Flow Lemma: z Let ‘G’ be a graph with source node ‘s’ and sink nodes ‘t1’ and ‘t2’, and rate constraints ‘R’ .Then for l=1,2, the maxflow from s to tl is the value of the min-cut between s and tl and is denoted by maxflow(s,tl) Introduction w t2 t1 Study and Implementation Finding a network code for a given multicast problem Solvability conditions Single source single sink : det (M) ≠ 0 Single source multiple sink : ∏ det (Mi) ≠ 0 i Multiple source multiple sink : det (Mii) ≠ 0 det (Mii) = 0 Study and Implementation Algorithm for finding network codes Given polynomial F(x), find a such that F(a) ≠ 0 Find maximal degree ‘∂’ of F in any variable xi and choose smallest ‘i’ such that 2i > ∂ Study and Implementation Algorithm for finding network codes Find an element ‘at’ in F2i such that F(x) xt=at ≠ 0 and F F(x) xt=at If t = n then halt, else t t+1, goto previous step ‘a’ is the solution to the above problem Study and Implementation Bound on Field size There exists a solution to the single source multicast network coding problem in a finite field 2m with m log 2 ( NR 1) Study and Implementation Simulation Steps Generate a random network (single source multicast) Find the network capacity using maxflow algorithm Generate matrices A,G, B from the network topology Solve for the network parameters Study and Implementation Coding vs Routing Is coding really required? How to check if routing achieves capacity? Routing is a special case of coding with constraints on codes Put constraints on codes and solve to see if routing is feasible Study and Implementation Simulation results b1 b2 b1 b2 V1 b1 V1 b2 b1+b2 V2 V2 V3 b1 b2 V3 b2 b1+b2 b2 b1+b2 b1 b2 V5 V4 b1 b2 b1 b2 b2 V4 b1 b2 Study and Implementation V5 b1 b2 Simulation results AT= Study and Implementation Simulation results Study and Implementation Low Complexity Network Codes Gives a solution to the single source multicast network coding problem in a finite field 2m with m log 2 ( N ) Uses only union of edge-disjoint paths to each receiver thus avoiding ‘flooding’ Study and Implementation Network Recovery and Management Nodes need to change their ‘behavior’ for recovery from link failures Network management involves switching between appropriate codes for recovery from link failures Management requirement can be quantified by the number of different codes needed Study and Implementation Network Recovery and Management Two formulations of quantification Centralized formulation Network behavior described by an overall code Network management requirement quantified by logarithm of the number of codes needed Node based formulation Network behavior described by the number of nodes which change behavior Quantified by the sum of the logarithm of the number of different behaviors of each node Study and Implementation Network Recovery and Management Theorem: For a single receiver network with r processes and a minimum capacity of C, tight bounds on the number of codes needed for the no-failure scenario and all single link failures, assuming they are recoverable are : To be included in the final report Faster implementation of the codegenerating algorithm Comparison of Routing vs Coding on large number of random networks Future direction of research Joint source-channel-network coding