知识卡片

DNS解析与非DNS解析接入CDN的取舍:通用兼容性换定制调度能力

普通读书笔记卡

内容

客户接入CDN加速服务主要有两种方式。DNS解析方式是最传统、最通用的做法:客户把加速域名指向CDN厂商提供的CNAME,用户请求这个域名时经过标准DNS协议解析、层层CNAME跳转后拿到CDN节点的真实IP——优点是简单通用、几乎所有客户端天然兼容,缺点是调度只能停留在”根据域名解析出一个IP”这个粗粒度上,无法结合更多信息做精细化调度,而且天然暴露在DNS协议自身的问题之下(不遵守TTL的代理、DNS劫持)。非DNS解析方式则是在客户程序里嵌入一个自定义查询模块(如HttpDNS),完全绕开标准DNS协议——优点是协议自定义、可以加密、可以结合更丰富的信息做调度优化、不容易被劫持和缓存,缺点是不兼容标准协议和第三方客户端(如浏览器),还需要额外开发和维护一套解析服务。这组取舍的本质是:越贴近标准协议,兼容性越好但可定制的调度能力越受限;越是自建协议绕开标准路径,调度和抗劫持能力越强但兼容成本和维护成本也越高,视频播放这类对资源命中率要求高、且自身掌控客户端代码的场景更倾向选择后者。

参考来源

- 位置:《高可用架构(第1卷)》第7章《安全与网络》"7.3 CDN对流媒体和应用分发的支持及优化"节,"7.3.1 CDN系统工作原理"(源文件:_epub-src/OEBPS/Text/Chapter7_3_2.xhtml) - 结论依据:原文说明"DNS 解析方式是传统的CDN加速方式……优点:最通用的方法、最简单的方法。缺点:只能根据域名解析IP地址,不能进行额外的优化……非DNS解析方式……优点:功能强大:可以根据资源,甚至其他信息来允许调度程序进行额外的优化工作……不容易被影响:报文可以加密,协议为自定义协议,不容易被劫持和缓存。缺点:不兼容传统协议",直接支撑本卡片结论。 - 原始内容:DNS 解析方式是传统的CDN加速方式,也是市面上最常见的方式……客户通过嵌入SDK,不经过传统DNS解析方式来使用CDN资源,例如HttpDNS……目前很多视频播放软件都采用第2种方案,因为这种方案可以对资源进行准确定位,提高资源命中率。