【计网 CDN】计算机网络 CDN(Content Delivery Network)分布式网络架构详解:中科大郑烇老师笔记 (八)

news2024/7/4 4:43:03

目录

  • 0 引言
  • 1 为什么需要分布式的网络架构?
  • 2 视频流化服务
    • 2.1 多媒体:视频
    • 2.2 存储视频的流化(Streaming)服务
    • 2.3 流媒体传输协议:DASH
    • 2.4 面临挑战:服务器如何向上百万用户同时提供视频流化内容?CDN
    • 2.5 CDN的一个简单应用案例
    • 2.6 真实CDN应用场景 Netflix(网飞)

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:计算机四大基础专栏
  • 📜 其他章节:网络快速入门系列、计网概述、计网应用层详解、计网Web和HTTP、计网FTP、计网EMail、计网DNS、计网P2P
  • 💥 标题:【计网 CDN】计算机网络 CDN(Content Delivery Network)分布式网络架构详解:中科大郑烇老师笔记 (八)
  • ❣️ 寄语:人生的意义或许是可以发挥自己全部的潜力,所以加油吧!
  • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正

0 引言

CDN是一种分布式的网络架构,上一章节讲的P2P也是一种网络架构,接下来总结一下其他的网络架构有哪些:

  • P2P(Peer-to-Peer)网络:P2P网络是一种分布式网络架构,其中每个节点都可以充当客户端和服务器。在P2P网络中,节点之间可以直接通信和共享资源,而不需要传统的客户端-服务器模式。P2P网络常用于文件共享和流媒体传输等场景。
  • 客户端-服务器(Client-Server)模式:这是最常见的网络架构之一。在客户端-服务器模式中,客户端发送请求,并从服务器接收响应。服务器提供服务、资源或数据,并等待客户端的请求。这种模式适用于许多互联网应用,如网站、电子邮件和数据库。
  • 对等网格(Grid):对等网格是一种分布式计算架构,将许多计算资源组合在一起,形成一个大规模的虚拟计算机。这些计算资源可以是计算机、存储设备或其他设备。对等网格允许任务在多个节点上并行执行,从而提高计算效率和性能。
  • SOA(Service-Oriented Architecture):SOA是一种基于服务的软件架构,其中应用程序通过服务的组合来实现特定的功能。服务是可独立访问和使用的软件组件,可以通过网络进行通信。SOA可以提高系统的灵活性、可扩展性和重用性,使不同的应用程序可以相互协作。
  • 边缘计算(Edge Computing):边缘计算是一种将计算和数据处理推向网络边缘的架构。在边缘计算中,计算任务和数据处理可以在靠近数据源和终端设备的边缘节点上进行,减少了数据传输的延迟和网络拥塞。边缘计算常用于物联网(IoT)应用和对实时性要求较高的场景。

在这里插入图片描述

1 为什么需要分布式的网络架构?

目前视频流量占据着互联网大部分的带宽(例如YouTube,占据16%的ISP下行流量,同时有~1B YouTube用户),这就面临新的挑战:

  • 挑战一(规模性):如何服务 ~1B级别的用户。假如是单个超级服务器是无法给这么多用户提供并发的服务的(可以思考一下为什么)。
  • 挑战二(异构性):不同用户拥有不同的能力(例如:有线接入和移动用户:带宽丰富和带宽受限用户)
  • 解决方案:分布式,应用层面的基础设施CDN。

CDN就是分布式的网络架构,来看看CDN是如何解决互联网杀手级应用高并发视频服务的。

2 视频流化服务

首先介绍一下互联网中视频是如何进行传输的

2.1 多媒体:视频

在这里插入图片描述

在这里插入图片描述

2.2 存储视频的流化(Streaming)服务

  • 假如要将视频先全部下载完再观看的话,那样效率低、用户体验也很差。所以就需要一个新的方案解决视频内容传输服务(视频流化服务)。
  • 视频流化服务是将视频内容实时传输给用户的服务,用户可以在不需要下载整个视频的情况下即时播放。下载一部分放入缓冲区中,然后用户在缓冲区中读取数据播放视频。下载和读取是并行的。

在这里插入图片描述

2.3 流媒体传输协议:DASH

  • DASHDynamic Streaming over HTTP)是一种流媒体传输协议,用于在 HTTP协议 上实现动态自适应的视频流传输。DASH可以根据用户的网络条件和设备能力,在不同的比特率和分辨率之间进行自动切换,以提供流畅的视频播放体验。

所以使用DASH协议实现动态自适应的视频流传输服务,客户端和服务器需要如何工作:

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

