- Http:比较传统的文件分发方式,优点是部署方便,一般会采用IIS、Apache、Nginx、Tomcat等web服务器,基本上能运行网站的web服务器都可以用来做文件的传输。
http这种部署需要注意,很多http服务器对一个连接的超时、文件大小默认都有些限制的,因为http最初主要是针对网页、图片这类小文件设计的协议,所以一般需要改一些设置。
- FTP: 类似于Http,也是比较传统的文件分发方式,特点跟http类似。基本上优缺点也跟http相似,所以可以二者放一起讲他们的优缺点。Ftp最初是希望改进http对大文件支持不好的领域,但实际上,这几年随着http的发展,这些弊端也都有办法规避,ftp和http相似性较大,所以这几年,ftp已经慢慢退出市场了,应用越来越少。
这两类分发统一的特点都是:
- 所有数据都要走服务器,对服务器带宽、性能压力要求比较高。
- 如果用户量多,一台服务器性能不够时,如果增加多个服务器,需要通过智能DNS等调度,但如果有冷门时间段,比如多服务器很多在空闲时,很难同时利用多个服务器的性能,只能随机给客户一台服务器提供数据。
- 如果要自己做客户端去下载,一般需要自己去实现断点续传、多线路(多线程)下载增加速度,以及考虑不同环境的最优下载速度、限速处理等
- 一般适合文件分发量不大;或者文件同时下载的几率比较小,或者希望轻量级解决分发的用户,不希望使用p2p等更高级方案的轻量级用户。
这类客户,我们比较建议如果自己做下载的客户端,可以考虑用点量HttpFtp内核,该内核已经内置了断点续传、限速、对单地址多线程下载、如果有多服务器地址,可以同时从多个镜像服务器下载等,可以发挥这两类协议的最大潜力。并且几行代码实现一个完整的下载客户端。
- CDN:严格来说不属于一个协议,他只是对http这种的一个扩充,简言之就是:你有一台http服务器,但全国人民都去下载可能速度不够快,cdn给你复制到了全国很多份,让每个省的人民访问时,他自动给分配一个距离他最近的一台http服务器。上面缓存了你服务器上的数据内容。
相比普通http服务器,他解决了不同运营商、不同地区访问速度慢的问题。但带来的是成本增加。用这类的客户,也可以考虑点量HttpFtp内核,因为断点续传(比如一个文件1G,上次下载了500M,下次开机,继续从500M下载,而不是从头下载)、限速、多线程等还是对这类用户有需求的。
- P2P分发:自己搭建p2p的服务器,比如采用点量BT内核,搭建自己的服务器(也可以不用搭建服务器,直接服务端用cdn,或者http服务器),然后使用点量BT开发自己的客户端软件。这种方式有点有很多:
A)节省服务器带宽:这个是p2p众所周知的优点,这里就不多加赘述了。
B)可以多源下载:这个是人们往往忽略的,经常有人问我说:如果只有一个人下载,此时p2p是不是就没什么好处了。其实这个也是不对的。就算只有一个人下载,这个用户如果用普通http,一般是从单个服务器下载,如果遇到这个服务器比较慢,他只能忍受。但如果是p2p的系统,p2p后端可以有多台服务器,比如你购买10几台美国服务器,带宽又便宜,又不限流量,这种模式下,下载是从10几台服务器一起下载,速度还是要快,而且就算一台服务器宕机,也一点不影响下载,这个其实也是p2p的一个很大的好处。服务器运维时,上下线对用户没有任何影响。
C)天然的防盗链:p2p协议如果不用标准的BT协议,是完全可以自定义一些私有传输协议的。这种协议,用户几乎无法去盗链你的资源,除非他自己写一个一样协议的p2p软件,所以这方面优势比http好太多。
D)用户下载速度比HTTP快:因为多源下载,所以自然速度就比单服务器模式速度可以快。
E)成本低:不同于http模式,p2p的服务器不一定放优质机房,可以只少量放机房。很多服务器可以用美国的低价服务器,1G带宽一个月就1000多人民币,这价格秒杀很多国内机房。2008年以前,我还见过有人是租一些民房,放一些普通电脑,用来做p2p加速。特别是找一些带宽上传便宜的地区,因为很多民用带宽在很多地区1年只有几百块就能拿到的。
F)安全和校验:P2P传输可以用私有协议、文件内置了hash指纹校验防篡改数据,这这安全性非常高。几乎文件没有篡改的可能。
点量软件是有P2P的完整分发系统和技术,点量软件P2P产品,它的应用领域非常广泛,常见的游戏下载,是一款非常适合网游、大文件等资源分发的定制下载器的产品,适用于游戏下载器Launcher的P2P个性化定制等。比如:KTV的MTV音乐、网游游戏、私人影吧电影等,都可以用这个分发。