💓个人主页:mooridy
💓专栏地址:《计算机网络:自顶向下方法》 大纲式阅读笔记_mooridy的博客-CSDN博客
💓本博客内容为《计算机网络:自顶向下方法》第二章应用层第五、六节知识梳理
关注我🌹,和我一起学习更多计算机的知识~
🔝🔝🔝
目录
[P2P 文件分发](#P2P 文件分发)
[P2P 体系与客户 - 服务器体系对比](#P2P 体系与客户 - 服务器体系对比)
[BitTorrent 最重要的机制:](#BitTorrent 最重要的机制:)
[Internet Video](#Internet Video)
[HTTP 流 和 DASH](#HTTP 流 和 DASH)
[HTTP 流](#HTTP 流)
动态适应性流 (Dynamic Adaptive Streaming over HTTP, DASH)
内容分发网 (Content Distribution Network, CDN)
P2P 文件分发
P2P 体系与客户 - 服务器体系对比
P2P 体系结构最小分发时间总是小于客户 - 服务器体系结构。
BitTorrent
到 2016 年止,最为流行的 P2P 文件分发协议是 BitTorrent。
- 洪流 (torrent):参与一个特定文件分发的所有对等方的集合。
- 在一个洪流中的对等方彼此下载等长度的文件块 (chunk),典型的长度为 256KB。
- 当一个对等方首次加入一个洪流时,他没有块。随着时间流逝,它累积了越来越多的块。当它下载块时,也为其它对等方上载了多个块。一旦某个对等方获得了整个文件,他也许会自私地离开,也许会无私地留在洪流中向其它对等方上载块。
BitTorrent 最重要的机制:
- 每个洪流具有一个基础设施节点,称为追踪器 (tracker)。当一个对等方加入某个洪流时,它向追踪器注册自己,并周期性地通知追踪器它仍在该洪流中。
- 当一个新的对等方 A 加入洪流时,追踪器会随机地从参与对等方的集合中选择对等方的一个子集,并将这些对等方的 IP 地址发送给 A。
- A 试图与该 IP 地址列表上所有的对等方创建并行的 TCP 连接。我们称所有与 A 创建 TCP 连接的对等方为邻近对等方,邻近对等方会随着时间而变化。
- 任意时刻,每个对等方将具有该文件的块的子集,并且不同对等方具有不同的子集。A 周期性地询问每个邻近对等方它们所具有的块列表。有了这些信息,A 将对当前还没有的块发出请求。
两个问题?
请求哪些块?
最稀缺优先 (rarest first):针对她没有的块,最稀缺块是指那些在她邻居中副本数量最少的块,她会优先请求那些最稀缺块。目的是均衡每个块在洪流中的副本数量。
响应哪个请求?
对换算法:A 根据当前能够以最高速率向她提供数据的邻居,给出其优先权。以最高速率流入的 4 个邻居,被称为疏通 (unchoked)。每过 30 秒,她要随机选择另一个邻居 B,并向其发送块。因为 A 正在向 B 发送数据,她可能成为 B 前 4 位上载者之一。这样,B 将开始向 A 发送数据,如果 B 发送速率够高,B 也将成为 A 的前 4 位上载者。换而言之,每过 30 秒 A 将随机地选择一名新的对换伴侣,并与其对换。如果这两个对等方都满足彼此,它们将对方放入前 4 位列表中,并继续与对方对换,直到它们发现更好的伴侣为止。
视频流和内容分发网
Internet Video
- 视频的一个重要特征是它能够被压缩,因此可以用比特率来衡量视频质量。
- 比特率越高,图像质量越好。
HTTP 流 和 DASH
HTTP 流
- 在 HTTP 流中,视频只是存储在 HTTP 服务器中的一个普通文件,有特定的 URL。用户通过 HTTP 请求获取视频文件,视频的字节被收集在客户应用缓存中。一旦该缓存中的字节数量超过预先设定的门限,用户应用程序就开始播放。同时,应用程序周期性地从缓存中抓取帧,解压并展现。
- HTTP 流有一个严重缺陷:所有客户收到相同编码的视频。(单一画质)
动态适应性流 (Dynamic Adaptive Streaming over HTTP, DASH)
- DASH 功能:在 DASH 中,视频编码为几个不同版本,其中每个版本具有不同的比特率。客户动态地请求来自不同版本且长度为几秒地视频段数据块。
- DASH 实现:HTTP 服务器上会有一个告示文件 (manifest file),为每个版本提供一个 URL 及其比特率。客户先请求告示文件,然后再通过 HTTP GET 请求报文中指定 URL 和字节范围,一次选择一个块。在下载的同时,用户也测量接收带宽并运行一个速率决定算法来选择下次请求的块。
内容分发网 (Content Distribution Network, CDN)
是一个构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。(说简单点,CDN 就是缓存。)
- CDN 可以是专用 CDN,即由内容提供商自己所拥有;也可以是第三方 CDN。
- CDN 通常采用两种不同的服务器安置原则:
- 深入 (Enter Deep):该原则通过在全球的接入 ISP 中部署服务器集群来深入到 ISP 的接入网中。但因为这种高分布式设计,维护和管理集群成为一大问题。其目标是靠近端用户,通过减少端用户和 CDN 集群之间(内容从这里收到)链路和路由器的数量,从而改善了用户感受的时延和吞吐量。
- 邀请做客 (Bring Home):通过在少量关键位置建造大集群,以此邀请 ISP 来做客。被许多 CDN 公司所采用。邀请做客设计通常产生较低的维护和管理开销,可能以对端用户的较高时延和较低吞吐量为代价。