`
810364804
  • 浏览: 784524 次
文章分类
社区版块
存档分类
最新评论

计算机网络应用层 之 P2P

 
阅读更多
一、什么是P2P
对等网络(PeertoPeer,简称P2P)也称为对等连接,是一种新的通信模式,每个参与者具有同等的能力,可以发起一个通信会话。

这个定义有点抽象,下面就来简单地解释一下。粗略地讲,应用程序可以设计成采用客户机/服务器体系结构或对等体系结构(P2P)。我们日常生活中的许多应用程序,包括web、电子邮件和DNS,都是使用客户机/服务器体系结构;而文件分发,例如大家熟悉的迅雷下载等,就是使用P2P文件分发的技术,使用的就是对待体系结构(P2P)。

对于客户机/服务器体系结构,它要求总是打开的基础设施服务器。相反,使用P2P体系结构,对总是打开的基础设施服务器有最小的(或者没有)依赖,任意间断连接的主机对都称为对等方,各个对等方直接通信。对等方并不为服务提供商所有,而是为用户控制的设备。

二、P2P文件分发
下面通过一个具体的应用来研究P2P,这个应用是从单一服务器向大量主机(对等方)分发大文件。

在客户机/服务器文件分发中,服务器必须向每个客户机发送该文件的一个拷贝,这同时给服务器造成了极大的负担,并且消耗了大量的服务器带宽。在P2P文件分发中,每个对等方(即对应客户机/服务器体系结构中的客户机)都能够重新分发其所有的该文件的任何部分,从而协助服务器进行分发。

1、客户机/服务器体系结构 VS P2P体系结构
首先我们假设文件的长度为F,服务器上传的速率为U,下载速率为D,而客户机有N台,每台的上传速率为ui(i=1、2...N),每台的下载速率为di(i=1、2...N)。

由于每一次文件的分发都涉及服务器上传文件和客户机(或对等方)下载文件。在下面的讨论中,我们假设F、U、D、ui、di均不变,而N,即对等方数量却是可变的。

首先,对于客户机/服务器体系结构,服务器上传N个文件(因为有N个客户,每个客户一个文件的副本)所需要的时间至少为NF/U。而下载速率最小(用dmin表示)的对等方不可能在F/dmin秒内获得该 文件的所有F比特,所以使用客户机/服务器体系结构分发文件所需的时间为
Dcs = max{NF/U,F/dmin}
即所需要的最小时间由下载文件最长时间和上传文件中的较大者决定,其实这也是很自然的事,因为分发时间,要不就是服务器上传这N个文件用时多,要不就是对等方下载这N个文件用时多。然而,我们可以看到NF/U会随着N的增大而线性增大,而F/dmin却是个常值。也就是说当N达到一定的程度时,它必然大于F/dmin,也就变成是Dcs的值,即Dcs = NF/U。

然后,对于P2P体系结构,其中每个对等方都能够帮助服务器来分发文件。也就是说,当一个对等方接收到文件数据时,它可以利用自己的上载能力重新将数据分发给其他对等方。

在分发的开始,只有服务器拥有文件。为了使对等方得到该文件,服务器必须经其接入链路至少发送一次该文件。因此最小分发时间至少是F/U。因为在P2P体系结构中,服务器发送一次文件就可能不用再次发送了,因为其他对等方可以从拥有该文件的对等方中获得。

与客户机/服务器体系结构相同,下载速率最小的对等方不可能在F/dmin秒之内获得文件F的所有比特。因此最小的分发时间也可能是F/dmin。

最后,系统的总上载能力等于服务器的上载速率加上每个对等方的上载速率,即Utotal=U+u1+u2...+uN。系统必须向N个对等方的都交付(上载)F比特,因此总的交付为NF比特。所以最小分发时间至少是NF/(U+u1+u2...+uN)。

综上所述,使用P2P体系结构分发文件所需要的时间为
Dp2p = max{F/U, F/dmin, NF/(U+u1+u2...+uN)}
即最小分发时间由服务器上传的时间,对等方下载的最长时间和所有对待方上传下载的时间来决定。同样,因为F/U, F/dmin都是常数,所以当N达到一定值后,NF/(U+u1+u2...+uN)就会大于前面的两者,成为分发文件所需要的时间,即Dp2p = NF/(U+u1+u2...+uN)。从表达式中,我们可以看到,当N的值增大时,由于对等方的数量也能加了,所以U+u1+u2...+uN的值也会随之增大,所以函数并不像客户机/服务器体系结构中函数那样,分发时间会线性地增加,它的曲线与对数函数(如log2N)的曲线相似。所以当N的值较大时,P2P体系结构分发文件所需要时间远比客户机/服务器体系结构的小。

2、BitTorrent——用于文件分发的流行P2P协议
前面用数学的方法说明了基于客户机/服务器体系结构和基于P2P体系结构的文件分发所需的时间的差别,下面来说一下,这个P2P文件分发是如何实现的。下面以使用BitTorrent协议为例子说明。

在BitTorrent中,把参与一个特定文件分发的所有对等方的集合称为一个洪流。在一个洪流中,对等方彼此下载等长度的文件块,块长度通常为256KB。当一个对等方开始加入一个洪流时,它没有文件块。但是随着时间的推移,它将累积到越来越多的文件块。当它下载文件块时,也为其他对等方上载多个文件块。对待方一旦获得了整个文件,它可以离开洪流,或留在洪流中,为其他对等方上载文件块。同时,任何一个对等方可以在任何时候离开洪流,以后也可以重新加入洪流。

这里有个问题1)我们的主机或设备加入一个洪流中时如何知道它有哪些对等方,即它如何知道它要向哪些主机请求所需要的文件。2)我们在下载文件时,如果确定我们所需要的文件块是哪一块,换句话说就是,文件有很多块组成,而我们下载时并不按文件原有的顺序下载,那么我如何确定我还需要下载哪些块来让这个文件变得完整。

首先回答第一个问题,每个洪流具有一个基础设施节点,称为追踪器。当一个对等方加入洪流时,它向追踪器注册,并周期性地通知追踪器它仍在洪流中。一个特定的洪流可能在任意时刻拥有数以百计或千计的对等方。当一个新的对等方A加入洪流时,追踪器随机地从参与对等方集合中选择一些对等方,并将这些对等方的IP地址发送给A,A持有对等方的这张列表,试图与该列表上的对等方创建并行的TCP连接,与A成功地创建TCP连接的对等方称为“邻近对等方”。随着时间的推移,其中的一些对待方可能离开,而另一些对等方可能试图与A创建TCP连接,就像A之前所做的那样。这样我们就可以知道我们要下载的文件所在洪流中有哪些的对等方。

再来回答第二个问题,在任何时刻,每个对等方都具有某文件块的子集,且不同的对等方具有不同的文件块子集。A周期性询问每个邻近对等方所具有的块列表并获得其邻居的块列表,因此A将对它当前还没有的块发出请求。同时由于在洪流中的每一个对等方既下载又上传,所以A还应决定它请求的块应该发送给它的哪些邻居。通常在请求块的过程中,使用一种叫最稀罕优先的技术,即根据A没有的块从它的邻居中确定最稀罕的块(即那些在它的邻居中拷贝数量最少的那些块),并优先请求这些最稀罕的块。这样做的目的也是很明显,就是让每个块在洪流中的拷贝数量大致相等,这样同时也能提高总的下载速率,因为下载不会卡在某个文件块的下载中。

三、P2P区域搜索信息
P2P的另一个重要应用就是信息索引,即信息到主机位置的映射。

为了说明什么是索引,举个例子说明吧,P2P文件共享系统中有一个索引,它动态地跟踪这些对等方可供共享的文件。该索引维护了一个记录,记录将有关拷贝的信息映射到具有拷贝对等方的IP地址。当一个对等方加入系统时,它通知系统它所拥有的文件索引。当一个用户希望获得一个文件时,他搜索索引以定位该文件的拷贝的位置。

注:P2P文件分发与P2P文件共享还是有一定的区别的,P2P的文件共享有可能发生在不同的时段,例如,现在收到的文件,1小时后才需上传。P2P的文件共享也有可能发生在不同的文件,例如,需要下载A文件,却为其他用户提供B文件。而P2P的文件分发更多是针对单一文件,在下载的同一时间为其他用户提供上传服务,这是一个协同处理的过程。

1、集中式索引
由一台大型服务器(或服务器场)来提供索引服务。当用户启动P2P文件共享应用程序时,该应用程序将它的IP地址以及可供共享的文件名称通知索引服务器。索引服务器收集可共享的对象,建立集中式的动态数据库(对象名称到IP地址的映射)。
它有如下的缺点:
1、单点故障
2、性能瓶颈
3、可靠性差
这种索引方式的特点是:文件传输是分散的(P2P的),但定位内容的过程是高度集中的(客户机/服务器)。

2、查询洪泛
查询洪泛采用完全分布式的方法,索引全面地分布在对等方的区域中,对等方形成了一个抽象的逻辑网络,称为覆盖网络。当A要定位索引(例如abc)时,它向它的所有邻居发送一条查询报文(包含关键字abc)。A的所有邻居向它们的所有邻居转发该报文,这些邻居又接着向它们的所有邻居转发该报文等。如果其中一个对等主与索引(abc)配置,则返回一个查询命中报文。

但是这种简单的方法却有一个致命的缺点,就是它会产生大量的流量。

一个解决办法就是采用范围受限查询洪泛。设置一个计数值,对等方向其邻居转发请求之前就将对等方的计数字段减1,当一个对等方的计数字段为0时,停止查询。

3、层次覆盖
该方法结合了集中式索引和查询洪泛的优点,与查询洪泛相似,层次覆盖设计并不使用专用的服务器来跟踪和索引文件。不同的是在层次覆盖中并非所有的对等方都是平等的。

它的示意图如下:


超级对等方(组长对等方)维护着一个索引,该索引包括了其子对等方(普通对待方)正在共享的所有文件的标识符、有关文件的元数据和保持这些文件的子对等方的IP地址。而超级对等方通常也只是一个普通的对等方。超级对等方之间相互建立TCP连接,从而形成一个覆盖网络,超级对等方可以向其相信超级对等方转发查询,但是仅在超级对等方使用范围受限查询洪泛。

当某对等方进行索引时,它向其超级对等方发送带有关键词的查询。超级对等方则用其具有相关文件的子对等方的IP地址进行响应,该超级对等方还可能向一个或多个相邻的超级对等方转发该查询。如果某相邻对等方收到了这样一个请求,它也会用具有匹配文件的子对等方的IP地址进行响应。

与受限查询洪泛设计相比,层次覆盖设计允许数量多得多的对等方检查匹配,而不会产生过量的查询流量。

通过这两种P2P常用应用的介绍,大家对P2P应该有一定的认识了吧!

注:由于IP地址的不够用,在IP的使用中有一种技术叫做NAT地址转换,从而对P2P的应用产生了一定的影响,因为使用了NAT后,对等方不能正确地获取处于同一洪流是的对等方的IP地址,从而把P2P的应用限制在一个局域网中。这在后面说IP的NAT时再作介绍。

分享到:
评论

相关推荐

    P2P五子棋对战 计算机网络实验必备

    P2P五子棋对战 计算机网络实验必备,你懂得!

    计算机网络第五版及答案 谢希仁

    《计算机网络》的特点是概念准确、论述严谨、内容...另外,《计算机网络》针对当前网络应用中日益突出的安全问题,用了一整章的篇幅对计算机网络的安全性进行了深入讨论,而且把相关内容与最新网络技术结合起来阐述。

    计算机网络课件ppt(概述+物理层+数据链路层+网络层+运输层+应用层)

    计算机网络的发展历程和重要性。分布式系统和网络的关系。网络的类型和拓扑结构。 物理层: 数据在物理媒介上传输的基本原理和方式。介质的类型,如双绞线、光纤、无线信道等。调制解调、编码和物理信号的传输。...

    计算机网络(第5版)(中文版)part1

    全书按照网络协议模型自下而上(物理层、数据链路层、介质访问控制层、网络层、传输层和应用层)有系统地介绍了计算机网络的基本原理,并结合internet给出了大量的协议实例。在讲述网络各层次内容的同时,还与时俱进...

    计算机网络(第5版)(中文版)part2

    全书按照网络协议模型自下而上(物理层、数据链路层、介质访问控制层、网络层、传输层和应用层)有系统地介绍了计算机网络的基本原理,并结合internet给出了大量的协议实例。在讲述网络各层次内容的同时,还与时俱进...

    计算机网络_第5版_中文版_严伟_潘爱民译_清华大学

    全书按照网络协议模型自下而上(物理层、数据链路层、介质访问控制层、网络层、传输层和应用层)有系统地介绍了计算机网络的基本原理,并结合internet给出了大量的协议实例。在讲述网络各层次内容的同时,还与时俱进...

    计算机网络教程 Andrew S. Tanenbaum (作者), Davi J. Wetherall (作者)

    全书按照网络协议模型自下而上(物理层、数据链路层、介质访问控制层、网络层、传输层和应用层)有系统地介绍了计算机网络的基本原理,并结合Internet给出了大量的协议实例。在讲述网络各层次内容的同时,还与时俱进...

    计算机网络第五版

    全书按照网络协议模型自下而上(物理层、数据链路层、介质访问控制层、网络层、传输层和应用层)有系统地介绍了计算机网络的基本原理,并结合Internet给出了大量的协议实例。在讲述网络各层次内容的同时,还与时俱进...

    计算机网络 自顶向下方法(第六版)英文原版

    本书是当前世界上最为流行的计算机网络教科书之一,采用了作者独创的自顶向下的方法来讲授计算机网络的原理及其协议,即从应用层协议开始沿协议栈向下讲解,强调应用层范例和应用编程接口,使读者尽快进入每天使用的...

    计算机网络经典100题

    谢喜人版的计算机网络 考研 . UDP校验 (三) TCP协议 1. TCP段 2. TCP连接管理 3. TCP可靠传输 4. TCP流量控制与拥塞控制 六、 应用层 (一) 网络应用模型 1. 客户/服务器模型 2. P2P模型 (二) DNS...

    《计算机网络(第四版)》答案

    《计算机网络》全书按照网络协议模型自下而上(物理层、数据链路层、介质访问控制层、网络层、传输层和应用层)有系统地介绍了计算机网络的基本原理,并结合Internet给出了大量的协议实例。在讲述网络各层次内容的...

    计算机网络(第5版)(中文版)part3

    全书按照网络协议模型自下而上(物理层、数据链路层、介质访问控制层、网络层、传输层和应用层)有系统地介绍了计算机网络的基本原理,并结合internet给出了大量的协议实例。在讲述网络各层次内容的同时,还与时俱进...

    计算机网络第[五版]

    全书分为10章,比较全面系统地介绍了计算机网络的发展和原理体系结构、物理层、数据链路层、网络层、运输层、应用层、网络安全、因特网上的音频/视频服务、无线网络和下一代因特网等内容。 《计算机网络第五版》的...

    计算机网络技术和数据库.doc

    ) 计算机网络的各层及其协议的集合称为网路的体系结构 OSI/RM参考模型:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TCP/IP概念层次:应用层 传输层 网络层 网络接口层 五层协议体系结构: 应用层运输层...

    计算机网络原理04741(李全龙)-笔记

    第一节 计算机网络应用体系结构 第二节 网络应用通信基本原理 第三节 域名系统 第四节 万维网应用 第五节 Internet 电子邮件 第六节 FTP 第七节 P2P 应用 第八节 Socket 编程基础 第三章传输层 第一节传输层的基本...

    计算机网络第二章2.1-2.3笔记

    2.1.1 网络应用程序体系架构 应用程序体系结构(application architecture)是由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。 当下主流的两种体系结构:客户-服务器体系结构and对等(p2p)体系...

    天津理工大学中加专业计算机网络复习索引

    网络核心和网络边缘 网络边缘: 网络边缘包括端系统(=主机)和应用程序 ...应用层支持网络应用,主要负责留存网络应用程序及他们的应用层协议 传输层实现了进程与进程之间的数据传输,主要负责在应用程

    论文研究-基于P2P技术的流媒体直播系统及应用层组播树相关算法的设计 .pdf

    基于P2P技术的流媒体直播系统及应用层组播树相关算法的设计,赵娟娟,郭庆平,在互联网中,网络带宽和计算机硬件的限制以及流媒体本身对带宽要求高的特点造成了视频业务发展的瓶颈,而通过使用P2P技术,可以突

Global site tag (gtag.js) - Google Analytics