在本节内容开始前,我们要先来对P2P架构有一个宏观的认知:
P2P:(Peer to Peer 对等结构) 以对等方式进行通信,并不区分客户端和服务端,而是平等关系进行通信。在对等方式下,可以把每个相连的主机当成既是主机又是客户,可以互相下载对方的共享文件。比如迅雷下载就是典型的P2P通信方式。
本章描绘的前三个应用都采用了CS(客户-服务器)体系结构,极大的依赖于总是打开的基础设施服务器。而在本节中,我们将介绍两种适用于P2P的应用:一个是文件分发,在其中我们将介绍流行的BitTorrent协议;另一个是分布在大型对等方社区中的数据库,在其中我们将探讨分布式散列表(Distrubuted Hash Table,DHT)的概念。
纯P2P架构具有如下特点:
【P2P体系结构的扩展性】
【BitTorrent】
当一个新节点(Alice)加入torrent:
结点下载的同时,也为其他对等方上传了多个块。结点可能随时加入或离开。
chunk的获取
chunk的发送:决定Alice响应哪个请求(对换算法)
【P2P中搜索信息】
【集中式索引】
如上图所示,集中式索引更像是P2P和CS的混合体
当Alice需要下载信息时,经过以下步骤:
集中式索引的问题:内容和文件传输是分布式的,但是内容定位是高度集中式的。会出现如下问题:单点失效问题、性能瓶颈、版权问题。
【查询洪泛】(建立在“Gnutella”协议基础上)
【层次覆盖】(由FastTrack首创,Kazza和Morpheus也实现了这种文件共享协议)
该方法结合了上述两种方法的优秀特征,与洪泛查询类似,层次覆盖设计不使用专用的服务器(或服务器场)来跟踪和索引文件。然而,与洪泛查询不同的是,在层次覆盖的设计中并非所有对等方都是平等的。
如下图所示,如果某对等方不是超级对等方,则它就是一个普通对等方,并被指派为一个超级对等方的子对等方。
超级对等方维持着一个索引,该索引包括子对等方正在共享的所有文件的标识符、有关文件的元数据和相应子对等方的IP地址,但与前面的集中式索引不同,这里的超级对等方并不是一台专用服务器,而是普通对等方。超级对等方之间可以相互建立TCP连接,从而形成一个覆盖网络。
在课程中未涉猎,具体请移步https://blog.csdn.net/zy_zhengyang/article/details/76838523
手机扫一扫
移动阅读更方便
你可能感兴趣的文章