﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Error-文章分类-P2P</title><link>http://www.cppblog.com/Error/category/20346.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 23 Jan 2013 09:24:08 GMT</lastBuildDate><pubDate>Wed, 23 Jan 2013 09:24:08 GMT</pubDate><ttl>60</ttl><item><title>（转）现有p2p协议分类与简介 </title><link>http://www.cppblog.com/Error/articles/197502.html</link><dc:creator>Enic</dc:creator><author>Enic</author><pubDate>Wed, 23 Jan 2013 08:17:00 GMT</pubDate><guid>http://www.cppblog.com/Error/articles/197502.html</guid><wfw:comment>http://www.cppblog.com/Error/comments/197502.html</wfw:comment><comments>http://www.cppblog.com/Error/articles/197502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Error/comments/commentRss/197502.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Error/services/trackbacks/197502.html</trackback:ping><description><![CDATA[<div>现有p2p协议分类与简介&nbsp;</div><div>（一）　常用p2p协议</div><div>　　1、napster：世界上第一个大型的p2p应用网络；中央集中式，倒闭了。</div><div>napster，这是当时很火的一种共享服务，主要用于查找mp3，它有一个服务器用于存储mp3文件的链接位置并提供检索，而真正的mp3文件则存放在</div><div>千千万万的个人电脑上，搜索到的文件通过p2p方式直接在个人电脑间传播共享。这种方式的缺点就是需要一台服务器，在mp3文件版权之争火热的年</div><div>代，napster很快就成为众矢之的，被众多唱片公司诉讼侵犯版权而被迫关闭。当然服务器一关napster也就不复存在。</div><div>　　2、gnutella和gnutella2（gnutella2是对gnutella的改进和扩展）：开源的；第一个真正非中心的无结构p2p网络，文件查询采用洪泛方式。</div><div>　</div><div>　gnutella吸取了napster的失败教训，将p2p的理念更推进一步：它不存在中枢目录服务器，所有资料都放在个人电脑上。用户只要安装了该软</div><div>件，就将自己的电脑立即变成一台能够提供完整目录和文件服务的服务器，并会自动搜寻其它同类服务器，从而联成一台由无数pc组成的超级服务器网络。传统网</div><div>络的server和client在它的面前被重新定义。</div><div>　　3、fasttrack：</div><div>　　第一个客户端是kazaa。协议与gnutella类似。02－03年的最大用户网，05年退至第三名。衰退原因是这个网络无法应对众多用户同时使用，而且有版权拥有者pollution的行为，以及间谍软件的问题。</div><div>　　imesh也是以fasttrack为协议的。</div><div>　　4、edonkey，overnet，kad：</div><div>　　自私的人们在利用p2p软件的时候大多只愿&#8220;获取&#8221;，而不愿&#8220;共享&#8221;，p2p的发展遇到了意识的发展瓶颈。不过，一头&#8220;驴&#8221;很快改变了游戏规则，这就是电驴－edonkey，它引入了强制共享机制。</div><div>　</div><div>　edeonkey将网络节点分成服务器层和客户层，并且将文件分块以提高下载速度。edonkey网络下最普及的p2p客户端程序是</div><div>edonkey2000和emule。emule是edonkey的后继，但是更出色，采用了dht来构建底层网络拓扑，目前非常流行的p2p文件共享软</div><div>件。</div><div>　　overnet设计的目的是取代edonkey，它没有中心服务器，但用户数少于edonkey。</div><div>　　kademlia 协议，在这里叫做kad网络，采用udp方式通信。很类似于overnet，几乎只有edonkey用户使用它。</div><div>　　5、bittorrent：借助分散式服务器提供共享文件索引的混合式p2p网络，文件分片下载。</div><div>　　下载速度高，没有查找功能，种子具有时效性。它将中心目录服务器的稳定性同优化的分布式文件管理结合起来。</div><div></div><div></div><div>&nbsp; &nbsp; &nbsp;BitTorrent的意思就是pnp下载，也叫变态下载。bt下载是p2p下载，pp下载的扩展。pnp中的两个p都是指网民的个人电脑，在网上抽象为一个点point。n是之1，2，3，&#8230;&#8230;n中的n就是无限的意思。pnp就是说个人电脑和个人电脑通过网络连接，多对多连接的意思。bt下载为什么俗称变态下载呢？这是因为这种下载方式和传统的单单依靠网站服务器作为下载源的方式不同，它采用的是人人电脑都是服务器的思想，下载的人越多，共享的人越多，下载的速度也越快。 BitTorrent 下载工具软件可以说是一个最新概念 P2P 的下载工具、它采用了多点对多点的原理，一般简称 BT(BitTorrent) 也就是大家所说的变态下载。该软件相当的特殊，一般我们下载档案或软件，大都由 HTTP 站点或FTP 站台下载，若同时间下载人数多时，基于该服务器频宽的因素，速度会减慢许多，而该软件却不同，恰巧相反，同时间下载的人数越多你下载的速度便越快，因为它采用了多点对多点的传输原理。&nbsp;</div><div></div><div>　　6、direct connect：</div><div>　　一种常用在小的网络和大学内部网络中的协议，适用于小网络环境中，dc++是常见客户端。</div><div>　　7、ares：类似gnutella网络。</div><div></div><div></div><div>（二）　现有p2p技术主要涉及的领域和发展方向</div><div>　　(1)提供文件和其它内容共享的p2p网络，例如napster、gnotella、freenet、can、edonkey、emule、bittorrent等。</div><div>　　(2)基于p2p方式的协同处理与服务共享平台，例如jxta、magi、groove、.netmy service等。</div><div>　　(3)即时通讯交流，包括icq、oicq、yahoo messenger等。</div><div>　　(4)安全的p2p通讯与信息共享，利用p2p无中心的特性可以为隐私保护和匿名通讯提供新的技术手段。例如cliquenet、crowds、onion routing等。</div><div>　　(5)语音与流媒体：由于p2p技术的使用，大量的用户同时访问流媒体服务器，也不会造成服务器因负载过重而瘫痪。skype与coolstream是其中的典型代表。</div><div>　</div><div>　(6)网格计算，挖掘p2p分布计算能力。使用p2p技术以集中那些联接在网络上的电脑的空闲的cpu时间片断、内存空间、硬盘空间来替代&#8220;超级计算机</div><div>&#8221;。例如seti@home、avaki、popular</div><div>power、distributed.net等。网格计算的宗旨是：将遍布全球的数以万计的计算节点通过高速internet连接并组织成一个巨系统，使</div><div>其能够透明、高效地完成复杂计算任务。</div><div>　　(7)ibm、微软、ariba也在合作开展一个名为uddi的项目以将b2b电子商务标准化</div><div>　　(8)eazel正在建立下一代的linux桌面。</div><div>　　(9)jabber已经开发了一种基于xml、开放的即时讯息标准，jabber被认为是建立了未来使用p2p数据交换的标准。</div><div>　　(10)lotus notes的开发者创建的groove试图&#8220;帮助人们以全新的方式沟通&#8221;。</div><div>　　(11)英特尔也在推广它的p2p技术以帮助更有效地使用芯片的计算能力。</div><div>（三）　p2p资源定位方式</div><div>　　p2p网络中进行资源定位是首先要解决问题。一般采用三种方式：</div><div>　　(1)集中方式索引</div><div>　　每一个节点将自身能够提供共享的内容注册到一个或几个集中式的目录服务器中。查找资源时首先通过服务器定位，然后两个节点之间再直接通讯。例如早期的napster。这类网络实现简单，但往往需要大的目录服务器的支持，并且系统的健壮性不好。</div><div>　　(2)广播方式</div><div>　　没有任何索引信息，内容提交与内容查找都通过相邻接节点直接广播传递。例如gnutella。一般情况下，采取这种方式的p2p网络对参与节点的带宽要求比较高。</div><div>　　(3)动态哈希表的方式</div><div>　</div><div>　上述两种定位方式可以依据不同的p2p应用环境进行选择，但是人们普遍看好dht(distributed hash</div><div>table，分散式杂凑表)方式。基于dht的p2p网络在一定程度上可以直接实现内容的定位。一个矛盾的问题是：如果一个节点提供共享的内容表示越复</div><div>杂，则哈希函数越不好选择；相应的，网络的拓扑结构就越复杂。而如果内容表示简单，则又达不到真正实现依据内容定位的能力。目前大多数dht方式的p2p</div><div>网络对节点所提供共享内容的表示都很简单，一般仅仅为文件名。</div><div>参考资料：</div><div>http://hi.baidu.com/yrworld/blog/item/18e2d8fc4d8656fcfd037f5e.html</div><div>http://www.chinadv.com/tech/153534/</div><div>http://zixiaoruixue731.blog.163.com/blog/static/3366060200711103495214/</div><div>http://my.donews.com/yishuai/2006/04/23/p2p%e6%b1%a1%e6%9f%93%e5%88%9d%e6%8e%a2/</div><div>http://ausun-net.spaces.live.com/blog/cns!b9153878b5ef5882!1624.entry</div><div>http://dolf.cn/articles/knowledge-sharing-on-p2p-networks-and-implementation.html</div><div>http://hi.baidu.com/lifi007/blog/item/9c5e12cbe6105f1dbe09e68a.html</div><div></div><div>http://www.divmy.com/</div><div>本文来自博客园-陈国立：http://www.xubaihui.com &nbsp; 原文地址：http://www.cnblogs.com/cgli/archive/2012/05/11/2496027.html</div><img src ="http://www.cppblog.com/Error/aggbug/197502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Error/" target="_blank">Enic</a> 2013-01-23 16:17 <a href="http://www.cppblog.com/Error/articles/197502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>