详细学习DNS域名解析的过程.
用户在浏览器端输入www.xxx.com时候,按下回车键,DNS解析有如下的过程.
- step 1
首先,浏览器会去检查缓存里面有没有该域名解析过的IP地址.如果有,解析结束.
浏览器缓存域名也是有限制的,比如缓存的大小,缓存的时间(几分钟到几小时不等).域名缓存时间可以通过TTL来设置.一般不宜设置过短或者过长.
- step 2
如果用户浏览器端缓存里面没有,那么会去查找操作系统里面的缓存是否有该域名解析的结果.
windows下: C:\Windows\System32\drivers\etc\hosts
- step 3
当前面两个缓存都没有的话,那么这时候就会真正请求域名服务器来解析该域名了.
操作系统会把域名发送到LDNS(本地区的域名服务器).
cmd下通过ipconfig查询到该地址.
- step 4
如果LDNS没有命中,就直接连接到Root Server域名服务器请求解析.
- step 5
根域名服务器返回给本地域名服务器一个所查询域的主域名的服务器地址(gTLD Server).
gTLD是国际顶级域名服务器,如.com,.cn,.org.
- step 6
本地域名服务器 Local DNS Server再向上一步返回的gTLD服务器发送请求.
- step 7
接受请求的gTLD服务器查找并且返回此域名下的Name Server域名服务器的地址,Name Server通常就是你注册的域名服务器.
- step 8
Name Server域名服务器会查询存储的域名和IP的映射关系表.
一般根据域名得到目标IP记录,连同一个TTL的值返回给DNS Server域名服务器.
- step 9
返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系.缓存时间由TTL控制.
- step 10
把解析的结果返回给用户,用户根据TTL的值缓存在本地系统缓存中.域名解析结束