关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

详解cdn加速原理

发布时间:2019-07-04 11:43:10

    周六晚上七点多,我正在看书,女朋友跑过来问我她的ipad去哪了。她很匆忙。

    

    她拿到ipad后,就不跟我说话了。不过作为一个程序员,我还是很好奇虎牙能不能处理这么大的流量。哈哈哈。于是我去看了一下,结果看到了下面的一幕:

    

    但现场直播似乎并没有运行得很慢,我不禁说:

    

    据了解,2018年1月,阿里云为虎牙提供边缘节点服务(ens)。基于阿里云ens,轻松将业务模块放在边缘,实现主播推流时转码分发到最近节点,支持高并发实时弹幕的边缘分发。在获得低网络时延的同时,减轻了中心的压力,节约了中心30%以上的带宽成本,实现了边缘节点的网络连接时延小于5ms,提高了主播的上行质量、用户成功连接比例等指标,有效提升了用户观看体验。ens中最重要的技术是cdn。

    

    直播终于结束了,女朋友终于跑过来问我cdn是什么…

    

    什么是cdn?

    

    cdn的全称是content delivery network,即内容分发网络。

    

    我们都用过天猫超市,在上面买东西很方便。天猫超市的模式是,商品先进入天猫超市的菜鸟仓(以下简称“猫超”),然后由猫超统一配送。

    

    为了缩短物流时间,让消费者快速收货,菜鸟在全国各地都建了本地仓。现在大部分情况下猫下单第二天就能收到(楼主在江浙沪邮区,其他地区可能会有轻微延迟)。

    

    比如我在杭州西湖区下了一盒零食的订单,没多久就看到猫超市已经发货了。收货地址是杭州萧山仓库,从杭州一个区运到另一个区需要24小时。

    

    超级猫配送采用智能仓配送模式。菜鸟为中国天猫超市提供智能仓配,在商品售出前,已经来到离消费者最近的仓储基地。下单后从最近的仓库发货,就近送达,速度比跑很多省市快很多。

    

    我们可以在菜鸟网的官网上看到它在全国各地仓库的情况。我们可以看到它目前覆盖了中国20个省,70个城市,共有327个仓库。这些仓库合起来称为“全国仓库网络”。

    

    图:菜鸟全国仓配网

    

    当我们浏览互联网的时候,其实和上面的过程很像。当我们访问一个页面时,会向服务器请求大量的网络资源,包括各种图片、声音、电影、文字等信息。这和我们想买的很多种类的商品是一样的。

    

    就像猫超把商品提前存放在菜鸟在全国各地搭建的本地仓库中,以减少物流时间一样,网站也可以把内容提前分发到全国各地的加速节点。这样用户就可以就近获取所需内容,避免了网络拥塞、地域、运营商等因素造成的访问延迟,有效提高了下载速度,减少了响应时间,提供了流畅的用户体验。

    

    所以“内容分发网”和前面提到的“全国仓库分发网”一样,解决了分发、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播。用户可以就近获取所需内容,解决互联网网络拥堵,提高用户访问网站的响应速度和成功率。

    

    有了仓储配送网络,除了提高商品配送效率,还有很多其他好处:

    

    1.首先,提前配送商品,这样从最终商品送达消费者手中的过程相对较短。那么同城内的配送公司就有很多选择了。除了规模较大的四通一达、顺丰之外,选择一些小的物流公司甚至菜鸟直接调用饿了么蜂鸟进行配送也不是没有可能。

    

    Cdn技术消除了不同运营商之间互联瓶颈带来的影响,实现了跨运营商的网络加速,保证了不同网络的用户都能获得良好的接入质量。

    

    2.对于仓库配送系统来说,最大的灾难可能是仓库的火灾、洪水等自然灾害。如果把原来集中式的大仓库分散成几个分布式的小仓库,部署在不同的区域,可以有效降低自然灾害的影响。

    

    广泛分布的cdn节点和节点间的智能冗余机制,可以有效防止黑客入侵,降低各种ddos攻击对网站的影响,同时保证更好的服务质量。

    

    cdn的基本工作流程

    

    快递企业采用的传统投递模式是通过“商家→网点→配送→配送→网点→客户”这一环节。这个过程中会出现一些问题,比如环节多,老化慢,容易破损。

    

    上述过程类似于传统网站的请求响应过程,一般会经历以下步骤:

    

    在用户浏览器中输入要访问的网站的域名。

    

    浏览器请求本地dns服务器解析域名。

    

    如果该域名的解析结果缓存在本地dns服务器,会直接响应用户的解析请求。

    

    如果本地dns服务器中没有该域名的解析结果的缓存,它会以迭代的方式向整个dns系统请求解析,收到响应后将结果反馈给浏览器。

    

    浏览器获得的域名解析结果是域名对应的服务设备的ip地址。

    

    浏览器获得ip地址后,通过标准的tcp握手过程建立tcp连接。

    

    向浏览器服务器发起Http请求。

    

    将服务器用户请求内容发送到浏览器。

    

    经历标准的tcp波动过程并断开tcp连接。

    

    电商自建物流后,配送模式发生了变化:提前备货将不同的零件转化为同城相同的零件,省去了干线环节提高时效,仓储自动化分拣程度高保证了货物的快速送达和分拣破损率低。

    

    对于用户来说,购物流程没变,唯一的感受就是物流好像比以前快了。因此,引入cdn后,用户在访问网站时一般会经历以下步骤:

    

    当用户点击网站页面上的内容URL时,它首先被本地dns系统解析。如果本地dns服务器没有对应域名的缓存,本地dns系统会将域名解析权交给cnAme指向的cdn专用dns服务器。

    

    cdn的dns服务器将cdn的全局负载均衡设备的ip地址返回给用户。

    

    向用户cdn的全局负载均衡设备发起URL访问请求。

    

    cdn全局负载均衡设备根据用户的ip地址和用户请求的URL,在用户所在区域选择一个区域负载均衡设备,并将请求转发给这个设备。

    

    基于以下条件综合分析后,区域负载均衡设备将选择一个最优的缓存服务器节点,从缓存服务器节点获取缓存服务器的ip地址,最后将ip地址返回给全局负载均衡设备:

    

    根据用户ip地址,判断哪个边缘节点离用户最近;

    

    根据用户请求的URL中携带的内容名称,判断哪个边缘节点有用户请求的内容;

    

    查询每个边缘节点的当前负载,判断哪个边缘节点还有服务能力。

    

    全局负载均衡设备将服务器的ip地址返回给用户。

    

    向用户缓存服务器发起请求,缓存服务器响应用户请求,将用户需要的内容发送给用户终端。如果在这个缓存服务器上没有用户想要的内容,而区域均衡设备仍然将它分发给用户,那么这个服务器将从它的上层缓存服务器请求内容,直到追溯到网站的源服务器在本地拉取内容。

    

    图:华为云站加速示意图

    

    全局cdn负载均衡设备和cdn区域负载均衡设备根据用户的ip地址,将域名解析为相应节点中缓存服务器的ip地址,以便用户就近访问,从而提高服务器的响应速度。

    

    cdn的组成

    

    我们前面说过,一个仓库分销网络是由多个仓库组成的。类似地,内容分发网络(cdn)由多个节点组成。一般来说,cdn网络主要由中心节点和边缘节点组成。

    

    下载加速场景图

    

    中央节点

    

    该节点包括cdn网络管理中心和全局负载均衡dns重定向和解析系统,负责整个cdn网络的分发和管理。

    

    边缘节点

    

    Cdn边缘节点主要指异地分发节点,由负载均衡设备和缓存服务器组成。

    

    负载均衡装置负责各个节点中各个缓存的负载均衡,保证节点的工作效率;同时还负责收集节点和周围环境的信息,维护与全局负载均衡dns的通信,实现整个系统的负载均衡。

    

    缓存服务器负责存储客户网站的大量信息,就像一个贴近用户的网站服务器,响应本地用户的访问请求。通过全局负载均衡dns的控制,将用户的请求透明地定向到最近的节点,节点中的缓存服务器就像网站的原服务器一样响应最终用户的请求。因为更贴近用户,所以它的响应时间更快。

    

    中心节点就像仓库配送网络中的总仓,边缘节点则是各个城市负责存储货物的本地仓库。

    

    目前很多提供cdn服务的云厂商已经在各地部署了很多cdn节点。以阿里云为例,从阿里云官网可以了解到,阿里云在全球有2500+个节点。中国大陆拥有2000+节点,覆盖34个省级区域,大量节点位于省会等一线城市。海外港澳台500+节点,覆盖70多个国家和地区。

    

    图:阿里云在中国大陆的cdn节点分布

    

    以阿里云在中国大陆的cdn节点分布如上图(这是不是也很像我们之前看到的菜鸟网络的全国仓网),当杭州的电信网络用户访问一个部署在阿里云上的网站时,所获得的一些资源,比如某一张图片、某一段视频或者页面上的一些文字,都有可能由该网站提前分配的一个浙江的移动cdn存储节点提供,这样就大大减少了网站的响应时间。

    

    Cdn相关技术

    

    首先我们来思考一下,构建一个庞大的仓储配送网络需要哪些问题和技术手段。

    

    作者认为有四个重要的关注点,即:

    

    1.如何合理地将货物配送到各个城市的当地仓库。

    

    2.如何在当地的各个仓库正确存放货物?

    

    3.根据用户的收货地址,如何智能匹配先送到哪个仓库,选择哪种物流模式等。

    

    4.如何管理整个仓库分配系统,如整体货物分配的准确性,仓库分配的及时性,交货地点的匹配程度等。

    

    图:智能机器人在菜鸟仓库分拣货物

    

    其实这与cdn中最重要的四项技术不谋而合,即内容发布、内容存储、内容路由和内容管理。

    

    内容发布

    

    它通过索引、缓存、分流、组播等技术将内容发布或传送到最近的远程服务点(pop)。

    

    内容存储

    

    对于cdn系统,应该考虑内容存储的两个方面。一个是内容源的存储,另一个是内容在缓存节点的存储。

    

    内容路由

    

    它是一种全面的网络负载平衡技术。通过内容路由器中的重定向(dns)机制,将用户的请求平衡在多个远程pop上,使得用户的请求可以得到最近的内容源的响应。

    

    内容管理

    

    它通过内部和外部的监控系统,获取网络组件的状态信息,测量内容发布的端到端性能(如丢包、延迟、平均带宽、启动时间、帧率等。),并保证网络处于最佳运行状态。

    


/template/Home/Zkeys/PC/Static