CDN补充
cdn内容分发网络(content delivery network,cdn)
构建在互联网TCP/IP四层模型之上对用户透明的覆盖网。
该网络通过全球范围内分布式部署边缘服务器,将互联网内容从互联网中心缓存到靠近用户的边缘服务器上,降低用户访问时延长减少穿越互联网核心网的流量:优化互联网流量分布,提升用户终端服务质量
电商,金融交易动态业务加速崛起,以及新冠高校突然暴增线上(网课),cdn起到了巨大的作用,也是2018年至现在最重要的一个企业架构部署环节!
cdn通过动态路由规划,协议传输等技术进行传输加速,DDOS(Distributed denial of service,分布式拒绝攻击)网络攻击事件不断涌现,cdn基于其广泛的边缘节点,结合智能攻击流量检测及流量清洗技术(避免攻击流量把内容源站打垮,保证互联网公司业务运行)
cdn基本原理
互联网超过50%流量通过cdn进行加速,今年暴增业务:门户网站,短视频,长剧,购物,在线学习,cdn支撑上亿学生学习(新冠疫情突发,各高校线下课转到了线上课,钉钉软件突然出现系统崩溃,随后官方也是加急修复,原因:平时用户业务访问流量没有超过该公司所预期,突然全部转为线上,用户访问流量从原来几倍直接突变为几十倍速率,对该软件后台数据库,带宽,加速业务带来了巨大挑战,也是因为新冠事情,现中型企业更加更加重视cdn服务)
CDN相对于底层IP网,提供动态加速,静态加速,安全访问三个核心能力
动态内容加速原理
动态:对于不能缓存内容(电商实时推荐,账号密码认证–用户通过前后端,数据库进行交互),可以通过优化路由进行加速
静态:可缓存内容(图片,短视频,大文件)进一步通过缓存来实现以存储空间换带宽目的,大幅度降低传输时延
动态内容加速示意图:
CDN服务端:调度系统,节点系统,支撑系统—解决各类用户 请求与cdn边缘节点的适配问题
(1.缩短互联网用户的访问时间延长问题 2.保证CDN边缘节点之间的负载均衡 )
调度系统:解决用户请求CDN边缘节点之间的负载均衡
节点系统:被动缓存、主动预取技术-》大部分互联网用户请求实现边缘响应(实行加速)(同时通过多级缓存减少回用户源站流量)
CDN动态内容加速的应用场景
电子商务、互动论坛博客为代表的互联网业务存在大量不能缓存、需要实时回源的动态内容加速场景。例如,电商平台涉及了用户注册、登录、在线支付、秒杀等需要动态加速的场景
CDN维护:实时路由探测系统,实时链路质量信息,考虑路由优选与链路负载均衡因素(计算出最佳线路)
CDN的静态内容加速
静态内容加速特点:高性能,灵活度高;
大型CDN厂商:上千万级别边缘节点+高性能缓存软件=热点内容90%以上的边缘hit(命中率),缩短响应时间,提升用户体验
大文件、图片以及在线点播业务的本质:通过互联网,将静态文件内容从内容生产者分发给终端用户
安全防护
政府,金融,游戏加速:需要保障防止遭受DDOS,CC(Challengecollapsar)攻击;互联网金融业务,金融数据是恶意爬虫攻击的首要对象,其站点性能、网站安全以及内容安全需要同时兼顾
CDN技术为什么很厉害
- CDN在原有互联网技术上构建:分布式覆盖网(弥补原有互联网在内容加速及安全访问方面的不足–提升电商,游戏,短视频等)
- 互联网设计理念:
网络互联:通过一套标准的网络协议把异构的各类自治域网络连接在一起
尽力而为:互联网具有与电信网不一样的运行机制,通过“存储转发”而不是链路独享的方式向互联网用户提供尽量可靠的服务质量
CDN出现之前:出现问题
- 自制域网络之间随用户与内容服务器之间的距离增加,服务质量不断下降
- 跨自制域流量传输遭遇质量降级,传输失败
- 出现大量冗余互联网流量不断·穿越基于BGP(边界网关协议,造成核心网络链路拥塞—降低服务质量级)
4.技术出现之前都是端到端的,不能减少互联网内容在跨域骨干网上的重复传输
需要解决:
减少跨区域核心流量网的冗余传输,提升用户的体验性能,核心的诉求是:更高的可靠性,可扩展性
解决方式:
- 重新设计并部署新的互联网协议
- 在已有的协议基础上构建一个覆盖网,弥补设计不足
CDN技术应用而生
CDN系统架构概述
CDN整体框架
CDN调度系统
DNS、HTTPDNS调度解析服务,节点资源调度服务,调度策略维护,直播、点播、动态加速等产品线提供核心调度能力,资源状况实时调整调度策略
CDN节点系统
缓存服务、安全防护、日志收集、状态检查、内容管理等
节点点播架构采用Tengine+Swift模式,包括业务逻辑控制、缓存控制等功能;
直播架构采用Tengine+live模式:提供直播边缘推流及播放端拉流等相关服务
CDN运维支撑系统
提供数据交换,中心服务,
提供日志分析、天眼监控、域名配置管理、节点配置管理、内容管理及对外的API服务,与节点系统、调度系统、用户控制台之间建立数据交换通道
用户控制台
用户提供自助接入CDN服务的便捷窗口,包括CDN接入域名配置、实时/离线监控数据、日志下载、资源刷新与预热,以及直播、点播业务配置。
CDN业务场景
- 直播对时延和卡顿:网络抖动的忍受度很低
- 点播仅对卡顿有严苛的要求,可通过调控视频播放器缓冲器(buffer)的大小在一定程度上抵消网络抖动的影响
- 电商、微服务接口、交易类业务,内容请求都通过HTTPS来保护内容传输安全,且用户请求的QPS(Query Per Second,每秒请求数)高度并发,属于算力密集型业务。其对CPU算力的需求很大
- 点播、下载类业务,单文件的大小比较大,呈现出流量CDN平台上,节点资源呈现出集群数量庞大、单集群规模小、广域分布、异构构成[网络、存储、计算的容量规格和QoS(Quality of Service,服务质量)都有差异]等特征密集型的特征,CPU算力的需求较小
阿里云cdn调度系统架构图
全局负载均衡模块:在成本规划模块给定成本线与资源调度模块划定业务节点集合,生成全局调度策略。
调度执行器是执行全局负载均衡调度策略的调度服务器组件,包含DNS执行器、HTTPDNS执行器、302执行器等。这三种组件对应三种不同的用户请求调度牵引方式,即LDNS(Local DNS,本地域名服务器)牵引、App端绕过DNS自行解析牵引、302跳转牵引
节点软件
节点软件在CDN系统中作为用户数据流的核心通道,包括从最开始用户流量的接入,到资源的缓存,再到未命中资源的回源拉取
- 提供高性能、稳定的接入网关
- 提供高性能、稳定的缓存服务,在NVMe(Non-VolatileMemoryexpress)、SSD(Solid State Disk)、SATA(Serial Advanced Technology Attachment)盘等不同硬件上实现不同的淘汰算法,最大限度地挖掘软件性能。
- 提供高性能、稳定的回源服务,在不同网络状况下保证回源的稳定性
稳定和高性能是提供大规模服务能力的前提,丰富的产品化功能是满足海量用户需求的基础,可编程能力扩展是阿里云CDN节点软件的优势
阿里云CDN给出的节点软件示意图,主要分成接入网关、缓存组件、回源组件三大部分。
网络传输
网络传输是影响CDN传输性能的关键系统。基于优质的节点资源和良好的调度策略,网络传输优化技术可在原基础上再大幅提升传输速率、缩短首屏时间、降低卡顿率,给用户带来更顺畅的体验。
网络传输优化不仅影响用户与L1边缘点之间的传输性能,也影响L1、L2内部的传输。而如果开启回源加速,则还能提升到源站的传输性能。通常用户与L1之间的网络传输基于TCP等传输协议,此时L1节点开启单边加速,即优化只在服务器侧进行。而如果用户接入了CDN的SDK(Software Development Kit)或其他支持双边加速的私有协议,则优化同时在服务器和客户端两侧生效。与单边加速相比,双边加速通常对性能的提升空间更大、更加灵活。在CDN内部,例如L1、L2之间,单边/双边加速同时存在,可灵活切换。而在L2与源站之间,CDN可以基于链路质量探测、动态路由等技术选择一条连接源站最快、最稳定的线路,从而实现回源加速。
CDN还支持扁平化的结构。在此结构中,不再严格区分L1、L2、L3等,而是基于链路质量、节点容量、节点负载等动态选择一条路径。这条路径可以只处于CDN节点间,也可以直达源站。
网络传输优化的重点在三个方面:拥塞控制、传输协议与选路方式。拥塞控制与传输协议互相配合,可以最大化利用链路带宽或最小化传输时延等,而选路可改善链路质量,提升传输能力的上限。阿里云CDN网络传输优化的架构示意图。不同类型的业务对网络传输的需求侧重点不同,比如静态下载类业务需要提升下载速率,而点播、直播类业务需要降低卡顿率。为了对不同业务做有针对性的优化,节点软件会根据配置中心的配置,将业务特征的相关信息下发到传输层,供传输层进行决策。不同节点、不同时间段,链路质量也存在差异,通过链路质量探测等手段,将链路质量的变化及时通知传输层,可使网络传输优化策略更适应多变的网络环境。传输层最终根据业务特征和当前链路质量,从加速策略库中选择最合适的加速策略,从而达到具有针对性优化的效果。加速策略的内容包括拥塞控制算法及其参数、选择传输协议及是否使用动态选路等。而每次传输结束后,将记录相关信息和决策,并记录日志。离线的机器学习平台将分析传输层日志,自动优化加速策略库,从而形成闭环。