计算机网络学习(九)——CDN
一、CDN
CDN(Content Delivery Network,内容分发网络)是一种通过分布式节点将内容更高效地传递给用户的技术架构,广泛应用于加速网站、视频、下载、直播等业务。
CDN 是把内容放到离用户最近的“高速公路入口”,提升访问体验、减轻源站压力,是现代互联网基础设施的关键一环。
特点:
优势 | 说明 |
---|---|
⚡ 加速访问 | 靠近用户节点响应,减少 RTT (往返时延)与网络跳数 |
🔒 安全防护 | 可提供抗 DDoS 、WAF 、防盗链、限速等安全功能 |
🌍 全球覆盖 | 为海外用户加速访问国内内容,或反之 |
📉 降低源站压力 | 大量请求由边缘节点处理,源站负载降低 |
⏳ 提高可用性 | 多节点容灾切换,不易宕机影响整体服务 |
💰 节省带宽成本 | 内容分发在节点完成,主站带宽需求减少 |
二、CDN 的工作原理
CDN 在全球部署了大量的缓存服务器(边缘节点),用户访问内容时,不直接请求源站,而是由最近的 CDN 边缘节点响应请求。
下面是用户访问 CDN 内容时的基本流程:
-
用户发起请求:
- 比如访问
https://example.com/image.jpg
- 比如访问
-
DNS 重定向至 CDN 节点:
- 用户请求首先经过 DNS 查询;
- CDN 网络通过智能 DNS 或 Anycast 技术将请求定向到最合适的边缘节点(通常是最近的)。
-
CDN 边缘节点处理请求:
-
如果该节点已有缓存内容(命中缓存)→ 直接响应用户;
-
如果无缓存(未命中缓存):
- 向上级节点或源站请求原始内容
- 获取后缓存内容,并将其返回给用户
-
-
用户获取内容:
- 内容传输可能使用 HTTP/HTTPS、QUIC、HTTP/2、TLS 等协议加速。
三、CDN 的结构图示
┌──────────────┐│ 源站服务器 │└─────┬────────┘│┌────────────────┼─────────────────┐↓ ↓┌──────────────┐ ┌────────────────┐│ CDN 边缘节点1 │ ←←← DNS →→→ │ CDN 边缘节点2 │└──────┬───────┘ └────────┬───────┘│ │用户 A 用户 B
(访问最近节点) (访问最近节点)
四、CDN 的关键技术
组件 | 说明 |
---|---|
边缘节点缓存 | 缓存 HTML 、JS 、CSS 、图片、音视频、文件等静态内容 |
智能调度系统 | 根据 IP 、DNS 、BGP 、地域等,选择最近、最优的节点响应用户 |
回源机制 | 节点无内容时请求源站,支持防盗链、带签名回源等 |
负载均衡 | 节点内部或节点间自动分担流量,防止过载 |
HTTPS 支持 | 支持 SSL/TLS 加密传输,支持 SNI 、多证书等 |
访问日志分析 | 实时采集、分析访问数据,辅助优化内容和结构 |
五、CDN 的加速策略
策略 | 说明 |
---|---|
内容缓存 | 将静态和动态内容存储在边缘节点,减少对源服务器的请求,显著加快内容加载速度 |
负载均衡 | 将用户请求分配到最优的边缘节点,优化请求分发,减少响应时间 |
路由优化 | 通过选择最短传输路径和使用 Anycast 技术,减少网络跳数和延迟 |
协议优化 | 采用 HTTP/2 和 HTTP/3 等现代协议,提高传输效率,减少连接时间和队头阻塞 |
压缩技术 | 通过压缩内容和优化图像格式,减小数据量,提升加载速度 |
安全加速 | 提供 DDoS 防护、WAF 和 SSL/TLS 加速,增强网站安全性并加速内容传输 |
六、应用场景
场景 | 说明 |
---|---|
静态网站加速 | HTML、图片、CSS、JS 加速 |
视频/音频分发 | 点播、直播内容加速 |
大文件下载 | 游戏更新包、安装包分发 |
电商秒杀活动 | 缓存热点商品详情页,缓解高并发冲击 |
海外访问加速 | 为跨境电商或海外用户提供低延迟服务 |
API 加速 | 对一些幂等型接口进行边缘缓存,提高响应速度 |
相关文章:
计算机网络学习(九)——CDN
一、CDN CDN(Content Delivery Network,内容分发网络)是一种通过分布式节点将内容更高效地传递给用户的技术架构,广泛应用于加速网站、视频、下载、直播等业务。 CDN 是把内容放到离用户最近的“高速公路入口”,提升访…...

