CDN网络基础入门:CDN原理及架构

news2024/10/5 13:34:37

背景

互联网业务的繁荣让各类门户网站、短视频、剧集观看、在线教育等内容生态快速发展,互联网流量呈现爆发式增长,自然也面临着海量内容分发效率上的挑战,那么作为终端用户,我们获取资源的体验是否有提升呢?

答案是肯定的。持续改善用户体验的过程中,不仅受益于网络基础设施的建设,云计算产品也肩负着特有的使命。

当前,全球互联网流量一半以上通过 CDN 进行接入,CDN 帮助用户更快速、更安全地消费互联网内容,不管是浏览门户网站、观看短视频和长剧, 还是网上购物、在线学习,背后都有 CDN 在后台加速的身影。尤其在 2020 年春夏新冠肺炎疫情期间,CDN 支撑了上亿个学生的在线课堂学习,成功应对了在线课堂流量相较之前几十倍的增长,使得各级学校实现了停课不停学的目标,实现了巨大的社会价值。

传统网络分发面临的瓶颈与挑战

CDN 并不是互联网诞生之初就一直存在的,而是在支撑各类互联网业务高速发展的过程中应运而生并不断发展壮大的。未使用 CDN 加速时,大量用户请求需要穿越互联网骨干网才能获取源站内容,内容分发常面临着以下几项挑战:

  1. 用户距离源站距离较远,网络链路易拥塞,长距离传输对终端体验并不友好,易出现卡顿、慢速问题。

  2. 源站部署在单线(单个运营商)机房时,跨运营商访问质量差。

  3. 源站部署在 BGP /多线机房时,带宽的成本昂贵,且固定出口带宽时易成为服务瓶颈,突发活动需要扩容。

  4. 内容分发业务需要投入高成本进行服务器配置扩容,并且伴随高并发业务维护的人力成本。

而在业务使用 CDN 加速后,用户可以就近在边缘 IDC 节点下载到所需内容,极大地提升了用户体验,不仅让业务内容分发效率提升,也分担了源站的负载压力,使得源站服务聚焦于对非静态内容的业务处理,能够更加从容地面对突发业务带宽。通过智能回源出口选择,也能够避免单线机房跨运营商访问造成的不稳定性。

同时,相比 BGP 机房的带宽单价,CDN 将分发内容产生的流量成本降低到极致,您也可以通过选购 CDN 资源包享受更多优惠折扣。

CDN 是什么

互联网内容的分发模式与传统商品货物的分发模式有许多共通之处,在介绍 CDN 是什么之前,我们不妨思考一下是哪些因素让日常生活的购买效率更高,时效性更强?

  • 首先,交通工具的便利及道路基建能力的提升,运输效率提升,让货物运输速度更快。

  • 其次,仓储物流能力的建设,货物在多地仓库分布式仓储,位于同地区的多个超市便利店可选择从本地仓库直接进货,而顾客也可以直接在家门口的超市便利店购买所需商品,无需用户和源头生产厂商直接完成订单交易。

  • 最后,售卖点的数量、覆盖范围的扩张也都为购买过程带来了体验上的改善,每个小区门口甚至单元楼都已经覆盖了便民超市,如今最近距离商品交易只需从身边的自动贩卖机就能够完成。

如何更通俗地去理解 CDN 是什么呢,我们也不妨尝试用购买效率提升的思路来帮助理解:CDN 在网络上的作用就像现实中用户身边的自动贩卖机、家门口的超市、各地的集中仓储,让用户可以最近距离很快捷的获取所需商品。

从技术视角出发,CDN 通过多级代理服务器对源站内容(例如 js/css/html/mp4 等)进行缓存,让静态内容缓存在距离用户更近的 IDC 机房节点上,实现用户获取资源的网络距离大幅度缩减,进而提升终端用户体验和传输效率。

CDN 架构及访问流程

