SlideShare a Scribd company logo
1 of 15
RAPTOR CODES
José 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
RaptorQ
Decoder
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)
Repair
Generator
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 CODES
José Lopes (please call me Sá)
@zemanelsa
Thank you! Any questions?

More Related Content

What's hot (20)

Phase locked loop
Phase locked loopPhase locked loop
Phase locked loop
 
Rake
RakeRake
Rake
 
Network Planning and Optimization
Network Planning and OptimizationNetwork Planning and Optimization
Network Planning and Optimization
 
Parameters of multipath channel
Parameters of multipath channelParameters of multipath channel
Parameters of multipath channel
 
IMS Standards
IMS  StandardsIMS  Standards
IMS Standards
 
05 b rrm dl PARAMETER
05 b rrm dl PARAMETER05 b rrm dl PARAMETER
05 b rrm dl PARAMETER
 
Contamination delay
Contamination delayContamination delay
Contamination delay
 
Massive mimo
Massive mimoMassive mimo
Massive mimo
 
LTE Cell Planning
LTE Cell PlanningLTE Cell Planning
LTE Cell Planning
 
Transmission lines and RF systems
Transmission lines and RF systemsTransmission lines and RF systems
Transmission lines and RF systems
 
T mac protocol
T mac protocolT mac protocol
T mac protocol
 
LTE Basic Principle
LTE Basic PrincipleLTE Basic Principle
LTE Basic Principle
 
Core cs overview (1)
Core cs overview (1)Core cs overview (1)
Core cs overview (1)
 
Satellite link design
Satellite link designSatellite link design
Satellite link design
 
Volte ppt
Volte pptVolte ppt
Volte ppt
 
LDPC Codes
LDPC CodesLDPC Codes
LDPC Codes
 
Satellite Link Design: C/N Ratio
Satellite Link Design:  C/N RatioSatellite Link Design:  C/N Ratio
Satellite Link Design: C/N Ratio
 
Diversity Techniques in Wireless Communication
Diversity Techniques in Wireless CommunicationDiversity Techniques in Wireless Communication
Diversity Techniques in Wireless Communication
 
Multiple Access
Multiple AccessMultiple Access
Multiple Access
 
HSPA(High Speed Packet Access)
HSPA(High Speed Packet Access)HSPA(High Speed Packet Access)
HSPA(High Speed Packet Access)
 

Similar to Raptor codes

Accurate Synchronization of EtherCAT Systems Using Distributed Clocks
Accurate Synchronization of EtherCAT Systems Using Distributed ClocksAccurate Synchronization of EtherCAT Systems Using Distributed Clocks
Accurate Synchronization of EtherCAT Systems Using Distributed ClocksDesign World
 
serial_busses_i2c.pptx
serial_busses_i2c.pptxserial_busses_i2c.pptx
serial_busses_i2c.pptxSKUP1
 
Akka-demy (a.k.a. How to build stateful distributed systems) I/II
 Akka-demy (a.k.a. How to build stateful distributed systems) I/II Akka-demy (a.k.a. How to build stateful distributed systems) I/II
Akka-demy (a.k.a. How to build stateful distributed systems) I/IIPeter Csala
 
Looking out for anomalies
Looking out for anomaliesLooking out for anomalies
Looking out for anomaliesCSIRO
 
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...Alexandre Moneger
 
dokumen.tips_linux-networking-commands.ppt
dokumen.tips_linux-networking-commands.pptdokumen.tips_linux-networking-commands.ppt
dokumen.tips_linux-networking-commands.pptThorOdinson55
 
Ntc 362 effective communication uopstudy.com
Ntc 362 effective communication   uopstudy.comNtc 362 effective communication   uopstudy.com
Ntc 362 effective communication uopstudy.comULLPTT
 
Ntc 362 forecasting and strategic planning -uopstudy.com
Ntc 362 forecasting and strategic planning -uopstudy.comNtc 362 forecasting and strategic planning -uopstudy.com
Ntc 362 forecasting and strategic planning -uopstudy.comULLPTT
 
39245203 intro-es-iv
39245203 intro-es-iv39245203 intro-es-iv
39245203 intro-es-ivEmbeddedbvp
 
QuadIron An open source library for number theoretic transform-based erasure ...
QuadIron An open source library for number theoretic transform-based erasure ...QuadIron An open source library for number theoretic transform-based erasure ...
QuadIron An open source library for number theoretic transform-based erasure ...Scality
 
