随着各种行业和硬件设备的发展,大文件越来越多,比如在媒体行业为了保证图片和视频的清晰,和以前的相比,都比较大,尤其是出版社等行业。确保大文件能快速的传输,现在很多企业还是使用的硬盘邮寄的方式。如果使用网上传输的方式,可以实现吗? 想弄清楚这个问题,我们首先用知道现在网上信息传输常用的方式HTTP FTP和P2P优劣势。我们一起来看下吧:
1、 Http传输:
比较传统的文件分发方式,优点是部署方便,一般会采用IIS、Apache、Nginx、Tomcat等web服务器,基本上能运行网站的web服务器都可以用来做文件的传输。
http这种部署需要注意,很多http服务器对一个连接的超时、文件大小默认都有些限制的,因为http最初主要是针对网页、图片这类小文件设计的协议,所以一般需要改一些设置。
2、 FTP传输
类似于Http,也是比较传统的文件分发方式,特点跟http类似。基本上优缺点也跟http想似,所以可以二者放一起讲他们的优缺点。Ftp最初是希望改进http对大文件支持不好的领域,但实际上,这几年随着http的发展,这些弊端也都有办法规避,ftp和http相似性较大,所以这几年,ftp已经慢慢基本退出市场了,应用越来越少。
HTTP和FTP这两类分发统一的特点都是:
A) 所有数据都要走服务器,对服务器带宽、性能压力要求比较高。
B) 如果用户量多,一台服务器性能不够时,如果增加多个服务器,需要通过智能DNS等调度,但如果有冷门时间段,比如多服务器很多在空闲时,很难同时利用多个服务器的性能,只能随机给客户一台服务器提供数据。
C) 如果要自己做客户端去下载,一般需要自己去实现断点续传、多线路(多线程)下载增加速度,以及考虑不同环境的最优下载速度、限速处理等
D) 一般适合文件分发量不大;或者文件同时下载的几率比较小,或者希望轻量级解决分发的用户,不希望使用p2p等更高级方案的轻量级用户。
这类客户,小编比较建议如果自己做下载的客户端,可以考虑用一些具有断点续传、限速、对单地址多线程下载、如果有多服务器地址,可以同时从多个镜像服务器下载等功能的HttpFtp内核,可以发挥这两类协议的最大潜力。并且几行代码实现一个完整的下载客户端。
3、 CDN:
严格来说不属于一个协议,它只是对http这种的一个扩充,简言之就是:你有一台http服务器,但全国人民都去下载可能速度不够快,cdn给你复制到了全国很多份,让每个省的人民访问时,它自动给分配一个距离他最近的一台http服务器。上面缓存了你服务器上的数据内容。
相比普通http服务器,它解决了不同运营商、不同地区访问速度慢的问题。但带来的是成本增加。用这类的客户,也可以考虑点量HttpFtp内核,因为断点续传(比如一个文件1G,上次下载了500M,下次开机,继续从500M下载,而不是从头下载)、限速、多线程等还是对这类用户有需求的。
4、 P2P分发:自己搭建p2p的服务器,搭建自己的服务器(也可以不用搭建服务器,直接服务端用cdn,或者http服务器)。这种方式有点有很多:
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指纹校验防篡改数据,这这安全性非常高。几乎文件没有篡改的可能。
原文地址:http://blog.51cto.com/13794487/2145153