首页 > 其他分享 >CDN 底层原理

CDN 底层原理

时间:2024-09-25 09:56:41浏览次数:3  
标签:CDN 网络层 DNS 服务器 原理 GSLB 节点 底层

背景

笔者在近期秋招面试中,遇到了一位比较资深的开发者,他问的就相对于前面几轮面试更偏底层一些,其中聊到了 CDN 的底层原理,就这个问题讨论了很久。

面试官:“你知道 CDN 的是怎么知道找到距离你最近的服务器,然后把资源分配给你的吗?”

其实我在这个时候不太清楚,就凭印象想了一下之前学的东西,半猜半问的回答的:

“是通过一个可以调度距离的服务器来做的?”

面试官说不对,然后我灵机一动,从五层模型的角度聊了一下这个事情:

五层模型

物理层和数据链路层我就不聊了,直接从最核心的网络层开始聊

  1. 网络层:CDN通过智能DNS系统在网络层工作,将用户的请求重定向到最佳的边缘节点,从而减少了数据包需要穿越的网络距离,提高了传输效率。
  2. 传输层:。CDN在传输层通过使用像TCP(传输控制协议)这样的协议来确保数据的可靠传输。此外,CDN还涉及到会话的优化,例如通过压缩技术减少传输数据的大小,或者通过会话复用来提高效率。
  3. 应用层:CDN在应用层的作用最为明显,因为它直接处理用户请求的内容,如Web页面、图片、视频等。CDN通过缓存这些内容到边缘节点来减少延迟,提高用户访问速度,并提供负载均衡和故障转移能力。

IP-DNS-GSLB

通过这一段描述我们可以看到其实 CDN 的核心在于网络层这里,也就是“将用户的请求重定向到最佳的边缘节点”,我们展开聊聊:

我们首先会在网络层进行 DNS 解析,在解析的过程中判断这个域名有没有使用 CDN 服务,如果使用了,我们会有一个 GSLB 系统来处理这个事情,那么这个系统是啥,原理是啥呢?我们举个例子来说:

当用户发起对某个域名的请求时,该请求首先被发送到本地DNS服务器(Local DNS)。本地DNS服务器会向权威DNS服务器查询域名的IP地址。在GSLB的环境下,权威DNS服务器实际上是被GSLB系统所接管,它不再仅仅返回一个静态IP地址,而是根据一系列策略来决定返回哪个IP地址。

(在 GSLB 前面那一段是不是很熟悉?没错,这就是 DNS 解析的过程,在这个过程中做了这个事情。)

我在这里简单列出几个可能的策略:

  1. 地理位置:GSLB会根据用户的地理位置信息,选择最近的服务器节点以减少延迟。
  2. 服务器健康状态:GSLB会检查各个服务器节点的健康状态,避免将请求分配到故障或性能低下的服务器。
  3. 负载情况:GSLB会考虑每个服务器节点的当前负载,将请求分配到负载较轻的服务器以平衡负载。
  4. 网络拥塞情况:GSLB会监测网络路径的拥塞情况,选择最佳的路由以避免网络瓶颈。

Ending

我和面试官聊完五层模型之后还是坚持说应该有一个可以调度的东西,然后面试官看我确实想不出来,就提示我 DNS 相关的东西,我答了和上述类似的一个东西,应该在他那里是算过关了,之前确实没听过.jpg

那么这就是这篇文章的全部内容啦。

标签:CDN,网络层,DNS,服务器,原理,GSLB,节点,底层
From: https://blog.51cto.com/u_16802720/12107180

相关文章

  • 在多态的方法调用中为什么会出现“左边编译左边运行”的现象?多态创建的对象到底是谁属
    目录“左边编译左边运行”的两个原因:什么是“编译看左边,运行看右边”?为什么会出现“左边编译左边运行”现象?1.子类没有重写父类的方法2.重载与重写的混淆(重难点)问题:编译器是怎么看一个方法是重写还是重载的呢?区分方式:查看方法的签名如何避免“左边编译左边运行”的......
  • Cache(高速缓冲存储器)的基本概念和原理
    目录一、Cache基本概述1.Cache :2.局部性原理二、Cache性能分析:一、Cache基本概述CPU的读取指令速度很快,主存的速度很慢,如果快速的CPU每一次都从主存读取数据,会被主存拖累,降低执行效率。Cache:解决主存和CPU速度不匹配问题 1.Cache :   Cache会将CPU经常访问......
  • Map底层源码剖析
    提示:此文章为简略版文章目录前言一、key的类型要求二、读与写2.1读2.2写2.3删除2.4遍历三、并发冲突四、核心逻辑4.1哈希存储4.2哈希冲突4.3go中拉链法解决hash冲突五、数据结构5.1hmap5.2bmap前言桶数组(可以理解为数组内存地址是连续的)链表(内......
  • Qcom底层WIFI驱动简介(一)
    前言前面以一些基本的WIFI操作为例子,讲解了上层的一些流程调用,这篇开始讲讲底层驱动的一些基本流程。包括驱动是如何初始化的,以及STR相关的驱动处理等。一、CNSS2驱动简介先从串口看一下编译出来的模块,在/vendor_dlkm/lib/modules路径下,可以看到以下相关ko模块:-rw-r--......
  • 详解机器学习经典模型(原理及应用)——KNN
    一、什么是KNN        K最近邻(K-NearestNeighbors,KNN)是一种简单而强大的机器学习算法,它基于一个基本的假设:相似的样本通常在特征空间中彼此接近。KNN算法通过查找一个样本的最近K个邻居来预测该样本的类别或属性。二、KNN算法流程        KNN没有显式的训......
  • 浏览器进程模型大揭秘:从原理到实践
    浏览器的进程模型何为进程?程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程。每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。何为线程?有了进程后,就可以运行程序的代码了。运行代码的「人」称之为「线程」。一个进程至少有一个线程,所以......
  • 回拨系统的防封原理是什么,高效通信背后有哪些技术魔法
    相信电销企业朋友们对回拨系统都不陌生,我们常常都听到回拨系统,那么他的防封原理是什么呢?今天一起和小编揭晓吧!!!一、回拨系统的概述:介绍回拨系统的定义,它是一种将主叫变为被叫的通信系统,在电话销售等领域广泛应用。二、回拨系统的工作原理(一)申请与响应:电话销售人员发出申请,系......
  • FMC子卡设计原理图:FMC-706 4通道250M/16bit ADC+4通道2800M/16bit DAC
    FMC子卡设计原理框图FMC-706模块可用于多通道的采集回放。ADC支持国产CL3669或进口ADS42LB69采集芯片,DAC支持国产GM9154或进口AD9144、AD9154芯片,输入和输出均为交流耦合方式。FMC子卡还支持外参考/外时钟、外触发接口,具有板载温度监控等功能主要技术参数:1)ADC:具有优异的性能......
  • kafka集群架构与原理
    前言    这次我们从消息队列开始讨论。生产者-消费者模型中间需要一个消息队列,以存储生产者的产品。对传统的消息队列来说,它支持点对点(P2P)和发布/订阅(Pub/Sub)两种消息模型。在点对点模型中,消息被发送到一个队列,并且只有一个消费者可以消费该消息。在发布/订阅模型中,消......
  • 深入探索CMake的跨平台构建机制:原理与实现
    深入探索CMake的跨平台构建机制:原理与实现CMake的跨平台能力是基于其能够根据不同环境生成对应的本地构建系统的设计原理。这个能力不仅简化了构建过程,还提高了项目的可移植性和灵活性。下面详细解释CMake如何实现跨平台构建支持:1.平台独立的构建配置CMake的核心功......