• DNS查找域名的过程


    当我们在浏览器输入一个url地址时,需要获取到这个url的域名,本篇文章主要介绍了关于DNS查找解析域名的过程的一些东西。

    关于DNS

    不清楚DNS的小伙伴可以点这里:关于域名系统DNS解析IP地址的一些总结

    查找域名 && 域名解析

    DNS查找:

            浏览器查找域名的IP地址。

            浏览器DNS查找顺序一般是这样的:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索。

    详细过程如下:

    a. 浏览器缓存,浏览器会缓存DNS记录一段时间。

            操作系统没有设定浏览器存储DNS记录的时间长短,不同的浏览器会存储各自的一个固定时间,时长为2~30分钟不等。

    b. 系统缓存

            如果浏览器缓存里没有找到需要的记录,浏览器会做一个操作系统调用(windows里是gethostname),这样子,就可以获得系统缓存里的记录啦。

    c. 路由器缓存

            接下来,如果还是没有找到需要的缓存,将前面的查询请求发给路由器,它一般会有自己的DNS缓存。

    d. 如果还是没有,那么就去检查ISP有没有吧~

            每一个ISP(网络服务提供商),或一个大学,甚至是一个大学里的系都会有一个自己的本地域名服务器,他会在url第一次访问时缓存该域名的指向。下次再访问时,他会从缓存里把这个url曾经指向的IP调出来。

    e. 递归搜索

            还是没有需要的缓存~ 就只能放大招啦~
            你的ISP的DNS服务器会从根域名开始进行递归查询。

    递归查询

            主机向本地域名服务器的查询一般都是采用递归查询

            如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是返回一个失败的响应,表示无法查询到所需的IP地址。

    迭代查询

            本地域名服务器向根域名服务器的查询通常是采用迭代查询

            当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回给本地域名服务器所要查询的IP地址,要么返回给本地域名服务器下一步应当查询的域名服务器的IP地址。

    举个栗子:假设的主机想知道另一个主机(域名为 my.xxsilence.net)的IP地址。具体步骤如下:

    ① 主机先向其本地域名服务器进行递归查询,如果缓存中没有,继续下一步。

    ② 本地域名服务器采用迭代查询,先向一个根域名服务器查询。

    ③ 根域名服务器告诉本地域名服务器,下一次查询的顶级域名服务器 dns.net。

    ④ 本地域名服务器向顶级域名服务器 dns.net。

    ⑤ 顶级域名服务器 dns.net,下一次应查询的权限域名服务器dns.xxsilence.net的IP地址。

    ⑥ 本地域名服务器向权限域名服务器dns.xxsilence.net进行查询。

    ⑦ 权限域名服务器dns.xxsilence.net告诉本地域名服务器,所查询的主机的IP地址。

    ⑧ 本地域名服务器最后把查询结果告诉主机。

    本文链接:http://www.cnblogs.com/xsilence/p/6035559.html

  • 相关阅读:
    The XOR Largest Pair
    似乎在梦中见过的样子 (KMP)
    Censoring(栈+KMP)
    KMP解决最小循环节问题
    收集雪花 (贪心+双指针+离散化)
    「POI2010」反对称 Antisymmetry (manacher算法)
    A Horrible Poem (字符串hash+数论)
    leetcode103——二叉树的锯齿形层次遍历
    leetcode102 ——二叉树的层序遍历
    二叉树——100 相同的树(easy)
  • 原文地址:https://www.cnblogs.com/xsilence/p/6035559.html
Copyright © 2020-2023  润新知