P2P网络应用层多播树的建立及维护的解析

这篇具有很好参考价值的文章主要介绍了P2P网络应用层多播树的建立及维护的解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  一、什么是对等网络 P2P

  P2P一般指对等网络 对等计算(Peer to Peer,简称p2p)可以简单的定义成通过直接交换来共享计算机资源和服务,而对等计算模型应用层形成的网络通常称为对等网络。在P2P网络环境中,成千上万台彼此连接的计算机都处于对等的地位,整个网络一般来说不依赖专用的集中服务器。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求作出响应,提供资源和服务。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU的共享)、存储共享(如缓存和磁盘空间的使用)等。

  这个定义有点抽象,下面就来简单地解释一下。粗略地讲,应用程序可以设计成采用客户机/服务器体系结构或对等体系结构(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应该有一定的认识了吧,,谢谢阅读,希望能帮到大家,请继续关注yii666,我们会努力分享更多优秀的文章。文章来源地址https://www.toymoban.com/news/detail-466603.html

到了这里,关于P2P网络应用层多播树的建立及维护的解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链——p2p网络模型

            通常情况下,一个区块链系统的P2P网络层主要由以下几部分组成。         覆盖网络可以根据其对应覆盖图的性质分为两类: 无结构化覆盖网络 和 结构化覆盖网络 。无结构化覆盖网络通常基于随机图来建立节点随机从覆盖网络中选取节点作为邻居;而结构化覆盖

    2024年04月27日
    浏览(41)
  • P2P 网络,PING程序。

    没有废话,直接上版本号和代码,以及讲解。 crate 版本号 libp2p 0.52.1 tokio 1.30.0 Peer-to-Peer是一种网络技术。一种点对点的通讯技术。没有client-service概念。 在P2P网络中,节点标识被成为PeerId。

    2024年02月12日
    浏览(39)
  • 区块链核心技术-P2P网络

    点对点网络是区块链中核心的技术之一,主要关注的方面是为区块链提供一个稳定的网络结构,用于广播未被打包的交易(交易池中的交易)以及共识过的区块,部分共识算法也需要点对点的网络支撑(如PBFT),另外一个辅助功能,如以太坊的消息网络,也需要点对点网络的

    2023年04月17日
    浏览(51)
  • 【计算机网络】P2P文件分发介绍

    考虑一个场景:从单一服务器向大量主机(称为对等方)分发一个大文件。 两种处理方式 客户-服务器文件分发:服务器需要向每个对等方发送该文件的一个副本 P2P文件分发:当服务器上传了文件的一个副本后,各个对等点下载该文件的一部分,然后协助服务器上传自己拥有

    2024年02月07日
    浏览(42)
  • P2P网络NAT穿透原理(打洞方案)

    NAT技术(Network Address Translation,网络地址转换)是一种把内部网络(简称为内网)私有IP地址转换为外部网络(简称为外网)公共IP地址的技术,它使得一定范围内的多台主机只利用一个公共IP地址连接到外网,可以在很大程度上缓解了公网IP地址紧缺的问题,同时也能防止外

    2024年02月15日
    浏览(39)
  • 网络穿透 P2P 穿透 UDP打洞、TCP打洞 原理

    经常听到 网络穿透 P2P 穿透 UDP打洞、TCP打洞 以前只是 知道网络底层的底层的一些知识 接触过 网络穿透 P2P 穿透 UDP打洞、TCP打洞 现在做个笔记: P2P穿透是一种技术,用于在两个或多个设备之间建立直接的点对点连接,而无需依赖中间服务器进行转发。它可以帮助设备在NA

    2024年02月15日
    浏览(34)
  • 去中心化和p2p网络以及中心化为核心的传统通信

    去中心化 P2P通信及其协议实现去中心化 如大数据文件的分布存储 如视频网站服务器 1.p2p网络: 优点: 缺点: 存储应用: 2.典型案例; IPFS: 分布式协议系统 3.完全去中心化应用:基于p2p的区块链+IPFS 注释:中心化(点对点) 传统通信:PSTN的树状架构 注释:互联网中心化平

    2024年02月10日
    浏览(38)
  • 【Java 基础篇】Java网络编程实战:P2P文件共享详解

    Java网络编程是现代软件开发中不可或缺的一部分,因为它允许不同计算机之间的数据传输和通信。在本篇博客中,我们将深入探讨Java中的P2P文件共享,包括什么是P2P文件共享、如何实现它以及一些相关的重要概念。 P2P(Peer-to-Peer)文件共享是一种分布式计算模型,其中每个

    2024年02月07日
    浏览(32)
  • 无需服务器:Android 应用中使用 P2P 技术进行局域网内设备通信

    随着局域网内设备数量的不断增加和不断演化的 IoT 技术,设备之间的互联变得越来越重要。对于许多 Android 应用程序而言,这样的互联性是必不可少的,需要使用一些技术来实现跨设备的通信。P2P 技术(点对点技术)已证明是一种非常成功的通信技术,可以实现在局域网内

    2024年02月14日
    浏览(32)
  • Autosar诊断系列介绍20 - UDS应用层P2Server/P2Client等时间参数解析

    本系列Autosar 诊断入门介绍,会详细介绍诊断相关基础知识,如您对诊断实战有更高需求,可参见诊断实战系列专栏,快速链接:Autosar诊断实战系列导读 如您MCAL配置,通信,诊断,OS等Autosar全栈实战有更高需求,可以参见AutoSar 实战进阶系列专栏,快速链接:AutoSar实战进阶

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包