P2P如何自行扩展
在本文中,我们将讨论客户端-服务器和点对点的概述,并在示例的帮助下理解两者,并将讨论 P2P 如何在这两种情况下自行扩展。让我们一一讨论。
概述 :
要了解点对点如何扩展以及为什么它在某些方面优于客户端-服务器架构,让我们首先了解什么是客户端-服务器。
客户端-服务器:
将服务器视为源,将客户端视为接收器。无论接收者想要什么,它都可以询问来源,并且在大多数情况下,来源都会回复。但是,如果任何其他接收者(客户端)询问,该接收者将无法回复相同的查询。所以这里的源(服务器)只处理来自不同客户端的所有这些查询。现在,客户要求的这些东西不一定只是一些文本,而是可能是 GB 的大文件。现在事情会变得有点有趣。让我们尝试借助一些图形来理解。
例子 -
- 假设有 n 个客户端,每个客户端同时需要一个大小为 F 位的文件(为简单起见),该文件位于服务器上。服务器上传文件的速度比方说 Uₛ 位/秒(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ₘᵢₙ) ....(4) 内获得所有 F 位文件
- 最后观察总上传速度,这将是服务器的上传速度以及每个连接的单个对等点的上传速度。
- 即 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 server
Dₚ₂ₚ = max {F/ Uₛ, F/Dₘᵢₙ, n x F / Uₜₒₜₐₗ} - for peer to peer
- 为简单起见,让我们再次开始做一些假设——如果 Dₘᵢₙ 足够大并且在对等情况下 Uₛ 足以非常快速地将整个文件上传到链接中,则它不是问题。现在,如果我们在对等点(客户端)的数量和最小分发时间之间绘制图表,我们将得到类似
- 现在从上图中我们可以观察到,随着对等点数量的增加,客户端服务器中的最小分发时间线性增加,而在对等点数量增加的对等点中,它本身正在扩展。此外,我们还可以在客户端服务器中观察到最小分发时间是无界的,而在 p2p 的情况下,曲线是有界的,即无论有多少对等点,它都不会超过该限制。 p2p 中的这种可扩展性是由于对等方同时是消费者和再分发者。
参考 :
我用来参考的书 - “Computer Networking a Top-Down Approach” -6th edition by James F. Kurose 和 Keith W. Ross。