什么叫做p2p

author author     2023-04-15     571

关键词:

常常听别人在互联网上说什么P2P。请问什么是P2P

未来互联网发展趋势是什么?(这个可以不回答。呵呵)

下载——鼠标轻点几下即可完成的操作!迅雷、Bitcomet、电骡、风播.......大家使用的下载工具五花八门,但仔细研究这些主流的下载工具,它们都围绕着一个核心的技术名词——P2P。如何能够最快最完整地得到你想下载的资源呢?那么,你就不得不了解当今最火爆的P2P下载技术。

一、认识P2P

1998年,18岁的肖恩·范宁为了解决室友如何在网上找音乐的问题而开发了Napster软件,在短时间内就拥有了8000万的用户!它带给我们新的体验,改变了我们的生活,Napster也理所当然地成为了P2P技术诞生的标志,从此以后,P2P开始了极富生命力的发展。

[图1]P2P为英文Peer to Peer的简写,意为对等网络,简单地说就是互联网上的每台计算机都可以作为一个节点来与其他节点直接进行通讯,它又可以分为少量依赖Server、完全依赖Server和完全不依赖Server三种方式。P2P让人们通过互联网直接交互,每台计算机既充当着服务器又充当着客户端的角色。使用P2P模式进行下载可在下载同一文件的同时将已下载的部分数据传递给其它的计算机,将上传的开销分摊到各个下载者那里,这样“下载人数越多,下载速度越快”(P2P下载原理如图1所示)。

P2P下载最大的优点是下载速度不再受服务器带宽及下载人数的限制,它充分利用了传统下载方式空闲的上传带宽。但P2P下载也有一些缺点,如:长期霸占带宽资源可导致内网通信中断,如果“种子”过期则无法下载。

二、主流的P2P软件

目前,众多P2P下载工具已经给用户带来了各种便利,比较有特色的包括:Bitcomet、迅雷、Emule(电骡)、风播等。下面就这几种软件进行深入的比较,以便大家能够对P2P 技术有更深刻的认识。

Bitcomet:BT下载的全称是Bit Torrent,而Bitcomet是美国人Bram cohen 在2001年开发的一个开源和开放协议的下载工具,其技术特点是简单有效,设计十分精巧,而且比起老前辈 Napster、Kazaa 、Gnutella 等来,由于有了MFTP多源下载技术,速度提升十分快。

迅雷:它2004年出现,开始是与Flashget 网际快车类似的下载工具,由于迅雷兼容了传统的FTP和HTTP下载技术,同时支持P2SP 技术,所以下载速率得到不少提升。

Emule(电骡):它实际是源于电驴EDonkey,两者的协议基本相同,只不过后来由不同的开源组织进行维护。电骡最大的优点是可以支持软件内搜索,而且可以搜索到的资源很多。

风播:它是2006年出现的一个新兴的P2P视频点播软件,不仅仅支持常规下载,而且还支持在下载的同时观看影视节目。所以我们不必等待几小时到影片下载完毕再观看。最重要的是风播兼容BT协议和Torrent种子文件,所以节目源非常丰富。

三、下载技术大比武

1.如何找到下载文件

P2P技术的实现原理其实基本是一样的,打个比方,我要和某个不认识的朋友通信,但我不知道对方的联系方式,最简单的方式就是我和对方都在一个我们共同知道的地方留下联系方式。在P2P网络中,这个共同知道的地方就是目录服务器。每个客户端首先需要登录到目录服务器上,在登录的时候客户端需要将自己拥有的资源向服务器汇报一下,这样当其他客户端希望下载某个资源时,只需要向服务器查询一下拥有该资源的客户端IP地址和端口,然后直接联系客户端即可。在BT和风播中,目录服务器被称为Tracker;在电骡中,目录服务器被称为电骡服务器,迅雷也有类似的中央控制服务器。

当前,已经出现了纯P2P技术,就是无需目录服务器的DHT动态哈希表技术,BT、风播、电骡均支持。DHT技术实际上也是一种特殊的目录服务器,只不过把中央目录服务器变为很多小目录服务器。由于细节比较复杂,就不在这里继续讨论了。

2.如何让下载的人越多速度越快

P2P下载速度快的秘密就是MFTP(多源下载)技术,可以将下载速率提高至少10倍。MFTP技术的核心有三点:一是要将资源文件分割成等长的分片,这样便于标记和处理;二是客户端之间必须互相了解对方都有哪些文件分片,这样便于互通有无,达到边下载边上传的目的;三是客户端收到一个分片后,必须有机制可以校验该分片是正确的,否则如果一个分片错误会导致整个资源文件损坏。

BT和风播采用的分片是可以调整的,是从64KB到8MB不等,一般在512KB至1MB之间,电骡是9.28MB。迅雷也有类似的分片技术,但是不支持在下载的同时上传。分片大小对下载效率还是有影响的,一般来说,分片大了,客户端之间互相交互所消耗的流量也会比较小,因为客户端互相交互分片信息也是需要数据包的,但是分片大了,会导致传输效率下降。

