<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

简介: P2S、P2P、P2SP之对比一、下载原理分析         1、服务端下载技术(P2S):P2S下载方式分为HTTP与FTP两种类型,它们分别是Hyper Text Transportation Protocol(超文本传输协议)与File Transportation Protocol(文件传输协议)的缩写,它们是计算机之间交换数据的方式,也是两种最经典的下载方式,该下载方式原理非常简单,就是用户通过两种规则(协议)和提供文件的服务器取得联系并将文件搬到自己的计算机中来,从而实现下载的功能。

P2S、P2P、P2SP之对比

一、下载原理分析

         1、服务端下载技术(P2S):P2S下载方式分为HTTP与FTP两种类型,它们分别是Hyper Text Transportation Protocol(超文本传输协议)与File Transportation Protocol(文件传输协议)的缩写,它们是计算机之间交换数据的方式,也是两种最经典的下载方式,该下载方式原理非常简单,就是用户通过两种规则(协议)和提供文件的服务器取得联系并将文件搬到自己的计算机中来,从而实现下载的功能。其工作原理如图1所示:


图1:P2S下载工作原理图

        2、点对点下载技术(P2P):在解释P2P下载原理之前我们先了解一下网络带宽。通常用户上网时主要使用网络的“下行带宽”(也就是从其他计算机到本地的带宽),比如浏览网页、下载软件等等。相比较而言“上行带宽”(从本地计算机到其他计算机的带宽)使用率非常低,而且发送的数据量一般很小,这就造成了带宽资源的巨大浪费。 P2P下载则充分利用了用户富余的上行带宽。与P2S方式正好相反,该种模式不需要服务器,而是在用户机与用户机之间进行传播,也可以说每台用户机都是服务器,讲究"人人平等"的下载模式,每台用户机在自己下载其它用户机上文件的同时,还提供被其它用户机下载的作用,所以使用该种下载方式的用户越多,其下载速度就会越快。其工作原理图如图2所示:


图2:P2P下载工作原理图

        3、智能网格技术(P2SP):P2SP下载方式实际上是对P2S和P2P技术的进一步延伸和整合,通过多媒体检索数据库这个桥梁把原本孤立的服务器和其镜像资源和P2P资源整合到了一起。这样下载速度更快,同时下载资源更丰富,下载稳定性更强。

二、下载资源

        由于下载原理的不同,决定着P2S下载方式是通过下载服务器进行下载,同时下载资源须由专人上传到服务器后,方可进行下载,受到下载服务器的限制,其资源是有限的。

        而P2P下载是通过种子的方式进行传播,如果有人想把文件提供下载,只要通过软件把文件制作成种子而且发布到页面上就可以了,同时种子体积非常小,便于发布。种子发布后,只要有一个人提供共享,那么其它人就可以通过BT软件进行下载。

         P2SP可以把所有的P2P共享资源与各下载服务器进行整合,所以其下载资源远远大于P2S方式,同时P2SP采用的多媒体搜索引擎技术还可以把服务器端的同一个文件的各个镜像同时找到,能够实现各个服务器同时下载,这样下载资源可以说是非常丰富。

三、下载速度

        P2S方式下载,虽然可以实现多线程下载,但由于其下载资源来自单一服务器,这样下载的人数一多,其下载速度就会变的非常慢,服务器负载加大可能崩溃,一旦服务器崩溃或者资源不存在将无法继续下载。

        而 P2P下载则不然,下载的人数越多,其下载速度就会越快,从而让我们实现飞速下载,但美中不足的是,当下载人数减少时,特别是现在有好多人下载完成后,就不想再做种子为他人服务,这时下载速度就会急剧下降。如果找不到种子则无法继续下载。

       而P2SP则不然,他通过独特的多媒体搜索引擎技术,把种个服务器端的文件整合到一起,实现同时从多个服务器端下载文件,而不像P2S方式那样只是从一个服务器端多线程下载,这样就能用有效的使用其它服务器,这样不但减轻了服务器的压力,还为稳定高速下载提供了保障。如果服务器和镜像资源都无法链接下载,则启用P2P的种子资源下载。

       P2S中的S是独立的单一服务器;而P2SP中的S则是多台服务器的一个并合。如果采用P2S可以建立N个下载链接,那么如果P2SP中有M台服务器,那里理论上P2SP将会建立M×N个下载链接。大家可以推算,P2SP的理论速度可以是P2S速度的M倍。

四、下载资源的安全性

        只要能够找到P2P种子,就能够下载该文件,也可以说通过P2P下载方式,可以下载任何提供种子的文件。这样以来,一些不法分子可能会有机可乘,同时限制也是非常困难的。而能过P2S方式下载的文件,都是通过服务器端进行下载,这样只要对服务器进行管理,就可以有力的打击不合法文件的传播,文件的可控性有了很大的提高。P2SP最原始的下载资源也是来自服务器端的,这样只要有效的对服务器端进行监管,从而就可以有效的避免少数用户利用P2P软件散播非法内容。

