趣谈网络协议笔记-二(第十九讲)

HttpDNS:网络世界的地址簿也会指错路


自勉

  • 勿谓言之不预也 —— 向为祖国牺牲的先烈致敬!

引用

  • dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 - 博客园

正文

这一节并没有一张图片,主要讲解的是DNS在某些特定情况下的不足,以及为了应对这些不足,而使用httpDNS。

权威服务器在进行DNS解析时会做负载均衡,在低量级的情况下,权威服务器会直接返回给本地服务器几个IP地址,由客户端在需要的时候进行轮询即可。
但是对于高量级的情况,往往在一个城市或者区域内就会部署多个边缘节点,用于更高速地进行请求的反馈。
地方服务器在请求权威服务器解析mail.163.com时,会通过CNAME的方式从而获取到请求域名的一个别名,例如mail.ciruy.163.com,并让本地服务器到第一层的GSLB去解析这个域名。
第一层GSLB服务器在获取到这个解析请求后,会根据运营商来通过CNAME来再一次修改域名,并让本地服务器去请求第二层GSLB服务器来对其进行进一步的解析。
第二层GSLB服务器在获取到第一层传输过来的域名之后,就明白了用户当前是在哪个运行商干活,然后根据用户所在的地理位置,为其分配对应的较优节点并返回给本地DNS服务器。

一. 传统DNS存在哪些问题?

1. 域名缓存问题

很多时候,本地DNS服务器会缓存对于域名的解析结果用于加快客户端对于域名请求的响应效率,另外对于一些静态页面也会有一定程度的缓存。这对于对于即时性比较高的请求就比较尴尬了。
根据dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 - 博客园所言,DNS服务器在传回解析结果时,也会传递有效时间TTL,各个平台的客户端请求DNS结果缓存的时间会对此进行参考,记住,仅仅是参考。

2. 域名转发问题

不同本地DNS服务器的解析策略不同,有些比较勤劳的DNS服务器会亲自进行DNS的解析,但是有些比较懒的则是转发到别的运营商进行解析。这样一来通过NAT转换IP地址后,GSLB第一层进行负载均衡时就会按照别的运营商的较优路径进行分配,这就完全没有意义了。

3. 域名更新问题

还是因为本地DNS服务器的缓存,如果我一个IP地址出了故障,从理论角度上来看,我会直接更新对应的权威DNS服务器上的映射信息。但是,本地服务器缓存了他之前的DNS请求结果,所以对于客户端的DNS请求,他依然可能会返回已经故障的IP地址,这样就会造成一部分用户无法访问服务器的结果。

4. 解析延迟问题

DNS解析还是会通过递归的方式,从根服务器开始逐级访问,所以会存在效率低甚至会超时的问题。

二. 那么如何解决这个问题呢?

请问,如果别人家的设备不好用,同时制造这个设备的门槛很低,你应该怎么办?
当然是自己自己干啊,社会可没有你想象中的那么友善,潜在的敌人无处不在!永远要有危机意识,就算是世界最强也需要时刻保持危机心理。
HttpDNS其实就是自己实现一套简易版的DNS解析逻辑。这在移动端会实现的更多,因为在移动端,你可以更加轻易地获取到运营商信息和地理位置信息。
在请求解析时,会先确定本地缓存是否存在对应的解析结果,如果有,直接进行返回;如果没有,则通过http协议访问httpDNS服务器,服务器地址通过传统DNS解析方式解析域名得到,另外,由于其一般不会变动,也有将其写死到SDK的做法。httpDNS服务器在收到解析域名请求后,通过分析运营商和地理信息进行负载均衡,将IP解析结果返回给客户端。至此,解析就结束了。

