上网或者追剧的时候有没有遇到过这种问题?有些网站打开很快,有些网站却很慢。明明我家宽带速度挺快的,但有些网站视频仍然卡转圈。
先简单算一个账,比如有些很火的网剧在视频app 可能有一千万人同时在观影,720P清晰度的视频理论上需要两兆的带宽。如果是1080 p 的则需要四兆带宽。假设1080p 的视频同时有一千万人在观影,需要总带宽就是4兆乘以一千万等于4千万兆,这约等于40T。这个带宽即便对于一些大型的视频网站也是压力山大。
再看硬件层面,普通电脑的网卡带宽一般是1G,而服务器常用的万兆网卡,带宽性能会更强。但即便某视频网站有一台性能超强的服务器,要支撑1000 万人同时流畅观看 1080P 视频,也得给这台服务器装上 4000 块万兆网卡,而且每一块都得全程跑满性能才行。更关键的是,从服务器到用户设备的整个网络传输过程,必须零差错、零波动,只要中间出一点问题,用户屏幕上的视频就会立刻转圈或者甚至卡成马赛克。
这时候,CDN的产生就解决了这些问题。cdn是什么?其实并不不复杂,通过在全国甚至全球部署“服务器节点”,如果用户要访问的内容离源服务器太远,导致传输延迟高,那就在靠近用户的地方搭建缓存服务器,把源服务器上的内容复制一份存到这里。为了进一步提升用户体验,CDN 还会把这些缓存服务器部署在用户访问量集中的区域或网络节点上。当用户要访问网站内容时,CDN 系统会自动把用户的访问请求导向距离最近的缓存服务器,再由这台缓存服务器直接向用户提供内容服务。
当用户访问网站内容时,将用户的访问指向距离最近的缓存服务器,由缓存服务器向用户提供服务。其实原理和咱们熟悉的“快递分仓”一模一样:以前快递都是从一个总仓发货,比如从杭州发往东北,得等3-5天;现在电商平台在东北、华北、华南建了很多区域仓,提前把货存进去,用户下单后,直接从最近的仓库发货,隔天就能收到。
这时候我们来模拟用户访问网站,看在没有cdn的情况下,会是什么流程,
在介绍这个流程之前,我们先来了解一下DNS这个概念,它是互联网通信中的域名解析系统,简单来说,就是一个翻译官,比如我们平常用的百度,对应的域名是www.baidu.com,但电脑只认IP 地址(比如百度某台服务器 IP 可能是 180.101.50.242,不同地区、时间可能会变),DNS 的活儿就是把 “www.baidu.com” 翻译成这样的 IP,不然电脑根本不知道该找哪个服务器。
它的职责就是将网址中的域名翻译成对应的IP 地址,以便用户和网站进行通信。
当你在浏览器里输入www.baidu.com并回车,或者点了百度的链接,第一步,浏览器会先去找 “本地 DNS 服务器”,问它 “www.baidu.com对应的 IP 是多少?”。这个本地 DNS 在哪呢?DNS 一般是电脑上网时,网络设置中填写的 DNS,可能是手工指定的,或者是 DHCP 自动分配的。如果电脑是拨号直接连接运营商网络,默认情况下 DNS 是运营商的服务器地址。
如果家用的是无线或者是有线路由器联网,路由器会内置一个DNS 转发器,它的作用是将收到的 DNS 请求转发到上层 DNS。路由器本身也提供 DNS 服务,它给下面计算机的 DNS 地址就是它自己的 IP 地址,所以看到的 DNS 和网关的地址可能是一样的。
在本地DNS 服务器中,如果找到了这个域名的解析结果,就可以直接响应用户的请求。如果在本地 DNS 服务器中没有找到解析结果,则向整个网络 DNS 系统中请求解析,得到结果后反馈给用户。
用户拿到域名解析结果,就是相应的内容服务器IP 地址,用户就可以向服务器请求内容了。这个过程看起来挺简单,就是把网址中的域名翻译成对应的 IP 地址,然后直接向内容源服务器获取内容。
如果用户太多问题也就随即产生了,内容源服务器可能就直接被压爆了,也有可能用户和源服务器之间的网络特别差,不管怎么样,反正用户的体验就是很不爽。如果网站接入CDN,用户的体验就会得到大幅度的提升!
当用户点击网站内容触发访问请求时,浏览器首先会向本地DNS 服务器发起域名解析请求,核心目标是获取该网址对应的 IP 地址,为后续通信铺路。
若本地DNS 服务器的缓存中没有该域名的有效解析记录,它会将解析请求转发至CDN 专用 DNS 服务器,CDN 专用 DNS 服务器接收到解析请求后,将CDN 全局负载均衡设备的IP 地址返回给用户浏览器。紧接着,用户浏览器便会向这台 CDN 全局负载均衡设备发起正式的内容访问请求。
CDN 全局负载均衡作为 "智能调度核心",会综合多维度关键信息进行决策:一是基于用户 IP 地址定位其地理位置;二是识别用户请求的内容 URL;三是实时监测 CDN 分布式节点集群的状态,包括各边缘缓存服务器的负载压力、网络延迟、带宽占用情况以及目标内容的缓存命中状态等。基于这些信息,会筛选出 "距离用户最近、服务能力最优" 的边缘缓存服务器,并将其 IP 地址返回给用户浏览器,指引用户向该服务器发起资源请求。
如果缓存服务器上没有想要的内容,这台缓存服务器将向源服务器请求内容。源服务器将内容发给缓存服务器,由缓存服务器负责发给用户。缓存服务器根据预定的策略判断是否要把内容缓存下来,以便下次使用。
CDN 好处是显而易见的:第一,大幅缩短了用户与内容之间的物理距离,显著降低网络延迟,减少你的等待时间,让内容加载速度倍增;第二,源服务器的真实 IP 被 CDN 隐藏了起来,外界无法直接访问,这就大大降低了源服务器遭遇恶意攻击的风险;第三,CDN 的分布式架构自带高可用性,如果某一台边缘服务器出现故障,负载均衡系统会自动切换到邻近的正常服务器,完全不会影响你的访问。
从资源利用角度看,CDN 本质上是 “用存储换带宽”—— 通过在边缘节点缓存内容,减少了源服务器和骨干网的重复传输压力,不仅能避免企业频繁为源服务器做硬件扩容,降低网络建设成本;对云厂商来说,能减少因延迟过高导致的用户流失;而咱们普通用户,最直接的感受就是上网体验的全方位提升。
今天的科普就到这里!觉得有用的话,点赞+收藏,我们将带你拆更多CDN技术原理~

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、微信小程序定制开发、移动端应用(手机站、APP开发)、微信定制开发(微信官网、微信商城、企业微信)等一系列互联网应用服务。
公安局备案号:
