raptor codes
Post on 30-Jun-2015
252 Views
Preview:
TRANSCRIPT
RAPTOR CODESJosé Lopes (please call me Sá)
@zemanelsa
About me• Braga
• MSc in Information Security (FCUL)• Researcher@LaSIGE
• Motorcycles
• MSc Thesis• RaptorQ implementation• Breaking & Securing RQ
What you should take from this talk?
Theory:• What are fountain codes?• What properties they have?• How can they be used?
You should think about:• Where can I use them?• How can my applications benefit from them?• New ideas that work with this mindset
FEC - Forward Error Correction• Used to recover from errors occurred during transmission• Sender encodes the message in a redundant way
• using an error-correcting code (ECC)
• Redundancy allows the receiver to detect errors• and often to correct these errors without retransmission
• Corrects errors without a reverse channel to request retransmission of data• but at the cost of a fixed, higher forward channel bandwidth
• Usually applied in situations where retransmissions are costly or impossible (e.g., multicast)
• Added to mass storage devices to enable recovery of corrupted data (e.g., RAID)
Erasure codes
• Error correcting code• Transforms a message of k symbols into a longer message with n symbols
• The original message can be recovered from a subset (k’) of the n symbols
• (Code rate) r = k/n proportion of the data-stream that is useful
• (Reception efficiency) k’/k
Fountain codes• Rateless erasure code• Endless supply of encoded symbols• Recover original data with any K encoded symbols (with
high probability)
DigitalK
Receiver(bucket)
Fountain
Use case: point-to-multipoint• For a large number of receivers TCP does not
scale• every receiver requires a separate data stream• sender needs to keep track of what arrives at each
receiver
• UDP can be used• scales effortlessly • best effort: loss rate ↑ degraded experience⇒
• Difficult to provide a scalable broadcast service on the Internet• it would be interesting to have reliability whilst
retaining UDP’s efficiency
S
R2
R1
R4 R3
LT code (the first fountain code!)
• Based on two random generators• One generates how many XORs should be made• The other generates (the IDs of) which symbols will be XORed
• 5%-10% extra symbols are usually needed
S : source symbol E : encoding symbol (+ is the XOR operation)
E0 = S2 + S4 + S5 E1 = S0 + S1 + S2 E2 = S0 + S3 E3 = S2
E4 = S0 + S5 E5 = S2 + S5 E6 = S1 + S3 + S4 + S5
S0 S5S4S3S2S1
E0 E1 E2 E3 E4 E5 E6
Raptor codes (finally!)
• Faster encoding/decoding algorithms• Pre-code• Steep overhead-failure probability curve
RaptorQ:• Systematic• Faster• Steeper
HOW CAN WE USE THIS!?!?
Data
Partition into Source Blocks
Source block i
RaptorQDecoder
Source block i
Data
Reconstruct the data
Put in packets &transmit through the network
Received Symbols ( ≥ K)
Some packets are lost in the network
RaptorQ Encoder
Source Symbols (K)
RepairGenerator
Repair Symbols (R)
Encoding Symbols
Can be used as overhead (extra symbols)
SENDER RECEIVER
How awesome is RaptorQ? Pretty awesome...
• Incredibly low probabilities of failure (for accidental faults)
K (number of source symbols)
0 Overhead [·10-3] 1 Overhead [·10-5] 2 Overhead [·10-7]
Loss 10 26 101 10 26 101 10 26 101
10% 0 5.4 5.7 0 0 3.8 0 0 2.5
20% 0 4.0 4.8 0 2.3 2.4 0 0 0.5
50% 0 3.9 4.9 0 1.6 2.5 0 0.9 1.2
60% 4.8 4.1 4.9 0 1.5 2.2 0 0 2.1
85% 0 12.7 4.7 0 0.8 2.4 0 0 1.3
Who’s using Raptor codes?
Where to now?
• José Lopes, “Communication with RaptorQ Erasure Codes in
Malicious Environments”, MSc thesis
• José Lopes and Nuno Neves, “Stopping a Rapid Tornado with a
Puff” (soon to be IEEE S&P)
• The OpenRQ Library (www.lasige.di.fc.ul.pt/openrq)
• Amin Shokrollahi, "Raptor codes”, IEEE Transactions on
Information Theory 52.6 (2006): 2551-2567.
• Amin Shokrollahi and Michael Luby, “Raptor Codes” Now
Publishers Inc 2011
• IETF RFC6330
RAPTOR CODESJosé Lopes (please call me Sá)
@zemanelsa
Thank you! Any questions?
top related