DNS篇
DNS(Domain Name System)就是域名系统,是因特网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
- 一个由分层的DNS服务器实现的分布式数据库
- 一个使得主机能够查询分布式数据库的应用层协议,DNS服务器通常是运行在BIND软件的UNIX机器,DNS协议运行在UDP, 53号端口
DNS服务器
DNS采用了分布式的设计方案,下图所示是DNS服务器的部分层次结构
如上图所示,域名结构是树状结构,树的最顶端代表根服务器,根的下一层就是由我们所熟知的.com、.net、.cn等通用域和.cn、.uk等国家域组成,称为顶级域。网上注册的域名基本都是二级域名,比如http://baidu.com、http://taobao.com等等二级域名,它们基本上是归企业和运维人员管理。接下来是三级或者四级域名,这里不多赘述。总体概括来说域名是由整体到局部的机制结构。
另外还有一类重要的DNS,称为本地DNS服务器,严格来说本地服务器并不属于该服务器的层次结构,但对DNS服务器的层次结构是很重要的,每个ISP都有一台本地DNS服务器。
域名解析流程
1、客户主机在打开浏览器以后,比如输入http://www.zdns.cn的域名,它首先是由浏览器发起一个DNS解析请求,如果本地缓存服务器中找不到结果,则本地DNS服务器将报文转发给根DNS服务器,根DNS服务器注意到cn后缀并向本地DNS服务器返回负责cn的TLD DNS服务器的IP地址
2、本地DNS服务器再次向TLD DNS服务器发送查询报文,该TLD DNS服务器注意到 zdns.cn后缀, 并向本地DNS服务器返回权威DNS服务器的IP地址。
3.本地DNS服务器再次向权威 DNS服务器发送查询报文,该权威 DNS服务器注向本地DNS服务器返回要查询的主机的IP地址。
4、最终才能进行http的链接,顺利访问网站。
也就是说客户端发起请求后,首先要进行域名解析,得到对应的IP地址之后,才能对相应的网站进行访问,建立HTTP连接(当然若递归域名服务器即本地域名服务器里已经存储域名与IP的对应关系,就不需要从根服务器进行查找了–即DNS缓存)