DNS
DNS
基本定义
DNS(Domain Name System),即域名系统,这里的域和名实际上是分开的,域对应网络段,而名指的是某个IP对应的名字
DNS是一个应用UDP协议的应用层协议
产生原因
传输层中,可以用IP地址和端口指定某个机器的具体进程,这个进程对应着一个服务,例如Web网站服务、存储服务、远程调用服务等等,而如果这些个服务的类型太多,就需要我们去记忆一个个IP地址和端口,以对应上相应的服务,但是IP地址和端口是一个点分十进制(例如192.168.1.101:8080),没有啥实际的含义,不好记忆,因此需要把这个IP地址和端口“语义化”,这就产生了DNS
功能
DNS的主要功能就是把IP地址的点分十进制转化成人们容易理解的域名,不妨理解成一个IP地址和域名的“字典”或者“索引”
因此我们日常用域名进行访问的时候(例如输入www.baidu.com),会使用DNS,把容易理解和记忆的域名变成相应的IP地址,然后再进行相应服务的访问
DNS服务器
DNS一般部署在服务器上,这个服务器称为DNS服务器/域名服务器,主要由机构/国家提供,当然也可以个人搭建
DNS服务器也像域名一样,是一种树结构,包括根部的根域名服务器(每个国家自行维护),这个根域名服务器知道每个顶级域名服务器的域名和IP地址
顶级域名服务器同样由不同的国家和地区自行维护,解决顶级域名的解析问题
之下就是地区的域名服务器,由机构和公司维护(下图来自慕课网)
我们在访问网址的时候,首先会在本地的域名服务器查询,如果本地的域名服务器知道对应的IP地址,则正常访问,否则去根域名服务器,获知顶级域(例如com)应该查询哪一个顶级域名服务器,然后由进一步查询二级域(例如baidu)应该查询哪一个域名服务器,这样一层层查询,最终返回给用户
如果查询过程中出现不知道查询哪个服务器的情况,则也是从根域名服务器开始,层层向下查询
域名
域名包括点、数字和字母三部分,其中字母是不区分大小写的
这里的点分割了不同的域,域分为顶级域、二级域、三级域等等,一般从右往左为顶级域、二级域和三级域(一般也就分到三级域即可)
例如www.baidu.com,其中com为顶级域,baidu为二级域,www为三级域
域名可以看成一种树结构,域的不同部分组合后具有不同的含义(下图来自慕课网)
顶级域
分为国家和通用两个类别
不同国家的顶级域不同,例如cn表示中国,us表示美国,uk表示英国,ca表示加拿大等等
通用类别包括com(公司)、org(组织)、net(网络服务机构)、gov(政府)等等
二级域
例如baidu、qq、taobao等等
通常在二级域后面有顶级域,这时可以组成一个比较完备的信息,例如amazon.cn表示中国的亚马逊网站,baidu.com表示百度的公司,等等