互联网杀手级应用——网络流量占的比较多,而且比较吸引用户。

视频应用是其中之一,如何向成千上万的用户提供并行的播放服务呢

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

  • 视频流量:占据着互联网大部分的带宽

    • Netflix,YouTube:占据37%,16%的ISP下行流量
    • ~1B YouTube用户,~75M Netflix用户
  • 挑战:规模性 - 如何服务这 ~1B 用户?
    • 单个超级服务器无法提供服务(为什么)
  • 挑战:异构性
    • 不同用户拥有不同的能力(例如:有线接入和移动用户;带宽丰富和受限用户)
  • 解决方案:分布式的,应用层面的基础设施

多媒体:视频

  • 视频:固定速度显示的图像序列

    • e.g. 24 images/sec
  • 网络视频特点:
    • 高码率:>10x于音频,高的网络带宽需求
    • 可以被压缩【压缩的基础时空间和时间的冗余度】
    • 90%以上的网络流量是视频
  • 数字化图像:像素的阵列
    • 每个像素被若干bits表示
  • 编码:使用图像内和图像间的冗余来降低编码的比特数
    • 空间冗余(图像内)
    • 时间冗余(相邻的图像间)
  • CBR:(constant bit rate):以固定速率编码【一路视频压缩的码率基本是不变的】
  • VBR:(variable bit rate):视频编码速率随时间的变化而变化【可变化的码率】
  • 例子:
    • MPEG 1 (CD-ROM) 1.5Mbps
    • MPEG2 (DVD) 3-6 Mbps
    • MPEG4 (often used in Internet, < 1 Mbps)
    • AVS(高级视频编码,中国的)

存储视频的流化服务:

【一边下,一边看】

多媒体流化服务:DASH

  • DASH:Dynamic, Adaptive Streaming over HTTP

【是在HTTP上面流化播放,传输的一块块内容是在HTTP上传输的。HTTP不仅仅用于Web,还可以用于文件的上下载,也可以用于音视频的播放,HTTP就是一个传输协议。在HTTP之上的动态自适应的流化技术】

  • 服务器:

    • 将视频文件分割成多个块【每块维持8~10秒的播放】
    • 每个块独立存储,编码于不同码率(8-10种)【处理成不同解析度的,而且处理成不同的压缩编码的一些标准】
    • 告示文件(manifest file):提供不同块的URL【这个文件是什么,描述信息了什么,切成了多少块,每块的视频持续的范围,有多少个不同的版本(解析度),每个版本的不同块在哪个URL当中有】【本质的信息是告示任何一块他是什么解析度的,什么编码的,他的URL是什么】
  • 客户端:
    • 先获取告示文件
    • 周期性地测量服务器到客户端的带宽【先下载一块,然后播放,播放的时候决定请求后面的哪些块;具体向哪些服务器请求哪些块实际上是由客户端来决定的;客户端根据到服务器的带宽、屏幕尺寸(屏幕需求)、当时网络的能力来决定,根据需要动态地调节像哪些服务器请求哪些块。最终能够保证他尽可能地持续的流化播放,同时解析度尽可能地高】
    • 查询告示文件,在一个时刻请求一个块,HTTP头部指定字节范围
      • 如果带宽足够,选择最大码率的视频块
      • 会话中的不同时刻,可以切换请求不同的编码块(取决于当时的可用带宽)
  • “智能”客户端:客户端自适应决定

    • 什么时候去请求块(不至于缓存挨饿,或者溢出)
    • 请求什么编码速率的视频块(当带宽够用时,请求高质量的视频块)
    • 哪里去请求块(可以向离自己近的服务器发送URL,或者向高可用带宽的服务器请求)

【能够解决不同客户端、不同网络情况的需求的问题和能力的问题】

Content Distribution Networks

  • 挑战:服务器如何通过网络向上百万用户同时流化视频内容(上百万视频内容)?
  • 选择1:单个的、大的超级服务中心“mega server”
    • 服务器到客户端路径上跳数较多,瓶颈链路的带宽小导致停顿【服务器不能优化网络内部】
    • “二八规律”决定了网络同时充斥着同一个视频的多个拷贝,效率低(付费高、带宽浪费、效果差)【重复流量多,整个网络传输资源浪费情况比较严重】
    • 单点故障点,性能瓶颈【可靠性的问题】
    • 周边网络拥塞

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

  • 选项2:通过CDN,全网部署缓存节点,存储服务内容,就近为用户提供服务,提高用户体验【全网部署缓存节点,把一些内容预先部署在节点】

【很多ICP们都要买CDN运营商的服务】

