DNS(Domain Name System,域名系统)是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
在Internet上域名与IP地址之间是一对一或者多对一的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。经过DNS的解析翻译,把域名背后的IP地址翻译出来,然后通过IP地址访问网络。
一、域名的形式
域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。
如下图所示:
其中顶级域名分为:国家顶级域名、通用顶级域名、反向域名。
二、域名的层级
根域名 :.root 或者 . ,根域名通常是省略的
顶级域名,如 .com,.cn 等
次级域名,如 baidu.com 里的 baidu,这个是用户可以进行注册购买的
主机域名,比如 baike.baidu.com 里的baike,这个是用户可分配的
三、DNS的获取流程
DNS是应用层协议,事实上他是为其他应用层协议工作的,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为IP地址。
具体过程如下:
①用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了。
②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如http://www.baidu.com/,并将这个主机名传送给DNS应用的客户端。
③DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作)。
④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址。
⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接。