Axure设计案例——科技感渐变线性图
想让数据变化趋势展示告别枯燥乏味,成为吸引观众目光的亮点吗?快来看看这个Axure设计的科技感渐变线性图案例!科技感设计风格凭借炫酷的渐变色彩打破传统线性图的单调,营造出一种令人过目难忘的视觉体验。每一条线条都仿佛是流动的…...

【Opencv+Yolo】Day2_图像处理
目录 一、图像梯度计算 图像梯度-sobal算子: Scharr:权重变化更大(线条更加丰富,比Sobel更加细致捕捉更多梯度信息) Laplacian算子:对噪音点敏感(可以和其他一起结合使用) 二、边…...
嵌入式开发学习(第二阶段 C语言笔记)
内存操作 我们对于内存操作需要依赖于string.h头文件中相关的函数库。 内存操作函数 内存填充 头文件:#include <string.h> 函数原型: void* memset(void *s,int c,size_t n)函数功能:将内存块s的前n个字节填充为c,一般…...

STUSB4500 PPS(PD3.0)快充SINK模块——应用 解析
0 前言 朋友参加车展,收获一枚很漂亮的倍思65W氮化镓快充头,送给我了。 我看了手中只支持33W快充的三星陷入了沉思… 快充头支持PPS协议,我心思这玩意适合做可调电源啊! 上网随便一查没查到,都是转换成5V、9V、12V等…...
Android全局网络监控最佳实践(Kotlin实现)
本文将介绍如何在Android应用中实现全局网络状态监控,适配高版本API,并提供完整的Kotlin实现方案。 一、核心实现方案 1. 网络监控核心类 SuppressLint("MissingPermission") class NetworkMonitor private constructor(private val contex…...
从认识AI开始-----解密门控循环单元(GRU):对LSTM的再优化
前言 在此之前,我已经详细介绍了RNN和LSTM,RNN虽然在处理序列数据中发挥了重要的作用,但它在实际使用中存在长期依赖问题,处理不了长序列,因为RNN对信息的保存只依赖一个隐藏状态,当序列过长,隐…...

Docker系列(五):ROS容器化三叉戟 --- 从X11、Wayland到DockerFile实战全解析
引言 随着机器人操作系统(ROS)在机器人领域的广泛应用,容器化技术成为提高开发效率和简化部署的关键。在多种容器化方案中,基于X11、Wayland和标准Dockerfile的ROS容器化方式各有特点,它们在容器内安装ROS1和ROS2的实…...

【位运算】常见位运算总结
位运算 常见位运算总结位1的个数比特位计数汉明距离只出现一次的数字只出现一次的数字 III 常见位运算总结 位1的个数 191. 位1的个数 给定一个正整数 n,编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数(也被…...
Delphi 导入excel
Delphi导入Excel的常见方法可分为两种主流方案:基于OLE自动化操作Excel原生接口和利用第三方组件库。以下为具体实现流程及注意事项: 一、OLE自动化方案(推荐基础场景) 该方法通过COM接口调用本地安装的Excel程序,…...

5G RedCap是什么-与标准5G的区别及支持路由器推荐
技术背景与重要性 从智能穿戴到工业传感器,物联网设备种类繁多,但并非所有设备都需要标准5G的全部功能。为满足这些中端应用的需求,3GPP在Release 17中引入了5G RedCap(Reduced Capability),也称为5G NR-L…...

纯html,js创建一个类似excel的表格
后台是php,表中数据可编辑,可删除,可提交到数据库 <!DOCTYPE html> <html> <head><meta charset="utf-8"><style>body {font-family: Arial, sans-serif;margin: 20px;background-color: #fff;}.toolbar {margin-bottom: 10px;disp…...

如何使用windows下的vscode连接到本地虚拟机的linux
1.打开windows下的vscode 下载下图所示插件 下载完以后打开首选项选择设置搜索ssh 搜索ssh往下滑对下图打上勾 点击下图或者按ctrl shift P 搜索ssh 选择第一个,双击后 进入这个界面 好的window基本配置差不多 2.打开虚拟机 在终端中输入 sudo apt-get install…...

Vue开发系列——零基础HTML引入 Vue.js 实现页面之间传参
目录 一、实现页面之间传参 二、使用 URL 查询参数实现传参(不需要额外引入vue-router) 一、实现页面之间传参 实现从a.html 向b.html传参param1value1, param2value2 二、使用 URL 查询参数实现传参(不需要额外引入vue-router) a.html页面 a.html代码: <!…...

Ubuntu22.04 重装后,串口无响应
欢迎关注公号:每日早参,获取每日最新资讯! 1:确认串口设备文件是否存在 在Ubuntu中,串口通常会映射为以下两种 /dev/ttyS*(对于传统的串口) /fragistics/dev/ttyUSB*(对于USB转串口…...

设计模式-发布订阅
文章目录 发布订阅概念发布订阅 vs 监听者例子代码 发布订阅概念 发布/订阅者模式最大的特点就是实现了松耦合,也就是说你可以让发布者发布消息、订阅者接受消息,而不是寻找一种方式把两个分离 的系统连接在一起。当然这种松耦合也是发布/订阅者模式最大…...
C#学习26天:内存优化的几种方法
1.减少对象创建 使用场景: 在循环或密集计算中频繁创建对象时。涉及大量短生命周期对象的场景,比如日志记录或字符串拼接。游戏开发中,需要频繁更新对象状态时。 说明: 重用对象可以降低内存分配和垃圾回收的开销。使用对象池…...
功能测试向量是个什么概念
在半导体测试领域,功能测试向量(Functional Test Vector) 是一个非常重要的概念。以下是对其的详细解释: 1. 什么是功能测试向量? 功能测试向量是一组输入信号和预期输出信号的集合,用于验证芯片的功能是否…...

C++之string的模拟实现
string 手写C字符串类类的基本结构与成员变量一、构造函数与析构函数二、赋值运算符重载三、迭代器支持四、内存管理与扩容机制五、字符串操作函数六、运算符重载总结 手写C字符串类 从零实现一个简易版std::string 类的基本结构与成员变量 namespace zzh { class string { …...

Python打卡第38天
浙大疏锦行 作业: 了解下cifar数据集,尝试获取其中一张图片 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具 from torchvision im…...
【网络安全】轻量敏感路径扫描工具
订阅专栏,获取文末项目源码。 文章目录 工具简介工具特点项目结构使用方法1.环境准备2.配置目标URL3.运行扫描4.结果查看5.自定义扩展项目源码工具简介 该工具是一款基于Python的异步敏感路径扫描工具,用于检测目标网站是否存在敏感文件或路径泄露(如配置文件、密钥、版本控…...
K8S查看pod资源占用和物理机器IP对应关系
方法1:使用管道组合多个grep kubectl describe node | grep -E "Resource|InternalIP" -A 3方法2:显示节点名称和IP地址的对应关系 kubectl describe node | grep -E "Name:|InternalIP:"方法3:更清晰的格式化输出 ku…...
Java Spring 之拦截器HandlerInterceptor详解与实战
目录 一、拦截器的作用1.1 请求处理前的拦截1.2 请求处理后的拦截1.3 请求完成后的拦截 二、创建拦截器2.1 实现 HandlerInterceptor 接口2.2 注册拦截器 三、拦截器的使用场景3.1 权限校验3.2 日志记录3.3 性能监控 四、总结 在 Spring 框架中,拦截器( …...

开源第三方库发展现状
摘要:当前,开源第三方库生态正呈现爆发式增长趋势。GitHub 目前已托管超过 4.2 亿个代码仓库,远超早期统计的 1 亿规模,显示出开发者社区的活跃度持续攀升。同时,37 个主流包管理器所维护的开源组件数量可能已达到数千…...

JavaSE核心知识点04工具04-02(IDEA)
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 JavaSE核心知识点04工具04-02(ID…...

NodeMediaEdge通道管理
NodeMediaEdge任务管理 简介 NodeMediaEdge是一款部署在监控摄像机网络前端中,拉取Onvif或者rtsp/rtmp/http视频流并使用rtmp/kmp推送到公网流媒体服务器的工具。 在未使用NodeMediaServer的情况下,或者对部分视频流需要单独推送的需求,也可…...
25、web场景-【源码分析】-静态资源原理
25、web场景-【源码分析】-静态资源原理 静态资源原理主要涉及Spring Boot如何管理和提供静态文件,如CSS、JavaScript、图片等。以下是详细的分析: #### 默认静态资源目录 Spring Boot默认将以下目录作为静态资源的存放位置: - classpath:/…...
qt结构化绑定的重大缺陷:只能创建局部变量
根据你的描述,问题出现在使用 std::make_tuple 和结构化绑定(structured binding)初始化多个成员变量时。这种初始化方式在C++中是合法的,但可能会导致一些问题,尤其是在类的成员变量初始化中。 问题分析 成员变量初始化顺序: 在C++中,类的成员变量的初始化顺序是按照它…...

历年中南大学计算机保研上机真题
2025中南大学计算机保研上机真题 2024中南大学计算机保研上机真题 2023中南大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school 进制转换 题目描述 请写出一段程序,将十进制数字转为八进制。 输入格式 第一行输入 T T T ( 1 ≤ T ≤…...
端口映射不通的原因有哪些?路由器设置后公网访问本地内网失败分析
本地网络地址通过端口映射出去到公网使用,是较为常用的一种传统方案。然而,很多环境下和很多普通人员在实际使用中,却往往会遇到端口映射不通的问题。端口映射不通的主要原因包括公网IP缺失(更换nat123类似映射工具方案࿰…...