【CDN运营商,比如中国蓝汛、Akamai,在全球的互联网范围内部署了很多cache节点,预先把这些内容部署在cache节点上,用户来访问时,通过域名解析的重定向,定向到离他最近的、向他提供服务质量最好的缓存节点,由那些缓存节点提供相应的服务,这种服务叫内容加速服务

【CDN运营商部署了很多缓存节点,用户上线之后,不一定需要从源服务器那里获得视频内容的流化服务,中间有个过程叫域名解析重定向,通过重定向找离他最近、服务质量最好的cache节点,由那些cache节点向终端用户提供流化服务,由于跳数少、网络情况好所以提供的流化服务的质量比较高】

【在哪里部署cache节点、把哪些内容提前部署到cache节点,这是部署策略的问题】

  • enter deep:将CDN服务器深入到许多接入网【缓存节点部署在很多local ISP内部,把一些内容预先部署在缓存节点中。在local ISP范围内,条数比较少、网络带宽比较大、网络拥塞的情况比较好,所以向终端用户提供的流化服务、内容传输服务的质量相对来说高很多】【但是问题是,要部署非常多的节点,维护成本高】【可以说是深入群众】

【终端用户最先是通过local ISP 接入互联网,local再接入到regional,regional再接入到global 】

    • 更接近用户,数量多,离用户近,管理困难
    • Akamai,1700个位置
  • bring home:部署在少数(10个左右)关键位置,如将服务器簇安装于P0P附近(离若干1^st ISP P0P附近)【缓存节点部署在一些关键的位置,比如上层的ISP、数据中心机房的关键节点,选择的位置离ISP的关键节点的距离都非常近,牵光纤到各个ISP,ISP的数据中心机房到底下的local ISP的服务质量相对来说还比较高】【部署的节点非常少,也可以向用户提供非常好的流化或者内容传输服务】【问题:像终端用户提供服务的跳数稍微远一点】【可以说是卡住关键少数的位置】
    • 采用租用线路将服务器簇连接起来
    • Limelight

Content Distribution Networks(CDNs)

【ICP预先把一些内容部署在CDN运营商的一些缓存节点,用户在点播的时候,首先在源服务器那里获得manifest文件(告示文件),在告示文件中他知道关于这个内容的点播,这个告示文件把视频告诉终端用户这个视频已经分成了若干版本,高解析度、低解析度、什么编码的,每种解析度、每种编码都分成一块一块的,8-10s的,每一块在哪些位置他都知道,通过manifest文件他都知道,用户再请求这些块时,具体什么时间请求,向哪个URL所对应的服务器去请求,那是客户端自己的事,可以找离他比较近、向他提供服务质量比较好的缓存节点,由那些缓存节点向终端用户提供流化服务。相当于ICP运营商提供的内容服务得到了加速,所以CDN运营商提供的服务我们可以把它称为运营加速服务】

  • CDN:在CDN节点中存储内容的多个拷贝

    • e.g. Netflix stores copies of MadMen
  • 用户从CDN中请求内容
    • 重定向到最近的拷贝,请求内容
    • 如果网络路径拥塞,可能选择不同的拷贝【拥塞的话,可能从其他的缓存节点获得流化服务】

【最主要的思路:让用户靠近缓存节点来访问,让内容靠近用户】

【用户如何知道内容从哪里访问:一种通过manifest文件,第二种是通过域名解析的重定向。域名解析完成的主要功能:域名到IP,别名到正规名字,邮件别名到邮件服务器的名字,域的名字,域名解析的重定向,从而使得CDN的运行可行】

【CDN的运营商的cache节点运行在应用层,over the top:应用层,而且是在网络的边缘来加速内容的访问,来提高核心的内容加速的服务】

特点:

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

  • 从哪个CDN节点中获取内容?
  • 用户在网络拥塞时的行为?【切换到最近的、提供服务质量最好的缓存节点,由这个缓存节点来向终端用户提供流化服务】
  • 在哪些CDN节点中存储什么内容?【内容部署策略的问题】【还有节点部署的问题:考虑成本(一次性投入成本+日常维护成本)、运行的效果】

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

Bob(客户端)请求视频http://netcinema.com/6Y7B23V【ICP:netcinema】

  • 视频存储在CDN,位于http://KingCDN.com/NetC6y&B23V【CDN运营商:KingCDN】

【点了链接后要做解析】

【要去问IP地址,返回的另外一个域名】

【最终返回的是离客户端比较近cache节点的的IP地址,由这个IP地址向客户端提供流化服务】

