P2P 文件分发、视频流和 CDN
客户-服务器与 P2P 文件分发,视频流、DASH 和 CDN
Computer NetworkingContent Distribution
P2P 文件分发
- 在本节中我们将研究一个非常自然的 P2P 应用,即从单一服务器向大量主机 (称为对等方) 分发一个大文件
- 在 P2P 文件分发中,每个对等方能够向任何其他对等方重新分发它已经收到的该文件的任何部分,从而在分发过程中协助该服务器
P2P 体系结构的扩展性
-
考虑一个用于两种体系结构类型的简单定量模型,将一个文件分发给一个固定对等方集合
-
服务器的上载速率, 第 i 对等方接入链路的上载速率, 第 i 对等方接入链路的下载速率
-
被分发的文件长度, 要获得的该文件副本的对等方的数量
-
分发时间 (distribution time):所有 N 个对等方得到该文件副本所需要的时间
-
假设互联网核心具有足够的带宽,服务器和客户端没有参加任何其他网络应用,所有上传和下载访问贷款能被全部用于分发该文件
客户-服务器体系结构
- 服务器必须向 个对等方的每个传输该文件的一个副本。因此该服务器必须传输 比特。因为该服务器的上载速率是 , , 分发该文件的时间必定是至少为
- 令 表示具有最小下载速率的对等方的下载速率,即 。具有最小下载速率的对等方不可能在少于 秒时间内获得该文件的所有 F 比特。因此最小分发时间至少为
- 观察得到
- 对于足够大的 N,客户-服务器分发时间由 确定,所以分发时间随着对等方 的数量线性增加
P2P 体系结构
-
该服务器必须经过其接入链路至少发送该文件的每个比特一次,最小分发时间至少是
-
具有最低下载速率的对等方不能以小于 秒的分发时间获得所有 比特
-
系统整体的总上载能力等于服务器的上载速率加上每个单独的对等方的上载速率, ,系统必须向这 个对等方的每个交付 比特,总共交付 比特,且不能以快于 的速率完成,因此最小的分发时间至少是
-
同上得
-
如果我们认为一旦每个对等方接收到一个比特就能够重分发一个比特的话,则存在一个重新分发方案能实际取得这种下界
-
假设所有对等方具有相同的上载速率 ,设置 小时,,
-
对于 P2P 体系结构最小分发时间不仅总是小于客户-服务器体系结构的分发时间,并且对于任意 0.5 的对等方数量 N, 总是小于 1 小时
BitTorrent
- 术语
- 洪流 (torrent):参与一个特定文件分发的所有对等方的集合
- 洪流中的对等方彼此下载等长度的文件块 (chunk)
- 追踪器 (tracker):每个洪流具有的基础设施节点,当一个对等方加入某洪流时,它向追踪器注册自己,并周期性地通知追踪器它仍在该洪流中。以这种方式,追踪器跟踪参与在洪流中的对等方
- 疏通 (unchoked):使数据的发送和接收流畅进行的对等方
- 领近对等方:新对等方加入洪流时,追踪器随机从参与对等方的集合中选择对等方的一个子集,并将这些对等方的 IP 地址发送给 Alice,Alice 持有对等方的这张列表,试图与该列表上的所有对等方创建并行的 TCP 连接,所有这样与 Alice 成功地创建一个 TCP 连接的对等方为"邻近对等方”
- 最稀缺优先 (rarest first) 技术:针对 Alice 没有的块在她的邻居中决定最稀缺的块(最稀缺的块就是那些在她的邻居中副本数量最少的块),并首先请求那些最稀缺的块
视频流和内容分发网
- 视频媒体:视频是一系列的图像,通常以一种恒定的速率 (如每秒 24 或 30 张图像) 来展现。一幅未压缩、数字编码的图像由像素阵列组成,其中每个像素是由一些比特编码来表示亮度和颜色。视频的一个重要特征是它能够被压缩,因而可用比特率来权衡视频质量
- 对流式视频最为重要的性能度量是端到端吞吐量
- HTTP 的动态适应流 (Dynamic Adaptive Streaming over HTTP, DASH):视频编码为几个不同的版本,每个版本具有不同的比特率,对应于不同的质量水平。客户动态地请求来自不同版本且长度为几秒的视频段数据块。当可用带宽量较高时,客户自然地选择来自高速率版本的块;当可用带宽量较低时,客户自然地选择来自低速率版本的块。客户用 HTTP GET 请求报文一次选择一个不同的块
- HTTP 服务器存在一个告示文件 (manifest file),为每个版本提供了一个 URL 及其比特率
内容分发网
- 提供流式视频服务建立单一大规模数据中心的问题
- 用户远离数据中心,端到端吞吐量受瓶颈链路的吞吐量限制,若吞吐量小于视频消耗速率,容易产生停滞时延
- 流行的视频可能经相同的通信链路发送多次
- 单点故障,如果数据中心或其通向因特网的链路崩溃,它将不能够分发任何视频流
- 内容分发网 (Content Distribution Network, CDN):CDN 管理分布在多个地理位置上的服务器,在它的服务器中存储视频(和其他类型的 Web 内容,包括文档、图片和音频)的副本,并且所有试图将每个用户请求定向到一个将提供最好的用户体验的 CDN 位置
- CDN 服务器安置原则
- 深入:该原则是通过在遍及全球的接入 ISP 中部署服务器集群来深入到 ISP 的接入网中,但因为这种高度分布式设计,维护和管理集群的任务成为挑战
- 邀请做客:通过在少量关键位置建造大集群来邀请到 ISP 做客,邀请做客设计通常产生较低的维护和管理开销,可能以对端用户的较高时延和较低吞吐量为代价
CDN 操作
集群选择策略
- 集群选择策略 (cluster selection strategy):动态地将客户定向到 CDN 中的某个服务器集群或数据中心
- 地理上最为领近 (geographically closest)
- 一种所有基于 DNS 的方法都内在具有的问题是,某些端用户配置使用位于远地的 LONS
- 就网络路径的长度或跳数而言,地理最邻近的集群可能并不是最近的集群
- 实时测量 (real-time measurement)
- CDN 能够让它的每个集群周期性地向位于全世界的所有 LDNS 发送探测分组
- 但是许多 LDNS 被配置为不会响应这些探测
- 地理上最为领近 (geographically closest)