网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

P2P如何能够自行实现扩展/发展

更新时间:2026年03月27日   作者:spoto   标签(Tag):

在本文中,我们将介绍客户端-服务器模式和点对点模式的概述。通过具体的例子来更好地理解这两种模式。同时,我们还将探讨P2P模式如何能够在这两种模式下实现扩展。让我们逐一来讨论这些问题吧。

概述:
为了了解点对点架构如何能够扩展,以及为什么在某些方面它比客户端-服务器架构更优越,我们首先需要了解什么是客户端-服务器架构。

  • 点对点网络通常由12台或更少的计算机组成。这些计算机都使用独特的安全机制来保护自己的数据,同时它们也会与其他节点共享数据。
  • 在点对点网络中,各个节点既消耗资源,也产生资源。因此,随着节点数量的增加,点对点网络共享资源的能力也会随之提升。这与客户端-服务器网络有所不同,在客户端-服务器网络中,节点数量的增加会导致服务器负担过重。
  • 在点对点网络中,为各个节点提供适当的安全性是非常具有挑战性的,因为这些节点同时扮演着客户端和服务器的角色。因此,可能会导致服务拒绝攻击的发生。
  • 大多数现代操作系统,包括Windows和Mac OS,都附带了用于实现“对等连接”功能的软件。

客户端-服务器模型:
可以将服务器视为发送方,而客户端则视为接收方。 无论哪个接收者想要它,都可以向发件人询问。在大多数情况下,发件人都会予以回复。 但是,如果其他接收器(客户端)再次提出相同的查询,那么这个接收器就无法回应了。 所以,这里的源服务器负责处理来自不同客户的所有这些查询请求。 现在,客户要求的这些文件并不只是简单的文本而已,它们也可能是大容量的文件,甚至可以达到GB级别。 现在,事情将会变得有点有趣了。 让我们借助一些图表来尝试理解这个问题吧。

这会有点帮助吧。

例如——                    

  • 假设有 n 个客户端,每个客户端都同时需要下载一个大小为 F 位的文件。那么,服务器上传文件的速度可以表示为 Uₛ 位/秒(其中下标 s 表示服务器)。因此,服务器需要同时向 n × F 个位传输数据。
So, under ideal condition time taken = (n × F / Uₛ) sec...... equation-1
  • 上面我们讨论了服务器上传每个链接所需的时间。但是,如果服务器的上传速度并不是我们需要考虑的因素,而客户端的下载速度才是重要的话,那该怎么办呢?让我们再次使用一些图表来说明这个问题吧。
与上述情况相同,这里也是关于添加客户端后的下载速度问题。
  • 现在,假设服务器的上传速度远远满足需求。那么,所需的时间则由客户端端的下载速度来决定。具体来说,就是各个下载速度的最小值,我们用d₁、d₂、d₃……dₙ来表示这些下载速度。
i.e. Dₘᵢₙ = min (d₁, d₂, d₃, ….dₙ)
  • 要下载F位大小的文件,需要使用下载速度最慢的客户端。
Take time = (F/Dₘᵢₙ) sec……………...equation-2
  • 现在,这两次观察结果可以帮助我们减少从服务器到客户端传输文件所需的时间。
Distribution time for client-server (D ꜀₋ₛ) ≥ max {n × F / Uₛ, F/Dₘᵢₙ}sec.This means max {n × F / Uₛ, F/Dₘᵢₙ} will give the lower bound.
  • 或者换句话说,文件被分发到所有客户所需的最短时间,不会少于 {n × F / Uₛ, F/Dₘᵢₙ} 的最大值。
  • 由此可以得出结论:在多个客户端同时下载文件的情况下,文件传输所需的时间会与客户端数量成正比,其计算公式为 (n × F/Uₛ)。因此,如果某一天有100人同时下载同一个文件,那么所需的时间为t;而如果在另一天有1000人同时下载该文件,那么所需时间则变为10 × t或更长。

点对点模式:
如果你已经理解了客户端-服务器架构,那么这件事并不难。这里也有一个服务器,它负责发起新的连接。再次使用图表来帮助我们更好地理解这个问题吧。

点对点架构

例如——

  • 从上面可以看出,在点对点网络中,每个客户端都与其他一些客户端相连。这显然表明,这些客户端之间也可以相互共享资源。这与客户端-服务器模型的情况相反,在客户端-服务器模型中,每个客户端都需要从服务器那里获取文件。 各位客户,下面介绍的是我们所说的“对等体”。其实,对等体和客户端可以互换使用。这些对等体在发送收到的数据给其他对等体的同时,也可以充当服务器角色,从而分担一些原本由服务器端单独处理的工作。 此外,U₁、U₂、…、Uₙ分别表示这些节点的上传速度。
  • 从文件开始说起,该文件仍然存储在服务器上。在理想的情况下,服务器只会将每个比特数据发送一次到链接中。因此,我们可以认为,从这一端来看,最小的分发时间应该是 F/Uₛ(至少不能少于这个时间)……(3)
  • 现在,即使以最慢的下载速度来下载,也仍然无法在少于 (F/Dₘᵢₙ) 的时间内获取文件中的所有 F 位数据……(4)
  • 最后,需要观察总的上传速度。这个总上传速度实际上包括了服务器的上传速度,以及所有连接着的各个节点的上传速度。
  • 即,Uₜₒₜₐₗ = Uₛ + U₁ + U₂ + … + Uₙ。同时,整个系统需要上传的文件大小仍然是n × F比特。因此,每个节点都会收到该文件的一份副本。这种分发时间不会少于(n × F / Uₜₒₜₐₗ)。……(5)
  • 现在,把观察结果3、4和5结合起来考虑吧。
Distribution time(Dₚ₂ₚ) ≥ max {F/ Uₛ, F/Dₘᵢₙ, n × F / Uₜₒₜₐₗ}.
  • 为了进一步比较这两种架构,我们让每种架构的最小分布时间等于它们的最低限制值。
i.e. D ꜀₋ₛ = max {n x F / Uₛ , F/Dₘᵢₙ} - for client serverDₚ₂ₚ = max {F/ Uₛ, F/Dₘᵢₙ, n x F / Uₜₒₜₐₗ} - for peer to peer
  • 为了简单起见,我们不妨再次做一些假设——只要Dₘᵢₙ的值足够大,而且采用点对点传输方式的话,那么Uₛ就足以快速地将整个文件上传到链接中。现在,如果我们绘制出客户端数量与最小传输时间之间的关系图,就会得到类似这样的结果:
客户端-服务器模式与点对点模式
  • 从上面 Diagram 中可以看出,随着节点数量的增加,客户端与服务器之间的最小传输时间会呈线性增长。而在一个点对点的网络中,当节点数量增加时,最小传输时间则不再呈线性增长,而是以另一种方式进行扩展。 此外,从客户端-服务器的角度来看,最小分配时间是没有上限的。而在一个点对点的网络中,这种曲线则存在上限,也就是说,在点对点网络中,最小分配时间是有一定限制的。 无论拥有多少对等节点,都不会超过那个限制。 这种在 P2P 中的可扩展性,是由于各个节点同时扮演着消费者和分发者的角色所导致的。

参考文献:
我参考的书是《计算机网络:自顶向下的方法》,作者是James F. Kurose和Keith W. Ross,该书为第6版。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料