Table of Contents 2
List of Figures 6
Acknowledgements 7
Abstract 8
1Introduction 9
1Network Coding 13
1.1Challenges in Network Coding 14
1.2Current Research Focus 15
1.2.1Centralized Network Coding 15
1.2.2Distributed Network Coding 15
1.3Applications 16
2Network Coding Fundamental Theory 19
2.1Definition of Graph 19
2.2Min-Cut and Max-Flow 19
2.3Min-Cut Max-Flow Theorem 22
2.4Multicast Problem 22
2.5Max-flow Bound Theorem 22
2.6Linear Network Coding 24
2.7Random Linear Coding 25
2.8Routing for Network Coding 25
2.8.1Coding at Merging Node 25
2.8.2Multicast Coding Routing 25
3Requirement Analysis and Specification 27
3.1Problem Description 27
3.2Algorithm Design Objectives 27
3.3Implementation Specification 27
3.4 Network Example 28
4Algorithm Design for the Coding - Routing Scheme 30
4.1Construction of Multicast Flow Graph 30
4.1.1Max-Flow Algorithms 30
4.1.2Labelling Algorithm 30
4.1.3Merging Max-Flow for Obtaining Multicast Flow Graph 32
4.1.4The Target Set of an Edge 34
4.2Packet Representation and Operations 36
4.2.1Representation of Packet 36
4.2.2Split Target Set of Packet 37
4.2.3Coding Data Blocks of Two Packets 38
4.3Algorithm for Construction of Coding and Routing Scheme 38
4.3.1Node Arrangement in Topological Order 38
4.3.2Forward Operation 39
4.3.3Multicast Operation 40
4.3.4Coding Operation 42
4.3.5Coding and Routing Scheme Example 44
4.3.6Identification of Node Types 45
5Implementation of the Proposed Algorithm 47
5.1Development Environment 47
5.1.1Python Programming Language 47
5.1.2Graph Visualization with Graphviz 47
5.2Data Structures 47
5.3Data File Format 49
5.3.1Input File format 49
5.3.2Output File Format 49
5.4Flow Chart of Program 51
5.5Code Examples 53
5.5.1Codes for Drawing Figures 53
5.5.2Code for Topological Sorting 54
6Testing and Experimental Results 55
6.1Test Cases for Max-Flow Module 55
6.2Test Cases for Proposed Algorithm 57
6.2.1Typical Test Cases 57
6.2.2Random Test Cases 61
6.3Validation of the Coding and Routing Scheme 63
6.3.1Capacity Validation 63
6.3.2Decoding Validation 63
6.4Experimental Results 64
6.4.1Optimizing Number of Coding Nodes 64
6.4.2Comparison Number of Coding Links 67
6.4.3 Comparison Running Time 67
7Conclusion 69
2References 70
Una McGinley, a librarian in the University of Ulster, kindly ordered newly published books in my field on my behalf thus helping me with my research.
Finally, I am deeply grateful to my family for their strong support encouragement.
Abstract
Network coding is a novel field of information theory and coding theory. It is a breakthrough over the traditional store-and-forward routing methods by allowing coding two or more packets together. From an information flow aspect, multiple flows could be overlapped in a routing scheme. Hence, the theory upper bound of multicast capacity could be achieved by network coding. In this project, a complete routing and coding scheme is constructed to realize the maximum multicast transportation task.
Network Coding (NC) is a recent research area in information theory [Ahl00]. It dramatically changes the traditional information processing and transportation style. For example, in the traditional computer networks, information packets are transmitted from the source through intermediate nodes by store-and-forward method. There is no extra processing except replication. With network coding, the operations such as xor or linear combinations between two or more different packets are allowed to join different information flows, and the original binary packet could be recombined or extracted later in the receivers. In the other words, data streams are not necessary to be kept independently in the communication networks.
Little research has been done about the multicast routing issue and most efforts have concentrated to date on the theory aspect, such as demonstrating the feasibility of Network Coding theoretically or how to apply the coding on a specific network. However, the establishment of routing is a precondition of the network multicasting. In the traditional IP multicasting, the routing is set up through multicast Steiner Tree [Zos02]. The next sections are aimed at finding out feasible methods to determine the routing for network coding in multicast communications and construct the complete network coding scheme.