DNS:域名解析协议

一.DNS域名系统

  1. 作用:将域名转换为IP地址(也可以将IP地址转化为响应的域名地址)
  2. DNS的功能:方便用户使用
    question:TCP/IP中使用的是IP地址和端口号来确定网络上的某一台主机上的某一个程序,那为什么不用域名来直接通信呢?
    Answer:IP地址是面向主机的,而域名则是面向用户的
    (1)因为IP地址是固定长度,IPV4是32位,IPv6是128位,而域名是变长的,不便于计算机处理
    (2)IP地址对于用户来说不方便记忆,而域名便于用户使用

二.DNS报文格式

  1. 1.DNS查询和响应的一般格式
    在这里插入图片描述
    这个报文由1 2字节长的首部和4个长度可变的字段组成。 标志后的4个16 bit 字段说明最后 4个变长字段中包含的条目数。对于查询报文,问题( q u e s t i o n )数通常是 1,而其他3项则均为0。类似地,对于应答报文,回答数至少是 1,剩下的两项可以是0或非0。
    在这里插入图片描述
    在这里插入图片描述

  2. 标志段
    DNS报文首部中的标志字段
    (1)QR 是1 bit字段: 0表示查询报文, 1表示响应报文。
    (2)o p c o d e是一个4 bit字段:通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求)。
    (3)A A是1 bit标志,表示“授权回答 (authoritative answer)”。该名字服务器是授权于该域的。
    (4)T C是1 bit字段,表示“可截断的 ( t r u n c a t e d )”。使用U D P时,它表示当应答的总长度超过5 1 2字节时,只返回前5 1 2个字节。
    (5) R D是1 bit字段表示“期望递归(recursion desired)”。该比特能在一个查询中设置,并
    在响应中返回。这个标志告诉名字服务器必须处理这个查询,也称为一个递归查询。如
    果该位为 0,且被请求的名字服务器没有一个授权回答,它就返回一个能解答该查询的
    其他名字服务器列表,这称为迭代查询。在后面的例子中,我们将看到这两种类型查询
    的例子。
    (6)R A是1 bit字段,表示“可用递归”。如果名字服务器支持递归查询,则在响应中将该比特设置为 1。在后面的例子中可看到大多数名字服务器都提供递归查询,除了某些根服务器。
    (7) 随后的3 bit字段必须为0
    (8)r c o d e是一个4 bit的返回码字段。通常的值为 0(没有差错)和 3(名字差错)。名字差错只有从一个授权名字服务器上返回,它表示在查询中制定的域名不存在。

  3. DNS查询报文中的问题部分
    DNS查询报文中问题部分的格式

  4. DNS响应报文中的资源记录部分
    DNS资源记录格式

三.工作原理

  1. 输入域名后,先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据
  2. 如果没有,就向上级域名服务器进行查找,以此类推
  3. 最多回溯到根域名服务器,肯定能找到这个域名的IP地址
  4. 域名服务器自身也会进行一些缓存,把曾经访问过的域名和对应的IP地址缓存起来,可以加速查找过程。

eg:主机点开一个域名的具体过程

  • (1)主机先向本地域名服务器进行递归查询
  • (2)本地域名服务器采用迭代查询,向一个根域名服务器进行查询
  • (3)根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
  • (4)本地域名服务器向顶级域名服务器进行查询
  • (5)顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
  • (6)本地域名服务器向权限服务器进行查询
  • (7)权限服务器告诉本地域名服务器所查询的主机的IP地址
  • (8)本地域名服务器最后把查询结果告诉主机
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值