域名系统是为了将便与人类记忆的域名转换为便于机器处理的32位ip地址;
域名采用层次树状结构命名,域名系统DNS是联机分布式的系统。单电系统的缺点是:
==为了减小开销,传输层使用的是UDP协议==
因特网的域名结构是树装层次结构,这种命名方法==可以使因特网上的主机或者路由器都有一个唯一的层次结构的名字,即域名==。
示例如www.cctv.com
标点符号之间的部分叫标号(label),==每个标号不超过63个字符,域名总长度不超过255字符,下级域名个数不受限,各级域名由上级域名直接管理==,不受上上级机构限制。
域名只是逻辑概念,不是计算机所在的物理位置;
顶级域名(TLD:top level domain)分为3部分:
域名树示例如下:
mail.cctv.com
,com是顶级域名,然后之前cctv和mail分别是二级域名和三级域名,只和他们为之有关,与命名无关,见上图"mail";每个域名服务器所负责管辖的范围叫做区(zone),此域名服务器叫做权限域名服务器(authoritative name server),区是域的子集,示例如下:
域名服务器大致分为4总,分别是根域名服务器root name server、顶级域名服务器TLD服务器、权限域名服务器和本地域名服务器local name server。具体含义如下:
为了保障服务可靠性,NDS服务器也使用了主从复制,只有主服务器可写,并定时想其他服务器更新数据由此保证一致性。
==域名解析过程一般分为递归查询recursive query和迭代查询iterative query==。示意图如下:
为了提高效率、减轻根域名负荷以及减少因特网上DNS查询报文数量,==域名服务器中广泛使用缓存。为了保证缓存中数据正确,服务器应当为每一项数据设置有效期==。
DNS记录(RR:resource record)格式如下:
RR format(name,value,type,ttl)
,ttl指这条记录的有效期(time to live),在不同的type类型时name和value有不同的含义,如下图:
DNS消息格式及其占位如下图所示:
请求与相应的消息格式是一样的,Wireshark抓包示例如下:
当注册域名时,顶级域名管理机构会向域名服务器中插入两条记录:
(域名,解析该域名的服务器域名,NA)
(解析该域名的服务器域名,IP,A)
原文:https://www.cnblogs.com/canflyfish/p/11386822.html