• CDN:基础知识


    参考:《CDN技术详解》

    概述

    在互联网商业化不久,由于缺乏必要的流量管理和疏通手段,骨干带宽被迅速消耗掉,IP网络流量秩序濒于失衡。为解决这一难题,麻省理工学院的一批顶级科学家提出了CDN解决方案,从此以后,CDN就成为互联网的基础设施,伴随着互联网的潮起潮落而发展。

    CDN(Content Distribute Network,内容分发网络)将内容推到网络的边缘,为用户提供就近性的边缘服务,从而保证服务的质量和整个网络上的访问秩序,解决了困扰内容提供商的内容“集中与分散”的两难选择,极大缓解了内容传送瓶颈。CDN的发展促使整个互联网产业进一步分工合作,使网站和应用开发者们能够更关注于上层应用。

    产生背景

    1995年,麻省理工学院教授,互联网发明者Tim Berners-Lee预见到当时互联网使用者已经习以为常的网络拥挤难题,未来会成为互联网应用的最大障碍。于是他向同事提出挑战,要发明一种全新的、从根本上解决问题的方法来推送互联网内容。他的这一提议造就了今天被大家普遍接受的互联网基础服务——CDN。

    CDN的基本工作过程

    用户通过浏览器等方式访问网站的过程

    • ①用户在自己的浏览器中输入要访问的网站域名。
    • ②浏览器向本地DNS服务器请求对该域名的解析。
    • ③本地DNS服务器中如果缓存有这个域名的解析结果,则直接响应用户的解析请求。
    • ④本地DNS服务器中如果没有关于这个域名的解析结果的缓存,则以递归方式向整个DNS系统请求解析,获得应答后将结果反馈给浏览器。
    • ⑤浏览器得到域名解析结果,就是该域名相应的服务设备的IP地址。
    • ⑥浏览器向服务器请求内容。
    • ⑦服务器将用户请求内容传送给浏览器。

    CDN用户访问调度流程

    • ①当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
    • ②CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
    • ③用户向CDN的全局负载均衡设备发起内容URL访问请求。
    • ④CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
    • ⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
    • ⑥全局负载均衡设备把服务器的IP地址返回给用户。
    • ⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

    DNS服务器根据用户IP地址,将域名解析成相应节点的缓存服务器IP地址,实现用户就近访问。使用CDN服务的网站,只需将其域名解析权交给CDN的GSLB设备,将需要分发的内容注入CDN,就可以实现内容加速了。

    架构

    典型的CDN系统架构由分发服务系统、负载均衡系统和运营管理系统三大部分组成。

    分发服务系统

    该系统的主要作用是实现将内容从内容源中心向边缘的推送和存储,承担实际的内容数据流的全网分发工作和面向最终用户的数据请求服务。

    分发服务系统最基本的工作单元就是许许多多的Cache设备(缓存服务器),Cache负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用户。同时Cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存在本地。

    负载均衡系统

    负载均衡系统是一个CDN系统的神经中枢,主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。

    大多数CDN系统的负载均衡系统是分级实现的。一般而言,两级调度体系分为全局负载均衡(GSLB)和本地负载均衡(SLB)。

    其中,全局负载均衡(GSLB)主要根据用户就近性原则,通过对每个服务节点进行“最优”判断,确定向用户提供服务的Cache的物理位置。

    本地负载均衡(SLB)主要负责节点内部的设备负载均衡,当用户请求从GSLB调度到SLB时,SLB会根据节点内各Cache设备的实际能力或内容分布等因素对用户进行重定向,常用的本地负载均衡方法有基于4层调度、基于7层调度、链路负载调度等。

    运营管理系统

    运营管理系统是CDN系统的业务管理功能实体,负责处理业务层面的与外界系统交互所必需的一些收集、整理、交付工作,包含客户管理、产品管理、计费管理、统计分析等功能。

    分类

    基于不同内容承载类型的分类

    从CDN承载的内容类型来看,主要有静态网页内容、动态网页内容、流媒体、下载型文件和应用协议,因而我们将CDN服务分为网页加速、流媒体加速、文件传输加速和应用协议加速。

    基于内容生成机制的分类和分层加速服务

    从内容的生成机制来看,互联网上的内容主要有两类:一是静态内容,二是动态内容。

  • 相关阅读:
    java spring boot 跳转
    了解什么是 redis 的雪崩、穿透和击穿
    小白学k8s(12)-k8s中PV和PVC理解
    小白学k8s(11)-k8s中Secret理解
    小白学k8s(10)-k8s中ConfigMap理解
    小白学k8s(9)-gitlab-runner实现go项目的自动化发布
    小白学k8s(8)-Bazel部署go应用
    记go中一次http超时引发的事故
    小白学k8s(7)helm[v3]使用了解
    小白学k8s(6)使用kubespray部署k8s
  • 原文地址:https://www.cnblogs.com/Rohn/p/13500064.html
Copyright © 2020-2023  润新知