【计算机网络】再谈应用层(一)DNS

128 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情 这也是第3篇文章。

前言

之前也曾经在专栏中写过关于应用层的内容,但那时是初学,仅仅是囫囵吞枣地过一遍,再加上是以“自顶向下”的思路,由于很多细节涉及到了更底层的知识,所以没能理解透。

现在又“自底向上”系统学了一遍。一路走来,重新回到应用层,又有了新的体悟。

废话不多说,正文开始————

DNS概述

  • 关键字: 域名 ip地址 UDP
  • 过程概念图:

image.png

首先向local server查询;如果查询不到,就通过递归/迭代的方式向上查找(直到root server); 为提升效率,在返回路径中会为沿途结点添加该查询结果,到下次其他人查询相同内容时就不需要再向上找了。

关于域名空间

  • (截止该书出版)根服务器只有13台,但有超过250个顶级域,每个域都覆盖了多台主机。
  • 域名结构是一个树状结构,命名分为通用(generic)和国家(country)两种 以下是一个例子:
www.tsinghua.edu.cn

从左到右对应了world wide web;学校名;教育;中国

即树的自顶向下对应于字符串的从右往左。

  • 域名不区分大小写
  • 当想新建域名的时候,必须向所在的上一层申请(成为它的子结点)

DNS中的DRR(Domain Resource Records)

这相当于是一个数据库,其中每条记录是一个五元组。

(注:我看了一下自顶向下方法以及我之前根据它写的笔记,发现上面写的是四元组,我也不懂哪个才是权威,先持保留意见吧)

五元组表示如下:

image.png

其中的type值得展开说说

类型作用/含义
SOAstart of authority
A主机的ipv4地址
AAAA主机的ipv6地址
MX指定为目标域接收邮件的主机名
NS为域(或其子域)指定一个命名服务器,该主机会有域数据库的副本
CNAME当指向域名不完全正确的时候,可将其修正过来
PTRpointer,ip->name,反向查询
SPFsender policy frame work,记录该域中的何种类型的机器会发送邮件
SRV比MX更新的服务,仅用于邮件服务
TXT文本
对以上表格有几点说明:
  • 关于CNAME:原书中的c是指canonical(典型的),但是我看书中所给的单行元组代码示例,确实是将有偏差的地址修正过来并体现在了value中。这个看个人怎么理解吧,我认为它的作用相当于起别名。
  • 关于SPF:对于原文出现的machanism我也不是很清楚它在代指什么,只好直译了。 这里有一个很有意思的应用就是甄别垃圾邮件。我认为它的大致意思是:如果接收方检查该标志位,发现发送方的域一直都只有某一类型的机器在发送邮件,说明很有可能是专门发垃圾邮件,不干别的事。
  • 关于SRV:我拿它和MX比较,说明它和MX有可比之处(功能一样)。