LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2028|回复: 10

关于Linux下类似迅雷的软件的实现的想法。

[复制链接]
发表于 2006-8-29 00:09:00 | 显示全部楼层 |阅读模式
多源的下载技术上没有多大的难点,比起BT等技术的复杂的传输协议。下载技术还是建立在FTP和HTTP基础上的,对现在的源代码做少量修改就可以了。

问题的关键在源的获取,我考虑到三种可能性:
1、第一种是可能性最低的。也就是C/S的结构。Server所有下载客户端共享出来的资源由Server进行索引。客户端连到服务器查询即可。这样需要有大吞吐量的服务器端编程功底,还要租用专门的服务器。对于开源界开说开销太大。如故有人创业的话不放考虑,但在三代公司面前机会不大。
2、第二种可能性是走QQ Linux客户端的传统道路,也就是分析迅雷的协议,做兼容客户端。这样做的好处是我们的客户端连共享的实现都可以省了,我们只下载,不共享(无耻了点)。这样做代码的工作量最小。
3、第三种是使用DHT对资源进行索引。这样可以避免对服务器依赖,但是效率有待验证。而且DHT网络也需要空间维护一批相对稳定的节点列表以供客户端bootstraping。

个人觉得可以开始做这样的下载软件,多线程下载。通过插件获得镜像和不同的源。这样以上三种情况都可以分别实现。没有插件软件一样可以作为普通的多线程下载软件使用。

对于三种可能性:第一种,可以参照bt tracker的设计;第二种,不知道是否有人提供的迅雷的洗衣的资料;第三种,我11、12月份会放出一份部分源自eMule的DHT实现。
发表于 2006-8-29 02:04:16 | 显示全部楼层
好像听说 apt 就有从多个源同时下载的特性
其实第二种方式估计效果会最好但是反向工程应该比较难
回复 支持 反对

使用道具 举报

发表于 2006-8-29 09:35:01 | 显示全部楼层
Post by gnap
我11、12月份会放出一份部分源自eMule的DHT实现。



emule不是一直在用的Kad网络的么?据我所知好像bitcomet一类软件才用DHT。难道现在emule要同时支持kad和dht网络:cool:  ?那我不是要乐翻天了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-29 14:15:07 | 显示全部楼层
Post by voodoomaster
emule不是一直在用的Kad网络的么?据我所知好像bitcomet一类软件才用DHT。难道现在emule要同时支持kad和dht网络:cool:  ?那我不是要乐翻天了!


汗,不是那个意思。
同时支持容易,关键在于索引的内容不能互通,同时支持也没有多大意义。
回复 支持 反对

使用道具 举报

发表于 2006-8-30 21:24:42 | 显示全部楼层
迅雷的协议有很大的缺陷,关键是Hash值不是由下载源提供的。
回复 支持 反对

使用道具 举报

发表于 2006-8-30 21:33:23 | 显示全部楼层
有人在做类似的工作,metalink,OOo已经用它散发了,目前Windows下有GetRight支持。

http://distribution.openoffice.org/p2p/magnet.html

freshmeat的介绍文章。

http://freshmeat.net/articles/view/2083/
回复 支持 反对

使用道具 举报

发表于 2006-8-30 21:48:11 | 显示全部楼层
谁用过aria2,看上去很强大

http://aria2.sourceforge.net/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-31 02:12:21 | 显示全部楼层
恩,似乎还要制作发布资源的文件?几个项目的目的似乎还是整个文件共享网络。
但是合作从传统的web和ftp上获取文件似乎还没有解决方案吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-31 02:26:43 | 显示全部楼层
这样可以建立一个路由的平台:索引magnet和metalink资源。通过其中一种来源路由到所有的来源。那么还需要:
1、分析迅雷的协议
2、指定迅雷的资源的magnet link和meta link的表示方法。
3、一个路由平台来搜索资源。
回复 支持 反对

使用道具 举报

发表于 2007-8-26 23:48:24 | 显示全部楼层
期待软件诞生
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表