有些用户使用BT和风播的时候,不明白Torrent 种子文件是什么,其实种子文件记录的信息很大一部分就是每个文件分片的校验和。而电骡的文件校验和又在哪里呢?大家可以打开电骡的Temp目录,里面有一个后缀名为part.met的文件,里面就包含了校验和。

3.如何搜索到下载资源

这里所说的资源搜索其实主要是资源的展示方面,也就是平时我们如何找到我们想下载的资源文件。
电骡是依靠服务器和客户端两种搜索方式,电骡依靠强制共享,将每个骡友的部分硬盘目录及文件共享出去,在电骡启动时候,它会将我们电脑的共享目录上报到电骡服务器上,这样其他骡友就可以直接到服务器上进行搜索了。

BT、迅雷、风播基本上是依靠到Web服务器上搜索资源文件或检索资源文件,在BT和风播中,打开种子文件即可下载。而迅雷是保存了FTP或HTTP的原始链接,打开链接以后启动下载功能。

4.坏人算法与好人算法

有朋友问,为什么我用电骡下载某个文件即使源很多,下载速度也特别慢呢?这就要从P2P分享率谈起,分享率是P2P世界的一个非常重要的指标,分享率指上传和下载的比值。

不同的P2P技术对于解决分享率有不同的处理方式。大致可以分为两种:坏人算法和好人算法。所谓坏人算法和好人算法其实是一种假设,坏人算法假定所有的客户端都是自私的,但是为了大家都来贡献自己的力量,制定了一个规则:如果不共享,就要遭受一定的惩罚;好人算法默认每个客户端都会按照自己能力尽量上传。

在电骡的网络中,采用了一种信用机制,当你上传流量很多的时候,你就获得比较高的信用值,从其他人那里获取流量的可能性就加大。每个电骡会维护一个服务队列,当我向别人请求数据时候,别人会根据我的信用等级进行排队,信用等级越低,排队越靠后。因此,老电骡们由于上传多,积分也高,下载速度就比较快;而新手由于上传少,积分低,下载速度也相对比较慢。

BT采用的是坏人算法,客户端定时会计算对方是否给自己流量,如果对方不给我流量,我会将对方阻塞掉。这样迫使对方必须提供一定的上传带宽。

迅雷采用的主要还是好人算法,每个客户端不可以控制自己不向别人贡献流量。风播采用好人算法和坏人算法相结合的方式。

5.调度算法

调度算法是所有P2P技术的核心,不同的厂商有不同的实现方式,一般都是技术机密。对于BT、电骡、迅雷来说,一般采用乱序下载算法,这是迅速利用客户端上传带宽比较有效的方式。风播为了实行在线播放,调度算法完全不同于其他P2P软件,是一种顺序和乱序的结合算法。

假设做种的Seed 有1、2、3、4、5 五个分片,如果按照传统的HTTP或FTP下载方式,Peer1和Peer2 向Seed 都从文件头部的分片1开始请求,那么极端的后果就是P2P无法实行,因为Peer1和Peer2还是把压力加在Seed上(原理如图2所示)。

但是如果采用乱序下载就不一样了,Peer1 从Seed获取分片1,Peer2从Seed获取分片2,它们相互就可以从对方获取自己没有的数据,P2P 方式就很容易发挥作用(原理如图3所示)。

对于P2P下载,乱序方式解决得很好。但是对于流媒体,必须要求文件分片是顺序获取,风播采用了一种乱序和顺序相结合的方式来解决该问题,也就是整个文件的获取方式,基本上是顺序方式获取,但是具体每个分片,又采用乱序方式获取,这样就取得了下载速度和顺序观看影片的平衡。

参考资料:http://hi.baidu.com/haiaiwoba/blog/item/9c895960741f1fdf8cb10d0b.html

参考技术A P2P是peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者”、“同事”和“伙伴”等意义。这样一来,P2P也就可以理解为“伙伴对伙伴”的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途。

简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返“非中心化”,并把权力交还给用户。 P2P看起来似乎很新,但是正如B2C、B2B是将现实世界中很平常的东西移植到互联网上一样,P2P并不是什么新东西。在现实生活中我们每天都按照P2P模式面对面地或者通过电话交流和沟通。
参考技术B 点对点

区块链实战什么是p2p网络,区块链和p2p网络有什么关系

...块链节点与P2P的关系区块链节点功能分类P2P网络特征三、什么是P2P网络,区块链式使用P2P网络做什么1、P2P网络概念2、P2P网络节点特征3、P2P与区块链4、网络节点功能一、简介在白皮书中,中本聪就已经说明了这个系统的... 查看详情

区块链实战什么是p2p网络,区块链和p2p网络有什么关系

...块链节点与P2P的关系区块链节点功能分类P2P网络特征三、什么是P2P网络,区块链式使用P2P网络做什么1、P2P网络概念2、P2P网络节点特征3、P2P与区块链4、网络节点功能一、简介在白皮书中,中本聪就已经说明了这个系统的... 查看详情