五、典型代表软件

        1、网际快车(FlashGet):目前最流行的下载软件,它在较早的时候有效地解决了下载的两个最大问题:速度和下载后的管理,通过把一个文件分成几个部分同时下载可以成倍的提高速度,下载速度可以提高 100% 到 500%。它可以创建不限数目的类别,每个类别指定单独的文件目录,不同的类别保存到不同的目录中去,强大的管理功能包括支持拖拽,添加描述,更名,查找,文件名重复时可自动重命名等等。而且下载前后均可轻易管理文件。

由于FlashGet推出时间比较早,再加上产品的稳定性很好,所以是目前多数用户的首选。当然,FlashGet由于它是基于(P2S),所以当服务器忙、带宽吃紧或者服务器崩溃的时候,使用FlashGet的用户将因为服务器的不同状态而产生下载漫或者是无法下载的情况。

 

        2、BT(BitTorrent):在BitTorrent的世界中,凡是参加下载的计算机无所谓“服务器”或者“客户机”,每一台“客户机”同时也是 “服务器”,当它下载的时候,同时也会使用上行带宽将已经下载的部分发送到其他计算机上。这样,下载的人越多,实际网络带宽就越大,速度自然就越快。

由于BT的下载资源丰富,速度又快,所以在短短时间成为用户下载大容量软件的首选。但是,由于下载源的不稳定(服务器一般肯定比用户机安全稳定)及操作的麻烦,所以也影响了BT的进一步发展。

         3、迅雷(Thunder):和前两者不同,迅雷除了不仅能把使用者指定的下载链接保存到动态数据库中,同时还会结合多媒体搜索引擎去寻找这个文件的多个网络镜像,从而实现多服务器的下载,而不是仅仅从一个服务器端进行多线程下载。如果,互联网上存在多个服务器资源,将优先从服务器和镜像服务器下载。这个时候使用迅雷起到了服务器下载分流的作用、使得同样一台服务器可以给更多的用户提供下载;当没有多服务器资源的时候,用户的下载可以从单服务器和其他用户节点同时下载,这个时候,使用迅雷起到了为服务器减压作用,在同样保证用户下载速度的前提下,不需要为下载的高峰时间增加服务器开销和带宽开销;当服务器忙、带宽吃紧和服务器宕机的时候,用户的下载将在用户的节点之间完成,这个时候,使用迅雷起到了恢复死链接的作用,使得不管下载服务器处于任何状态,用户都能够顺利的完成下载。

六、总结

        从上面的几项对比我们可以看出,P2P下载虽然能够实现高速度下载,但当人数减少时,其速度也并不理想,其稳定性受到限制,同时其可控性也没有采用服务器方式更安全,而P2S方式下载在人数多时,其速度也会变的非常慢,甚至出现连接不上的问题,其效果也不是很理想。但这两种下载方式也并不是不能使用,我们可以使用P2P下载种子数多,热门的一些软件、电影等,而下载一些小文件,可直接采用P2S方式进行下载,对于一些大文件,我们可以使用P2SP,实现多服务器多线程快速下载,从而满足我们的需要。


目录
相关文章
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
1.使用lsmod查看ipv6的模块是否被加载。 lsmod | grep ipv6 [root@dmhadoop011 ~]# lsmod | grep ipv6 ipv6                  317340  127 bonding 如果加载了,则进行如下操作: 2.
763 0
|
数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
CentOS 6.5安装配置ldap 时间:2015-07-14 00:54来源:blog.51cto.com 作者:“ly36843运维” 博客 举报 点击:274次 一.
872 0
|
Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
深度分析Java的ClassLoader机制(源码级别) 写在前面:Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中,JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载class的,loadClass使用双亲委派模式。
1044 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
原文见:http://kafka.apache.org/documentation.html#semantics kafka在生产者和消费者之间的传输是如何保证的,我们可以知道有这么几种可能提供的delivery guarantee: At most once 消息可能会丢,但绝不会重复传输 At least one 消息绝不会丢,但可能会重复传输 Exactly once 每条消息肯定会被传输一次且仅传输一次,很多时候这是用户所想要的。
881 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://nameservice/user/hive/warehouse/om_dw.
715 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
1.修改dfs.datanode.max.transfer.threads = 4096 (如果运行hbase的话建议为16384),指定用于在DataNode间传输block数据的最大线程数,老版本的对应参数为dfs.
752 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
1、Client 向 YARN 提交应用程序,其中包括 ApplicationMaster 程序及启动 ApplicationMaster 命令2、ResourceManager 为该 ApplicationMaster ...
690 0
|
Web App开发 前端开发 Python
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
今天在网上找了很久,终于找到1个snappy压缩命令行,记录下来: 1.wget https://bootstrap.pypa.
715 0