网站作为企业相关服务与用户的主要交互场地,其承载的内容丰富度,随着用户的需求不断提高,但因为物理线路的限制,源站巨量的资源与远端用户进行传输,必然会出现比较明显的延迟,如果遇到网络高峰期导致的传输阻塞,用户不能及时获取网站资源,就会严重影响到网站体验,这对于企业而言是非常不利的。
CDN加速基础逻辑
针对这样的问题,网络运营者通常会为网站部署CDN加速,利用遍布各地的边缘节点预先缓存源站资源,当用户发出请求时,CDN网络优先分配就近节点提供连接,这样的方式看似简单,但解决了像视频网站等对于资源加载速度极高的需求,其次,由于CDN节点作为用户的直接访问服务器,将源站IP隐藏起来,黑客也就难以探寻到源站IP地址,CDN节点在网站的安全性上也提供了一层安全防护。
但基于原理限制,我们必须要清楚网站除了预先准备好的如jpg、png、gif图片资源,以及js、css、html网站基础资源外,像用户登录、数据库取用等网站行为都会涉及动态资源的加载,这些资源无法预先缓存至边缘服务器,CDN的静态加速逻辑也就不再适用,那么针对这些动态资源,我们会如何处理呢?
CDN的动态加速能力
显然,这些动态资源无论如何都必须从源站才能获取,我们无法缩短用户与资源的距离,那就必须通过传输优化,不断对整体的传输速度进行提升。
一般而言,用户请求耗费的时间=用户和边缘交互的时间+边缘等待的时间,边缘等待时间由于已经利用最近节点,所以可优化空间有限,那我们就必须对边缘节点与源站之间的传输效率下好功夫:
1、动态路由探测
我们可以利用CDN网络中的专用路线,通过CDN节点间进行最优路径探测,自动找寻到一条边缘服务器连接源站的“捷径”,相比起直接走公用网络,专用VIP路线下动态资源将得到最大化的回源速度优化,整体可提速10到100倍。
2、传输协议优化
资源回源过程需经过多个路由,因此我们需要通过传输协议优化对动态路由线路的进一步打磨。
边缘服务器与用户通过公网连接,其带宽有限,而CDN节点间的专用线路带宽非常充足,我们只需要通过传输优化将节点间传输效率大于边缘服务器到用户,那么动态资源在源站到边缘服务的传输就彻底无感化,影响用户的访问速度就只取决于用户到边缘服务器的效率了。
这两大技术已经完成了动态资源加速的大部分优化任务,但其实还有众多技术包含在其中:
1、动态数据可通过压缩来减少传输时间。
2、服务器可预知用户动作,提前进行资源的加载。
3、部分动态资源也可以短时进行预缓存。
显然CDN在任何资源的加速当中都起到了不可磨灭的作用,而随着网站进一步扩充,全站动静态资源加速必然会提上任何一家企业的网站建设日程。