1、基本概念
域名系统(Domain Name System,简称DNS)是一种将域名和IP地址相互映射的分布式数据库系统,它允许终端用户设备将给定的人类可读URL转换为网络可以理解的机器可用IP地址。
域名是为了识别主机名或机构的一种分层的名称,因为单独的一台域名服务器是不可能知道所有域名信息,所以域名系统是一个分布式数据库系统,域名(主机名)到IP地址的解析可以由若干个域名服务器共同完成。
2、工作原理
DNS采用递归查询请求的方式来响应用户的查询,当客户端向首选域名服务器查询时,如果本地资源记录存在则作权威回答;如果不存在,则检查本地缓存,若缓存中有记录则直接返回结果,若本地资源记录和缓存记录都不存在,则向根域名服务器查询,根域名服务器返回相应顶级域的权威域名服务器的地址,首选域名服务器继续向该顶级权威域名服务器查询,直到得到对查询域名的权威回答,保存在本地缓存中并返回给客户端,完成此次查询。
DNS解析器从应用程序的角度看,访问DNS是通过一个叫解析器(Resolver)的应用程序来完成的,发送一个TCP或UDP数据包之前,解析器必须将域名(主机名)转换为IP地址。
3、组成结构
域名空间和资源记录:名字空间是指定义了所有可能的名字的集合,域名系统的名字空间是层次结构的,类似Windows的文件名,它可看作是一个树状结构,域名系统不区分树内节点和叶子节点,而统称为节点,不同节点可以使用相同的标记,所有节点的标记只能由3类字符组成:26个英文字母(a~z)、10个阿拉伯数字(0~9)和英文连词号(),并且标记的长度不得超过22个字符,一个节点的域名是由从该节点到根的所有节点的标记连接组成的,中间以点分隔,最上层节点的域名称为顶级域名(TLD,TopLevel Domain),第二层节点的域名称为二级域名,依此类推。
域名服务器:域名服务器是DNS的核心组成部分,用于存储和解析域名与IP地址之间的映射关系,域名服务器通常分为三种类型:主DNS服务器、辅助DNS服务器和缓存DNS服务器,主DNS服务器负责解析至少一个域;辅助DNS服务器作为主DNS服务器的辅助,也负责解析至少一个域;缓存DNS服务器则不负责解析域,只是缓存域名解析结果。
解析器:解析器是客户端软件的一部分,负责向DNS服务器发送查询请求并接收响应,解析器可以是操作系统自带的,也可以是第三方提供的。
4、报文结构
DNS报文结构分两部分:DNS查询报文和DNS应答报文,DNS查询报文包括首部、查询部分;DNS应答报文包括首部、回答部分、权威部分和附加部分,首部包含标识、标志、查询记录数、回答记录数、授权回答记录数和附加信息记录数等信息,查询部分包括域名、查询类型和查询类别;回答部分包含域名、类型、类别、生存时间和资源记录数据等;权威部分包含权威服务器的资源记录信息;附加部分包含额外的资源记录信息,通常用于提供额外的信息,如DNSSEC签名等。
5、基于CH394的DNS实现
初始化CH394并创建1个UDP的socket,link成功后可通过CH394向DNS服务器发查询报文,DNS服务器ip要与路由器DNS服务器IP一致,目的端口为53,CH394发送查询报文后,等待接收DNS服务器的应答报文,然后进行解析处理。
相关问题及解答
问题1:什么是域名?
答案:域名是为了识别主机名或机构的一种分层的名称,它是互联网上识别和定位计算机或计算机组的一种层次结构式的字符标识,相当于计算机的门牌号,www.microsoft.com”就是一个域名,com”是顶级域名,“microsoft”是二级域名,“www”是三级域名。
问题2:DNS的主要作用是什么?
答案:DNS的主要作用是将易于记忆的域名转换为计算机能够识别的IP地址,从而使用户能够更方便地访问互联网上的资源,当在浏览器中输入“www.baidu.com”时,DNS会将其转换为百度服务器对应的IP地址,以便浏览器能够正确地连接到该服务器并获取网页内容。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/146575.html