DNS协议简介:
DNS 的全称是 Domain Name Systems,它是一个由分层的DNS 服务器(DNS server)实现的分布式数据库;它还是一个使得主机能够查询分布式数据库的应用层协议。
DNS 协议运行在 UDP 协议上,使用 53 端口。与 HTTP、FTP 和 SMTP 一样,DNS 协议也是一种应用层的协议,DNS 使用客户-服务器模式运行在通信的端系统之间,在通信的端系统之间通过 UDP 运输层协议来传送 DNS 报文。
DNS 通常不是一门独立的协议,它通常为其他应用层协议所使用,这些协议包括 HTTP、SMTP 和 FTP,将用户提供的主机名解析为 IP 地址。
DNS关键属性:
- 协议类型:七层协议(应用层协议)
- 用途:将网址名称转化为IP地址
- 结构:分层
- 创始人:保罗·莫卡派乔斯
- 承载协议:TCP UDP
- 端口:TCP 53(用于区域传输),UDP 53(用于DNS查询)
- 模型:C/S 客户端/服务器模型
DNS工作过程:
递归查询和迭代查询的区别:
-
DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。
-
DNS递归名称解析: 在DNS递归名称解析中,当所配置的本地名称服务器解析不了时,后面的查询工作是由本地名称服务器替代DNS客户端进行的(以“本地名称服务器”为中心),只需要本地名称服务器向DNS客户端返回最终的查询结果即可。
-
DNS迭代名称解析:(或者叫“迭代查询”)的所有查询工作全部是DNS客户端自己进行(以“DNS客户端”自己为中心)。在条件之一满足时就会采用迭代名称解析方式:
-
在查询本地名称服务器时,如果客户端的请求报文中没有申请使用递归查询,即在DNS请求报头部的RD字段没有置1。相当于说“你都没有主动要求我为你进行递归查询,我当然不会为你工作了”。
-
客户端在DNS请求报文中申请使用的是递归查询(也就是RD字段置1了),但在所配置的本地名称服务器上是禁用递归查询(DNS服务器一般默认支持递归查询的),即在应答DNS报文头部的RA字段置0。
总结:
递归查询:由DNS服务器向其他DNS服务器进行查询,并将结果返回给PC--->客户端属于老板
迭代查询:DNS服务器告知PC其他DNS服务器的地址,由PC进行查询------>客户端属于打工仔
域名结构:
域名要保持唯一性,因而每一个英文域名都是一个标号序列(labels),用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成,标号序列总长度不能超过255个字符,它由点号分割成一个个的标号(label),每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。级别最低的域名写在左边,级别最高的域名写在右边。域名服务主要是基于UDP实现的,服务器的端口号为53。
例如:www.baidu.com 中com是顶级域名,baidu是二级域名,www是三级域名
见图解:
域名服务器
域名需要由遍及全世界的域名服务器去解析,域名服务器实际上就是装有域名系统的主机。由高向低进行层次划分.
-
根域名服务器:
-
最高层次的域名服务器,也是最重要的域名服务器,本地域名服务器如果解析不了域名就会向根域名服务器求助。
-
全球共有13个不同IP地址的根域名服务器,它们的名称用一个英文字母命名,从a一直到m。由于每分钟都要解析的名称数量多得令人难以置信,所以实际上每个根服务器都有镜像服务器每个根服务器与它的镜像服务器共享同一个 IP 地址.
-
如果向根服务器发出对
“baidu.com”
的请求,则根服务器是不能在它的记录文件中找到与“baidu.com”
匹配的记录。但是它会找到“com”
的顶级域名记录,并把负责“com”
地址的顶级域名服务器的地址发回给请求者。
-
顶级域名服务器:
-
负责管理在该顶级域名服务器下注册的二级域名。
-
当根域名服务器告诉查询者顶级域名服务器地址时,查询者紧接着就会到顶级域名服务器进行查询。比如还是查询
"baidu.com"
,根域名服务器已经告诉了查询者“com”
顶级域名服务器的地址,“com”
顶级域名服务器会找到“baidu.com”
的域名服务器的记录,域名服务器检查其区域文件,并发现它有与“baidu.com”
相关联的区域文件。在此文件的内部,有该主机的记录。此记录说明此主机所在的 IP 地址,并向请求者返回最终答案。
-
权限域名服务器:负责一个区的域名解析工作
-
本地域名服务器:当一个主机发出DNS查询请求的时候,这个查询请求首先就是发给本地域名服务器的。
见图解:
DNS 记录类型:
-
A 记录: 将域名映射到 IPv4 地址。
-
AAAA 记录:将域名映射到 IPv6 地址。
-
MX 记录: 英文全称:Mail Exchange,指向邮件服务器。
-
TXT 记录:将文本存储在 DNS 记录中,主要用于验证域名所有权和防止垃圾邮件。
-
NS(名称服务器): NS 记录直接发送到域或子域的权威名称服务器。
-
CNAME:规范名称(或别名)记录是将域名映射到其他域或子域的别名。
URL
URL是对互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址。
URL具有全球唯一性,正确的URL应该是可以通过浏览器打开此网页的。
当访问外网,提示网页无法打开时,并不能说明这个URL是错误的。只不过是在国内不能访问而已。
Windows 主机不区分 URL 大小写,Unix/Linux 主机区分大小写。