计算机网络应用层(二):DNS协议详解

前言

DNS是计算机网络中应用层的一个协议,可能很多同学碰到过DNS被劫持的情况,我们现在来学习一下DNS协议,来了解为什么DNS被劫持之后,我们便不能访问互联网的原因。

DNS协议概述

我们在网络上看到的url格式可能是这样的:

www.google.com

google十分适合我们人类记忆,因为其是一个简单易记的单词形式。
因特网上的主机可以用多种方式进行标识,常见的有两种:

  1. 利用主机名进行标识,例如www.google.com
  2. 利用IP地址进行标识,例如www.36.158.123.192.com

我们可以很自然的发现,人类相较于用IP地址进行标识,更喜欢用便于记忆的主机名进行标识;但是路由器喜欢定长的、有层次结构的IP地址。为了折中这两种方式,就需要一种协议完成这两种不同的标识之间的转换,即主机名到IP地址转换的目录系统,这就是域名系统(DNS)的主要功能。

DNS:

  1. 一个由分层的DNS服务器实现的分布式数据库。
  2. 一个使得主机能够查询分布式数据库的应用层协议。

DNS的域名解析过程(以www.google.com示例):

  1. 同一台用户主机上运行着DNS应用的客户端。
  2. 从URL中抽出主机名www.google.com,并传给DNS应用的客户端。
  3. DNS客户向DNS服务器发送一个包含主机名的请求。
  4. DNS客户端收到DNS服务器解析的IP地址。
  5. 向该IP地址的80端口的HTTP服务器发起一个TCP进程。

DNS工作原理

DNS是一个分布式、层次数据库,DNS使用了大量的DNS服务器,以层次方式组织。没有一台DNS服务器拥有因特网上所有主机的映射。DNS服务器大致可以分为以下三种:

  1. 根DNS服务器(全世界只有13个)
  2. 顶级域(TLD)DNS服务器(com,cn等)
  3. 权威DNS服务器

例如解析一个为www.google.com的url的域名,遵循以下步骤:

  1. 客户与根服务器联系,解析.,返回顶级域名com的TLD服务器的IP地址
  2. 客户与该TLD服务器联系,其返回google.com权威服务器的IP地址
  3. 客户与该权威服务器联系,返回www.google.com主机名的IP地址

其中还有一种重要的DNS服务器,称为本地DNS服务器,起着代理的作用,相当于管理一篇区域内的主机。

DNS缓存

众所周知,一般对于速率较低的操作,我们通常可以进行缓存技术的应用,DNS协议中也应用了该项技术,这就是DNS缓存。

DNS记录和报文

资源记录

所有DNS服务器存储了资源记录(RR),其提供主机名到IP地址的映射,每个DNS回答报文包含一条或者多条资源记录。
资源记录的存储格式如下

(Name,Value,Type,TTL)

TTL指的是该条资源记录的生存时间,之后的例子是忽略TTL,Name和Value的值取决于Type。

常见的Type的种类有以下几种:

  • Type=A;Name为主机名,Value为该主机名对应的IP地址,所以类型为A的资源记录提供了标准的主机名到IP地址的映射
  • Type=NS;Name为一个域,Value为一个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。
  • Type=CNAME;Value是别名为Name的主机对应的规范主机名,提供一个主机名对应的规范主机名。
  • Type=MX;Value是一个别名为Name的邮件服务器的规范主机名。

DNS报文

DNS只有两种报文:DNS查询回答报文。并且两种报文有着相同的格式。
DNS报文
上图的详细解释如下:

  • 首部区域中。标识符为16比特的数,用以标识该查询,匹配发送的请求和接收到的回答。标志字符中有1比特的查询回答标志位。当某DNS服务器是所请求名字的权威DNS服务器时,1比特的“权威的标志位”放置在回答报文中。还有“希望递归”比特位与“递归可用”比特位。最后还有4个有关数量的字段,标识后续的字段出现次数。
  • 问题区域包含正在查询的信息。包括:(1)名字字段,正在被查询的主机名;(2)类型字段,标识正在被询问的问题类型。
  • 在来自DNS服务器的回答中,包含对最初请求名字的资源记录,回答报文可以包含多条RR,因此一个主机名可以有多个IP地址。
  • 权威区域包含其他权威服务器的记录。
  • 附加区域包含其他有帮助的记录。

总结

DNS是应用层中常见的协议之一,其主要是起到了解析域名的作用,本质是一个分布式数据库,类似于树存储节点,解析域名。我们在平时日常生活中,经常会碰到DNS被劫持的情况,此时就是因为网络无法解析域名,但是QQ可以进行正常使用的原因是因为QQ是直接通过IP连接的软件,所以并不会受到影响,后续将会写一篇新的博客,专门解析大厂面试中的有关DNS的问题。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值