内容分发网络CDN(Content Delivery Network)由遍布全球的边缘节点服务器群组成的分布式网络。
CDN将源站资源缓存到加速节点,当终端用户请求访问和获取源站资源时无需回源,可就近获取CDN节点上已经缓存的资源,提高资源访问速度,同时分担源站压力。
CDN技术架构.pdf 60页开始介绍调度
[CDN技术详解.pdf](链接: https://pan.baidu.com/s/1i4UIOcd 密码: 2yjh)
抓包命令: tcpdump -i any -vvvvnnA dst port 8899
可以tcpdump -i any -vvvvnnA dst port 8899 -w file.cap
保存文件中, 然后使用wireshark来查看数据包
Nginx=>Varnish=>ATS的架构后,稳定性大大的加强了。
Nginx通过hash解决了cache抖动的问题,Varnish的内存缓存非常的强大,可定制性太强了,很方便设置content-length不等于0时,则不缓存对象。
varnish / squid / nginx cache 有什么不同
权威 DNS 指域名在域名注册商处所设置的 DNS 服务器地址。该地址决定了该域名的解析管理权(新增,删除,修改等)。比如 DNSPod 的权威服务器:*.dnspod.net
, *.dnsv3.com
等。当域名设置权威服务器并设置了解析记录后,客户端请求域名时,权威服务器将返回该域名的对应的解析记录信息。
Local DNS 是 DNS 查询中的第一个节点。Local DNS 作为客户端与 DNS 域名服务器的中间人。客户端发送 DNS 查询时,Local DNS 将使用缓存的数据进行响应,或者将向根域名服务器发送请求,接着向根域名服务器发送另一个请求,然后向权威 DNS 发送最后一个请求。收到来自包含已请求 IP 地址的权威 DNS 服务器的响应后,Local DNS 将向客户端发送响应。
在此过程中,Local DNS 将缓存从权威 DNS 服务器收到的信息。当一个客户端请求的域名 IP 地址是另一个客户端最近请求的 IP 地址时,Local DNS 可绕过与域名服务器进行通信的过程,并仅从第二个客户端的缓存中为第一个客户端提供所请求的记录。
Local DNS 也是和我们日常上网接触最多的DNS包括你的服务提供商(ISP)分配给你的DNS, 又因为填写在你的本地电脑上,所以也称为Local DNS
Local DNS(LDNS)即本地域名服务器,由本地运营商提供。用户的解析请求,是由 LDNS 执行的。
ClientIP 指的是终端用户的 IP 地址,每个终端设备上都会配置 LDNS 的地址。在 DNS 调度中,只能识别 LDNS,识别不了用户的 IP 地址,所以用户流量是被 LDNS 所牵引的。
公共DNS,指面向所有互联网用户的全球公共递归域名解析服务。和仅使用本地 LocalDNS 的传统解析服务相比,公共解析服务,一般具备更加“快速”、“稳定”、“安全”互联网访问。
常用的公共dns
腾讯:119.29.29.29
、182.254.116.116
DNSPod/腾讯云
百度公共DNS: 180.76.76.76
IPv6 地址为 2400:da00::6666
阿里:223.5.5.5
、223.6.6.6
IPv6 地址为 2400:3200::1
和 2400:3200:baba::1
谷歌:8.8.8.8
,8.8.4.4
IPv6 地址为 2001:4860:4860::8888
/ 2001:4860:4860::8844
。
国内114dns:114.114.114.114
,114.114.115.115
IPv6:2001:dc7:1000::1
天翼云(中国电信) DNS:101.226.4.6
OpenDNS :208.67.222.222
和 208.67.220.220
纯净 无劫持 无需再忍受被强扭去看广告或粗俗网站之痛苦
服务ip为:114.114.114.114 和 114.114.115.115
拦截 钓鱼病毒木马网站 增强网银、证券、购物、游戏、隐私信息安全
服务ip为:114.114.114.119 和 114.114.115.119
学校或家长可选拦截 色情网站 保护少年儿童免受网络色情内容的毒害
服务ip为:114.114.114.110 和 114.114.115.110
一般有哪些调度形式?
参考: CDN技术漫谈之调度系统
加速原理:
假设您的加速域名为www.wcoder.com
,接入CDN开始加速服务后(要先将域名解析CNAME为www.wcoder.com.example.com
),当终端用户在北京发起HTTP请求时,处理流程如下图所示。
www.wcoder.com
下的指定资源发起请求时,首先向Local DNS(本地DNS)发起请求域名www.wcoder.com
对应的IP。www.wcoder.com
的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向网站授权DNS请求域名www.wcoder.com
的解析记录。www.wcoder.com
后,返回域名的CNAME www.wcoder.com.example.com
。www.wcoder.com.example.com
的解析记录,阿里云CDN的DNS调度系统将为其分配最佳节点IP地址。我们把example.com称为接入域名, 为什么需要接入层域名? 答: https证书是基于域名的;
域名的DNS服务器一般在域名注册商处维护(是可以修改的, 当前域名的解析DNS服务器更换为其他的DNS服务器,由修改后的DNS服务器负责域名解析服务。)
ATS最重要的是CDN缓存能力,反向代理是其第二功能.
https://github.com/apache/trafficserver 1.8k
基于ATS实现完整的CDN
https://github.com/apache/trafficcontrol 1.1k
https://github.com/varnishcache/varnish-cache 3.6k
https://github.com/squid-cache/squid