今天给大家介绍一下DNS访问原理。希望对大家能有帮助!

1、DNS的含义和结构

大家都知道,在互联网中是用IP来标识一台服务器的。IP地址虽然能够代表一台设备,但是由于记忆起来比较困难,所以将其替换成一个能够理解和识别的名字,这个名字我们称作为域名。

例如:www.baidu.com 就是一个域名,在域名后面会定义一个IP地址用来指向网站服务器。那么问题来了,谁来做这个从域名到IP地址的对应呢?答案是通过DNS来实现。

DNS 是域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。它将域名和IP地址相互映射的一个分布式数据库,在数据库中保存域名与IP的对照关系,从而使人更方便地访问互联网。

DNS解析是分布式存储的,从结构上来说最顶层是,根域名服务器(ROOT DNS Server),存储260个顶级域名服务器的IP地址。对于Ipv4来说全球有13个根域名服务器,它储存了每个域(如.com .net .cn)的解析和域名服务器的地址信息。简单的说,根域名服务器就是存放顶级域名服务器地址的。

在根域名服务器下一级就是,顶级域名服务器。例如.com的域名服务器,存储的是一些一级域名的权威DNS服务器地址(如toutiao.com的DNS)。

顶级域名又称一级域名,顶级域名可以分为三类,即gTLD、ccTLD和New gTLD:

  • gTLD:国际顶级域名(generic top-level domains,gTLD),例如:.com/.net/.org等都属于gTLD;

  • ccTLD:国家和地区顶级域名(country code top-level domains,简称ccTLD),例如:中国是.cn域名,日本是.jp域名;

  • New gTLD:新顶级域名(New gTLD),例如:.xyz/.top/.red/.help等新顶级域名。

顶级域名服务器就是根据上面三类保存域名IP对应数据的。

在顶级域名服务器下面一级就是,本地域名服务器(Local DNS)一般是运营商的DNS,主要作用就是代理用户进行域名分析的。

如图1 所示,DNS域名服务器分为三级,从上到下分别是根域名服务器(Root DNS Server)、顶级域名服务器(gTLD、ccTLD、New gTLD)、本地域名服务器(Local DNS Server)。

图1 DNS分层结构

2、DNS解析原理

说完DNS的结构,再来谈谈其运行原理。通过用户访问网页的过程,来描述DNS解析以及获取URL到IP映射的整个过程。其中过程比较复杂,会存在信息的来回传递。画图的过程中我们会简化信息来回传递的线段,重点放在信息传递的路径,通过9步来诠释DNS解析过程。

图2 用户请求以及DNS解析的全过程

  • 1、用户请求通过浏览器输入要访问网站的地址,例如:www.51cto.com。浏览器会在自己的缓存中查找URL对应IP地址。如果之前访问过,保存了这个URL对应IP地址的缓存,那么就直接访问IP地址。如果没有缓存,进入到第2步。

  • 2、通过计算机本地的Host文件配置,可以设置URL和IP地址的映射关系。比如windows下是通过C:\windwos\system32\driver\etc\hosts文件来设置的,linux中则是/etc/named.confg文件。这里查找本地的Host文件,看是有IP地址的缓存。如果在文件中依旧没有找到映射关系,进入第3步。

  • 3、请求Local DNS Server,通过本地运营商获取URL和IP的映射关系。如果在校园网,DNS服务器就在学校,如果是小区网络,DNS服务器是运营商提供的。总之这个服务器在物理位置上离发起请求的计算机比较近。Local DNS Server缓存了大量的DNS解析结果。由于它的性能较好,物理上的距离又比较近,它通常会在很短的时间内返回指定域名的解析结果。80%的DNS解析需求在这一步就满足了。如果在这一步还是没有完成DNS解析,进入第4步

  • 4、通过Root DNS Server进行解析,ROOT DNS Server会根据请求的URL 返回给Local DNS Server顶级域名服务器的地址。例如:查询的是”.com”的域名,就查询 gTL对应的域名服务器的地址。

  • 5、返回顶级域名服务器的地址以后,访问对应的顶级域名服务器(gTLD、ccTLD、New gTLD),并且返回Name Server服务器地址。这个Name Server就是网站注册的域名服务器,上面包含了网站URL和IP的对应信息。例如你在某个域名服务提供商申请的域名,这个域名就由他们的服务器来解析。这个Name Server是由域名提供商维护的。

  • 6、Name Server会把指定域名的A记录或者CNAME返回给Local DNS Server,并且设置一个TTL。

A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。CNAME:别名记录。这种记录允许您将多个名字映射到另外一个域名。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。服务商从方便维护的角度,一般也建议用户使用CNAME记录绑定域名的。如果主机使用了双线IP,显然使用CNAME也要方便一些。TTL(Time To Live):也就是设置这个DNS解析在Local DNS Server上面的过期时间。超过了这个过期时间,URL和IP的映射就会被删除,需要获取还要请求Name Server。
  • 7、如果此时获取的是A记录,那么就可以直接访问网站的IP了。但是通常来说大型的网站都会返回CNAME,然后将其传给GTM Server。

GTM(Global Traffic Manager的简写)即全局流量管理,基于网宿智能DNS、分布式监控体系,实现实时故障切换及全球负载均衡,保障应用服务的持续高可用性。传给GTM的目的就是希望通过GTM的负载均衡机制,帮助用户找到最适合自己的服务器IP。

