210 likes | 386 Views
Fountain Codes and implementation. CprE 545 project proposal Long Long. Outline. Introduction Random linear code LT-code Application Future work. TCP/IP network. A file is divided into equal length pieces and placed into packets
E N D
Fountain Codes and implementation CprE 545 project proposal Long Long
Outline • Introduction • Random linear code • LT-code • Application • Future work
TCP/IP network • A file is divided into equal length pieces and placed into packets • Receivers acknowledge each received packet and senders retransmit the packets lost • Low efficiency over networks with high latencies and high loss rates • Capacity is wasted by feedback messages according to the Shannon Theory • Wastefulness is terrible in the case of a multicast channel
Digital Fountain • An ideal/paradigm for data transmission, without need for receivers to send any feedback message and for senders to resend any packet. • k packets of a file can potentially generate limitless encoded packets; once you receive any k(1+α) packets regardless of the order (α is a small fraction < 1, especially when k is large), you can quickly reconstruct the original file.
Digital Fountain(cont.) • It doesn’t matter what is received or lost • It only matters that enough is received
Advantage • One to One transport • Design the flow and congestion control mechanisms independently of reliability of transmission links. • One-to-many transport • Reliability without feedback • High/unknown/variable loss • Massive scalability • Many-to-one transport • Minimize delivery of redundant packets
Fountain Codes • Digital fountains can be constructed by using fountain codes • Fountain Codes • Rateless • Delivery and recovery regardless of the network reliability • Small encoding and decoding complexities • Several types of fountain codes: • Random linear fountain • LT-code(Luby, 98) • Raptor-code(Shokrollahi, 01)
Random Linear Fountain • A file is divided into K packets s1, s2, … sk, each packet is composed of a whole number of bits • At each clock cycle, labelled by n, the encoder generates K random bits {Gkn} • The encoded packet En is set to the bitwise sum (modulo 2) of the source packets for which Gkn is 1, which is:
Random Linear Fountain • Let K=3, n=1
Random Linear Fountain The generator matrix of a random linear code and packets transmission [Mack 05]
Random Linear Fountain • A receiver collects N packets. • Let us assume that he knows the generator matrix Gkn by some means • If N<K, the receiver has not got enough information to recover the file • If N=K, the receiver has 0.289 probability to recover the file • If N>K, the receiver can recover the file if and only if a k-by-K invertible matrix exists in G,so that the receiver can compute G-1and recover
Random Linear Fountain • Let N=K+L and the probability that a receiver can recover the original file is 1-δ, then for any K, the probability of failure of recovery is bounded by • The number of packets required to have probability 1-δ of success is • Pros: get arbitrarily close to the Shannon limit • Cons: • Encoding complexity: • Decoding complexity: Is there any better solution with lower computational cost?
LT-code • Encoder • Randomly choose the degree dn of the packet from a degree distribution p(d); the appropriate choice of p depends on the source file size K • Choose uniformly at random d distinct input packets and set En equal to the bitwise sum (modulo 2) of those dn packets • The encoding process can be demonstrated by a graph in which each encoded packet is connected to the corresponding original packets {sn}, and the graph is sparse if the mean degree E(d) is greatly smaller than K.
LT-code • Decoder • Recover s from E=sG, where G is the matrix associated with graph, supposing that the receiver somehow knows G • G is much simpler than the generator matrix in random linear fountain and is determined by degree distribution p(d) and uniform distribution such that a simple way can be used to decoding by message passing.
LT-code • Find an encoded packet En that is connected to only one source packet sk (if there is no such encoded packet, this decoding algorithm halts at this point, and fails to recover all the source packets). • Set sk = En • Substract sk from all encoded packets that are connected to sk so that En’ = En–sk • Remove all the edges connected to the source packet sk • Repeat (1) until all sk are determined.
LT-code • Take an example in which there are K=3 original packets s1,s2,s3 where each packet is just one bit for brevity. The receiver received four encoded packets E1,E2,E3,E4 = 1011 at the start of the algorithm. s1 1 s2 1 s3 0 S1 = 1 S2 = 1 S3 = 0 1 0 1 0 1 0 1
LT-code • A small portion of encoded packets must have high degree • Majority packets must have low degree • Thus, an appropriate degree distribution should be chosen: • The cost of encoding and decoding: Ideal Solition Distribution: for d = 2, 3, … k
Applications • Reliable Multicast • Downloading in Parallel • Point-to-Point Data Transmission • One-to-Many TCP • Distribution on Overlay Networks • Video Streaming • Other applications out of network: Storage systems etc…
My Future work • Implementation of LT-code • Encoding and decoding • C/C++ • Testify the computation complexity • Network application (If time permits) • One to one transmission • One to many transmission • Test the recovery success ratio with different number of packets loss during the transmission
Reference • [1] D.J.C. MacKay, “Fountain Codes”, IEE Proceedings – Commun. Vol. 152, No 6, Dec 2005. • [2] Michael Luby, “LT Codes”, Proceedings of the 43rd Annual IEEE symposium on Foundations of Computer Science (FOCS’02) • [3] Michael Mitzenmacher, “Digital Fountains: A Survey and Look Forward”.