开篇
此文章的题目来自于当下的两哥之争,本意有调侃之意,但是用在本文,却无此意,我以十分真诚并且后知后觉的态度认定,p2p是未来的主要计算模型。尤其是在视频音频领域,但是将来,p2p一定会拓展到普通的计算上。
要解释清楚这个问题,我们得从当下最流行的音频视频p2p软件聊起。先来说说较为简单的一个音频p2p软件,酷狗。
酷狗的原型应该是来自于一个国外的公司,名字我已忘记,那家公司也是通过mp3的p2p下载作为主要业务,不过可惜的是在美国mp3因为版权问题非常严重,所以那家公司的最终结局只有一个,就是关门。
但是在中国就不一样了,版权问题没有这么严重,或者说相当的不严重,所以酷狗活得很好。这就是国情啊(理论上来讲,酷狗应该也有一些版权问题,可能跟版权商有合作关系,不过大多数的音频应该没有版权问题,这种情况和视频网站是类似的)。
下面让我们来看看酷狗的技术实现。以下都是ahuaxuan的猜测,供大家讨论,未必完全正确,也未必完全错误,拿出来和大家探讨。
酷狗应该是采用中心的目录服务器结构来实现p2p的功能,也就是说,所有的音频文件的基本信息都会注册到酷狗的中心目录服务器上,那么酷狗的客户端需要下
载某个视频的时候,则从中心目录服务器上查找,找到相信的音频信息,每个音频信息都会对应一堆地址,这些地址是其他的拥有该音频的客户端ip。让我们用一
张图来描述一下这个问题:
这样我们就可以虚拟一个流程出来:
1.1号客户端请求中心目录下载服务器,要求下载“”。
2. 中心目录服务器通过搜索引擎分词,查询之后,得到一堆id。
3. 中心目录服务器根据id查找id对应的ip。显然一个id拥有多个ip,是1:n的关系。
(很不巧,这首歌2,3号客户机上都有, 当然这里并不是应该返回所有的ip地址,而是应选择最短路径的地址返回。让我们来怀念一下dijikstra。
4. 中心目录服务器返回音频文件的ip列表。
5. 1号客户机得到两个ip地址,然后分别2号机请求音频的第一段,从3号机请求音频的第二段。即多地址多线程分段下载。
6. 1号机下载完成之后通知中心目录服务器,这样中心目录服务器关于这个视频又多了一个ip地址供其他客户端下载。
这个应该是最概要的流程,接着可以在这个流程上细化。
从上图我们可以看到,任何一个客户机既是client,又是server。作为client,它从其他server上下载数据,作为server,它提供数据给其他client下载。
所以当我们开着酷狗听歌的时候,其实你的机器就变成了下载服务器了,同样,如果你用的是迅雷,而且一直不把迅雷关掉,那么你的机器就成为专职的下载服务器了。
看到这里,我们有理由相信,如果掌握了下列技术,做一个酷狗不是什么难事,括号后面是ahuaxuan的选型。
1. 搜索技术(lucene)-服务器端
2. 音频管理系统(java,同时涉及到缓存和数据库系统)-服务器端
3. 客户端ui编程(最好是mfc之流)-客户端
4. 下载服务器(c,对windows的io比较熟悉)-客户端
正如前面所说,这个只是非常高层次的设计,而且对于有过大型网站系统经验的人来说,1,2点是没有问题的。然后3,4点需要对c/c++比较熟悉的人来做,当然btcomet据说是python写的。所以我也在思考python+c实现客户端的可行性。
上面讲到的是基本的整个软件的结构体系,或者称为“架构“,在high
level层面还有一个问题,就是协议的问题,客户端之间相互下载应该使用说明协议,以及客户端和服务器端的交互应该使用什么协议,目前ahuaxuan
选择的是bt协议。利用成熟的协议可以减少很多的工作量。或者电驴的协议应该也不错,不过没有深入研究过。
大家一起来拍砖。
分享到:
相关推荐
P2P终结者 4.04P2P终结者 4.04P2P终结者 4.04P2P终结者 4.04P2P终结者 4.04P2P终结者 4.04
p2p 终结者 p2p 终结者p2p 终结者 p2p 终结者 p2p 终结者 p2p 终结者p2p 终结者 p2p 终结者 p2p 终结者p2p 终结者 p2p 终结者 p2p 终结者 p2p 终结者p2p 终结者p2p 终结者 p2p 终结者p2p 终结者 p2p 终结者 p2p 终结...
P2P终结者是由Net.Soft工作室开发的一套专门用来控制企业网络P2P...而且,P2P终结者开发人员将不断跟踪最新P2P协议发展动态,以实现软件更完善的控制功能,同时也会吸取用户的反馈意见,以把P2P终结者软件做得更加完善
p2p终结者p2p终结者 p2p终结者 p2p终结者 p2p终结者 p2p终结者 p2p终结者 p2p终结者 p2p终结者
而且,P2P终结者开发人员将不断跟踪最新P2P协议发展动态,以实现软件更完善的控制功能,同时也会吸取用户的反馈意见,以把P2P终结者软件做得更加完善。 4.03 [2009-01-18] +增加主机配置备份功能 +增加主机配置...
P2P终结者是一款网络管理软件,用来管理局域网中BT、电驴等大量...而且,P2P终结者开发人员将不断跟踪最新P2P协议发展动态,以实现软件更完善的控制功能,同时也会吸取用户的反馈意见,以把P2P终结者软件做得更加完善。
P2P终结者针对目前P2P软件过多占用带宽的问题,提供了一个非常简单的解决方案。P2P终结者基于底层协议分析处理实现,具有很好的透明性。软件可以适应绝大多数网络环境,包括代理服务器、ADSL路由器共享上网,Lan专线...
P2P终结者彻底解决了交换机连接网络环境问题,做到真正只需要在任意一台主机安装即可控制整个网络的P2P流量,对于网络中的主机来说具有很好的控制透明性,从而有效地解决了这一目前令许多网络管理员都极为头痛的...
p2p终结者,还在为别人占用网络烦恼吗,还在为舍友彻夜打游戏啪啪啪的声音烦恼吗?p2p终结者,让它以1Kb的速度打游戏,体验卡到爆的网速。长出心头恶气
p2p终结者p2p终结者p2p终结者p2p终结者p2p终结者p2p终结者
而且,P2P终结者开发人员将不断跟踪最新P2P协议发展动态,以实现软件更完善的控制功能,同时也会吸取用户的反馈意见,以把P2P终结者软件做得更加完善。 4.03 [2009-01-18] +增加主机配置备份功能 +增加主机配置...
P2P终结者彻底解决了交换机连接网络环境问题,做到真正只需要在任意一台主机安装即可控制整个网络的P2P流量,对于网络中的主机来说具有很好的控制透明性,从而有效地解决了这一目前令许多网络管理员都极为头痛的...
p2p终结者p2p终结者p2p终结者p2p终结者p2p终结者
P2P终结者+反P2P终结者 网络管理的好工具
反p2p终结者 反p2p终结者破解版,实用!!!!!!!!
p2p终结者
反P2P终结者 用来对付p2p终结者!防止别人用p2p终结者控制自己的网速!
所有P2P终结者的版权专属于作者 - Net.Soft Studio。 2. 任何人都可以在30天的评估期内使用这个软件。在30天的评估期限后,如 果你还想继续使用,您必须向软件开发商或供应商进行购买。 3. 对于使用P2P终结者...
p2p终结者无线网卡专用版p2p终结者无线网卡专用版p2p终结者无线网卡专用版
p2p终结者V3.00 简体...而且,P2P终结者开发人员将不断跟踪最新P2P协议发展动态,以实现软件更完善的控制功能,同时也会吸取用户的反馈意见,以把P2P终结者软件做得更加完善 破解说明:随便输入注册码即可注册成功.