【Web提供服务的东西不需要任何的修改,在权威名字服务器当中知道哪些内容需要加速,然后插入一些域名和重定向的结果,对于cache的一些权威名字服务器来说,我要知道这些内容哪些缓存节点可以向他提供服务、还维护了到各个ISP之间距离远近的一些信息,按照cache节点选择策略返回相应的地址。整个CDN的重定向、CDN缓存节点向客户端提供的服务对客户端都是透明的】

案例学习:Netflix

  1. 内容上载到CDN的cache节点
  2. 完成用户的认证
  3. 之后点网页、域名解析重定向
  4. 重定向完得到离他最近的内容缓存节点,由缓存节点向他提供DASH流化服务

Content Distribution Networks(CDNs)相关推荐

  1. 深度学习(10)-- Capsules Networks(CapsNet)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/malele4th/article/details/79430464 </div>< ...

  2. Spatial Transformer Networks(STN)

    详细解读Spatial Transformer Networks(STN)-一篇文章让你完全理解STN了_多元思考力-CSDN博客_stn

  3. 论文解读-Intriguing properties of neural networks(ICLR2014)

    Intriguing properties of neural networks(ICLR2014) 这篇文章被认为是对抗样本的开山之作,首次发现并提出了对抗样本,作者阵容豪华,被引了很多次.但是文章 ...

  4. Self-Attention Generative Adversarial Networks(SAGAN)理解

    介绍 Self-Attention Generative Adversarial Networks(SAGAN)是Han Zhang, Ian Goodfellow等人在去年提出的一种新的GAN结构, ...

  5. 注意力机制——Spatial Transformer Networks(STN)

    Spatial Transformer Networks(STN)是一种空间注意力模型,可以通过学习对输入数据进行空间变换,从而增强网络的对图像变形.旋转等几何变换的鲁棒性.STN 可以在端到端的训练 ...

  6. 关联性图注意力网络:Relational Graph Attention Networks(ICLR2019)

    Relational Graph Attention Networks(ICLR2019)关联性图注意力网络 论文地址:https://openreview.net/forum?id=Bklzkh0q ...

  7. 【论文精读】Superpixel Sampling Networks(SSN)

    [论文精读]Superpixel Sampling Networks Abstract 1和2部分懒得翻译 3 复习SLIC 4 Superpixel Sampling Networks(SSN) 4 ...

  8. 【论文导读】- Variational Graph Recurrent Neural Networks(VGRNN)

    文章目录 文章信息 摘要 Background Graph convolutional recurrent networks (GCRN) Semi-implicit variational infe ...

  9. 注意力机制——Non-local Networks(NLNet)

    Non-local Networks(NLNet):NLNet是一种非局部注意力模型,通过对整个输入空间的特征进行加权求和,以捕捉全局信息. 传统的卷积神经网络(CNN)在处理图像时,只考虑了局部区域 ...

最新文章

  1. 关于AD编程的一些资料
  2. 网站SEO优化中该如何解决网站改版问题?
  3. python处理数据的优势-Python语言的七大优势
  4. 为Feign设置Header信息
  5. git小乌龟一次性设置密码
  6. “约见”面试官系列之常见面试题之第一百零八篇之如何获取dom(建议收藏)
  7. 使用React,TypeScript和Socket.io构建聊天应用
  8. 代码意识流——花朵数问题(七)
  9. Exchange 2007 474 问题解决方法
  10. iOS微信安装包瘦身
  11. 《解密并行和分布式深度学习:深度并发分析》摘要记录
  12. 为什么我的儿子不沉迷游戏?一位游戏策划家长的分享
  13. kubectl自动补全
  14. cython编译python_cython编译报错
  15. Qt读写Excel--QXlsx合并单元格、文本对齐7
  16. 为什么包装类型间的相等判断应该用 equals
  17. 软件集成测试采用,集成测试的组成以及流程
  18. 电机控制器培训资料-《如何快准狠的标定永磁同步电机》 品牌:车用电机控制器
  19. 代谢组学资讯,全球爆火的ChatGPT,是如何看待三阴性乳腺癌的?
  20. TAQ服务器npc多久自动交物资,魔兽世界怀旧服:奥罗服务器物资捐献完成,已成国服第一个开门...

热门文章

  1. 红楼梦里的经典诗词赏析
  2. VMware Workstation(虚拟机)v10.0.1 简体中文破解版
  3. Android-USB-OTG-读写U盘文件
  4. 我学《数据结构与算法》 20155314刘子健
  5. 面向前端与未来标准的Node.js Web 框架再进化
  6. Latex公式放符号正下方
  7. 【读书笔记】听:淡然的心 最美
  8. 嵌入式linux 第二章:软件下载
  9. 用Axure做的长图浏览交互稿怎么去掉侧边滚动条?
  10. 十张不能错过的蓝调专辑