一、Napster:第一个大型的;中央集中式;倒闭了;
二、Gnutella和Gnutella2:开源的;第一个真正非中心的。Gnutella2是对Gnutella的改进和扩展。
三、FastTrack:
第一个客户端是KazaA。协议与Gnutella类似。02-03年的最大用户网,05年退至第三名。衰退原因是这个网络无法应对众多用户同时使用,而且有版权拥有者polluation的行为,以及间谍软件的问题。iMesh也是以FastTrack为协议的。
四、eDonkey,overnet,kad:
eDonkey网络最普及的p2p客户端程序是eDonkey2000和emule。
overnet设计的目的是取代eDonkey,它没有中心服务器,但用户数少于eDonkey。
kad很类似于overnet,几乎只有eDonkey用户使用它。
五、BitTorrent:
唯一广泛被用在公司分配系统中的分享协议,下载速度高,没有查找功能。
六、Direct Connect:
一种常用在小的网络和大学内部网络中的协议,适用于小网络环境中,DC++是常见客户端。
七、Ares:类似Gnutella网络。
---------------------------------------------------
第一代:当数Napster,是由18岁的Shawn Fanning开发的。是基于集中式的目录服务器机制的。目录服务器集中存放对等节点的地址信息和所保存数据的信息。这种集中式目录服务器可以对请求的数据进行快速查找并能够返回最合适的目的节点。实际的文件传输是通过TCP直连实现的。也就是起到了类似“媒人”的服务方式。
但是这种集中的机制安全性不高,集中的服务器必然是系统的瓶颈也会是系统的单一故障点。
第二代:Gnutella为龙头,然后FastTrack(即KazaA的底层技术)迅速崛起取代改位置。Gnutella采用了完全的分布式策略,是一种非结构化系统。信息搜索的算法难免会有一定的盲目性。Gnutella采用等级制的方法来优化。节点被分为Ultrapeer和Leaf。FastTrack是KazaA,Grokester,iMesh和Morpheus等P2P软件中使用的协议(底层技术)。其中KazaA比较流行,它也是双层架构,节点被分为SN和ON。这类方法的搜索处理方式效率不高,还会造成尖峰时段网络塞车。
第三代:eDonkey和Morpheus为代表,采用分散式杂凑表(distributed hash tables)。避免了非结构化P2P系统中泛洪式的查找,提高信息搜索的效率。(算法还会另外整理扫盲)。eDonkey由Jed McCaleb在2000年创立。eDonkey也是双层架构的,分为servers和clients。eMule是eDonkey的改良品种。emule为开源的,基于eDonkey网络协议,能够直接登陆eDonkey的各类服务器。eMule同时也提供了eDonkey所没有的功能,可以自动搜索网络中的服务器,保留搜索结果,与连接用户交换服务器地址和文件,优先下载便于预览的文件头尾部分。
转载于:https://www.cnblogs.com/chengxin1982/archive/2009/09/16/1567859.html