什么是p2p技术

什么是P2P peer-to-peer简称P2P,即点对点技术。又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。 简单的说,P2P直接将人们联系起来,让人们通... 查看详情

什么是p2p

什么是P2P?P2P是peer-to-peer的缩写,peer在英语里有"(地位、能力等)同等者"、"同事"和"伙伴"等意义。这样一来,P2P也就可以理解为"伙伴对伙伴"的意思,或称为对等联网。目前人们认为其在加强网络... 查看详情

p2p是啥技术

p2p是什么(技术)?它的原理是什么,比如:下载,它和其他的下载软件工具有什么区别呀?用它下载快些,如快的原因是什么,对硬件要做哪些维护呀?如不快那是什么原因,怎么让它快,在硬盘不被损坏的情况下。P2P是peer-to-pe... 查看详情

通俗易懂:快速理解p2p技术中的nat穿透原理

目录1、基础知识1.1、什么是NAT?1.2、为什么会有NAT?1.3、NAT有什么优缺点?2、NAT的实现方式2.1、静态NAT2.2、NAPT3、NAT的主要类型3.1、完全锥型NAT(FullConeNAT,后面简称FC)3.2、受限锥型NAT(RestrictedConeNAT... 查看详情

通俗易懂:快速理解p2p技术中的nat穿透原理

目录1、基础知识1.1、什么是NAT?1.2、为什么会有NAT?1.3、NAT有什么优缺点?2、NAT的实现方式2.1、静态NAT2.2、NAPT3、NAT的主要类型3.1、完全锥型NAT(FullConeNAT,后面简称FC)3.2、受限锥型NAT(RestrictedConeNAT... 查看详情

“云”技术和p2p技术有什么区别?

云的概念就是服务器在一个云里,有很多服务器可以提供了某种服务。基于此意义,p2p技术就是一种云服务。P2P如果用来做传输分发,比如用BT部署自己的分发系统,这种就可以视为云分发。因为p2p背后也是支持很多服务器提供... 查看详情

端游下载的时候现在很多都是采用http传输,为什么不是p2p传输?

...载,还有推荐下载,也有一些是写着HTTP高速下载这些有什么区别?既然P2P传输的功能像你说到俺么强大,为什么他们不使用P2P技术,而是HTTP传输呢?对于这个问题,首先它并不是正确的,并不是所有的端游都用http传输,p2p传输... 查看详情

p2p的原理

p2p的原理是什么??急!!!急!!!急!!!!P2P软件是基于P2P技术工作的1、什么是p2pP2P是一种技术,但更多的是一种思想,有着改变整个互联网基础的潜能的思想。(1)p2p的概念P2P是peer-to-peer的缩写,peer在英语里有“(地... 查看详情

区块链跟p2p究竟有什么关系?

区块链这种技术在欧美国家会相对发展快一点,目前国内只能说处于早期接触和探索的阶段,但要说真正应用的,估计没有一个企业敢说已经把它变为一种生产力了,就目前来看,只是镜花水月。建安小谢 2016/06/0110:06浏览22.... 查看详情

第六章p2p技术及应用

...内容进行归纳。文章中的Why表示产生的背景,也就是说为什么会产生该技术,What表示该技术是什么,How表示该技术是如何使用的。以下将用字母表示各问题。 1)P2P技术:Why:早期非对等结构网络操作系统主要共享的资源是 查看详情

P2P技术比较

...有其他技术,例如ICE、UPnP和teredo谁能告诉我这些技术有什么区别。哪一种是近年来用于P2P的最新技术/协议。如果能提供各种基于UDP的P2P协议的对比分析就好了。任何链接或建议将不胜感 查看详情

什么是ptop技术

什么是PTOP技术,这种技术有那些优势,P2P即PeertoPeer,称为对等连接或对等网络,P2P技术主要指由硬件形成连接后的信息控制技术,其代表形式是软件。技术背景P2P起源于最初的联网通信方式,如在建筑物内PC通过局域网互联,不... 查看详情

什么叫做事务

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begintransaction和endtransaction语句(或函数调用... 查看详情

C++ Winsock P2P

...这是我对特别需要使用这项技术的客户的要求(天知道为什么)。我需要确定这是否可行。任何帮助将不胜感激。编辑并且我想避免使用库,以便我可以理解底层源代码并进一步了解我的知识。【问题讨论】:【参考方案1】:... 查看详情

什么叫做网络编程?

什么叫做网络网络就是一种辅助双方或者多方能链接在一起的工具如果没有网络,单机的世界是多么的孤单互联网发展到现在不过几十年,已经达到现在的水准,我在这里敲一个哈哈大家屏幕那头就能看到哈哈把多方... 查看详情

什么叫做网络编程?

什么叫做网络网络就是一种辅助双方或者多方能链接在一起的工具如果没有网络,单机的世界是多么的孤单互联网发展到现在不过几十年,已经达到现在的水准,我在这里敲一个哈哈大家屏幕那头就能看到哈哈把多方... 查看详情