2.4 面临挑战:服务器如何向上百万用户同时提供视频流化内容?CDN

  • 方法一:单个的、大的超级服务中心“mega-server”,该方法存在下面几点问题
    • 服务器到客户端路径上跳数较多,瓶颈链路的带宽小导致停顿
    • “二八定律”决定了网络同时充斥着同一个视频的多个拷贝,效率低(付费高、带宽浪费、效果差)
    • 单点故障,性能瓶颈
    • 周边网络的拥塞
  • 总结:该方法简单,但是这个不可扩展
  • 方法二:通过CDN全网部署缓存节点,存储服务内容,就近为用户提供服务,提高用户体验。CDN运营商有下面两种部署策略,分别是enter deep、bring home。
    • enter deep将CDN服务器深入到许多接入网
      • 更接近用户,数量多,离用户近,管理困难
      • Akamai,1700个位置
    • bring home部署在少数(10个左右)关键位置,如将服务器簇安装于POP附近(离若干1st ISP POP较近)
      • 采用租用线路将服务器簇连接起来
      • Limelight

网络应用商购买CDN运营商(例如,中国蓝汛)购买内容加速服务,CDN将其内容缓存到其他服务器上,用户通过域名解析,寻找跳数最少或者带宽相对较大的链路的中间服务器。
在这里插入图片描述

2.5 CDN的一个简单应用案例

下图中的一些名词解释:

  • netcinema.com:是一种ICP(互联网内容提供商)提供的服务的原始服务器
  • netcimem’s authoritive DNS:ICP的权威名字服务器
  • KingCDN.com:CDN网络运营商加速服务的开始节点
  • KingCDN authoritive DNS:CDN的权威名字服务器

在这里插入图片描述

步骤:

  1. Bob用户浏览netcinema.com网页,页面中有个视频链接,点击进去了。
  2. 浏览器解析视频链接,向Local Name Server 本地名字服务器解析IP地址,返回了netcimem’s authoritive DNS域名地址(没有直接返回IP地址,而是进行了重定向)
  3. 解析重定向URL后,重定向到KingCDN authoritive DNS服务器,然后该服务器返回了离用户最近的CDN服务器IP地址。由这个节点给用户提供视频流化服务。

在这里插入图片描述

2.6 真实CDN应用场景 Netflix(网飞)

在这里插入图片描述

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

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

相关文章

buuctf_练[GYCTF2020]FlaskApp

[GYCTF2020]FlaskApp 文章目录 [GYCTF2020]FlaskApp常用绕过方法掌握知识解题思路解题一 -- 计算pin码解题二 -- 拼接绕过 执行命令 关键paylaod 常用绕过方法 ssti详解与例题以及绕过payload大全_ssti绕过空格_HoAd’s blog的博客-CSDN博客 CTF 对SSTI的一些总结 - FreeBuf网…

Java中会出现内存泄漏吗

这是一个老生常谈的面试题,本文就系统讲解一下吧 虽然Java有GC垃圾⾃动回收功能,但并不是说Java程序就不会内存泄漏。如果一个对象没有地⽅会使⽤到,但是却仍然有引用指向他,那么垃圾回收器就无法回收他,这种情况就属于…

重复性管理--抽象的重要性(下)

接着 上一篇的谈论, 继续谈论抽象在重复性管理中的重要作用. 好的抽象与糟糕的抽象? 通过前面的一些例子, 你可能形成了一个印象: 所谓抽象很多时候就是把一些代码封装到一个方法中. 不过事实上并不是这么简单的. 抽象的结果确实很多时候产生了一个方法, 但不是说我把一堆代…

05 网络和防火墙等其他

网络和其他 ifconfig : 主机ip地址查询

从过去到未来:回顾DDR技术的演进和未来趋势

DDR技术作为内存的核心,其性能的飞速发展直接推动着计算机的计算能力。 本文将简明扼要地介绍DDR技术的发展历程。 一、SDR时代 20世纪90年代,Intel公司推出了首款同步动态随机存储器SDR SDRAM。其采用时钟同步接口,时钟频率典型为66MHz或8…

【洛谷算法题】P2433-小学数学 N 合一【入门2分支结构】

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P2433-小学数学 N 合一【入门2分支结构】🌏题目描述🌙问题…

MySQL数据库基本操作1

文章目录 主要内容一.DDL1.创建表代码如下(示例): 2.创建表的类型3.其他操作4.修改表结构格式代码如下(示例): 二.DML1.数据插入代码如下(示例): 2.数据修改代码如下(示例): 3.数据删…

力扣第406题 根据身高重建队列 c++ 贪心思维

