CDN内容分发系统

news2025/2/27 14:08:36

CDN 分发系统的架构。CDN 系统的缓存,也是一层一层的,能不访问后端真正的源,就不打扰它。

在没有 CDN 的情况下,用户向浏览器输入 www.web.com 这个域名,客户端访问本地 DNS 服务器的时候,如果本地 DNS 服务器有缓存,则返回网站的地址;如果没有,递归查询到网站的权威 DNS 服务器,这个权威 DNS 服务器是负责 web.com 的,它会返回网站的 IP 地址。本地 DNS 服务器缓存下 IP 地址,将 IP 地址返回,然后客户端直接访问这个 IP 地址,就访问到了这个网站。

有了 CDN 之后,情况发生了变化。在 web.com 这个权威 DNS 服务器上,会设置一个 CNAME 别名,指向另外一个域名 www.web.cdn.com,返回给本地 DNS 服务器。

当本地 DNS 服务器拿到这个新的域名时,需要继续解析这个新的域名。这个时候,再访问的就不是 web.com 的权威 DNS 服务器了,而是 web.cdn.com 的权威 DNS 服务器,这是 CDN 自己的权威 DNS 服务器。在这个服务器上,还是会设置一个 CNAME,指向另外一个域名,也即 CDN 网络的全局负载均衡器。

本地 DNS 服务器去请求 CDN 的全局负载均衡器解析域名,全局负载均衡器会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:

  • 根据用户 IP 地址,判断哪一台服务器距用户最近;
  • 用户所处的运营商;
  • 根据用户所请求的 URL 中携带的内容名称,判断哪一台服务器上有用户所需的内容;
  • 查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。

基于以上这些条件,进行综合分析之后,全局负载均衡器会返回一台缓存服务器的 IP 地址。

对于流媒体 CDN 来讲,有个关键的问题是防盗链问题。因为视频是要花大价钱买版权的,为了挣点钱,收点广告费,如果流媒体被其他的网站盗走,在人家的网站播放,那损失可就大了。

最常用也最简单的方法就是 HTTP 头的 referer 字段, 当浏览器发送请求的时候,一般会带上 referer,告诉服务器是从哪个页面链接过来的,服务器基于此可以获得一些信息用于处理。如果 refer 信息不是来自本站,就阻止访问或者跳到其它链接。

referer 的机制相对比较容易破解,所以还需要配合其他的机制。一种常用的机制是时间戳防盗链。使用 CDN 的管理员可以在配置界面上,和 CDN 厂商约定一个加密字符串。客户端取出当前的时间戳,要访问的资源及其路径,连同加密字符串进行签名算法得到一个字符串,然后生成一个下载链接,带上这个签名字符串和截止时间戳去访问 CDN。在 CDN 服务端,根据取出过期时间,和当前 CDN 节点时间进行比较,确认请求是否过期。然后 CDN 服务端有了资源及路径,时间戳,以及约定的加密字符串,根据相同的签名算法计算签名,如果匹配则一致,访问合法,才会将资源返回给客户。

动态 CDN,主要有两种模式。

  • 一种为生鲜超市模式,也即边缘计算的模式。既然数据是动态生成的,所以数据的逻辑计算和存储,也相应的放在边缘的节点。其中定时从源数据那里同步存储的数据,然后在边缘进行计算得到结果。就像对生鲜的烹饪是动态的,没办法事先做好缓存,因而将生鲜超市放在你家旁边,既能够送货上门,也能够现场烹饪,也是边缘计算的一种体现。
  • 另一种是冷链运输模式,也即路径优化的模式。数据不是在边缘计算生成的,而是在源站生成的,但是数据的下发则可以通过 CDN 的网络,对路径进行优化。因为 CDN 节点较多,能够找到离源站很近的边缘节点,也能找到离用户很近的边缘节点。中间的链路完全由 CDN 来规划,选择一个更加可靠的路径,使用类似专线的方式进行访问。

此文章为9月Day20学习笔记,内容来源于极客时间《趣谈网络协议》,推荐该课程。

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

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

相关文章

单片机第三季-第三课:STM32开发板原理图、配置、浮点运算单元

目录 1,开发板原理图 2,浮点运算单元(FPU) 1,开发板原理图 课程视频比较早,介绍了三款开发板。观看视频时用的开发板说和51单片机共板的STM32核心板,将51单片机从底座拆下来后,安…

HiEV独家 | 接棒余承东,华为光产品线总裁靳玉志出任车BU CEO

作者 | 德新 编辑 | 王博 HiEV从多个信息源获悉,华为光产品线总裁靳玉志已于近期接任智能汽车解决方案BU CEO一职,而余承东担任智能汽车解决方案BU(以下简称「车BU」)董事长一职。 华为光产品线又称华为光传输与接入产品线&#…

基于Uniapp+SpringBoot+Vue的电影交流平台小程序设计与实现(源码+lw+部署文档+讲解等)

前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…

flink集群与资源@k8s源码分析-集群

0 介绍 本文是flink集群与资源@k8s源码分析系列的第二篇-集群 1 场景 下面详细分析各用例 2 启动k8s集群 k8s集群支持session和application模式,job模式将会被废弃,本文分析session模式集群 Configuration作为配置容器,几乎所有的构建需要从配置类获取配置项,这里不显示…

CSS浮动、定位

三种网页布局方式:普通流、浮动、定位 普通流:浏览器默认方式,块元素从上到下排序,行内元素从左到右排序(碰到父元素的边界会自动换行) 浮动 让一行内容纳多个盒子 核心:脱离普通流的控制 fl…

