上一篇中提到了,在hosts文件里边绑定主机名和IP地址。
IP地址比较难以记忆,所以发明了域名(主机名)。但是怎么域名和ip是怎么对应起来的呢。
这就需要dns(Domain Name System,类似在hosts里边绑定主机名和IP地址),在你敲入域名www.xiaoqiang.com,将域名解析为对应的IP地址,接着继续进行访问。
可以简单的理解为,输入URL--dns进行解析--连接远程的主机等等一系列连接后的网络行为。(如果是域名访问的话,DNS很关键噢,要是IP的话,无所谓了)
如下图所示:
那么DNS到底是怎么把IP地址和域名(主机名)对应起来的呢?
在你输入URL之后,系统会现在本地的DNS缓存中查找,有没有对应的缓存,如果有的话,很幸运,你可以访问了。
但是如果没有的话,那么就要向本地的DNS服务器发送请求,进行查询,有的话,DNS服务器会返回给请求的系统,进行访问,并根据策略,缓存主机名和IP地址的对应关系。
如果本地DNS服务器也没有的话,就要接着向根DNS发起请求进行查询了,然后从根域名解析服务器一层一层的往下走,就会找到相应的IP地址。
以360为例子吧,利用dig命令来追踪DNS的解析的详细过程。
命令:dig +trace www.360.cn
1、看到通过本地的DNS服务,找到了根域名服务器(.),总共有13台。
2、通过一个根域名服务找到了对应的cn.服务器
3、通过CN的域名服务找到360.cn.
4、通过ns*.360.safe.com.找到www.360.cn.
5、然后就返回给请求的机器,www.360.cn对应的ip地址