如果要实现对全球业务的分发加速,自然需要海量节点储备用于给终端用户提供服务,而作为一个全球化的分布式系统,CDN 对系统性能和稳定性有非常高的要求,当前阿里云 CDN 主要由调度系统、链路质量系统、缓存系统、支撑系统等子系统组成,这些子系统共同构成了 CDN 大脑神经网络来保证 CDN 的日常服务。

  • 调度系统:支持策略中心、DNS、HTTPDNS和302调度模式。当终端用户发起访问请求时,用户的访问请求会先进行域名DNS解析,调度系统将根据用户解析请求中携带的 IP 地址判断其区域、运营商,为用户选择并返回最佳接入节点 IP (DNS 未携带客户端 IP 时,调度根据DNS IP决策)。

  • 链路质量系统:实时监测缓存系统中所有节点和链路的实时负载以及健康状况。调度系统在决策最优节点时,也会综合链路质量、实时负载等因素来为用户分配服务节点。

  • 缓存系统:用户通过收到的最佳接入节点 IP 访问对应的缓存节点,如果节点已经缓存了用户请求的资源,会直接将资源返回给用户。

  • 支撑系统:支撑服务系统包括天眼、数据智能和配置管理系统,分别具备了资源监测、数据分析和配置管理能力。

创建 CDN 加速域名后,CDN 将为您的加速域名分配 CNAME 记录值,您需要将域名解析至 CNAME 记录后才能接入CDN的智能调度系统。在正式接入 CDN 后,终端用户访问时经过的流程大致如下:

  1. 本机 DNS 发起对访问域名的解析查询,加速域名权威DNS将响应您所配置的 CNAME 地址,DNS 继续对CNAME 记录发起查询后,解析结果将根据阿里云调度系统决策,从权威 DNS 中返回最优节点 IP 地址。

  2. 用户本地发起和节点 IP 的建联,建联后开始发送 HTTP 请求,此时访问节点为边缘节点(L1),如果 L1 节点已缓存了用户请求的文件,L1 将直接返回缓存内容给用户,此时请求结束。

  3. 如果边缘节点(L1)没有该文件的缓存,将回源至上层节点(L2)获取资源,如果 L2 节点已缓存用户请求的文件,将直接返回缓存内容给L1,L1响应给用户并将文件缓存到本地,此时请求结束。

  4. 如果 L2 节点也没有用户所请求的文件,L2 节点将根据您在CDN控制台上的配置,回源到您的业务源站拉取资源返回给 L1 ,并将文件缓存到 L2 本地,此时请求结束。

阿里云在全球拥有2800+节点。中国内地(大陆)拥有2300+节点,覆盖31个省级区域;中国香港、中国澳门、中国台湾、其他国家和地区拥有500+节点,覆盖70多个国家和地区。全网带宽输出能力达150 Tbps。阿里云CDN产品通过广泛的地域覆盖和深厚的带宽储备,在全球范围为用户提供安全、稳定、可靠的内容分发服务。

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

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

相关文章

网络层·IP协议

承接前文TCP协议-CSDN博客 简介 协议头格式 网段划分(重要) 划分方法 IP地址的数量限制(背景介绍) 私有IP地址和公网IP地址(提出解决思路) NAT技术(解决方法) 路由 网络层 在复杂的网络环境中确定一个合适的路径 IP协议 主机: 配有IP地址, 可以认为就是你的电脑; 路由器:…

2.SpringBoot项目搭建

SpringBoot项目搭建 JavaEE对新手非常友好的 搭建框架。 集成了JavaEE开发中大部分的功能。 1.进行创建 2.进行配置 点击创建,springboot项目创建完成,下篇是安装lombok & maven镜像设置 设置完成后之后便可以启动项目了。 3.各个部分说明

【最新】如何在CSDN个人主页左侧栏添加二维码?侧边推广怎么弄?

目录 引言 效果展示 步骤讲解 引言 当你决定在CSDN上展示自己的技术才能和项目时,💡 将你的个人主页变得更炫酷和引人注目是必不可少的!在这篇博客中,我们将向你揭开神秘的面纱,教你如何在CSDN个人主页的左侧栏上添…

分享一款yyds!电子期刊制作网站

大家好,今天要跟大家分享一个超级赞的资源!有没有曾经你苦苦寻找的那一款适合自己的电子期刊制作网站呢?下面就让我来给大家详细介绍一个非常棒的网站,有了它,你可以轻松制作出专业、精美的电子期刊! 1.打开…

突破封锁|华为芯片10年进化史:从K3V1到麒麟9000S

华为海思麒麟芯片过去10年研发历程回顾如下: 2009年:华为推出第一款手机芯片K3V1,采用65nm工艺制程,基于ARM11架构,主频600MHz,支持WCDMA/GSM双模网络。这款芯片搭载在华为U8800手机上,标志着华…

