当前位置: 首页 > news >正文

计算机网络——14CDN

CDN

视频流化服务和CDN:上下文

  • 视频流量:占据着互连网大部分的带宽
    • Netflix,YouTube:占据37%,16%的下行流量
  • 挑战:规模性-如何服务~1B用户?
    • 单个超级服务器无法提供服务(为什么)
  • 挑战:异构性
    • 不同用户拥有不同的能力
  • 解决方案:分布式的,应用层面的基础设施

多媒体:视频

  • 视频:固定速度显示的图像序列
  • 网络视频特点:
    • 高码率:>10x于音频,高的网络带宽需求
    • 可以被压缩
    • 90%%以上的网络流量是视频
  • 数字化图像:像素的阵列
    • 每个像素被若干bits表示
  • 编码:使用图像内和图像间的冗余来降低编码的比特数
    • 空间冗余(图像内)
    • 时间冗余(相邻的图像间)
      在这里插入图片描述

编码方式:

  • CBR:以固定速率编码
  • VBR:视频编码速率随时间的变化而变化

多媒体流化服务:DASH

  • 服务器:
    • 将视频文件分割成多个块
    • 每个块独立存储,编码于不同码率(8-10种)
    • 告示文件:提供不同块的URL
  • 客户端
    • 先获取告示文件
    • 周期性的测量服务器到客户端的带宽
    • 查询告示文件,在一个时刻请求一个块,HTTP头部指定字节范围
      • 如果带宽足够,选择最大的码率的视频块
      • 会话中的不同时刻,可以切换请求不同的编码块(取决于当时的可用带宽)
  • 智能客户端:客户端自适应决定
    • 什么时候请求块(不至于缓存挨饿或者溢出)
    • 请求什么编码速率的视频块(当带宽足够用时,请求高质量的视频块)
    • 哪里去请求块(可以向离自己近的服务器发送URL,或者向高可用带宽的服务器请求)

CDN

  • 挑战:服务器如何通过网络向上百万用户同时流化视频内容
  • 选择1:单个的、大的超级服务中心"mega-server"
    • 服务器到客户端路径上跳数越多,瓶颈链路的带宽小导致停顿
    • “二八规律”决定了网络同时充斥着同一个视频的多个拷贝,效率低(付费高、贷款浪费、效果差)
    • 单点故障点,性能瓶颈
    • 周边网络的拥塞

评述:相当简单,但是这个方法不可拓展

  • 选择2:通过CDN,全网部署缓存节点,存储服务内容,就近为用户提供服务,提高用户体验

    • enter deep:将CDN服务器深入到许多接入网
      • 更接近用户、数量多、离用户近、管理困难
      • Akamai,1700个位置
    • bring home:部署在少数(10个左右)关键位置,如将服务器蔟安装于POP附近(离若干 1 s t 1^{st} 1stISP POP较近)
      • 采用租用线路将服务器蔟连接起来
      • Limelight
  • CDN:在CDN节点中存储内容的多个拷贝

  • 用户从CDN种请求内容:

    • 重定向到最近的拷贝,请求内容

Netflix的例子:
在这里插入图片描述

CDNs

在这里插入图片描述

OTT挑战:在拥塞的互联网上复制内容

  • 从哪个CDN节点中获取内容
  • 用户在网络拥塞时的行为
  • 在哪些CDN节点中存储什么内容

CDN:“简单”内容访问场景

  • Bob(客户端)请求视频http://netcinema.com/6Y7B23V-
  • 视频存储在CDN,位于http://KingCDN.com/NetC6y&B23V
  • 下图中的authorative是权威服务器

在这里插入图片描述

Netflix案例

在这里插入图片描述

相关文章:

计算机网络——14CDN

