DNS,作用就是将域名解析成IP。一个DNS查询,先从本地缓存查找,如果没有或者已经过期,就从DNS服务器查询,如果客户端没有主动设置DNS服务器,一般是从服务商DNS服务器上查找。这就出现了不可控。

DNS劫持

一些小服务商以及小地方的服务商非常喜欢干这个事情。根据腾讯给出的数据,DNS劫持率7%,恶意劫持率2%。网速给的劫持率是10-15%。

  1. 把你的域名解析到竞争对手那里,然后哭死都不知道,为什么流量下降了。
  2. 在你的代码当中,插入广告或者追踪代码。这就是为什么在淘宝或者百度搜索一下东西,很快就有人联系你。
  3. 下载APK文件的时候,替换你的文件,下载一个其他应用或者山寨应用。
  4. 打开一个页面,先跳转到广告联盟,然后跳转到这个页面。无缘无故多花广告钱,以及对运营的误导

智能DNS策略失效

智能DNS,就是为了调度用户访问策略,但是这些因素会导致智能DNS策略失效。

  1. 小运营商,没有DNS服务器,直接调用别的服务商,导致服务商识别错误,直接跨网传输,速度大大下降。
  2. 服务商多长NAT,实际IP,获得不了,结果没有就近访问。
  3. 一些运营商将IP设置到开卡地,即使漫游到其他地方,结果也是没有就近访问。

Http DNS 原理

客户端请求一个接口,例如http://154.58.*.*/dns?domain=www.woniubi.cn&client=xiaomi&screen=1024*960&gps=137,35&…等一些参数。服务器根据参数,给出最优的ip或者IP列表。APP就通过IP访问,不使用域名。

HTTP DNS 负载均衡

返回IP列表,客户端可以依靠策略,进行负载均衡。

  1. 客户端随机选取IP
  2. 客户端轮询使用IP

HTTP DNS缓存与更新

可以使用HTTP header进行方式进行缓存,参考这篇文章《http头部如何对缓存的控制》。也可以客户端自己设置过期时间,过期去服务端端拉取。

HTTP DNS不可用

两种解决方式

  1. 继续使用缓存
  2. 使用最初的DNS解析

IP不可用

HTTP DNS给的IP地址,发现不可用。

  1. 重试一定的次数,不成功换下一个IP。
  • 下一个IP也不可用,继续换下一个。

但是这样会造成下面一个问题。

雪崩

部分服务器不可用的时候,结果压力都转到其他可用的服务器上面,导致最后所有的服务器都不可用。

  1. 服务不可用的时候,随机加延时,分散压力。
  2. 重试一定次数的时候,就不继续重试,宁愿部分不可用,不能让所有的人不可用。

网站是否可用

浏览器都是通过域名访问,当然一些用户不可感知的服务,可以使用IP访问。

http://www.woniubi.cn/http_dns/

转载于:https://www.cnblogs.com/softidea/p/5325189.html

