让 HTTPDNS 解决客户端 DNS 劫持与提高解析稳定性

背景:我们公司 App 安装量大概几十万。每日日活几万左右。经常会有用户跟我们的客服反馈微信能正常使用,使用我们的 App 就会网络请求失败,或者界面没有数据显示。然后,我们的客服人员协助用户查看了网络也并未被禁用。服务器后端程序也并示收到请求。而我们测试也进行了多个版本进行测试都没有发现任何问题。

针对这个问题,我们进行了如下问题的排查:
1)服务端是否收到请求。
2)服务端是否程序出错,导致客户端数据解析失败。
3)检查用户手机是否打开 App 网络。
4)让用户杀掉系统后台运行的 App 进程。
5)让用户清掉 App 缓存(Android)。
6)让用户卸载重新安装 App。

如果是 App 确实存在一些逻辑上的小问题,通过如上 6 步操作基本上都能解决问题。但是,如果是网络引发的问题,无论如何都无法恢复正常使用。对于我们开发来说,这简直是一种灾难。你很难跟用户解释,毕竟微信可用,而我们的 App 不可用。会给用户造成我们的开发实力太过薄弱。

而我做为技术负责人,必须给用户一个交代,也要给我的领导一个交代。这个交代只能是解决它。

一、DNS(Domain Name System)

DNS(Domain Name System),中文译为:域名系统。

它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。简单来说,它就是一个将域名翻译成 IP 地址的系统。

这个 DNS 系统在全球目前仅有 13 个根节点。所谓根节点是指存储这些域名与 IP 映射数据的系统。由于一些历史原因,中国并没有 DNS 根点。仅有这 13 个根节点的镜像节点。

以上信息均来源于互联网资料。想了解更多资料,可以自行搜索。今天我们的主角是 HTTPDNS,这里就不多作赘述。

二、DNS 原理简述

所谓原理指的是我们访问一个域名开始以及请求到达服务器之间,DNS 在中间如何工作。

据网络上资料显示 DNS 是采用传输层 UDP 协议通信。为什么不采用 TCP 协议呢?如果采用 UDP 协议,只需要发送两个包(查询包、响应包)即可完成域名的解析工作。如果采用 TCP 协议,要完成域名解析工作至少要 9 个包。那么 13 个根服务器明显不够海量的域名解析服务。即使以国内目前设置的 DNS 镜像数量。也无法接受海量的域名解析服务。

这里原理就讲这么多,更多的原理细节这不里展开讲。之所以单独拎出来讲 UDP 协议。是因为跟我们后面所讲的 HTTPDNS 工作原理有关系。

三、HTTPDNS 介绍

为了解决文章开头所讲的因为 DNS 问题引发的网络问题。我们采用了国内阿里云提供的 HTTPDNS 服务。

HTTPDNS 特点:

  • 防劫持:绕过运营商 Local DNS,避免域名劫持,让每一次访问都畅通无阻。
  • 精准调试:基于访问的来源 IP,获得最精准的解析结果,让客户端就近接入业务节点。
  • 低解析时延:通过热点域名预解析、缓存 DNS 解析结果、解析结果懒更新策略等方式实现 0 解析延迟。
  • 快速生效:避免 Local DNS 不遵循权威 TTL,解析结果长时间无法更新的问题。
  • 降低解析失败率:有效降低无线场景下解析失败的比率。
  • 稳定可靠:99.9% 的可用性,确保域名解析服务稳定可靠。

因为我司所有的服务器以及相关的配置服务以及域名都是从阿里云购买。狭隘地认为阿里云 HTTPDNS 对自家的东西支持是最好的。

防劫持这个很重要。经常会发现运营商劫持页面的情况发生。曾经见过无数这种情况发生在我的眼前。

其次是 WIFI 场景下解析的失败率。上当前网络环境下,很多用户都使用的是 WIFI 网络。所以,WIFI 场景下的解析成功率很重要。

总而言之,言而总之。在客户端(Android/iOS)应用中使用 HTTPDNS 之后,网络的稳定性得到大幅度提升。至少,以后不再为网络问题而引发的种种问题而寝食难安。

顺便说一下,这个 HTTPDNS 集成到客户端非常简单。并且,还便宜。百万级别的 PV,几乎不用花钱。所以,推荐大家尽量接入 HTTPDNS,以解尔忧。

根据 HTTPDNS 介绍,淘宝与支付宝这两款应用都在使用。

四、HTTPDNS 原理

HTTPDNS 利用 HTTP 协议与 DNS 服务器交互,代替了传统的基于 UDP 协议的 DNS 交互,绕开了运营商的 LocalDNS,有效防止了域名劫持,提高域名解析效率。另外,由于 DNS 服务器端获取的是真实客户端 IP 而非 Local DNS 的 IP,能够精确定位客户端地理位置、运营商信息,从而有效改进调度精确性。

传统的 DNS 解析是通过访问运营商 Local DNS 获得解析结果。这种方式容易引发域名劫持、域名解析错误、流量跨网等问题。 从而导致网站无法访问或访问缓慢。HTTPDNS 绕过运营商Local DNS,彻底解决域名劫持问题,并提供给用户精确快速的解析结果。

五、总结

网络问题复杂多样。能通过 HTTPDNS 解决一样少一样。这个世界对开发太过苛刻。我辈当互相勉励前行。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,104评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,816评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,697评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,836评论 1 298
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,851评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,441评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,992评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,899评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,457评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,529评论 3 341
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,664评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,346评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,025评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,511评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,611评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,081评论 3 377
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,675评论 2 359

推荐阅读更多精彩内容