Upload
tavita
View
19
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
CprE 545 project proposal
Long Long
Introduction Random linear code LT-code Application Future work
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
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.
It doesn’t matter what is received or lost It only matters that enough is received
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
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)
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:
K
kknkn GsE
1
Let K=3, n=1k sk Gkn skGkn
1 1011 1 1011
2 1110 0 0000
3 0001 1 0001
1010000110111
K
kknkn GsE
The generator matrix of a random linearcode and packetstransmission[Mack 05]
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-1 and recover
K
knknk GEs
1
1
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:
( ) 2 LL
/1log2K
)( 2k)( 3k
Is there any better solution with lower computational cost?
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.
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.
1) 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
2) Repeat (1) until all sk are determined.
0
00
1
1
1
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 s2 s3
1 0 1 1
S1 = 1
S2 = 1
S3 = 0
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
)1(
1)(
/1)1(
dddp
Kp
)ln(kk
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…
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
[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”.