Android 网络性能优化(2)DNS优化,安卓插件化开发

本文深入探讨了Android应用中的网络性能优化,重点关注DNS解析过程及其潜在问题,包括DNS服务器结构、DNS寻址过程、DNS坑点。通过理解DNS的工作原理,提出了ip直连作为优化策略,讨论了如何在Http和Https环境下实现ip直连,包括SNI技术的应用,以提升网络连接速度和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

而连接的最初的动作是DNS解释,在第一篇中,描述DNS的状况是:

域名换ip。这一步看似简单却充满陷阱,10分钟的DNS的Cache过期时间,200~2000ms不等的DNS耗时,坑了无数应用。

解决无非有三个策略:

  • ip直连

  • 域名重用(收敛)

  • HttpDNS

不过仅仅用一段话来描述DNS的疼点还是比较生硬的,所以在学习ip直连和HttpDNS之前,我需要先弄懂DNS出现问题的具体原因。

2. DNS

========================================================================

2.1 DNS是什么


在网络世界中,我们如果想要访问某一个服务器的东西,我们需要知道它的ip地址是多少,这样才能去连接走Http。

但是 ip地址32位二进制的数字,它的常用格式: XXX.XXX.XXX.XXX 显然,我就是为了访问一个服务器,你让我记住这么一长串的数字,这不是在为难人吗?我每天都要访问数十个网站,一秒钟几亿上下,每个网站的ip都要记在小本子上,而且一个服务器可能还有好几个ip,然后在访问时还要很细心一个个敲在输入框中…

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200925154519274.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Jpa2thdGhld29yb
GQ=,size_16,color_FFFFFF,t_70#pic_center)

所以为了解决这种体验问题,DNS(Domain Name System)就这么出现了。服务器可以申请得到域名,比如说我们熟知的百度的域名就是 : www.baidu.com。这样我们在浏览器的输入框只要输入这个域名,就能访问百度的服务器了。

那我们看到DNS出现,不用去记那么一长串的ip地址了,只用记住域名就可以了,域名一般来说都是英文加数字格式,很方便人类进行记忆。

那我们已经很清楚DNS的作用了,我们告诉DNS域名,DNS帮我们找到ip地址,即 域名换ip,来看下下图:

在这里插入图片描述

这样人类就可以很哈批的去访问各种网站了。

注:DNS大部分都是基于UDP的,所以DNS本身具有UDP连接的不可靠性

2.2 DNS服务器结构


每天都有成万上亿的人在互联网冲浪,这说明DNS没有一刻不在被使用,所以DNS服务器一定要保证高可用、高并发和分布式服务器。所以有必要了解DNS的结构。

我们先来看下域名的空间结构:

在这里插入图片描述

像 com、net、cn这些代表的就是顶级域名(也叫根域名),顶级域名前面的就是二级域名,二级域名前面的是三级域名。

比如 www.baidu.com.com就是根域名, .baidu就是二级域名, www就是三级域名。根据这个我们再来看看DNS的结构。

从理论上说,任何形式的标准域名要想被实现解析,按照技术流程,都必须经过全球“层级式”域名解析体系的工作,才能完成。所以DNS的服务器结构是根据官方的层级式来分类的,有下面四类:

  • 根域名服务器(Root Name Server)

  • 顶级域名服务器(Top-level Name Server)

  • 权威域名服务器(Authoritative Name Server)

  • 本地 DNS 服务器(Local D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值