实习第四十二天(DNS协议)

互联网协议分为五层
实习第四十二天(DNS协议)_第1张图片
  • "实体层",它就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。
  • 链接层,这就是"链接层"的功能,它在"实体层"的上方,确定了0和1的分组方式。
  • 网络层:如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送。("路由"的意思,就是指如何向不同的子网络分发数据包,这是一个很大的主题,本文不涉及。)遗憾的是,MAC地址本身无法做到这一点。它只与厂商有关,与所处网络无关。
    这就导致了"网络层"的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"。
    "网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。

网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。

  • 传输层:"传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。
    DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。
  • 应用层:应用程序收到"传输层"的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。

"应用层"的作用,就是规定应用程序的数据格式。

举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。


实习第四十二天(DNS协议)_第2张图片

Domain Name System,即域名系统
和HTTP协议一样,也是一个位于应用层的协议(服务),举例来说,如果你要访问域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.129.69。

域名

可以用域名替换IP地址
域名也可以叫做主机名。这里我们先给出一个域名,例如www.abc.com,以这个域名为例,来看一下域名的结构。
域名采用层次化的结构,其中com是顶级域名,abc是二级域名,www是三级域名,从语法上来说,每个域名都是几个不同层级的名字用.连接起来的组合,域名不区分大小写字母,所以www.ABC.com和www.abc.com是一样的,按照规定来说,域名有长度限制,这里就不再细讲。

实习第四十二天(DNS协议)_第3张图片
互联网的域名结构

域名服务器(DNS服务器)

实习第四十二天(DNS协议)_第4张图片
DNS分区

其中,(a)是abc这个公司只设置了一个分区的样子,(b)是abc公司设置了两个分区的样子,这两个区分别为abc.com和y.abc.com,这两个区对应了两个权限域名服务器(后面还会提到)。下图可以看出域名服务器的层次结构:


实习第四十二天(DNS协议)_第5张图片
域名服务器的层次结构

域名解析过程

实习第四十二天(DNS协议)_第6张图片
域名查询方式1
实习第四十二天(DNS协议)_第7张图片
域名查询方式2

DNS来查询域名的步骤(假设域名为m.xyz.com的主机想要查询y.abc.com这个域名对应的IP地址)

  • 主机m.xyz.com先向本地域名服务器dns.xyz.com进行递归查询。
  • 本地域名服务器无法给出IP地址,所以本地域名服务器向(离自己最近的)根域名服务器查询,这是的查询已经变为了迭代查询。
  • 根域名服务器根据本地域名服务器发送的报文,知道了下一步应该查询的是哪个顶级域名服务器,这时根域名服务器告诉本地域名服务器,下一步应该查询的顶级域名服务器dns.com的IP地址。
  • 本地域名服务器向顶级域名服务器dns.com发送请求查询。
  • 顶级域名服务器dns.com告诉本地域名服务器,下一步应该查询的权限域名服务器dns.abc.com的IP地址。
  • 本地域名服务器向权限域名服务器dns.abc.com发送请求查询。
  • 权限域名服务器dns.abc.com告诉本地域名服务器想要查询的域名y.abc.com的IP地址。
  • 本地域名服务器在拿到IP地址后,将IP地址返回给主机m.xyz.com
  • 这就是域名查询的具体过程,因为DNS协议的基于UDP协议,所以上述8个步骤中,总共使用了8个UDP报文。

你可能感兴趣的:(实习第四十二天(DNS协议))