题目 406. 根据身高重建队列 中等 相关标签 贪心 树状数组 线段树 数组 排序 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &am…

Qt在Android上设置连接到指定的WIFI

在Android上使用Qt设置连接到指定的Wi-Fi网络需要使用Java代码来完成,涉及到Android平台特定的API和权限。接下来下面将会演示如何在Qt中调用Java代码来实现这一功能。 【1】在Qt项目中创建一个名为"AndroidWifiConnector"的Java类。 (新建文件,选择JAVA类型,名字…

解决 viteprees 中 vp-doc 内置样式影响组件预

解决 viteprees 中 vp-doc 样式影响组件预览 问题 当使用"vitepress": "1.0.0-rc.22"作为组件库文档时,会自动引入vitepress的默认主题, 其中vp-doc中有大量的html标签样式 ... .vp-doc table {display: block;border-collapse: …

前端开发技术栈(工具篇):2023深入了解webpack的安装和使用以及核心概念和启动流程(详细) 63.3k stars

目录 Webpack简介 Entry Module Chunk Loader Plugin Output Webpack的启动流程 Webpack的优缺点 Webpack的使用 1. 安装Webpack 2. 创建Webpack配置文件 3. 编写代码 4. 运行Webpack 5. 在HTML中引入打包后的文件 6. 执行编译命令 Webpack其他功能介绍 1. 使…

map与set

目录 set的key搜索树模拟 set内置的find与count函数 ​编辑 set的lower_bound与upper_bound内置函数、 map的key-value搜索树模拟 通过不同的方式向map中插入键值对。 map的遍历 ​编辑 map的operator的 [ ] 用法 关于map与set用法的几个例题 例题1: 随机…

V3Det大规模词汇视觉检测数据集与LaRS海上全景障碍物检测数据集

V3Det与LaRS是ICCV2023上发表的数据集工作,规模都比较大,后续有可能会用到,因此记录下来。 V3Det: Vast Vocabulary Visual Detection Dataset Paper: https://arxiv.org/abs/2304.03752 URL: https://v3det.openxlab.org.cn/ 在现实世界中…

Bootstrap中CSS媒体查询分辨率 @media(min-width)例子

Bootstrap中CSS媒体查询分辨率 media(min-width)例子 css media min-width max-width 解释: min-width 表示最小即大于等于max-width 表示最大即小于等于 media screen and (min-width : 320px) {html {font-size : 10px !important;} } medi…

geoserve 发布 Styles 样式时,设置边框、填充以及填充透明度

文章目录 需求分析需求 设置 geoserve 发布的 Styles 样式中的边框、填充以及填充透明度 分析 具体详细使用可参考这篇文文章:在 GeoServer 上发布 Shapefile 文件作为 WMS 数据 <?xml version="1.0" encoding=

Git Gui使用技巧

资料 https://www.runoob.com/w3cnote/git-gui-window.html 操作过程 创建仓库→添加远程仓库→扫描目录→文件移动→提交→上传 注意填注释 文件忽略 创建文件.gitignore→编写内容 *.log #文件 config.ini #文件 temp/ #目录

App分发的策略和注意事项2

当今的数字化时代中&#xff0c;移动应用程序已经成为了人们生活中不可或缺的一部分。随着智能手机的普及和移动互联网的快速发展&#xff0c;应用程序的分发方式也变得越来越多样化。 App分发是指将移动应用程序通过特定的渠道传递给终端用户的过程。在应用程序开发完成后&am…

MySQL 多表查询 事务 索引

目录 多表查询简介内连接查询 join on外连接查询 left join、right join子连接查询标量子查询列子查询 (in、not in)行子查询表子查询 多表查询案例 事务事务介绍操作 start transaction、commit、rollback事务四大特性(面试题) 索引索引介绍索引原理索引语法 index 上次学习了…

一款适用于勒索病毒应急演练加解密工具

decryption-encryption 介绍 #encryption.exe为加密脚本 #decryption.exe为解密脚本 1、运行加密脚本&#xff0c;点击运行程序输入密码&#xff1a;TaSt12.2 输入需要加密的文件路径或文件夹路径&#xff0c;确定后即可对路径下面的所有格式文件进行加密&#xff1b; 2、…

安卓核心板_天玑700、天玑720、天玑900_5G模块规格参数

5G安卓核心板是采用新一代蜂窝移动通信技术的重要设备。它支持万物互联、生活云端化和智能交互的特性。5G技术使得各类智能硬件始终处于联网状态&#xff0c;而物联网则成为5G发展的主要动力。物联网通过传感器、无线网络和射频识别等技术&#xff0c;实现了物体之间的互联。而…