1.2 P2P 技术的应用 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.2.1 Napster
Napster 是最早出现的 P2P 系统。 1998 年美国波士顿大学的学×××恩范宁为了方便自己与舍友共享 mp3 音乐文件就开发了一个程序,安装这个程序后,用户可以将自己歌曲的相关信息(歌曲名,歌曲拥有者地址)发送给一个目标服务器。想要下载歌曲的用户可以在目标服务器中查找自己想要的歌曲,然后寻找到这个歌曲的拥有者,与此拥有者通信下载歌曲。
图1.3
图 1.3 所示为 Napster 的工作原理。用户 A 想要寻找红豆的歌曲,它想目标服务器发出请求,查找谁有红豆。目标服务器查找了红豆,发现用户 C 有,就将用户 C 的地址发送给 A ,然后 A 与 C 通信,在用户 C 那里下载红豆的歌曲。
目标服务器充当一个搜索引擎的作用。而且这个过程将查询和下载分离开来,比 c/s 模式更有效率。但是这个系统也存在着可扩展性和单点失效的问题。一旦用户增多,目标服务器的查询效率会大大地降低。而且一旦查询服务器崩溃,系统就会崩溃。 Napster 属于集中式 P2P 网络拓扑。
1.2.2 Gnutella
Napster 因为目标服务器的内容涉及侵权不得不关闭目标服务器。 Gnutella 改变了 Napster 的拓扑结构,它属于完全分布式非结构化 P2P 系统。基于 Gnutella 协议开发的客户端都可以加入到 Gnutella 的网络。
图1.4
Gnutella 用洪泛式的查询方法。每一个节点都把查询信息发送给自己的邻节点。当找到哪个用户拥有资源时,请求者直接与拥有者通信,下载资源。消息传送运用了 TTL ( time to live )机制,没传送一个节点就减一,等到减为零时放弃传送。
转载于:https://blog.51cto.com/geda1223/349240