计算机网络应用层(5)-- P2P文件分发视频流和内容分发网

 💓个人主页:mooridy
💓专栏地址:《计算机网络:自顶向下方法》 大纲式阅读笔记_mooridy的博客-CSDN博客

💓本博客内容为《计算机网络:自顶向下方法》第二章应用层第五、六节知识梳理
关注我🌹,和我一起学习更多计算机的知识~
🔝🔝🔝

目录

P2P 文件分发

P2P 体系与客户 - 服务器体系对比

BitTorrent

BitTorrent 最重要的机制:

两个问题?

请求哪些块?

响应哪个请求?

视频流和内容分发网

Internet Video

HTTP 流 和 DASH

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 公司所采用。邀请做客设计通常产生较低的维护和管理开销,可能以对端用户的较高时延和较低吞吐量为代价。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十二种存储器综合对比——《器件手册--存储器》

存储器 名称 特点 用途 EEPROM 可电擦除可编程只读存储器,支持按字节擦除和写入操作,具有非易失性,断电后数据不丢失。 常用于存储少量需要频繁更新的数据,如设备配置参数、用户设置等。 NOR FLASH 支持按字节随机访问&…

第十六届蓝桥杯 2025 C/C++组 旗帜

目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: P12340 [蓝桥杯 2025 省 AB/Python B 第二场] 旗帜 -…

比亚迪再获国际双奖 以“技术为王”书写中国汽车出海新篇章

近日,全球汽车行业权威奖项“2025世界汽车大奖”(World Car Awards)在纽约国际车展举行颁奖典礼,比亚迪海鸥(BYD SEAGULL/BYD DOLPHIN MINI)摘得“2025世界城市车(World Urban Car)”…

人工智能数学基础(五):概率论

概率论是人工智能中处理不确定性的核心工具,它为机器学习、数据科学和统计分析提供了理论基础。本文将深入浅出地介绍概率论的重要概念,并结合 Python 实例,帮助读者更好地理解和应用这些知识。资源绑定附上完整资源供读者参考学习&#xff0…

MCP协议:自然语言与结构化数据的双向桥梁 ——基于JSON-RPC 2.0的标准化实践

MCP协议:自然语言与结构化数据的双向桥梁 ——基于JSON-RPC 2.0的标准化实践 一、MCP的本质:标准化共识的协议框架 MCP(Model Context Protocol)是Anthropic于2024年提出的开放通信协议,其核心价值在于建立自然语言…

vue+django农产品价格预测和推荐可视化系统[带知识图谱]

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! ✅编号:D010 vue django 前后端分离架构搭建的系统带有推荐算法、价格预测、可视化、知识图谱数据从爬虫获取可以更新到最…

verilog_testbench技巧

forever语句 forever begin state; end 一直执行state repeat(n) begin state; end 执行state,n次 force语句对双向端口进行输入赋值。 与wait 是边沿触发,wait是电平触发 仿真控制语句与系统任务描述 $stop停止仿真…

实时时钟(RTC)从原理到实战

1. RTC技术深度解析 1.1 RTC核心概念 实时时钟(Real-Time Clock,RTC)是嵌入式系统中独立于主处理器的特殊计时电路,其核心功能在于提供持续可靠的时间基准。与CPU时钟不同,RTC具有以下关键特性: 独立供电…

pyspark将hive数据写入Excel文件中

不多解释直接上代码,少python包的自己直接下载 #!/usr/bin/env python # -*- encoding: utf-8 -*- from pyspark.sql import SparkSession import pandas as pd import os# 初始化 SparkSession 并启用 Hive 支持 spark SparkSession.builder \.appName("sel…

Stack--Queue 栈和队列

一、Stack--栈 1.1 什么是栈? 堆栈是一种容器适配器,专门设计用于在 LIFO 上下文(后进先出)中运行,其中元素仅从容器的一端插入和提取。 第一个模版参数T:元素的类型;第二个模版参数Container…

用Python做有趣的AI项目1:用 TensorFlow 实现图像分类(识别猫、狗、汽车等)

项目目标 通过构建卷积神经网络(CNN),让模型学会识别图片中是什么物体。我们将使用 CIFAR-10 数据集,它包含 10 类:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。 🛠️ 开发环境与依赖 安装依赖&…

3D可视化编辑器模版

体验地址:http://mute.turntip.cn 整个搭建平台核心模块包含如下几个部分: 3D场景渲染 组件拖拽系统 元素编辑功能 状态管理 历史记录与撤销/重做 技术栈 前端框架与库 React 18 用于构建用户界面的JavaScript库 Next.js 14 React框架,提供服…

“连接世界的桥梁:深入理解计算机网络应用层”

一、引言 当你浏览网页、发送邮件、聊天或观看视频时,这一切都离不开计算机网络中的应用层(Application Layer)。 应用层是网络协议栈的最顶层,直接为用户的各种应用程序提供服务。它为用户进程之间建立通信桥梁,屏蔽了…

JavaScript 代码搜索框

1. 概述与需求分析 功能&#xff1a;在网页中实时搜索用户代码、关键字&#xff1b;展示匹配行、文件名&#xff1b;支持高亮、正则、模糊匹配。非功能&#xff1a;大文件集&#xff08;几十万行&#xff09;、高并发、响应 <100ms&#xff1b;支持增量索引和热更新。 2. …

【运维】Ubuntu apt 更新失败?Temporary failure resolving ‘cn.archive.ubuntu.com‘ 问题

Ubuntu apt 更新失败&#xff1f;Temporary failure resolving ‘cn.archive.ubuntu.com’ 问题 在使用 Ubuntu 时&#xff0c;你是否遇到过这样一个烦人的错误&#xff1a; Temporary failure resolving ‘cn.archive.ubuntu.com’ 如果你也踩坑了&#xff0c;别慌&#xff0…

Uniapp:showLoading(等待加载)

目录 一、出现场景二、效果展示三、具体使用一、出现场景 在项目的开发中,我们经常会请求后台接口返回数据,但是每一个接口返回数据的时间不一致,有的快,有的慢,这个时候如果不加一个遮罩层,接口返回慢的时候,非常影响用户体验 二、效果展示 三、具体使用 显示加载框…

【11408学习记录】英语书信通知写作模板大全:5个高分句式+使用场景解析,速存每日一句拆解练习!

书信/通知写作锦囊妙句 英语写作——19个锦囊妙句妙句9妙句10妙句11妙句12妙句13 每日一句词汇第一步&#xff1a;找谓语第二步&#xff1a;断句第三步&#xff1a;简化让步状语从句限定性同位语从句主句 英语 写作——19个锦囊妙句 妙句9 故宫在中国人民中很受欢迎/评价很高…

Unity 粒子同步,FishNet

Github的工程 同步画面 使用FishNet插件同步&#xff0c;可使用这个选项来克隆第二个项目进行测试

【hadoop】案例:MapReduce批量写入HBase

1.需求分析 我们仍然以美国各个气象站每年的气温数据集为例&#xff0c;现在要求使用MapReduce读取该数据集&#xff0c;然后批量写入HBase数据库&#xff0c;最后利用HBase shell根据行键即席查询气温数据。 2.数据集准备 数据集的文件名为temperature.log&#xff0c;里面包含…

【linux网络】网络基础概念

1. 初始协议 1.1 OSI 七层模型 OSI&#xff08;Open System Interconnection&#xff0c;开放系统互连&#xff09;七层网络模型称为开放式系统互联参考模型&#xff0c;是一个逻辑上的定义和规范&#xff1b; 把网络从逻辑上分为了 7 层. 每一层都有相关、相对应的物理设备&a…