CDN 视频流化服务和CDN:上下文 视频流量:占据着互连网大部分的带宽 Netflix,YouTube:占据37%,16%的下行流量 挑战:规模性-如何服务~1B用户? 单个超级服务器无法提供服务(为什么&am…...

Docker技术仓库

数据卷 为什么用数据卷? 宿主机无法直接访问容器中的文件容器中的文件没有持久化,导致容器删除后,文件数据也随之消失容器之间也无法直接访问互相的文件 为解决这些问题,docker加入了数据卷机制,能很好解决上面问题…...

Kotlin学习 6

1.接口 interface Movable {var maxSpeed: Intvar wheels: Intfun move(movable: Movable): String}class Car(var name: String, override var wheels: Int 4, _maxSpeed: Int) : Movable {override var maxSpeed: Int _maxSpeedget() fieldset(value) {field value}overr…...

⭐北邮复试刷题LCR 052. 递增顺序搜索树__DFS (力扣119经典题变种挑战)

LCR 052. 递增顺序搜索树 给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。 示例 1: 输入:root [5,…...

获取discord上自己创建的服务器的服务器ID、频道ID以及discord的登录token(用于第三方登录)

在服务器图标上右键点击-》复制服务器ID 在频道上右键点击-》复制频道ID F12->手机模式-》application-》local storage-》填写过滤条件【token】 我开发的chatgpt网站: https://chat.xutongbao.top...

图纸透明加密:保护机械图纸安全的新方法

随着信息技术的不断发展,机械制造行业对于图纸安全的需求越来越高。机械图纸是企业的核心竞争力之一,泄露可能导致严重的商业损失和技术风险。为了解决这一问题,图纸透明加密成为了一种新的保护机械图纸安全的方法。本文将介绍图纸透明加密的…...

基于springboot + vue实现的前后端分离-酒店管理系统

项目介绍 基于springboot vue实现的酒店管理系统一共有酒店管理员和用户这两种角色。 管理员功能 登录:管理员可以通过登录功能进入系统,确保只有授权人员可以访问系统。用户管理:管理员可以添加、编辑和删除酒店的用户,包括前…...

79.SpringBoot的核心注解

一、SpringBoot的核心注解 SpringBootApplication注解:这个注解标识了一个SpringBoot工程,它实际上是另外三个注解的组合,这三个注解是:SpringBootConfiguration:这个注解实际就是一个Configuration,表示启…...

MATLAB 导出可编辑的eps格式图像

任务描述:部分期刊要求提交可编辑的eps格式图像,方便美工编辑对图像进行美化 我试了直接print或者在figure窗口导出,发现导出的文件放到Adobe AI中并不能编辑,经Google找到解决办法: %EPS exportgraphics(gcf,myVect…...

四问带你搞懂 I3C

大家都知道 I2C ,它的全称是 Inter Integrated Circuit ,那 I3C 又是什么? I3C 是 MIPI (Mobile Industry Processor Interface)移动产业处理器接口联盟推出的,全称是 Improved Inter Integrated Circuit &…...

fastjson解析自定义get方法导致空指针问题

背景 为了在日志中把出入参打印出来,以便验证链路和排查问题,在日志中将入参用fastjson格式化成字符串输出,结果遇到了NPE。 问题复现 示例代码 public static void main(String[] args) {OrganizationId orgId new OrganizationId();N…...

github新手用法详解

GitHub是一个非常强大的版本控制工具,它为程序员提供了一个便捷的方式来管理代码、协作开发和参与开源项目。但对于新手来说,可能会觉得GitHub的使用有些复杂。因此,本篇文章将详细介绍GitHub的基本用法,帮助新手快速上手并充分利…...

MAC电脑系统清理空间免费版软件CleanMyMac X2024

大家好,我是那个总是被苹果电脑“内存已满”提示搞得焦头烂额的专业博主。如果你也像我一样,在使用Mac时经常遭遇卡顿、慢吞吞的情况,那么今天的Mac清理空间妙招分享绝对适合你! CleanMyMac X全新版下载如下: https://wm.makedi…...

notepad++运行python闪一下就没啦

问题:Notepad直接快捷键运行Python代码,出现闪一下就没了 解决措施: ①点击菜单运行(Run) --> 运行(Run)弹出的对话框 ②把 cmd /k python "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT 粘贴进入这个对话框内 ③点击保存&a…...

基于springboot+vue的课程答疑系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…...

【工具类】非 sudo 运行 docker

非 root 运行 docker 命令 sudo groupadd docker sudo usermod -aG docker $USER newgrp docker sudo chown root:docker /var/run/docker.sock sudo chown "$USER":"$USER" /home/"$USER"/.docker -R sudo chmod grwx "$HOME/.docker&quo…...

力扣49.字母异位词分组

题目描述: 49. 字母异位词分组 难度 中等 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea"…...

git操作--->在远程删除了某个分支,但本地使用git branch -r的时候还是会显示某个分支存在是什么原因

💕又迷糊了哈哈,以为自己命令执行错了,结果可能是缓存的原因:💕 😂如果你发现使用 git branch -r 命令显示了一个远程没有的分支,这可能是由以下几个原因造成的:😂 缓存…...

合并Windows电脑的不同分区(不同的盘)的方法

本文介绍在Windows操作系统的电脑中,将磁盘上的不同分区(例如E盘与F盘)加以合并的方法。 最近,想着将新电脑的2个分区加以合并;如下图所示,希望将E盘与F盘合并为一个分区。本文就介绍一下实现这一需求的具体…...

web前端安全性——iframe安全问题

1、概念 iframe安全问题可称作界面劫持,像点击劫持、拖放劫持、触屏劫持。就是我们的点击,拖放,触屏操作被劫持了,而去操作了其它的透明隐藏的界面。 **原理是利用透明层iframe,使用了CSS中的opacity或z-index等属性,…...

【效率翻倍】不止是安装:用Apache 2.4 + Win10快速搭建本地PHP/WordPress测试环境

效率翻倍:Apache 2.4 Win10 构建全功能PHP/WordPress开发环境实战指南 在本地开发环境中快速搭建Web服务器是每个PHP开发者或WordPress站长的必备技能。传统教程往往止步于Apache的基础安装,却忽略了实际开发中需要的完整工具链——从PHP解释器集成到虚…...

自动缝纫机SolidWorks

在自动缝纫机的设计过程中,往往需要处理大量精密零件的协同工作,从送布机构、针杆组件到旋梭系统,每个部件的尺寸精度和装配关系都直接影响设备的运行稳定性和缝纫效果。而SolidWorks作为三维设计工具,在这一过程中扮演着关键角色…...

FlowScope:一款注重隐私的SQL数据血缘分析工具

最近团队接手了一个新的数据仓库项目,这个项目已经开发了很多年,包含了几百个表和几万行 ETL 存储过程代码。 目前我们经常面临的问题包括: 这个字段从哪里来?这张表被哪些存储过程用到了?修改这个字段会影响哪些 ET…...

H5扫码功能实战:如何在微信和原生浏览器中实现二维码解析(附完整代码)

H5扫码功能实战:如何在微信和原生浏览器中实现二维码解析 移动互联网时代,二维码已成为连接线上线下最重要的入口之一。作为前端开发者,我们经常需要在H5页面中实现扫码功能,但不同环境下的兼容性问题往往让人头疼。本文将深入探讨…...

虚幻引擎+数字孪生:手把手搭建智慧校园三维可视化平台(附浙江工商大学实战案例)

虚幻引擎数字孪生:从零构建智慧校园三维可视化平台的完整指南 想象一下,清晨走进校园时,管理员已经在三维可视化平台上完成了安防巡查;教务主任通过热力图调整着今天的课程安排;后勤人员正根据实时数据优化能源分配——…...

深入解析 Promise 核心原理,从零手写实现到实战应用

1. Promise 基础概念与使用场景 1.1 什么是 Promise? 想象你点了一份外卖,商家给你一个取餐号而不是立即给你食物。这个取餐号就是 Promise,它代表一个未来才会完成的操作(外卖送达)。在 JavaScript 中,Pro…...

Skills 如何高效地扩展 Claude 的能力

在模块化配置体系中,rules(规则)决定了 Claude 的下限(不能搞砸什么),而 skills(技能)则决定了 Claude 的上限(能多快、多准地完成复杂任务)。高效扩展 Claud…...

如何用Chatterbox TTS打造多语言智能语音助手:从零开始的完整实战指南 [特殊字符]

如何用Chatterbox TTS打造多语言智能语音助手:从零开始的完整实战指南 🎤 【免费下载链接】chatterbox Open source TTS model 项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox 想要为你的应用添加逼真的语音合成功能吗&a…...

别再为小Batch Size发愁了!手把手教你用Group Normalization稳定训练你的PyTorch模型

别再为小Batch Size发愁了!手把手教你用Group Normalization稳定训练你的PyTorch模型 当你在训练深度学习模型时,是否遇到过这样的困境:由于GPU显存限制,只能使用较小的batch size,结果模型训练变得极不稳定&#xff…...

解锁高效无水印备份:抖音视频批量下载的完整指南

解锁高效无水印备份:抖音视频批量下载的完整指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 直面内容管理痛点:三个真实用户的困境 场景一:学习资源的系统性流失 教…...