基于时空注意力融合网络的城市轨道交通假期短时客流预测

导读 本论文于2023年发表于交通领域知名期刊《IEEE Intellgent Transportations Systems Magazine》上。该论文旨在研究节假日期间城市轨道交通进站流预测问题,通过搭建时空注意力融合网络,有效融合客流数据和节假日相关社交媒体数据,充分捕捉…

golang gin——文件上传(单文件,多文件)

文件上传 单文件上传 从form-data获取文件 package uploadimport ("github.com/gin-gonic/gin""net/http" ) // 单文件上传,多文件上传 func Upload(c *gin.Context) {file, _ : c.FormFile("file") // file为字段名dst : "…

Java课设 保存计算过程的计算器(附完整源码)

目录 前言calculator.javaMyForm.javamain.java 前言 这是一个保存计算过程的计算器,calculator.java中实现计算原理,MyForm.java中实现面板。效果如图: calculator.java import java.util.Stack;public class Calculator {public String c…

python 打包可执行文件-pyinstaller详解

python 打包可执行文件-pyinstaller详解 引言一、参数详解二、优化代码三、体积压缩 引言 pyinstaller是一个将python程序打包成独立可执行文件(exe,app等)的工具,它具有跨平台兼容性,可以在windows,mac和…

苹果系统_安装matplotlib__pygame,以pycharm导入模块

为了更便捷、连贯的进行python编程学习,尽量在开始安装python软件时,将编辑器、模块一并安装好,这样能避免以后版本冲突的问题。小白在开始安装pycharm、pip、matplotlib往往会遇到一些问题,文中列示其中部分bug,供大家…

一文了解硬盘AFR年化故障率评估方式和预测方案

目前常用评价硬盘(或者其他硬件产品)有一个关键的指标就是年化故障率(AFR)。年化故障率(AFR)是一种衡量产品可靠性的指标,表示在一年内产品发生故障的概率。 除了年化故障率(AFR&…

一文搞懂Java线程中断协商机制,如何优雅中断一个正在运行的线程?

文章目录 一、中断机制概述1、中断API2、什么是中断机制3、如何理解中断机制4、三大中断方法源码详解(1)interrupt()(2)interrupted()(3)isInterrupted()(4)注意!不同jdk…

Electron笔记

基础环境搭建 官网:https://www.electronjs.org/zh/ 这一套笔记根据这套视频而写的 创建项目 方式一: 官网点击GitHub往下拉找到快速入门就能看到下面这几个命令了 git clone https://github.com/electron/electron-quick-start //克隆项目 cd electron-quick-start //…

阿里云服务器e系列是共享型?什么意思?

阿里云服务器经济型e实例是共享型云服务器,共享型实例采用非绑定CPU调度模式。每个vCPU会被随机分配到任何空闲CPU超线程上,不同实例vCPU会争抢物理CPU资源,并导致高负载时计算性能波动不稳定,有可用性SLA保证,但无性能…

【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)

一,VMware下载地址: 百度网盘链接链接:百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https:/…

【开发篇】十六、SpringBoot整合JavaMail实现发邮件

文章目录 0、相关协议1、SpringBoot整合JavaMail2、发送简单邮件3、发送复杂邮件 0、相关协议 SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议POP3(Post Office Protocol - Versi…

IPv6协议报文头

IPv6协议概述 IPv6(Internet Protocol Version 6)是网络层协议的第二代标准协议,也被成为IPng(IP Next Generation)。它是Internet工程任务组IETF(Internet Engineering Task Force)设计的一套…

ros2移植Apollo和autoware规控算法可跑工程

工程详细介绍请看: 自动驾驶路径规划控制ros移植Apollo和autoware规控算法可跑工程(适合入门学习,科研和实战) ros2的工程版本说明 之所以增加ros2版本,是因为想增加代码的工程应用性,其实对于科研来说并…

计算机专业毕业设计项目推荐11-博客项目(Go+Vue+Mysql)

博客项目(GoVueMysql) **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及模式&am…

正点原子嵌入式linux驱动开发——U-boot启动流程详解

在上一篇笔记中详细分析了uboot的顶层Makefile,理清了uboot的编译流程。本章来详细的分析一下uboot的启动流程,理清uboot是如何启动的。通过对uboot启动流程的梳理,可以掌握一些外设是在哪里被初始化的,这样当需要修改这些外设驱动…