[tahoe-dev] realtime streaming with zfec
lambdaq at gmail.com
Fri Feb 12 05:03:36 UTC 2010
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
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...
More information about the tahoe-dev