【计算机网络学习笔记】(四)应用层(3)DNS

192 阅读2分钟

本系列为个人对计算机网络的学习笔记,本文重点总结DNS相关知识点。

DNS(domain name system)

简介

  • 包括两部分,既指由分层的DNS服务器实现的分布式数据库本身,也指能够查询该数据库的应用层协议。
  • 与HTTP,FTP,SMTP同属应用层协议,运行在UDP之上,默认端口号为53
  • 用途:将主机名转换为其背后的ip地址,本质是map(映射)
  • 作用:
    • 基于用途,可提供主机别名和邮件服务器别名
    • 可在冗余服务器间进行负载分配

DNS为什么是分布式的而不是集中式的?

因为集中式会带来以下问题:

  • 单点故障导致整个世界的网络体系瘫痪。
  • 单个服务器无法处理大规模通信容量,也必须面临大量的频繁更新问题(新增主机连接)
  • 单个服务器无法“邻近”所有客户

个人认为还因为:这个集中的服务器会安置在哪里,由谁掌管的问题。谁都想管,谁都不想命运掌握在别人手上。

DNS层次及交互流程

image.png

DNS缓存

类似于其他地方的缓存的概念,此处也是为了加快查询速度,在DNS服务器中暂存了主机名/ip 地址对,下次查询时(面向不同的主机)可以立即提供地址,而不需要再去访问其他服务器。

  • 缓存机制使得多数查询可以绕开根服务器
  • 一般两天左右会丢弃原有缓存信息。

如何从DNS中取数据

这就需要看懂它的RR(资源记录)和报文

资源记录

资源记录是一个包含了下列字段的四元组:

{Name,Value,Type,TTL(记录生存时间)}

报文

分为查询和回答报文两种,且格式一致。

这里就不死记硬背了,等有时间用一下nslookup命令试一试看一看。 目前先记住,前12个字节与标识、RR相关。

参考书籍

  • 《计算机网络自顶向下方法 第七版》
  • 《计算机网络 第五版》