Packeter: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
Created page with "The packeter is meant to be used in Beeds. It breaks messages into packets up to length 10k. For now, I will use Reed Solomon, later I may go back to Raptor codes. https://gi..."
 
No edit summary
Line 1: Line 1:
The packeter is meant to be used in Beeds. It breaks messages into packets up to length 10k. For now, I will use Reed Solomon, later I may go back to Raptor codes.
The packeter is meant to be used in [[Beeds]]. It breaks messages into packets up to length 10k. For now, I will use Reed Solomon, later I may go back to Raptor codes.


https://github.com/klauspost/reedsolomon
https://github.com/klauspost/reedsolomon

Revision as of 21:50, 1 March 2016

The packeter is meant to be used in Beeds. It breaks messages into packets up to length 10k. For now, I will use Reed Solomon, later I may go back to Raptor codes.

https://github.com/klauspost/reedsolomon

Look at longhair and Jerasure for examples of erasure codes. Look at Raptor codes.

See if this works and if so, port it to Go.

Maths

We need a cumulative binomial distribution for this; that is the probability that if we send X packets, at least Y will be received. For instance, if we send 1000 packets, there's about a 53% change that we'll get at least 950 of them, and about a 99% chance we'll get at least 933 of them. I found that empirically.

http://stackoverflow.com/questions/1095650/how-can-i-efficiently-calculate-the-binomial-cumulative-distribution-function

https://gowalker.org/github.com/ematvey/gostat#Binomial_CDF_At

Actually, I want the inverse cumulative binomial distribution, or quantile function. I've put this on hold for now, the math is taking too long to understand. Instead, I'm iterating over the B_CDF funciton to find the right value.