DNS域名解析协议详解
Posted 两片空白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS域名解析协议详解相关的知识,希望对你有一定的参考价值。
DNS技术
DNS是一整套从域名映射到IP的系统。
一.背景
TCP/IP协议使用IP地址和端口号来确认网络上的一台主机的一个程序。但是IP地址和端口号不方便人们记忆。于是人们发明了域名,是一串字符串,并且使用host文件来保存主机名和IP地址之间的映射关系。
最初,是通过互联网信息中心(SRI-NIC)来管理这个文件,host文件保存在本地。
- 如果一个新计算机要接入网络或者某个计算机的IP变更,都需要到信息中心申请变更host文件
- 其它计算机也需要定期下载更新新的版本的hosts文件才能上网。
随着计算机原来越多,网址也越来越多。这样就有点麻烦了,于是产生了DNS系统。由管理机构进行管理。
- 一个组织的系统管理机构,维护系统的每一个主机IP和域名的对应关系。
- 如果新计算机接入网络,将这个信息注册进数据库中
- 如果输入域名的时候,会自动查询DNS服务器,由DNS服务器自定检索数据库,得到对应的IP地址。
现在的计算机仍然保留了host文件
总结:域名是面向用户的,方便用户使用,IP地址是面向计算机的。
二.域名简介
DNS域名解析技术属于应用层技术,底层用的是UDP协议。
2.1 域名的层次结构
DNS 系统采用的是分布式的解析方案,整个DNS 架构是一种层次树状结构,这个树状结构称为 DNS 域名空间。
- 树状结构最顶层称为根域,用"."表示,相应的服务器称为跟服务器,这个域名空间解析权都归根服务器所有。
- 但是根服务器无法承担庞大的负载,互联网IP太多。于是采用了"委派机制"。
- 在根域下设置了顶级域,然后将不同顶级域的解析权交给了顶级域服务器,比如com域的解析权委派给了com域服务器,以后和com结尾的域名解析请求,都会转发给com域服务器
- 为了减轻顶级域的压力,又设下了二级域,二级域下面又设下了三级域或主机。
其中顶级域又分:国家顶级域名、通用顶级域名、反向域名。
国家顶级域名 | 中国:cn, 美国:us,英国uk… |
---|---|
通用顶级域名 | com公司企业,edu教育机构,gov政府部门,int国际组织,mil军事部门 ,net网络,org非盈利组织… |
反向域名 | arpa,用于PTR查询(IP地址转换为域名) |
如:www.baidu.com
- com:顶级域名,表示这是一个企业域名。同级的还有"net"(网络提供商),"arg"(非盈利组织)等。
- baidu:二级域名,公司名字。
- www.:只是习惯用法。去掉www.也可以进行搜索。
2.2 域名服务器的层次结构
域名具有层次结构,域名需要服务器进行管理,域名服务器也有层次结构。
由高向低进行层次划分,可分为以下几大类:
分类 | 作用 |
---|---|
根域名服务器 | 最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助 |
顶级域名服务器 | 负责管理在该顶级域名服务器下注册的二级域名 |
权限域名服务器 | 负责一个区的域名解析工作 |
本地域名服务器 | 当一个主机发出DNS查询请求时,这个查询请求首先发给本地域名服务器 |
注意:一个域名服务器所负责的范围,或者说有管理权限的范围,就称为区。上一级域名服务器知道下一级域名服务器的IP地址。
2.3 域名解析过程
域名解析总体可分为以下过程:
- 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
- 如果没有, 就向上级域名服务器进行查找, 依次类推
- 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
- 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程
具体可描述如下:
- 主机先向本地域名服务器进行递归查询
- 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
- 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
- 本地域名服务器向顶级域名服务器进行查询
- 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
- 本地域名服务器向权限服务器进行查询
- 权限服务器告诉本地域名服务器所查询的主机的IP地址
- 本地域名服务器最后把查询结果告诉主机
递归查询:主机向本地域名服务器发起请求,等待返回结果。如果本地域名服务器没有解析,会以DNS客户机的身份,会向其它域名服务器进行查询。
迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
递归查询是主机向本地域名服务器发起请求,主机只需要等待结果,中间查询过程不关心。
迭代查询是本地域名服务器查询根域名服务器,下一次应该去哪查询,本地服务器再去那个域名服务器查询。都是自己去查询。
借鉴:DNS(域名解析协议)详解_honeyJ-CSDN博客_dns协议
三.用户在浏览器输入url后,发生的事
- 在浏览器输入网址,先通过域名在DNS系统上找到对应的IP地址
- 浏览器向服务器发送一个http/https的请求
- 服务器接收到请求,响应请求,返回一个html响应。
- 如果是重定向,服务器会响应重定向的URL。客户端会重复之前的动作。服务器也会响应请求,发送HTML响应。
- 服务器开始显示HTML,没有完全接收HTML文件,就已经显示。
- 浏览器发送获取嵌入在HTML的对象,都要经历和上面一样的步骤。
- 浏览器发送异步请求(AJAX),客户端依然连接了服务器,发送异步请求用来更新客户端显示的信息。
以上是关于DNS域名解析协议详解的主要内容,如果未能解决你的问题,请参考以下文章