Android网络基础-域名系统DNS

本文介绍了Android中的域名系统DNS,详细阐述了域名解析过程,包括递归查询和迭代查询,以及域名服务器的层次结构,如根域名服务器、顶级域名服务器和本地域名服务器的角色。DNS通过高效的分布式系统保证了高可用性,并利用高速缓存提升查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文摘抄自《计算机网络第七版 谢希仁》 第六章 应用层

一、域名系统DNS(Domain Name System)

用于把便于人们使用的 域名转换为IP地址

DNS,大多数名字都在本地解析,仅少量解析需要在因特网上通信,因此效率高
DNS,是分布式系统,即使单个服务器主机出现故障,也不好妨碍整个DNS系统的正常运行

1、域名解析过程

应用进程调用【解析程序】,并称为DNS的一个客户端,把待解析的 域名放在DNS请求报文中
以【UDP用户数据报】的方式发给 本地域名服务器。(使用UDP是为了减少开销)

本地域名服务器 查找域名后,把对应的 IP地址放在回答报文中返回
应用进程 获得目的主机的IP地址后即可进行通信

若本地域名服务器没查到域名的IP,
此域名服务器作为客户端向其他域名服务器发出查询请求
直到查找到该域名的IP为止。
在这里插入图片描述

2、因特网的域名结构
层次树状结构命名法。

任何一个连接在因特网上的主机或路由器,都有一个唯一的域名。

“域”是名字空间中一个可被管理的划分。
域可以分为子域,子域可以继续分为子域的子域。
这样形成了 顶级域、二级域、三级域 等。

			mail.cctv.com
		三级域名.二级域名.顶级域名

DNS规定,域名的标号(除了点之外的部分)由 英文字母和数字 组成,每一个标号不超过63个字符,
		 不区分大小写字母。
		 标号中除连接符(-)外,不能使用其他的标点符号。
		 级别坐地的域名写在最左边,级别最高的顶级域名写在最右边。
		 多个标号组成的完整域名,总共不超过255个字符。

各级域名,由其上一级的域名管理机构管理,顶级域名由 ICANN 进行管理。

域名中的 “点” 和 点分十进制IP地址中的 “点” 并无一一对应关系。
点分十进制IP地址中是一定包含三个的 “点”。域名中“点”数目不一定正好是三个。

顶级域名,三大类:
	1)国家顶级域名(296个)
		中国cn,美国us,英国uk,...。
		
	2)通用顶级域名(20个)
		公司企业com,
		网络服务机构net,
		非盈利性组织org,
		国际组织int
		美国专用的教育机构edu,
		美国政府部门gov,
		美国军事部门mil
		...
		
	3)基础结构域名(1个)
		arpa,用于反向域名解析,又称为 反向域名
3、域名服务器
一个服务器管辖的(有权限的)范围叫做区。

树状结构的DNS域名服务器:
	
	根域名服务器|				 |--根域名服务器--|
--------------|--------------|-------|--------|--------------------
  顶级域名服务器| org域名服务器<-|  com域名服务器 |-->edu域名服务器 ...
--------------|----|--------------|------|------------------------
  权限域名服务器|	  ...  abc.com域名服务器 y.abc.com域名服务器
1)根域名服务器

最高层次的域名服务器,最重要的域名服务器。
所有根域名服务器,都要直到所有顶级域名服务器和IP地址。

不管是哪个本地域名服务器,进行域名解析时,
只要自己无法解析,就首先要求助于根域名服务器。

因特网上共有13个不同IP地址的根域名服务器,a-m
这些根域名服务器域名分别是:a.rootservers.net,...,m.rootservers.net

这些根域名服务器由13套装置组成,每套装置使用一个域名。
每个地点的根域名服务器由堕胎机器组成
2)顶级域名服务器

负责管理该顶级域名服务器注册的所有二级域名

3)权限域名服务器

负责一个区的域名服务器
当一个权限域名服务器未查到域名IP时,
会告诉发出查询请求的DNS客户,下一步应当查找哪个权限域名服务器。

4)本地域名服务器

不属于域名服务器层次结构。
每一个因特网服务提供者ISP,都可以拥有一个 本地域名服务器。
本地域名服务器离用户较近,一般不超过几个路由器的距离。

当查询的主机也属于同一个本地ISP时,
该本地域名服务器立即就能将查询的主机名转换为它的IP地址。

为了提高域名服务器可靠性,

DNS域名服务器都定期把数据复制到几个域名服务器来保存
其中一个是主域名服务器,其他是辅助域名服务器。
更改数据只能在主域名服务器
确保主域名服务器故障时,不影响DNS查询工作

为了提高DNS查询效率,减轻根域名服务器压力及因特网上DNS查询报文数量。

在域名服务器中广泛使用 高速缓存
高速缓存,用来存放 最近查询过的域名 以及从何处获得的域名映射信息记录。

主机在启动时,从 本地域名服务器 下载名字和地址的全部数据库
维护存放自己最近使用过的域名的高速缓存,且只在从缓存中找不到名字时才使用域名服务器。

5)DNS查询-递归查询/迭代查询

查询方式取决于请求报文中的设置。
在这里插入图片描述

6)DNS查找过程

浏览器(客户端)缓存 > 路由器缓存 > 本地DNS服务器缓存 > 各级DNS服务器缓存 > 存有域名IP的DNS服务器

推荐阅读:
《计算机网络第七版 谢希仁》 第六章 应用层

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值