DNS解析流程

DNS解析流程:

  1. 浏览器DNS缓存

    • 当我们在浏览器中访问某个域名时,浏览器首先会检查自己内部的DNS缓存,看是否有该域名的对应IP地址。
    • 如果有,直接使用缓存中的IP地址,跳过后续步骤。
  2. 本地系统DNS缓存

    • 如果浏览器的DNS缓存没有该域名的记录,接下来会查询操作系统的DNS缓存(例如在Windows中是DNS Client Service,在Linux中是nscd等)。
    • 如果本地系统缓存中有对应的IP地址记录,则使用该IP地址。
  3. 查询本地hosts文件

    • 如果系统DNS缓存中没有该域名的记录,操作系统会检查本地的hosts文件(一般路径为/etc/hosts),这个文件里可能有手动配置的域名与IP地址的对应关系。
    • 如果在hosts文件中找到对应记录,就直接使用。
  4. 向配置的DNS服务器(通常是ISP的DNS服务器)发起查询

    • 如果前面的步骤都没有找到对应的IP地址,系统会将查询请求发往配置的DNS服务器,通常是ISP提供的本地DNS服务器,也可以是用户自己配置的公共DNS服务器,如Google DNS 8.8.8.8。
    • 该DNS服务器会先检查自己的缓存,看是否已经有这个域名的解析结果。
  5. 递归查询,可能涉及根DNS服务器

    • 如果ISP的DNS服务器也没有缓存到这个域名的解析结果,它会发起递归查询:
      1. 根DNS服务器 查询顶级域名(如.com.net等)的授权服务器地址。
      2. 然后向对应的顶级域名(TLD)服务器 (例如.com的TLD服务器)查询该域名下一级的授权DNS服务器地址。
      3. 最后向该域名的权威DNS服务器发出查询,获取最终的IP地址。
    • 获取到IP地址后,DNS服务器会将结果缓存一段时间,并返回给请求方(用户的操作系统)。
  6. 返回IP地址给客户端

    • ISP或配置的DNS服务器返回域名的IP地址给本地计算机系统。
    • 操作系统缓存该IP地址,并将其返回给浏览器。
    • 浏览器接收到IP地址后,发起与该IP地址的HTTP/HTTPS连接。

总结:

  • 浏览器DNS缓存 -> 本地系统DNS缓存 -> 本地hosts文件 -> ISP或配置的DNS服务器 -> 递归查询(根服务器 -> TLD服务器 -> 权威DNS服务器) 是DNS解析的完整流程。
  • 其中涉及缓存的部分是为了加速解析速度,避免重复请求,提高效率。
相关推荐
2501_9160074718 小时前
免费抓包工具 Windows 和 Mac 怎么选?根据平台来选择工具
网络协议·计算机网络·网络安全·ios·adb·https·udp
一条泥憨鱼18 小时前
【从0开始学习计算机网络】| DNS 污染、劫持与 CDN:你的网页是怎么被“掉包“的
学习·计算机网络·安全·http·https·dns
我想走路带风1 天前
LRU和最长前缀和(计算机网络算法)
计算机网络·算法
2501_916008892 天前
iOS App 请求地址查看,不用配置看到 App 调了哪些接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
非凡大爹2 天前
Wireshark抓包解析:IPv4数据报服务类型字段从ToS到DSCP+ECN的演进
计算机网络·wireshark
我爱cope2 天前
【计算机网络 | 网络层6:IPv4 数据报格式:TTL、分片、首部校验和分别有什么用?】
网络·学习·计算机网络
拾光Ծ3 天前
【Linux网络】HTTPS如何保证数据安全?从对称加密、非对称加密到 CA 证书认证
计算机网络·网络安全·https·tls·加密算法
我爱cope3 天前
【计算机网络 | 网络层4:子网掩码与 CIDR:如何判断网络号和主机号?】
网络·学习·计算机网络
非凡大爹3 天前
IPv6扩展首部:为什么IPv6要把功能从IP首部分离出来?IPv6扩展首部解析
网络协议·tcp/ip·计算机网络
河北之花4 天前
计算机三级:路由器选型
网络·计算机网络·智能路由器