• DNS解析过程


    DNS协议:将域名转换为IP地址的协议。

    • 域名服务主要是基于UDP实现的,服务器的端口号为53。
    • IP地址是面向主机的,而域名则是面向用户的

    域名的层次结构:

    DNS解析

    DNS解析的过程就是寻找哪台机器上有你需要资源的过程。当你在浏览器中输入一个地址时,例如www.baidu.com,其实不是百度网站真正意义上的地址。互联网上每一台计算机的唯一标识是它的IP地址,但是IP地址并不方便记忆。用户更喜欢用方便记忆的网址去寻找互联网上的其它计算机,也就是上面提到的百度的网址。所以DNS解析实际上充当了一个翻译的角色,实现了网址到IP地址的转换。

    而DNS解析通常会经过以下这几个过程:
    1.浏览器缓存 - 浏览器缓存DNS记录一段时间
    2.系统缓存 - 从Hosts文件查找是否有该域名和对应IP
    3.路由器缓存 - 一般路由器也会缓存域名信息
    4.ISP DNS缓存 - 到电信的DNS查找缓存
    5.都没有找到,则向根域名服务器查找域名对应IP,根域名服务器把请求转发到下一级查找IP

    www.baidu.com查找顺序是:
    根域名服务器(.)-> .com -> .baidu.com -> www.baidu.com


    具体可描述如下:
    1. 主机先向本地域名服务器进行递归查询
    2. 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
    3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
    4. 本地域名服务器向顶级域名服务器进行查询
    5. 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
    6. 本地域名服务器向权限服务器进行查询
    7. 权限服务器告诉本地域名服务器所查询的主机的IP地址
    8. 本地域名服务器最后把查询结果告诉主机


    上文我们提出了两个概念:递归查询和迭代查询
    (1)递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
    (2)迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。

  • 相关阅读:
    深入理解ThreadLocal
    synchronized与Lock的区别与使用
    1亿个数中找出最小的100个数--最小堆
    B+/-Tree原理(mysql索引数据结构)
    深入理解token
    shiro(java安全框架)
    第一次项目上Linux服务器(四:CentOS6下Mysql数据库的安装与配置(转))
    第一次项目上Linux服务器(三:安装Tomcat及相关命令)
    第一次项目上Linux服务器(二:——安装jdk)
    第一次项目上Linux服务器(一:远程连接服务器)
  • 原文地址:https://www.cnblogs.com/ceceliahappycoding/p/network.html
Copyright © 2020-2023  润新知