DNS协议:
DNS系统(domain name system)域名系统,是计算机网络中应用普遍的域名解析系统,该系统主要为应用程序提供一个域名映射,从而使得ip网路协议的使用更加人性化,只需要一些普通易记的域名,而不是一个包含4个数字组成的ip地址来请求服务器,而只需要在应用程序输入简单的单词即可,例如百度网(www.baidu.com)这样的域名,将被解析成为一个百度服务器的IP地址(解析成多少倒是无时间来细查,但可以使用traceroute工具来确定)。dns协议是如何解析域名的,接下来就开始讨论他的具体实现方式。
首先设想,如果要实现一个简单的域名系统,那么就必须有一台服务器,保存了关于域名和ip地址之间的映射,所有计算机应用(实际上计算机底层默认使用了dns协议来请求服务,例如浏览器,ftp等)首先发起了一个网络请求,那么在发起之初,他会向这个域名服务器发送一个dns请求,服务器接受到请求后会将它对应的ip地址返回给请求端,请求端收到真实的ip地址后,才开始向该ip地址后的服务器发送请求。这个简单的dns服务器完成了世界上所有的ip映射,而随着更多的域名加入,更多的服务器的加入,数据的维护将使得该系统的性能下降,同时由于单点服务,如果一旦服务一旦挂掉,则全网的请求都将陷入瘫痪,为了满足更多的请求和容量,目前的服务器都采用分布式的部署,而又将域名进行拆分,大概分为四类服务器。
1.根域名服务器,用于储存顶级域服务的地址
2.顶级域服务器,该服务器主要储存一些后缀名的dns服务映射,比如edu,com,cn等,一般只用来储存权威服务器的地址
3.权威dns服务器,该服务器储存用来储存一些组织或者机构的访问地址映射,也就是请求的真实的ip地址
4.本地dns服务器(不算事dns服务器),由用户自定义的dns服务器,用来进行内部的服务映射。
在这个请求模型下,dns请求首先发送到就近的根服务器,查询该域名下的顶级域服务器地址,并返回给请求端,请求端在发送请求到顶级域服务器,同样顶级域服务器返回知道该请求的权威dns服务器地址,请求端在请求权威服务器,最后请求本地dns服务器,直到得到真实的请求IP地址为止,这是一个递归查询的例子。另外一种请求方式则是迭代查询,由根服务器请求顶级域服务器,顶级域在请求权威,以此类推,最后逐层的将响应返回到根服务器,最后返回给客户端。
当然我们同样可以看出,这样似乎仍然没有解决根服务器的压力,因为几乎每次请求都需要根服务器来开始,所以又出现了dns缓存服务器,用来储存在请求路由中已经知道的服务器地址,这个缓存会没5分钟刷新一次,采用udp传输层协议。当我们一个请求发送到我们本地的dns缓存服务器后,服务器会首先检查缓存中是否存在该地址,有则返回,无则按照上面的过程获取一遍。如此而已。大概和web缓存服务器差不多的工作方式。
———dns数据格式
主要包括四个字段,name,value,type,ttl
ttl用来记录该条数据的有效时间,即什么时候从缓存中清除
而根据不同的type,name和value字段的定义是不同的
当type=A时,name=主机名(主机域名),value=主机ip地址
当type=NS时,name=域名,value=知道该域名的权威服务器主机名
当type=CNAME时,name=主机别名,value=规范主机名
当type=MX时,name=邮件服务器别名,value=规范主机名
————dns报文,自行百度
dns数据库插入,大都数注册过网络域名都知道,注册域名是需要专业的商业机构给你注册的,所以插入dns数据,实际上就是向注册登记机构申请域名的过程。
网友评论