网络优化是什么,网络优化具体优化的是什么

网络优化是什么,网络优化具体优化的是什么 前言小计在 App 访问网络的时候,DNS 解析是网络请求的第一步,默认我们使用运营商的 LocalDNS 服务。有数据统计,在这一块 3G 网络下,耗时在 200~300m

前言小计

在 App 访问网络的时候,DNS 解析是网络请求的第一步,默认我们使用运营商的 LocalDNS 服务。有数据统计,在这一块 3G 网络下,耗时在 200~300ms,4G 网络下也需要 100ms。

解析慢,并不是 LocalDNS 最大的问题,它还存在一些更为严重的问题,例如:DNS 劫持、DNS 调度不准确(缓存、转发、NAT)导致性能退化等等,这些才是网络优化最应该解决的问题。

想要优化 DNS,现在最简单成熟的方案,就是使用 HTTPDNS。

今天就来聊聊,DNS、HTTPDNS

本文已在在公众号【Android开发编程】发表

一、什么是DNS

Android性能优化之网络优化DNS和HttpDNS知识详解

  • DNS(Domain Name System)是域名系统的英文缩写,是一个组织的系统管理机构,维护系统内的每一个主机的ip和主机名(域名)的对应关系;
  • DNS即域名解析系统,这个东西说对于开发者来说,应该是没有不知道的。说简单点,这个系统的作用就是将域名解析成IP地址。我们的每一次网络请求,如果是使用域名,那么就是进行域名解析;
  • 一个优秀的域名服务应该能够满足两点要求,一个是能够正确的返回IP地址,二就是能够根据网络情况返回所请求的域名最近的服务器IP;

二、DNS域名结构

Android性能优化之网络优化DNS和HttpDNS知识详解

1、DNS域名命名

  • 每个域名都是一个标号序列,用字母、数字和连接符(-)组成;
  • 标号序列总长度不能超过255字符,每个标号都可以看成一个层次域名;
  • 级别最低的域名写在左边,级别最高的域名写在右边;
  • 域名服务主要通过UDP实现,服务器的端口为53;

2、域名的分级

域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域名、二级域名、三级域名等

顶级域名可以分为三大类:

国家顶级域名:cn、us、uk等

通用域名:常见的有7个,com、net、org、edu、int、gov、mil

方向域名: arpa,用于将ip地址转为域名

域名服务器

域名服务器按照由高到低进行层次划分:

注意: 一个域名服务器所负责的范围,称为区

三、域名解析过程

域名解析的重要两点:

  • 主机向本地域名服务器查询一般都是采用递归查询。所谓递归查询就是:如果主机所查询的本地服务器不知道被查询的域名的ip地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即代替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的ip地址,或者是报错,表示无法查询到所需的ip地址;
  • 本地域名服务器向根域名服务器的查询是迭代查询。所谓迭代查询就是:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所查询的ip地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的ip地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的ip地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的ip地址或者报错,然后把这个结果返回给发起查询的主机;

以上两点是域名解析的重要两步。但是这并不是解析ip地址的完整过程,如果浏览器的缓存中有该域名对应的ip地址,就不需要向本地域名服务器请求了等等。下面来看详细过程:

Android性能优化之网络优化DNS和HttpDNS知识详解

例如要解析:www.example.com该域名的ip地址;

  1. 浏览器缓存:当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的ip地址;
  2. 操作系统缓存:当浏览器缓存中无域名对应IP则自动检查用户计算机系统hosts文件,看是否有该域名对应的ip地址;
  3. 路由器缓存:当浏览器及系统缓存中都没有域名对应ip地址,则进入路由器缓存中检查。以上三点都是客户端的DNS缓存;
  4. ISP(网络服务提供商)的LDNS(本地域名服务器):如果上述三点都没有找到对应的地址,就要本地域名服务器中进行查询。比如你是电信的网,则会进入电信的DNS缓存服务器进行查找;
  5. 根域名服务器:本地域名服务器没有找到,本地域名服务器就会到根域名进行查询。全球仅有13台根域名服务器。根域名服务器收到请求后,会查看区域文件记录,若无则将其管辖下的对应的顶级域名的ip地址,这里返回.com的地址;
  6. 顶级域名服务器:根域名服务器没有,则本地域名服务器向顶级域名服务器发送请求,然后返回次级域名服务器的ip地址,这里会返回.example的地址;
  7. 主域名服务器:主域名服务器接收请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确记录。
  8. 保存结果至缓存:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个ip地址与web服务器建立连接;