HTTPDNS成为移动互联网的标配–原因与原理解析(转)相关推荐

  1. 互联网高薪的原因、现状、未来,还值不值得进来?

    作者:月京杭,来自:中产之路 听说你想转行到互联网? 最近有好几个28-30岁的朋友,非计算机相关专业,计划转行到互联网,咨询我的建议,所以有了这篇文字. 互联网到处996,还优化裁员,到底还能不能干 ...

  2. 广播风暴的产生原因和原理是什么?

    广播风暴的产生原因和原理是什么? 网吧行业竞争的加剧,出现了一些规模比较大的网吧.目前在网吧行业内,百台以上的网吧已经随处可见了.由于网吧在进行网络建设时,缺乏专业的网络技术支持,使得网吧的网络故障频 ...

  3. 互联网协议入门及DNS原理入门

    互联网协议入门及DNS原理入门 互联网协议入门 作者: 阮一峰 日期: 2012年5月31日 我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信.上海的某一块网 ...

  4. php负载均衡原理_Java开发大型互联网架构深入负载均衡原理之方案分析

    引言 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balan ...

  5. 打开小猫咪之后,国内的网站打不开了,怎么办。原因是dns解析出了问题

    打开小猫咪之后,国内的网站打不开了,怎么办.原因是dns解析出了问题 关闭远程dns解析功能即可,之前回答过该问题! https://blog.csdn.net/Hodors/article/deta ...

  6. 应用答疑|报警代码故障原因及办法解析——研控MS混合伺服篇

    我们的技术支持工程师在服务过程中发现,用户碰到一些偶发性错误报警时,无法快速反应并解决,只能停机寻求外部援助,常常会耽误生产进度. 一般来说,这类问题可以在产品配套用户手册上找到常规解决办法. 为了进 ...

  7. 18个导致互联网创业失败的原因

    在最近的一次演讲中,有人问我,哪些错误会导致创业失败.站在那里愣了几秒后,我意识到,这是一个很难回答的问题.它等于是在问:一个初创公司如何才能成功.如果你能避免所有导致失败的错误,那么你自然就会成功. ...

  8. 串行接口ping不通自己的原因及深层解析

    素材来源于日常工作中接触到的学员或自己.或他人遇到的实验或现网故障,旨在分析.总结.分享,请勿转载,谢谢. 网络拓扑: 两台路由器通过串行接口S1/1连接,中间配置IP子网为 12.1.1.0/24, ...

  9. ASO优化:关键词排名下降的原因及策略解析

    众所周知,ASO的核心之一就是关键词优化.随着榜单成本高/风险大的情况影响下,关键词的优化自然就成了一个长期且稳定的带量方法.特别是TOP3关键词大概能分走70%以上的应用市场流量,也就意味着关键词优 ...

最新文章

  1. 【POJ1321棋盘问题】【poj2251Dungeon Master】【poj3278Catch That Cow】【poj1426Find The Multi】
  2. [H5表单]一些html5表单知识及EventUtil对象完善
  3. 85.Mongoose指南 - Schema
  4. C语言家谱管理程序,课内资源 - 基于C语言实现的家谱管理系统
  5. 02-15 GUCCI 我喜欢的
  6. UVA - 1267 Network
  7. [poj2451]Uyuw's Concert
  8. mysql5.6.38占用内存过大问题解决
  9. Linux之FTP服务、NFS服务、RPC服务及案例
  10. 20145228《网络对抗》 后门原理与实践
  11. FastDFS配置Nginx模块
  12. 局域网传输文件_堪比AirDrop,苹果 iPhone与Windows电脑互传文件的三种方式
  13. 记录一下idea启动显示If you already have a 64-bit JDK installed ,defined a JAVA_HOME...的错误
  14. OMNeT 例程 Tictoc1-5 总结
  15. Oracle (03)分组子句.where条件 与 having条件的区别.子查询.DDL.DML.数据的增删改.TCL
  16. Elasticsearch(ES)创建索引
  17. matlab 水滴落水图,canvas 水滴图、液体进度条、仿加速球、圆球水波图
  18. python基础语法结构图(简单明了)
  19. 重大发现:微信新上线的“群接龙”功能,你还不知道吗?
  20. 案例研究 | 瓜子二手车战略升级三部曲

热门文章

  1. excel函数FREQUENCY、COUNTIFS、COUNTIF
  2. Windows应用程序进程级别统一监控实践
  3. Linux下安装Java(JDK8)
  4. 洛谷 P1049 装箱问题(01背包)
  5. 【bzoj1511】[POI2006]OKR-Periods of Words KMP-next数组
  6. XXE漏洞检测及代码执行过程
  7. 使用websploit在局域网全自动渗透
  8. Kali Linux Web 渗透测试— 第十二课-websploit
  9. 蓝桥杯:基础练习 杨辉三角形
  10. python 句子中没有中文_AI伪原创,我们是认真的。[Python实现]