DNS是互连网核心协议之一,不管是上网浏览,还是编程开发,都需要了解一点它的知识。本文就来学习DNS工作原理,希望您读完本文也对它有所了解。
DNS(Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP,所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。
DNS的工作原理以过程分为下面几个步骤:
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第五步:重复第四步,直到找到正确的纪录。
第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
让我们举个例子来详细说名解析域名的过程。假设我们的客户机如果想要访问站点: www.xxx.org , 此客户本地的域名服务器是 dns.company.com , 一个根域名服务器是 ns.inter.net ,所要访问的网站的域名服务器是 dns.xxx.org ,域名解析的过程如下所示:
1、客户机发出请求解析域名 www.xxx.org 的报文;
2、本地的域名服务器收到请求后,查询本地缓存,假设没有该纪录,则本地域名服务器 dns.company.com 则向根域名服务器 ns.inter.net 发出请求解析域名 www.xxx.org ;
3、根域名服务器 ns.inter.net 收到请求后查询本地记录得到如下结果:xxx.org NS dns.xxx.org (表示 xxx.org 域中的域名服务器为:dns.xxx.org ),同时给出 dns.xxx.org 的地址,并将结果返回给域名服务器 dns.company.com ;
4、域名服务器 dns.company.com 收到回应后,再发出请求解析域名 www.xxx.org 的报文;
5、域名服务器 dns.element.org 收到请求后,开始查询本地的记录,找到如下一条记录: www.xxx.org A 211.120.3.12 (表示 xxx.org 域中域名服务器 dns.xxx.org 的IP地址为:211.120.3.12),并将结果返回给客户本地域名服务器 dns.company.com ;
6、客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机。
这样就完成了一次域名解析过程。
为什么要有DNS解析?让用户电脑和服务器(网页存放电脑)连接起来的并不是靠域名进行的,网络上计算机之间实现连接是通过每台计算机在网络中拥有的唯一的IP地址来完成的。但IP地址并不便于记忆,这样就需要在用户容易记忆的地址和计算机能够识别的地址之间有一个解析,用户容易记忆的地址就是域名,而DNS服务器便充当了将用户请求域名“翻译”成相应IP地址以便于计算机之间互相连接的角色。
一般的域名商或服务器商都会提供免费的DNS服务,然而,很多情况下这些免费的DNS服务器速度较慢,故做一定优化,具体可从以下几个方面:
1)增加DNS服务器数量
减少服务器压力,当单位服务器需要处理的DNS请求数量较少时速度会更快
2)全国多地分布DNS服务器
用户网络访问速度跟用户计算机到服务器的距离有关,若可以让用户就近访问所在省份的服务器便可以加速DNS解析速度;
3)识别用户线路反馈相应线路IP
当用户网络线路跟服务器网络线路一致时速度较快,而不一致时则较慢,如:用户使用电信的线路但服务器是联通的线路,这样就会造成用户访问网站速度下降,如果可以识别用户访问线路并反馈相应IP则会加速网站访问。
更多精彩内容,欢迎访问编程学习网教育!