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


    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/

  • 相关阅读:
    PAT甲级1107. Social Clusters
    PAT甲级1103. Integer Factorization
    PAT甲级1098. Insertion or Heap Sort
    hihocoder 162周 1323 : 回文字符串
    PAT甲级1095. Cars on Campus
    PAT甲级1089. Insert or Merge
    PAT甲级1087. All Roads Lead to Rome
    PAT甲级1076. Forwards on Weibo
    PAT甲级1066. Root of AVL Tree
    PAT甲级1057. Stack
  • 原文地址:https://www.cnblogs.com/softidea/p/5325189.html
Copyright © 2020-2023  润新知