趣谈网络协议笔记-二(第十九讲)相关推荐

  1. 趣谈网络协议笔记-二(第十七讲)

    趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...

  2. 趣谈网络协议笔记-二(第十一讲)

    趣谈网络协议笔记-二(第十一讲) TCP协议(上):因性恶而复杂,先恶后善反轻松 自勉 我似乎天性不擅长争斗,但是有些时候,我也必须砥砺前行. 强大是和平的前提,而善良不是. 前言 今天回到家里已经是 ...

  3. 趣谈网络协议笔记-二(第六讲)

    趣谈网络协议笔记-二(第六讲) 交换机记忆的到底是端口,还是方向,如果是方向那么何来方向,下图中的感觉更像是网桥? 局域网中的数据是不是必定先经过交换机(网桥,hub)? 为什么广播时mac地址为25 ...

  4. 趣谈网络协议笔记-二(第十八讲)

    趣谈网络协议笔记-二(第十八讲) DNS协议:网络世界的地址簿 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 正文 DNS用于域名解析,但也不仅仅是用于域名解析,不仅仅是将域名转换成IP. 在 ...

  5. 趣谈网络协议笔记-二(第十六讲上)

    趣谈网络协议笔记-二(第十六讲上) 流媒体协议:如何在直播里看到美女帅哥? 自勉 给岁月以文明,而不是给文明以岁月!--<三体> 在触不到的獠牙上点火--就像不必仰望那星星就能够解决--就 ...

  6. 趣谈网络协议笔记-二(第十三讲)

    趣谈网络协议笔记-二(第十三讲) 套接字Socket:Talk is cheap, show me the code 前言 这只是笔记,是为了整理刘超大神的极客时间专栏的只是而存在的! 经常会在网络上 ...

  7. 趣谈网络协议笔记-二(第十二讲)

    趣谈网络协议笔记-二(第十二讲) TCP协议(下):西行必定多妖孽,恒心智慧消磨难 前言 哈哈哈,越当我看刘超的通俗讲解,我就越感觉自己的无能.每次当我看了讲解之后,每次当我感觉到这个东西原来是这么简 ...

  8. 趣谈网络协议笔记-二(第十讲)

    趣谈网络协议笔记-二(第十讲) UDP协议:因性善而简单,难免碰到"城会玩" 自勉 如果手上没有剑,我就无法保护你.如果我一直握着剑,我就无法抱紧你.--<Bleach> ...

  9. 趣谈网络协议笔记-二(第十五讲)我与刘超有不同看法

    趣谈网络协议笔记-二(第十五讲) HTTPS协议:点外卖的过程原来这么复杂 前言 好饿啊= =,最近感觉自己真的是胖的不行了,所以开始了适当的节食操作. 我似乎很不擅长隐藏自己的想法.我似乎很不习惯于 ...

最新文章

  1. [C] 图的广度优先搜索——最少转机
  2. 曲线聚类_机器学习入门必读:6种简单实用算法及学习曲线、思维导图
  3. 苹果系统怎么降低版本_1903、1809...到底怎么看系统版本?
  4. Glib实例学习(5)平衡二叉树
  5. linux 常用命令摘录
  6. leetcode 834. Sum of Distances in Tree | 834. 树中距离之和(树形DP)
  7. 异常处理python 空气质量问题_python的异常处理
  8. 二叉树——淘汰赛(洛谷 P4715)
  9. 为什么iPhone 11在中国市场需求较美国强劲?真相扎心...
  10. 大学算法分析与设计复习总结
  11. android gridview 详解,Android开发 GridView详解
  12. 照相机的计算机微处理器芯片是什么,芯片到底是什么?
  13. Python基础模块:图像处理模块@PIL(批量分类处理图片及添加水印)
  14. python 异常重试模块retry
  15. 物联网周刊(第 6 期):开源硬件公司 Adafruit
  16. HSIC and MMD
  17. 谷歌云| 5 个 GKE 功能可帮助您优化集群
  18. Adobe Photoshop CS5 汉化包下载
  19. 【模块介绍】6×6矩阵键盘(硬件部分和扫描方式)
  20. X200上安装Ubuntu 8.10+Compiz+emerald

热门文章

  1. Mac版本的idea非正常关闭后,idea打开项目大面积报红
  2. spring入门详细教程(五)
  3. nginx源代码执行过程(一)
  4. win10 修改gitlab账号_玩转gitlab + jenkins
  5. shell win10 改成cmd_win10远程ipconfigs闪退win+r解决查看地址
  6. python库管理_多版本python控制以及python三方库管理
  7. linux+正负符号,英文符号大全(转)
  8. 【以太坊】javascript控制台完整交易流程
  9. 【响应式Web前端设计】CSS浮动(float,clear)讲解
  10. 【机器学习入门到精通系列】插值与拟合