有没有一种支持多线程传输的 proxy,多线程传送给你,再在你的终端拼接成流?

2014-07-25 07:01:07 +08:00
 20150517
很多时候访问一台很远异地的服务器的时候,比如在线看视频,速度很慢,但如果使用多线程下载那个视频,则速度能够提高不少

有没有一种proxy,比如一般正常情况下
你 => proxy => 目标视频

proxy读取目标视频很快,但传送给你的时候很慢,你只有读完了比如proxy里100k的数据,proxy才会下载另100k的数据,这样proxy总是在等你读取完

有没有一种可能,proxy读尽可能多的数据放在缓冲里,而你从proxy读过来的时候采用多线程下载这一块的缓冲,然后再在你的终端拼接出流?

有没有什么现成的开源产品可以实现我想的这个思路?v2ex上能不能给点思路?
3146 次点击
所在节点    问与答
13 条回复
Seikinmeid
2014-07-25 07:55:58 +08:00
我也想知道,在这等答案~
yangqi
2014-07-25 08:23:52 +08:00
squid
stevenyou
2014-07-25 08:36:17 +08:00
aria2 ?
imn1
2014-07-25 08:57:53 +08:00
你说的其实是两个问题,因为流传送和流播放是两码事
实现你的这个目标要先达到几个可能:
1.知道视频真是url
2.服务器对该文件支持断点续传
3.能把本地文件模拟为前面的url
4.视频文件头及前段必须先传
5.播放器支持流式播放,至少正在播放的文件能边读边写入
所以能完成你所说的,基本上网上需求最大的两块就已经解决——去除广告、下载视频
mengskysama
2014-07-25 09:09:57 +08:00
楼主说的不是L7代理,和URL什么的无关。核心思想是把sock数据同时用多个链接来传输来达到加速的效果。一般对比较保守的拥塞控制TCP用多链接的确能加速。现在好像没有人这么做过。要自己实现也没难度(关键是要讨论下会不会链接之前相互抢占,有没有必要重新设计多链接的分发策略了。
hedaode
2014-07-25 10:32:51 +08:00
如果ISP不对单连接做速度限制,理想情况下单线程一样能跑满带宽。

但是如果网络丢包率很高,使用传统的TCP拥塞控制算法,对单线程单连接来说确实无法最大限度利用带宽(频繁掉包导致频繁慢启动)。这种情况下如果用多线程确实能减少慢启动带来的带宽浪费,从而提高速度。

因此要提高速度最好还是找一套更好的TCP拥塞控制算法,而不是用多线程。可以试试锐速这个TCP加速产品。
mhycy
2014-07-25 10:34:00 +08:00
有一个GoTunnel...
mhycy
2014-07-25 10:37:28 +08:00
GoTunnel一个缺点就是大流量的时候会造成新请求响应过慢
造成这事的原因是在有限的互联管道内新的请求必须等待目标数据拼接完毕后才可能成功发送,而且这个过程两端交互会产生更多的标记数据,使得带宽利用率进一步下降。
高速率的时候拼接时候后来包产生的延迟足以占用大量的内存。
polythene
2014-07-25 10:59:49 +08:00
以前在学校里看视频时受不了校园网的龟速,所以就写了这么一个工具,https://github.com/polyrabbit/http-booster 具体思路跟LZ的差不多,LZ可以参考一下。当然,这是很粗糙的一个实现,有很多bug和todo,有空我会再refine一下,也欢迎LZ的参与!
mengskysama
2014-07-25 13:29:53 +08:00
锐速简直可怕,他的丢包预判机制有时候会多发1倍的数据包来达到加速的效果。
20150517
2014-07-25 13:55:13 +08:00
@hedaode 试了下锐速,确实是TCP拥塞问题,准备在高峰时候再试试,谢谢了,非常有用
20150517
2014-07-25 13:56:53 +08:00
@mengskysama 嗯试了下,原来300KB的速度用了后貌似500KB了,但现在不是高峰情况,准备试丢包多的时候看看,另外购买锐速的话,有优惠什么吗?


@hedaode
jedihy
2014-09-07 15:57:03 +08:00
@hedaode 跑满是可以,但是不能保证能在短时间内跑满,因为RTT比较大。

@20150517 可以自己DIY一个锐速的,它的算法好不到哪里去,只要把内核里面TCP窗口增窗改激进,剪窗尽量少剪就可以达到,甚至轻松超过锐速。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124395

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX