{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
dns&cdn&httpdns原理简析
背景:
域名系统dns(domainnamesystem):作为域名和ip地址相互映射的一个分布式数据库,通过dns可以将域名迅速解析为对应的ip地址,从而方便我们访问internet上的任意一台主机(或网站)。
cdn(contentdeliverynetwork):其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
httpdns:使用http请求来模拟dns请求
dns服务器类型:
本地dns:即在主机的dns设置值
域名组成:[主机名].[二级域名].[顶级域名],因此可以根据域名来在树形结构中找到一条从根到叶的路径,叶节点即是权威dns
树型dns结构.png
dns服务器的功能:
在由路由器组成的局域网中,本地dns设置为自动获取(路由器),路由器dns设置为(isp提供的dns),主机通过浏览器访问http://www.jianshu.com时dns请求-响应情况:
dns-process.png
上图的文字描述如下:
具体详见:结合wireshark分析dns协议
wireshark-dns.png
wireshark-cname.png
根据上面的wireshark分析结果可以看出:dns服务器返回的不一定是ip,在dns请求中域名为别名时,则dns服务器会返回其a记录;
如上图中cdn-qn0.jianshu.io域名解析返回的是cname类型结果cnameiduvrz0.qiniudns.com,这表明cdn-qn0.jianshu.io是别名,其cname指向(a记录)是iduvrz0.qiniudns.com
因为a记录与ip映射,于是主机又向dns服务器发起iduvrz0.qiniudns.comdns请求
dns循环:当权威dns发现一个域名映射多个ip时,会使用ip轮询的方式来将ip平均分配给多个dns请求,从而达到负载均衡的效果
cdn:由于dns循环时平均分配,不能根据不同服务器的负载情况优化分配,甚至如果有一台服务器宕机了,dns不能及时了解到该情况把该服务器的ip分配出去,便会造成无法访问;因此,在权威dns和服务器之间加上一个cdn层就显得很必要了;cdn在具备调度分配服务器能力的基础上,能够同步服务器运行情况,然后根据该情况及时适当调整调度策略,从而使得负载均衡能力大大提高;
cdn功能:
cdn原理图:
cdn.png
通过在权威dns服务器中配置images.jianshu.com的cname指向(a记录)为abc.qiniudns.com
在cdndns中将abc.qiniudns.com与110.110.110.110,220.220.220.220,330.330.330.330三个ip映射
就可以实现通过cdn给域名images.jianshu.com加速
更多cdn知识参见:cdn知识
为了防止传统dns解析过程中出现的dns劫持,dns缓存版本过旧,因dns服务器转发功能而造成的无法精准定位用户位置的情况,于是通过使用httpdns为主,传统dns为辅的机制来实现快速,实时,精准的dns解析,从而提供给用户快速,安全稳定,最新的网站访问体验