浅谈DNS域名解析过程

互联网是通过URL来发布和请求资源的,而URL中的域名需要解析成IP地址才能与远程主机建立连接。当用户在浏览器中输入 www.baidu.com时,DNS会将域名解析成IP地址,然后再去匹配对应的IP地址。


步骤一:当在浏览器中输入域名按下回车键后,浏览器会检查缓存中有没有这个域名对应的解析过的IP地址。如果缓存有,解析结束。浏览器缓存域名在大小和时间上都是有限制的。缓存时间可由TTL属性来设置缓存时间太长太短都不好,太长,会导致IP解析有变化,会导致域名不能正常解析,部分用户无法访问网站。缓存时间太短,用户每次都需要重新解析一次域名。


步骤二:如果用户的浏览器中缓存没有,浏览器会查找操作系统中是否有这个域名对应的DNS解析结果。其实操作系统中也会有一个域名解析的过程,在windows中可以通过c:\\windows\system32\drivers\etc\hosts文件来设置,你可以将任何域名解析到任何能够访问的IP地址。(黑客劫持域名)步骤一和步骤二都是由本机完成的。


步骤三:当机无法完成域名解析,就会真正请求域名服务器来解析这个域名了。我们怎样知道域名服务器?网络配置中都会有“DNS服务器地址”操作系统会把这个域名发送到设置中的LDNS,也就是本地的域名服务器。DNS通常都会提供给你本地互联网接入的一个DNS服务器。比如你在学校,那么这个DNS服务器一定在你们学校。WIndows中可由ipconfig查询这个地址。


步骤四:如果LDNS仍然没有解析到,就直接到Root Service域名解析器请求解析


步骤五:根域名服务器返回给本地域名服务器一个所查询余的主域名服务器(gTLDServer)地址。gTLD是国际顶级域名服务器,如:.com/.cn/.org等,全球只有13台左右。


步骤六:本地域名服务器(Local DNS Server)再向上一步返回的gTLD服务器发送请求


步骤七:接收请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务器(如你的域名供应商)


步骤八:Name Server域名服务器会查询存储的域名和IP的映射关系表,正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server域名服务器


步骤九:返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,缓存的时间有TTL值控制。


步骤十:把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

 

在实际的DNS解析过程中,可能还有更多的步骤,如Name Server也可能有多级,或者有一个GTM来负载均衡控制,都可能影响域名解析的过程。更多内容,可参考以下数据

本文参考书籍:《深入分析Java Web技术内幕

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值