zoukankan      html  css  js  c++  java
  • DNS

    DNS(Domain Name System)域名系统是因特网使用的命名系统。用户在使用网络服务时是通过使用域名来进行对指定站点的訪问的,但是机器确是通过IP地址来处理的。为什么机器不用域名来处理呢?由于IP地址的长度是固定的32位,而域名的长度并非固定的,机器处理起来比較困难。

    所以就须要将域名解析为IP地址。

    DNS就是用来进行域名解析的server。DNS系统被设计成为一个联机分布式数据库,採用客户-server方式。DNS使大多数名字都在本地进行解析,仅少量解析须要在因特网上通信。因此DNS系统的效率挺高。

    当某一个应用程序须要把主机名解析为IP地址时,该应用程序就调用解析程序。并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名server(使用UDP是为了减小开销)。本地域名server在查找域名后,将相应的IP地址放在回答报文中返回。应用程序获得目的主机的IP地址后既可进行通信。


    域名server

    在介绍DNS的工作原理之前。我们须要将DNSserver分个类:根域名server顶级域名server权限域名server本地域名server

    根域名server: 最高层次的域名server,也是最重要的域名server。

    全部的根域名server都知道全部的顶级域名server的域名和IP地址。根域名server是最重要的server,若要对因特网上不论什么一个域名解析。仅仅要自己无法解析,就首先要求助根域名server。假设全部的根域名server都瘫痪了,整个DNS就无法工作了。在非常多时候,根域名server并不直接将查询到的域名转为IP地址,而是告诉本地server下一步应该找哪一个顶级域名server进行查询。

    顶级域名server : 这些域名server负责管理在该顶级域名器注冊的全部二级域名。当收到DNS查询时,就给出最后答案,答案可能是最后的结果,也可能是下一步应当找的域名server的IP地址。

    权限域名server : 负责一个区的域名server。当一个权限域名server不能查询到终于结果的话。就会告诉用户下一步须要查找哪个权限域名server。

    本地域名server : 当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名server。主机向本地域名server的查询一般都是採用递归查询。所谓递归查询就是假设主机所询问的本地域名server不知道被查询域名的IP地址。那么本地域名server就以DNS客户的身份,向其它根域名server继续发出查询请求报文,而不是让该主机自己进行下一步查询。

    本地域名server向根域名server的查询一般都是採用迭代查询。所谓迭代查询就是当根域名server收到本地域名server发出的查询请求报文后,要么告诉本地域名server下一步应该查询哪一个域名server。然后本地server自己进行兴许的查询。(而不是替代本地server进行兴许查询)。

    各域名server关系图例如以下:


    工作原理及过程

    接下来我们通过一个完整的流程来了解DNS的完整工作流程。

    假定域名为 m.xyz.com的主机想知道还有一个主机(域名为y.abc.com)的IP地址。

    增加,主机m.xyz.com打算发送邮件给主机y.abc.com。这时就必须知道主机y.abc.com的IP地址。过程例如以下:

    1.      主机m.xyz.com 先向其本地域名serverdns.xyz.com进行递归查询。

    2.      本地域名server採用迭代查询,它先向一个根域名server查询;

    3.      根域名server告诉本地域名server。下一次应查询的顶级域名serverdns.com的IP地址;

    4.      本地域名server向顶级域名serverdns.com进行查询;

    5.      顶级域名serverdns.com告诉本地域名server,下一次应查询的权限域名serverdns.abc.com的IP地址。

    6.      本地域名server向权限域名serverdns.abc.com进行查询;

    7.      权限域名serverdns.abc.com告诉本地域名server,所查询的主机y.abc.com的IP地址;

    8.      本地域名server最后把查询结果告诉主机m.xyz.com。

    以上八个步骤总共要使用八个UDP用户数据报的报文。本地域名server经过三次迭代查询后,从权限域名serverdns.abc.com得到了主机y.abc.com的IP地址,最后把结果返回给发起查询的主机m.xyz.com。

    为了提高DNS查询效率。并减轻根域名server的负荷和降低因特网上的DNS查询报文数量,在域名server中广泛地使用快速缓存。用来存放近期查询过的域名以及从何处获得域名映射信息的记录。






  • 相关阅读:
    TIME_WAIT
    Oracle常用SQL命令
    Linux系统标准化设置:克隆系统后网卡设置、固定IP设置、关闭防火墙和SELINUX、更改主机名
    Linux平台oracle 11g单实例 + ASM存储 安装部署
    Oracle基础维护03-主机、数据库日志收集
    print控制台输出带颜色文字方法
    第二十九节,装饰器
    python 浅析对return的理解
    工欲善其事,必先利其器——持续更新中……
    优秀的学习资源收集:
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5138323.html
Copyright © 2011-2022 走看看