也就是离自己最近,性能最好,服务器状态最健康的。而且大多数的网站会做CDN缓存,此时就更需要使用GTM帮你找到网络节点中适合你的CDN缓存服务器。

  • 8、找到CDN缓存服务器以后,可以直接从服务器上面获取一些静态资源,例如:HTML、CSS、JS和图片。但是一些动态资源,例如商品信息,订单信息,需要通过第9步。

  • 9、对于没有缓存的动态资源需要从应用服务器获取,在应用服务器与互联网之间通常有一层负载均衡器负责反向代理。有它路由到应用服务器上。

3、总结

NS服务器是用来做URL与IP地址解析的,帮助用户找到要访问服务器的IP。从DNS服务器的结构来说大致分为三层:根域名服务器,顶级域名服务器,本地域名服务器。

申请域名的供应商会提供Name Server作为DNS解析。从用户访问一个网站出发,经过浏览器,本地Host文件、Local DNS Server、Root DNS Server、顶级域名服务器(gTLD、ccTLD、New gTLD)、Name Server、GTM、CDN、Application Server。共经历了九个步骤。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

网络知识:DNS 访问原理详解相关推荐

  1. K8S探索之Service+Flannel本机及跨主机网络访问原理详解

    简介 在上篇中,我们部署了我们的应用,但我们访问是直接在应用所在的容器,使用IP+Port的方式直接访问的,style不够k8s,本篇文章我们将使用service和跨主机访问 内容概览 目前我们的应用 ...

  2. 网络交换机功能和原理详解

    网络交换机,是一个扩大网络的器材,能为子网络中提供更多的连接端口,以便连接更多的计算机.它具有性能价格比高.高度灵活.相对简单.易于实现等特点.那么,网络交换机具体有哪些功能呢?网络交换机的原理是什么 ...

  3. 网络数据管理协议NDMP原理详解

    1技术原理 网络数据管理协议NDMP是一种开放式标准,用于集中控制企业级数据管理.NDMP体系结构可使备份应用程序厂商在NetworkApplianceFiler和其他网络连接服务器上控制本机备份和恢 ...

  4. DNS 查询原理详解

    通过 DNS 查询,得到域名的 IP 地址,才能访问网站. 那么,DNS 查询到底是怎么完成的?本文通过实例,详细介绍背后的步骤. 一.DNS 服务器 域名对应的 IP 地址,都保存在 DNS 服务器 ...

  5. linux线程同步 epoll,Linux网络编程--epoll 模型原理详解以及实例

    1.简介 Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数.Linux 2.6内核中有提高网络I/O性能的新方法,即epoll . epoll是什么?按 ...

  6. 计算机网络知识详解之:TCP连接原理详解

    网络知识详解之:TCP连接原理详解 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名 ...

  7. 无线WiFi网络的密码破解攻防及原理详解

    无线WiFi网络的密码破解攻防及原理详解 大家应该都有过这样的经历,就是感觉自己家的无线网怎么感觉好像变慢了,"是不是有人蹭我家网?""还有的时候咱们出门也想试图蹭一下别 ...

  8. docker核心网络原理详解

    docker清空所有容器: 删除所有镜像: ip addr docker是如何处理容器网路访问的? 跑一个tomcat容器并使用ip addr查看ip地址: linux是可以ping通容器内部的ip的 ...

  9. 网络爬虫工作原理详解

    网络爬虫工作原理详解 一.通用网络爬虫运行原理 二.聚焦网络爬虫运行原理

最新文章

  1. Unity3d载入外部图片文件
  2. Linuxshell之高级Shell脚本编程-创建菜单
  3. multipathd: sdn: readsector0 checker reports path is down 多路径出错问题解决
  4. ORACLE中的MERGE语法使用记录
  5. Gradle自定义插件
  6. mysql锁表更新_Mysql InnoDB 数据更新导致锁表
  7. 锐度越高越好吗_德国瑞好和德国GC地暖哪个好
  8. 经验分享:我是如何在网店无货源情况下快速出单?
  9. 单点登录的CAS实践
  10. 计算机硬盘根目录是什么,硬盘根目录是什么意思?存放哪里?
  11. android恢复短信中心号码,短信中心号码设置解决安卓手机不能发短信问题,教你设置解决异地发不了短信问题...
  12. 时间序列 工具库学习(5) Darts模块-多个时间序列、预训练模型和协变量的概念和使用
  13. Python-15 函数:我的地盘听我的
  14. 华为有线无线组网案例
  15. WinRAR分卷压缩与解压缩
  16. Excel-快速填充
  17. 配置iterms窗口在其他界面上悬浮
  18. Activiti详解与案例
  19. 矿业工程毕业论文题目
  20. canvas绘制象棋谱

热门文章

  1. 【独家】衣服上的铁锈去除简易方法
  2. UNICODE编程资料(转贴)
  3. ORB-SLAM2中四叉树管理特征点
  4. 在ARM Linux下使用GPIO模拟SPI时序详解
  5. 函数参数的传递问题(一级指针和二级指针)
  6. HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray)
  7. 【图像处理】——Python+opencv实现提取图像的几何特征(面积、周长、细长度、区间占空比、重心、不变矩等)
  8. 第4章 Python 数字图像处理(DIP) - 频率域滤波10 - 使用低通频率域滤波器平滑图像 - 理想、高斯、巴特沃斯低通滤波器
  9. python3.5安装scrapy_Python3.5下安装测试Scrapy
  10. uni-app 手指左右滑动实现翻页效果