一. 概述
cdn(content delivery network),内容分发网络。诞生于网络数据传输暴涨的2000年左右。在请求量及数据暴涨之下,对于交互的两端,服务提供商和服务使用者都有着致命的难题。服务提供者:高频次请求及海量数据,意味着需要庞大的服务端支撑体系。服务使用者:访问绕远,多用户资源竞争等问题。cdn正是为解决这样的场景而产生的技术体系,作为中间协作者,如同快递行业。为服务提供商减轻负载,为服务使用者提供质量保障,这是互联网生态得以运作的根本。
二. cdn原理
网络传输里的绝大部分内容,是一致的。联想下当前的商业社会,对标准化产品,均会在庞大的市场附近建厂售卖。人类的生活规律是何其的相似,即便是虚拟网络。无论是在美国,或者在中国,看到的春晚内容是一样的。基于这样的原理,cdn模式在各个地区搭建边缘设备(OC), 用于存储数据,而相应地区的用户则就近取得资源,就近意味着时延低,传输风险少;对商家而言,用户请求截留在cdn厂商,商家的负载及服务质量均得到有效的保障。对于cdn厂商,提供这样的服务并赚钱商家服务费,是cdn厂商的生财之道。
cdn业务有赢者通吃的特性,小cdn厂家内容少,越是内容少提供质量就越差,资源利用率低,否则完全反之。正是这样的特性使得cdn生态巨头坚挺,小cdn残喘,赢得内容赢天下。
三. cdn技术
cdn大的方向可分为三类:
- 缓存
- 调度
- 传输
三大技术的终极目的都是:
- 服务器性能上需可承载高频请求
- 数据提供上应提高缓存命中率,减少回源
- 传输上请求延迟低,可靠
- 调度上负载均衡并提高资源利用率。
这是从纯技术上的考量。商业模式上,cdn厂商需要成本控制,这是关键点。
四:cdn缓存篇
缓存也可认为是商品备货,备得越充足,客户满足度越高。但是缓存空间是有限的,如何通过有限的备货让客户需求得到最大的满足,是缓存里要探讨的最关键问题。
挑战一:解决缓存命中率问题,即内容存储。二八定律。百分八十的请求存在于百分之二十的内容。所以找到这二十的内容即是成功的第一步。缓存算法关键技术1,内容热度研究,关键技术2,缓存搜索,关键技术3,缓存淘汰机制。
挑战二:缓存读写是个瓶颈,上述指提高读命中率,读写性能同样关键,减少读写消耗,并提高资源利用,也是个研究点,这里涉及到系统调用,存储管理等。
挑战三:根据不同的业务场景制定不同的缓存规则,比如首帧时延,大小文件。
五:cdn传输篇
网络协议tcp/udp,是属于网络发展早期的杰作,当时网络环境包括数据量,硬件设施,安防等和当前情况,根据墨菲指数定律,各种方面都存在指数量级上的差距。tcp保守的协议,比如拥塞控制,重传机制等,但是有充分的挖掘空间。
六:调度
调度的目的是负载均衡,一个优秀的调度可以指引用户获得优质的资源,鉴于cdn成本大头在于cdn带宽结算,如何利用带宽是调度考虑的问题。
挑战一:精准实时的需求计算,要充分利用带宽空间,则就要做好规划,做好规划的前提是知道需求。调度层面的正推。
挑战二:带宽规划,用户流量是客观值,如何利用好带宽,降低带宽结算点,规划算法是成本调度的核心。
挑战三:反馈,基于设备状态,机房带宽使用状态,实时做好反馈措施,使得带宽利用合理。
七:其他
鉴权,保障资源使用安全,杜绝非法访问,盗取资源或者形成攻击,阻碍正常使用。
请求性能,比如nginx
质量探测,链路探测,路由探测,旨在为调度系统提供质量地图
设备管理,机房建设,可用性保障等