Packeter

From Adam Colton
Revision as of 21:47, 1 March 2016 by Adamcolton (talk | contribs) (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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.