ARCHITECTING INFLUXENTERPRISE FOR SUCCESS
ARCHITECTING INFLUXENTERPRISE FOR SUCCESSARCHITECTING INFLUXENTERPRISE FOR SUCCESS
ARCHITECTING INFLUXENTERPRISE FOR SUCCESSInfluxData
 
Micro control idsecconf2010
Micro control idsecconf2010Micro control idsecconf2010
Micro control idsecconf2010idsecconf
 
Network State Awareness & Troubleshooting
Network State Awareness & TroubleshootingNetwork State Awareness & Troubleshooting
Network State Awareness & TroubleshootingAPNIC
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra PerfectSATOSHI TAGOMORI
 
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Apex
 

Similar to Raptor codes (20)

Polyraptor
PolyraptorPolyraptor
Polyraptor
 
Accurate Synchronization of EtherCAT Systems Using Distributed Clocks
Accurate Synchronization of EtherCAT Systems Using Distributed ClocksAccurate Synchronization of EtherCAT Systems Using Distributed Clocks
Accurate Synchronization of EtherCAT Systems Using Distributed Clocks
 
serial_busses_i2c.pptx
serial_busses_i2c.pptxserial_busses_i2c.pptx
serial_busses_i2c.pptx
 
Serial Busses.pptx
Serial Busses.pptxSerial Busses.pptx
Serial Busses.pptx
 
Akka-demy (a.k.a. How to build stateful distributed systems) I/II
 Akka-demy (a.k.a. How to build stateful distributed systems) I/II Akka-demy (a.k.a. How to build stateful distributed systems) I/II
Akka-demy (a.k.a. How to build stateful distributed systems) I/II
 
Looking out for anomalies
Looking out for anomaliesLooking out for anomalies
Looking out for anomalies
 
Polyraptor
PolyraptorPolyraptor
Polyraptor
 
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
 
dokumen.tips_linux-networking-commands.ppt
dokumen.tips_linux-networking-commands.pptdokumen.tips_linux-networking-commands.ppt
dokumen.tips_linux-networking-commands.ppt
 
Ntc 362 effective communication uopstudy.com
Ntc 362 effective communication   uopstudy.comNtc 362 effective communication   uopstudy.com
Ntc 362 effective communication uopstudy.com
 
Ntc 362 forecasting and strategic planning -uopstudy.com
Ntc 362 forecasting and strategic planning -uopstudy.comNtc 362 forecasting and strategic planning -uopstudy.com
Ntc 362 forecasting and strategic planning -uopstudy.com
 
39245203 intro-es-iv
39245203 intro-es-iv39245203 intro-es-iv
39245203 intro-es-iv
 
QuadIron An open source library for number theoretic transform-based erasure ...
QuadIron An open source library for number theoretic transform-based erasure ...QuadIron An open source library for number theoretic transform-based erasure ...
QuadIron An open source library for number theoretic transform-based erasure ...
 
TCP-IP PROTOCOL
TCP-IP PROTOCOLTCP-IP PROTOCOL
TCP-IP PROTOCOL
 
ARCHITECTING INFLUXENTERPRISE FOR SUCCESS
ARCHITECTING INFLUXENTERPRISE FOR SUCCESSARCHITECTING INFLUXENTERPRISE FOR SUCCESS
ARCHITECTING INFLUXENTERPRISE FOR SUCCESS
 
Part 6 : Internet applications
Part 6 : Internet applicationsPart 6 : Internet applications
Part 6 : Internet applications
 
Micro control idsecconf2010
Micro control idsecconf2010Micro control idsecconf2010
Micro control idsecconf2010
 
Network State Awareness & Troubleshooting
Network State Awareness & TroubleshootingNetwork State Awareness & Troubleshooting
Network State Awareness & Troubleshooting
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra Perfect
 
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Raptor codes

  • 1. RAPTOR CODES José Lopes (please call me Sá) @zemanelsa
  • 2. About me • Braga • MSc in Information Security (FCUL) • Researcher@LaSIGE • Motorcycles • MSc Thesis • RaptorQ implementation • Breaking & Securing RQ
  • 3. 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
  • 4.
  • 5. 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)
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. Raptor codes (finally!) • Faster encoding/decoding algorithms • Pre-code • Steep overhead-failure probability curve RaptorQ: • Systematic • Faster • Steeper
  • 11. HOW CAN WE USE THIS!?!? Data Partition into Source Blocks Source block i RaptorQ Decoder 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) Repair Generator Repair Symbols (R) Encoding Symbols Can be used as overhead (extra symbols) SENDER RECEIVER
  • 12. 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
  • 14. 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
  • 15. RAPTOR CODES José Lopes (please call me Sá) @zemanelsa Thank you! Any questions?