前言:
学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程
该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信息量过大,有太多无法理解的地方,在我第一次点开的时候也有相同的感受,但经过了一段时间项目的学习,对计网有了更多的了解,所以我准备在这次学习的时候做一些记录并且加入一些我的理解,希望能够帮助到大家。
往期笔记可以看专栏中的内容
文章目录
- 2.6 P2P 应用
- 2.6.1 P2P 的基本理解
- 2.6.2 理论计算对比
- 2.6.3 P2P 文件共享
- 2.6.4 案例 —— BitTorrent
- 2.6.5 结构化的 P2P 架构
P2P(Peer-to-Peer,点对点)应用是一种允许直接通信和资源共享的网络应用程序。在P2P网络中,每个参与者都可以充当客户端和服务器,从而实现对等的通信和资源共享。
peer
节点的服务能力。常见的能够理由 P2P 架构来优化性能或者实现的案例有:
大多数大型的云盘应用通常采用混合架构,既包括 CS 架构,也包括 P2P 架构。
- 这种 混合架构 能够充分利用中心服务器提供的 稳定性 和 可靠性。
- 同时通过 P2P 技术在用户之间直接传输 文件块,从而降低了中心服务器的负载并提高了下载速度。
- 也就是说使用 P2P 架构不代表完全舍弃 CS 架构,两者混合使用会使得系统更加稳定。
❓ 问题:从一台服务器上分发大小为 F
的文件到 N
个节点需要多少时间?
这里暂时忽略掉传播延迟,这里仅考虑传输延迟也就是将数据传输到链路上的时间
计算得出上载的时间为
N F u s \frac{NF}{u_s} usNF
也就是上传 N
个大小为 F
的文件所需的时间
用户下载的最长时间为
F d m \frac{F}{d_m} dmF
也就是文件的大小除以用户中最小的下载速度
这两个中的最大值就是 CS 模式下实现分发大小为 F
的文件到 N
个节点需要的最短时间即:
D ≥ m a x ( N F u s , F d m ) D \ge max (\frac{NF}{u_s} , \frac{F}{d_m}) D≥max(usNF,dmF)
随着用户量 N
增大,前一项会占据绝对的主导地位,这就导致 D
会随着 N
的增大而 线性的增长
与 CS 模式不同的是 P2P 模式在随着 N
增大的时候其服务器的数量也会增大,即 us 会变为 Nus,最终会导致下载速度随着用户的增大变化不大。
即:
D ≥ m a x ( F u s , F d m , N F u s + ∑ u i ) D \ge max(\frac{F}{u_s}, \frac{F}{d_m}, \frac{NF}{u_s + \sum u_i}) D≥max(usF,dmF,us+∑uiNF)
速度对比:
案例:
- Alice 在自己的电脑上运行 P2P 的客户端,然后她请求“双截棍.MP3”
- 应用程序自动显示有该资源的对等方(peer)
- 然后 Alice 随机选择其中一个对等方,文件从这个对等方中得到这个文件
- 而 Alice 得到这个文件后又可以作为一个服务器来供其他的对象下载。
❗ P2P 文件共享要解决的两大问题
peer
的加入和离开的记录有三种可能的方案:集中、分散、半分散
方案一:集中式的目录
方案三:混合型的方式
BitTorrent是一种用于文件共享的 协议和程序,它允许用户通过点对点的方式快速下载和分享文件。相比传统的直接下载方式,BitTorrent可以更有效地利用带宽,提高下载速度,并降低对中央服务器的依赖。
BitTorrent协议的工作原理是将一个文件分割成小块,然后将这些小块分布到网络中的多个用户之间进行共享。
tracker
的服务器,获取 与该文件相关的信息,如其他用户的IP地址和已经下载的文件块。BitTorrent在文件的管理和下载过程中利用了一种称为位图(bitmap)的数据结构。
Tit-For-Tat 机制
结构化的P2P架构是一种按照特定规则组织节点和数据的对等网络结构。在结构化P2P网络中,节点通常按照一定的拓扑结构连接,使得节点之间可以高效地定位和交换信息。
拓扑结构:结构化P2P网络通常基于一定的拓扑结构
节点标识:每个节点在结构化P2P网络中都有一个唯一的标识符
Napster是一个历史悠久的音乐共享服务,是最早期的P2P文件共享应用之一;最初作为一个音乐交换服务,允许用户共享和下载MP3音乐文件。 ↩︎