程序员社区

DNS-域名系统

了解以太网的人都知道,报文是根据目的IP地址发送,而我们在浏览网页时,并没有必须知道对方服务器的IP地址,取而代之的是一个网址,即域名

DNS

为什么使用域名而不是IP地址,显而易见,拿百度服务器举例:

  • 百度其中一个ip地址为:202.108.22.5
  • 百度的域名是:www.baidu.com

这两种方式哪一种更容易记忆?

当然是域名

但是这样也造成了一个问题,人记住的是域名,但是网络发送的是报文,报文可不会直接使用域名,报文需要的是对方的IP地址,所以必须通过域名来获取IP地址

从谁那获取?

全世界这么多的网址,这么多域名,每个域名都有自己的IP地址,有的还不止一个IP地址,这些域名和IP地址相互映射,就形成了一个分布式数据库,这个分布式数据库存储在某些服务器上,我们称之为DNS域名服务器

DNS

Domain Name System,或者Domain Name Service,域名系统或者域名服务,它主要的作用就是将我们熟悉的网址(域名)“翻译”成电脑可以理解的IP地址,这个过程就称为DNS域名解析

那域名解析的过程是什么样的?

DNS-域名系统插图

DNS域名解析的过程大致就是这样,这里有个问题,为什么系统向DNS服务器发送的域名解析请求是UDP报文而不是TCP?

其实也很简单,因为UDP没有连接和断开的过程,更快而已

DNS是怎么解析域名的?

拿www.baidu.com来说,它的真正域名其实是www.baidu.com.,末尾的 . 称为根域名,因为每个域名都有根域名,所以可以省略

而.com或.net是次一级域名,我们称为“顶级域名”

再次一级域名我们叫“次级域名”,比如这里的.baidu,这一级域名是用户可以注册的

再下一级是主机名,又称为“三级域名”,比如www,这是用户在自己的域里面为服务器分配的名称,是用户可以任意分配的

解析域名的流程就变成了分级查找

  • 系统先在本机的DNS里查,查到就直接返回
  • 查不到就去根服务器里查,根服务器一看.com,就把管理.com域的DNS服务器的IP地址返回给系统,系统拿着这个IP就去.com的域里问
  • .com一看也没有www.baidu.com这个域名,但是它知道次一级的域.baidu的服务器的IP地址,就把这个IP发给系统,让系统去.baidu里问问
  • 系统拿着这个IP又问.baidu,正好有www.baidu.com这个域名,于是就把这个域名的IP地址发给了系统

赞(0) 打赏
未经允许不得转载:IDEA激活码 » DNS-域名系统

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区