[tahoe-dev] realtime streaming with zfec

lambdaq@gmail.com lambdaq at gmail.com
Thu Feb 11 21:03:36 PST 2010


Hi list,

I've been thinking this for a while now. I live in a third world country
where Internet connection is slow and crappy. Certain sites are almost
unconnectable directly. So personally I have an SSH account on my friend's
VPS and tunnel my browsing through SSH dynamic port forwarding (Socks5). But
all the connections were tunneled through just one TCP connection, combined
with ssh -C compressing and encryption stuff it's kinda slow. For example,
my Youtube dashboard <http://www.youtube.com/my_speed> shows that I have a
7Mbps broadband, that's because my friend's VPS is in the US is fast, but me
to the VPS connection is slow, the video streaming is laggy.

Tthe slowness can be improved, example if I HTTP download a file from my
friend's VPS server directly, I can achieve full speed of my connection
(2Mbps), because I am using multithreaded download tools like GetRight or
FlashGet.

So here's an idea, live streaming using zfec. Here's the scenario:

The VPS server requests a youtube video, at its best speed, around 7Mbps,
zfec quicliy dispersal a data chunk into around 7 pieces, plus 3 redundant
piece, then I open 10 connections to grab this chunk, and restore it on my
local machine. The local browser requests youtube from a local HTTP server,
which the HTTP server restore the chunk and stream the original HTTP data.
If either of one or two or three connections fail, the chunk can still be
restored. In this way I can achieve almost full speed of my connection
(2Mbps) so the youtube is streaming smoothly.

The whole idea in one sentence: one TCP connection streaming is slow, zfec
it to multiple connections simultaneously.

What do you guys think of this idea? Is it feasible?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://allmydata.org/pipermail/tahoe-dev/attachments/20100212/181cfd71/attachment.htm 


More information about the tahoe-dev mailing list