首先,让我们来看一下传统的Internet网络的基本结构和数据传输情况。
根据传统的网络结构,用户的访问流程基本如下:
1.用户在自己的浏览器中输入要访问的网站的域名;
2.浏览器向本地DNS请求对该域名的解析;
3.本地DNS将请求发到网站授权的DNS服务器;
4.授权DNS将服务器的IP地址作为解析结果送给本地DNS;
5.本地DNS将解析结果返还给用户,同时将该解析结果保存在自己的缓存中,直到相应的TTL(生存周期)过期,才再向网站的授权DNS请求解析;
6.用户在得到IP地址后,向该地址所指向的网站的服务器进行访问;
CDN=更智能的镜像+缓存+流量导流。CDN并不是只能缓存视频内容,它还可以对网站的静态资源(例如各类型图片、html、css、js等)进行分发,对移动应用APP的静态内容(例如安装包apk文件、APP内的图片视频等)进行分发。
如果某个用户想要访问某视频网站的视频点播内容,那么具体的cdn加速原理步骤是:
①、当用户点击APP上的内容,APP会根据URL地址去本地dns(解析系统)寻求IP地址解析。
②、本地DNS系统会将域名的解析权交给CDN专用DNS服务器。
③、CDN专用DNS服务器,将CDN的全局设备IP地址返回用户。
④、用户向CDN的负载均衡设备发起内容URL访问请求。
⑤、CDN负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的缓存服务器。
⑥、负载均衡设备告诉用户这台缓存服务器的IP地址,让用户向所选择的缓存服务器发起请求。
⑦、用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。
⑧、如果这台缓存服务器上并没有用户想要的内容,那么这台缓存服务器就要网站的源服务器请求内容。
⑨、源服务器返回内容给缓存服务器,缓存服务器发给用户,并根据用户自定义的缓存策略,判断要不要把内容缓存到缓存服务器上。
总之,CDN就是采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。
原文:https://www.cnblogs.com/vecloud/p/14469389.html