腾讯终面: “你懂CDN吗?详细说说”

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


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


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


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


五层模型


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


网络层:CDN通过智能DNS系统在网络层工作,将用户的请求重定向到最佳的边缘节点,从而减少了数据包需要穿越的网络距离,提高了传输效率。


传输层:。CDN在传输层通过使用像TCP(传输控制协议)这样的协议来确保数据的可靠传输。此外,CDN还涉及到会话的优化,例如通过压缩技术减少传输数据的大小,或者通过会话复用来提高效率。


应用层:CDN在应用层的作用最为明显,因为它直接处理用户请求的内容,如Web页面、图片、视频等。CDN通过缓存这些内容到边缘节点来减少延迟,提高用户访问速度,并提供负载均衡和故障转移能力。


IP-DNS-GSLB


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


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


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


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


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


地理位置:GSLB会根据用户的地理位置信息,选择最近的服务器节点以减少延迟。


服务器健康状态:GSLB会检查各个服务器节点的健康状态,避免将请求分配到故障或性能低下的服务器。


负载情况:GSLB会考虑每个服务器节点的当前负载,将请求分配到负载较轻的服务器以平衡负载。


网络拥塞情况:GSLB会监测网络路径的拥塞情况,选择最佳的路由以避免网络瓶颈。
全部评论
硬控面试官几分钟
13 回复 分享
发布于 09-25 18:33 安徽
m
1 回复 分享
发布于 09-25 21:39 陕西
GSLB怎么接管权威dns服务器的
1 回复 分享
发布于 09-25 23:31 广西
不是通过dns解析到不同的ip地址吗
点赞 回复 分享
发布于 11-13 15:37 湖北

相关推荐

28 84 评论
分享
牛客网
牛客企业服务