[计算机网络-应用层] P2P应用

首先咱们要先来区分一下下面的几种体系结构:浏览器

CS:Client/Server  客户-服务器结构
BS:Browser/Server  浏览器-服务器结构 
P2P:Peer to Peer  对等结构安全

BS实际上是CS方式的一种特例,因此也应算在CS中。 
CS:主机A若是运行客户端程序,而主机B运行服务端程序,客户A向服务端B发送请求服务,服务器B向客户A提供服务,这种状况下,就是以CS的方式进行通讯。咱们所指的客户和服务器都是指通讯中涉及的两个应用进程,而不是具体的主机。 服务器

P2P:以对等方式进行通讯,并不区分客户端和服务端,而是平等关系进行通讯。在对等方式下,能够把每一个相连的主机当成既是主机又是客户,能够互相下载对方的共享文件。好比迅雷下载就是典型的P2P通讯方式。 网络

BS和CS通讯的实质相同,都是客户端向服务器端发送请求,服务端接收并处理。可是BS相对于CS来讲更方便,对电脑配置要求更低,而且易于维护,安全性在某种意义上要好些,CS中容易被反汇编,可是CS对于那种复杂的业务处理要更容易一些。分布式

P2P的特色:性能

·资源共享spa

·资源分布设计

·各结点既是资源的提供者又是资源的使用者blog

下面是三种特别适合用P2P设计的应用程序:索引

(1)文件分发 (2)对等方社区中组织并搜索信息 (3)Skype,一种至关成功的P2P因特网电话应用(暂不详细说明)

1.P2P文件分发

在P2P文件分发中,每一个对等方都可以从新分发其全部的该文件的任何部分,从而协助服务器进行分发。

·P2P体系结构的自扩展性

对足够大的N(对等方的数量):

客户机/服务器体系结构的分发时间随着对等方的数量N线性增长而且没有界。

P2P体系结构,其最小分发时间曲线与log2N曲线相似,所以最小分发时间远小于客户机/服务器体系结构的分发时间。其自扩展性很强。

·BitTorrent

BitTorrent是一种用于文件分发的流行P2P协议。

2.在P2P区域中搜索信息

·集中式索引(初始“Napster”的设计)----P2P和CS的混合体

以下图所示:

(1)初始时,全部的对等方要将自身的IP和可共享的文件名称通知集中式索引服务器,该索引服务器从每一个活动的对等方那里收集这些信息,从而创建起一个动态索引,将每一个文件拷贝映射到一个IP地址集合。

(2)当Alice须要下载一些文件时会将查询内容发送给索引服务器,服务器将查询结果返回给Alice(Bob的IP地址)。

(3)Alice根据收到的信息,从Bob处下载资源。

缺点:

·单点故障。·性能瓶颈和基础设施费用。·侵犯版权。 

·查询洪泛(创建在“Gnutella”协议基础上)

查询洪泛采用彻底分布式方法。在查询洪泛中,索引全面地分布在对等方的区域中。每一个对等方索引可供共享的文件而不索引其余文件。

其扩展性差,尤为是为了防止某个对等方发起查询,该查询就会传播到整个覆盖网络的每一个其余对等方,从而产生大量流量。为解决这个问题,设计者使用了受限查询洪泛,即限制其传播的最大跳数。

·层次覆盖(由FastTrack独创,Kazza和Morpheus也实现了这种文件共享协议)

该方法结合了上述两种方法的优秀特征,与洪泛查询相似,层次覆盖设计不使用专用的服务器(或服务器场)来跟踪和索引文件。然而,与洪泛查询不一样的是,在层次覆盖的设计中并不是全部对等方都是平等的。

以下图所示,若是某对等方不是超级对等方,则它就是一个普通对等方,并被指派为一个超级对等方的子对等方。

超级对等方维持着一个索引,该索引包括子对等方正在共享的全部文件的标识符、有关文件的元数据和相应子对等方的IP地址,但与前面的集中式索引不一样,这里的超级对等方并非一台专用服务器,而是普通对等方。超级对等方之间能够相互创建TCP链接,从而造成一个覆盖网络。