在此之前,大致了解一下应用层是什么。
应用层协议的特点- 每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。
- 应用层的许多协议都是基于客户服务器方式。客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
- 许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。
- 互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。
- 名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
- 互联网采用了层次树状结构的命名方法。
- 任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
- 域名的结构由标号序列组成,各标号之间用点隔开:
… . 三级域名 . 二级域名 . 顶级域名 - 各标号分别代表不同级别的域名。
- 域名只是个逻辑概念,并不代表计算机所在的物理地点。
- 变长的域名和使用有助记忆的字符串,是为了便于人来使用。而 IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。
- 域名中的“点”和点分十进制 IP 地址中的“点”并无一一对应的关系。点分十进制 IP 地址中一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。
- 国家顶级域名 nTLD,例如:
.cn 表示中国,
.us 表示美国,
.uk 表示英国,等等。 - 通用顶级域名 gTLD
最早的顶级域名是:
.com(公司和企业)
.net(网络服务机构
.org(非赢利性组织)
.edu(美国专用的教育机构)
.gov(美国专用的政府部门)
.mil(美国专用的军事部门)
.int(国际组织) - 基础结构域名 (infrastructure domain)
这种顶级域名只有一个,即 arpa,
用于反向域名解析,因此又称为反向域名。
.aero (航空运输企业)
.biz (公司和企业)
.cat (加泰隆人的语言和文化团体)
.coop(合作团体)
.info (各种情况)
.jobs (人力资源管理者)
.mobi(移动产品与服务的用户和提供者)
.museum (博物馆)
.name(个人)
.pro (有证书的专业人员)
.travel(旅游业)
- 一个服务器所负责管辖的(或有权限的)范围叫做区 (zone)。
- 各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。
- 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。
- DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器
- 根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
- 不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
- 在互联网上共有 13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从 a 一直到 m(前 13 个字母)����ü��,������ǰ。
根域名服务器共有 13 套装置
- 根域名服务器共有 13 套装置,不是 13 个机器。
- 这些根域名服务器相应的域名分别是:
a.rootservers.net
b.rootservers.net
…
m.rootservers.net - 到2016年2月,全世界已经在 588 个地点安装了根域名服务器,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器。
举例:根域名服务器 L 的地点分布图
- 根域名服务器并不直接把域名直接转换成 IP 地址。
- 在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器。
- 顶级域名服务器(即 TLD 服务器)负责管理在该顶级域名服务器注册的所有二级域名。
- 当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
- 负责一个区的域名服务器。
- 当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
- 本地域名服务器对域名系统非常重要。
- 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
- 每一个互联网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,
- 这种域名服务器有时也称为默认域名服务器。
- DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。
- 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。
- 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
- 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
- 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
本地域名服务器采用迭代查询
本地域名服务器采用递归查询(比较少用)
- 每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。
- 可大大减轻根域名服务器的负荷,使互联网上的 DNS 查询请求和回答报文的数量大为减少。
- 为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时
器,并处理超过合理时间的项(例如,每个项目只存放两天)。
当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。