四、DNS安全和优化

1、dns安全问题

  • DNS反射/放大攻击;
  • DDOS攻击可能造成域名解析瘫痪;
  • DNS/域名劫持:在劫持的网络范围内拦截域名解析的请求,分析请求的域名,返回假的ip地址或者使请求失去响应。DNS劫持通过篡改DNS服务器上的数据返回给用户一个错误的查询结果来实现;
  • DNS污染:DNS污染是当用户发起域名解析请求时,某个服务器(非DNS)监控到用户访问的已经被标记的地址时,该服务器伪装成DNS服务器向用户发回错误的地址;
  • DNS污染与DNS劫持的区别:DNS劫持修改了dns解析的结果,DNS污染是不经过DNS服务器的,而是直接返回了错误的地址;
  • DNS信息被修改;

2、DNS优化

DNS解析是一个漫长的过程,那么它的优化有哪些?

1、网页端

用户在请求请求某个链接之前,浏览器先尝试解析该链接的域名再将其进行缓存。

可以这样做:

(1) 在服务器中响应设置X-DNS-Prefetch-Control的值为on启动预解析

(2) 在HTML中,

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/96798.html

(0)

相关推荐

  • 人间直播app手机版(2022最新版下载)

    人间直播app手机版(2022最新版下载)人间直播app手机版是一款非常受欢迎的直播交友平台,在人间直播app中你能找到志同道合的朋友,有着各种类型的人等你去交流,各种高颜值的单身男女,各类型的社交方式,附近到同城应有尽有。喜欢交友的单身朋友们快来下载体验吧!人间直播app介绍
    人间直播是一款附近同城语音视频直播交友app,主打陌生人社交,为直播兴趣人群提供多种娱乐方式,集合了视频、语音、文字多种

    2022年10月3日
  • 拼多多网店货源一件代发,拼多多怎么做一件代发货源

    拼多多开店,拼多多开店货源,拼多多开店货源一件代发怎么弄拼多多开店货源一件代发怎么弄 有些商家没有稳定的货源,但是想要在拼多多开店,那么就可以选择一件代发,也就是无货源模式,那么有的卖家想知道,拼多多开店货源一件代发应该

    电商 2021年11月9日
  • pytorch cuda11.1无法使用conda安装怎么办

    技术pytorch cuda11.1无法使用conda安装怎么办这篇文章将为大家详细讲解有关pytorch cuda11.1无法使用conda安装怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后

    攻略 2021年11月18日
  • 自然的秘密语言,东中央幼儿园,采录公园:一个小气象员。

    “大家好!我是刘诗萁,我是今天的天气预报员。今天是2021年11月15日,星期一,最高温度22度,最低气温10度,天气晴......”

    生活 2021年11月15日
  • 妈妈爸爸,请不要这样爱我

    孩子是父母的心肝宝贝,孩子的成长,少不了父母爱的浇灌。但父母若是用错了爱的方式,以“爱孩子”的名义做出不文明,甚至不道德的事,反而会让孩子深受其害。下面这9个典型反例,就算是小孩子看了,也要皱眉,不想让孩子长成熊孩子,还要从家长不要做熊家长做起↓↓↓

    生活 2021年9月26日
  • 草鞋亲的意思,草鞋亲是什么意思-词组(字义,诗词)

    词组草鞋亲的意思,草鞋亲是什么意思-词组(字义,诗词)基本解释详细字义 草鞋亲拼音:cǎo xié qīn注音:ㄘㄠˇ ㄒ一ㄝˊ ㄑ一ㄣㄑ一ㄥˋ解释:指穷亲戚。基本字义
    草cǎo(ㄘㄠˇ)
    1、对高等植物中除了树

    阅读 2021年11月30日