域名系统(DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.cskaoyan.com)转换为便于机器处理的IP地址。域名系统的组成包括:域名空间、分布式数据库、域名服务器。
DNS系统采用客户/服务器模型,协议运行在UDP 即传输层无连接服务之上,使用53号端口
1.因特网采用层次树状结构的命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名。Internet上提供访问的主机一定要有IP地址,而不一定要有域名。 域名在不同的时间可以解析出不同的IP地址,因此可以用多台服务器来分担负载。
如果一台主机通过两块网卡连接到两个网络(如服务器双线接入),那么就具有两个IP地址,每个网卡对应一个MAC地址,显然这两个IP地址可以映射到同一个域名上。此外,多台主机也可以映射到同一个域名上(如负载均衡),一台主机也可以映射到多个域名上(如虚拟主机)。因此域名与IP地址、MAC地址、主机均不具有一一对应关系。
2.域名规则
(1)标号中的英文不区分大小写。
(2)标号中除连字符(-)外不能使用其他的标点符号
(3)每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符
(4)级别最低的域名写在最左边,级别最高的顶级域名写在最右边
3.域名分类
域名格式:i级域名.i-1级域名.i-2级域名. … .三级域名.二级域名.顶级域名.
如:www.pku.edu.cn.
根:最后面的“.”叫做根,通常不写
顶级域名cn
二级域名edu
三级域名pku
四级域名www
(1)顶级域名
①国家顶级域名(nTLD)
国家和某些地区的域名,“.cn”表示中国,“.us”表示美国,“.uk”表示英国。
如:www.gov.cn
②通用顶级域名(gTLD)
常见的有
com 工商企业
net 网络服务机构
org 非营利性组织
gov 国家或政府部门
int 国际组织
aero 只提供给航空公司
museum为各种博物馆预留的互联网专属域名
travel新的旅游观光事业者的全球性国际顶级域名
③基础结构域名/反向域名
这种顶级域名只有一个arpa,用于反向域名解析,IP地址到域名的映射
(2)二级域名
①类别域名
ac 有学术之意
com 工商企业
edu 主要供教育机构使用
gov 国家或政府部门
mil 通常是用于描述那些属于美国政府军事机构的实体
net 网络服务机构
org 非营利性组织
②行政区域名
用于我国各省、自治区、直辖市
③自己注册的域名(唯一的)
因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型(C/S)
分类
1.根域名服务器
是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址
2.顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名
收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)
3.授权域名服务器(权限域名服务器)
每台主机都必须在授权域名服务器处登记
授权域名服务器总能将其管辖的主机名转换为该主机的IP地址
4.本地域名服务器
当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。每个因特网服务提供者(ISP),或一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器
1.正向解析:把域名映射成为IP地址
2.反向解析:把IP地址映射成域名的过程
但从内部IP地址到外部IP地址的映射是由NAT实现的,用于缓解IPv4地址紧缺问题。
3.查询方式
(1)递归查询
本地域名服务器找根域名服务器→根找顶级域名服务器→顶找权限域名服务器(即每人只发一条)
该方法给根域名服务造成的负载过大,所以在实际中几乎不使用
可以看出,由最开始连接的服务器给客户端返回地址。
(2)递归与迭代相结合的查询
本地域名服务器找根域名服务器→本找顶→本找权限
主机向本地域名服务器的查询采用的是递归查询,本地域名服务器向根域名服务器的查询采用迭代查询
4.递归与迭代相结合的查询的域名解析的过程
(1)客户机向其本地域名服务器发出DNS请求报文
(2)本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求
(3)根域名服务器收到请求后,判断该域名属于域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器
(4)本地域名服务器向顶级域名服务器dns.com发出解析请求报文
(5)顶级域名服务器dns.com收到请求后,判断该域名属于abc.com域,因此将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器
(6)本地域名服务器向授权域名服务器dns.abc.com发起解析请求报文
(7)授权域名服务器dns.abc.com收到请求后,将查询结果返回给本地域名服务器
(8)本地域名服务器将查询结果保存到本地缓存,同时返回给客户机
可以看出,客户机只需把域名解析请求发往本地域名服务器,其他事情由本地域名服务器完成,并把最后结果返回给客户机。所以主机只需要知道本地域名服务器的IP。
5.高速缓存
存放最近查过的域名以及从哪里获得这个域名信息的记录。再次访问时先搜索主机的缓存,再搜索本地域名服务器的高速缓存,如果有,直接将对应IP地址返回主机。如果没有对应的IP地址,但有顶级域名服务器的IP地址,则不需要经过根域名服务器。
*注:主机名和IP地址之间的映射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息
优点:提高DNS的查询效率,减少因特网上的DNS查询报文数量
[例1]
假设下图所示网络中的本地域名服务器只提供递归查询服务,其他域名服务器均只提供迭代查询服务;局域网内主机访问 Internet 上各服务器的往返时间(RTT)均为10ms,忽略其他各种时延。若主机H通过超链接http://www.abc.com/index.html请求浏览纯文木Web页index.html,则从点击超链接开始到浏览器接收到 index.html页面为止,所需的最短时间与最长时间分别是_____
解:
①最短时间:本地主机中有该域名到IP地址对应的记录,不需要DNS查询时延。t=TCP建立时间(RTT)+发送访问请求并收到服务器资源响应(RTT)=2RTT=20ms
②最长时间:20ms+DNS查询时延=20ms+本地域名服务器迭代查询根域名服务器(RTT)+本地域名服务器迭代查询com顶级域名服务器(RTT)+本地域名服务器迭代查询abc.com域名服务器(RTT)=20ms+30ms=50ms
[例2]
假设所有域名服务器均采用迭代查询方式进行域名解析。当H4访问规范域名为 www.abc.xyz.com 的网站时,域名服务器 201.1.1.1 在完成该域名解析过程中,可能发出 DNS 查询的最少和最多次数分别是_____
解:
①最少:本机DNS高速缓存中存有该域名DNS信息时,不需要查询任何域名服务器,即0次
②最多:本地域名服务器依次迭代查询根域名服务器、com顶级域名服务器、xyz.com权限域名服务器、abc.xyz.com权限域名服务器,共4次
[例3]
如果本地域名服务器无缓存,当采用递归方法解析另一网络某主机域名时,用户主机、本地域名服务器发送的域名请求消息数分别为_____
答案:1条,1条