莱佛士设计学院 | 服装设计毕业作品欣赏(一)

这期给大家介绍了我们莱佛士学生suyao的服装设计毕业作品(毕业设计研讨与创作课题)——自我认同。 相信很多朋友都有看过《千与千寻》,这部电影以上世纪90年代日本泡沫经济时代为背景,千寻和她的父母误入了诡异世界后,…

华为数通方向HCIP-DataCom H12-831题库(单选题:81-100)

第81题 关于结构化的网络故障排除流程中的确认故障阶段的描述,正确的是? A、应关注如何更好的解决故障而不论该故障是否属于自己的负责范围。 B、应重视用户的意见,以用户的判断为依据来判断故障问题 C、应使影响最小化,尽量不让其他人知道网络出现了故障。 D、应确认排障…

make riscv.obj on x86: 交叉编译

0. 前言 最近泰晓社区捐了几块 RISCV 的开发板给 JLULUG,作为 JLULUG 的最菜的萌新,被社团领导指派来试水。我们拿到的开发板是 MILKV-DUO,上面跑着一个几乎极简的 buzybox linux,ssh 服务端用的是 dropbear。 本文内容旨在介绍…

复杂问题问答

复杂问题问答 写在最前面复杂问题问答问答系统分类 知识图谱现存问题 论文1分类 写在最前面 希望通过了解,找到目标应用场景的方法具体属于哪一个分支,并初步实现 通过阅读文献,找到了另一个研究方向,所以这个就先这样吧hh 参考…

开源媒体浏览器Kyoo

什么是 Kyoo ? Kyoo 是一款开源媒体浏览器,可让您流式传输电影、电视节目或动漫。它是 Plex、Emby 或 Jellyfin 的替代品。Kyoo 是从头开始创建的,它不是一个分叉。一切都将永远是免费和开源的。 软件特性: 管理您的电影、电视剧…

代码随想录Day1 数组基础

本文详细说明和思路来源于: 代码随想录 视频讲解: 手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili Leetcode T 704 题目链接 704. 二分查找 - 力扣(LeetCode) 题目概述1: 思路: 1.因…

Python 数据分析学习路线

Python 数据分析学习路线 第一阶段:Python语言基础第二阶段:数据采集和持久化第三阶段:数据分析第四阶段:数据挖掘与机器学习书籍介绍参与方式 第一阶段:Python语言基础 在学习数据分析之前,首先需要掌握P…

机器人还可以支持呼入?

呼入机器人是指一种能够接听电话并进行自动语音交互的人工智能软件系统。与传统的人工客服不同,呼入机器人可以根据预设的逻辑和语音识别技术进行自动回复和处理来电者的问题或需求,无需人工干预。这种软件通常能够帮助办公室工作人员更加高效地完成日常…

Ae 效果:CC Mr. Mercury

模拟/CC Mr. Mercury Simulation/CC Mr. Mercury CC Mr. Mercury(CC 水银先生)主要用于创建类似水银等液态金属或油漆等的动态效果。 CC Mr. Mercury 本质上模拟一个发射水银粒子的椭圆形发生器,基于源图像的像素创建自带动画的效果&#xff…

Flask 入门教程

文章目录 QuickStart1.安装2.flask 应用示例 开发1.路由(Routing)请求方法(Http Method)变量规则末尾正斜杠Url 构造 2.HTML渲染3.获取请求参数(Accessing Request Data)上下文局部变量请求对象&#xff08…

景联文科技牵头制定的《信息技术 可扩展的生物特征识别数据交换格式 第4部分:指纹图像数据》国家标准启动会暨研讨会在杭州顺利召开

2023年9月19日,由杭州景联文科技有限公司牵头制定的《信息技术 可扩展的生物特征识别数据交换格式 第4部分:指纹图像数据》国家标准启动会暨起草组工作会议在杭州顺利召开。 来自中国电子技术标准化研究院、熵基科技、名光微电子科技、广州麦仑信息科技等…

分享从零开始学习网络设备配置--任务3.4 利用单臂路由实现部门间网络互访

任务描述 某公司的管理员对部门划分了VLAN后,发现两个部门之间无法通信,但有时两个部门的员工需要进行通信,管理员现要通过简单的方法来实现此功能。划分VLAN之后, VLAN之间是不能通信的,使用路由器的单臂路由功能可以…

负载均衡中间件---Nginx

一.nginx的好处 学习 Nginx 对于一个全栈开发者来说是非常有价值的,下面是一些学习 Nginx 的原因和好处: 反向代理和负载均衡:Nginx 是一个高性能的反向代理服务器,可以用于将客户端请求转发给多个后端服务器,实现负…

Mysql和ES、Redis数据同步方案汇总

文章目录 前言 一、数据同步方案1.同步双写2.异步双写([MQ](https://so.csdn.net/so/search?qMQ&spm1001.2101.3001.7020)方式)3.基于Mysql表定时扫描同步4.基于[Binlog](https://so.csdn.net/so/search?qBinlog&spm1001.2101.3001.7020)实时同…

MySQL常用配置详解

目录 一、MySQL 查看配置信息二、MySQL 查看服务器当前运行状态的信息三、MySQL 常用配置详解1、mysql(使用mysql命令登录数据库时的默认的设置)2、client (客户端默认设置内容)3、mysqld(服务端端配置) 四…