域名系统概述

在时间查询服务中,客户端需要知道服务端的 IP 地址和端口号,才能发起请求。但我们应该如何记忆 IP 地址和端口号呢?要知道,人类记忆数字型信息,比如电话号码等,并不擅长。

端口其实还好。因为经过多年的发展,常用网络服务形成了一套约定俗成的惯例,这就是所谓的 知名端口 。举个例子, Web 服务一般采用 80 端口。我们用浏览器访问网站,甚至都不需要输入端口号,默认就是 80 端口。

IP 地址就不一样了。 10.35.87.61 这个 IP 地址比 80 端口难记多了。不仅如此,不同的服务可能部署在不同的机器,IP 地址也肯定是不一样的。很显然,百度的服务器,地址肯定跟淘宝的不一样。

我们每天都会访问很多网站,想记住它们的 IP 地址,显然是不可能的!如果能够通过名字来访问,则事半功倍,因为我们记忆文本要比记忆数字更拿手。

为此,网络先驱们发明了域名和域名系统,这就是本文的主角。

域名

域名是 网域名称domain name )的简称,它是一串以点号分隔的字符串,用于标识一台或一组计算机。域名可作为 IP 地址的别名,更便于记忆。

我有一个博客网站,部署在阿里云上,服务器 IP 是 163.181.33.227 ,但读者们肯定记不住 IP 地址的。为此,我申请了一个域名 www.fasionchan.com 作为别名。这样就好记多了,因为 fasionchan 是我的英文名。

那么,域名该如何理解呢?点号分隔的各个部分都有什么作用呢?

实际上,域名是一个分层次的命名空间,各种域名都隶属于根域 . 。位于第一层的域名称为 一级域名顶级域名 ;第二层的域名称为 二级域名 ;以此类推。

www.fasionchan.com.为例,从右往左读依次是:

  • 一级域名(顶级域名):com
  • 二级域名:fasionchan
  • 三级域名:www

请注意,域名是从根开始,只不过我们经常省略域名最右边的点号 .

某个域下层的域称为 子域 ,上层的域称为 父域 。举个例子,从 fasionchan.com 的角度看,它的父域是 .com ,子域包括 www.fasionchan.comlinux.fasionchan.com 等等。子域从属与父域,父域对子域拥有管理权。

域名由注册管理机构负责管理,可以通过注册商来注册,先到先得。

域名注册后,所有人拥有域名的管理权:不仅可以修改域名关联的 IP ,还可以分配子域名。域名 fasionchan.com 被我注册后,我可以修改它关联的 IP ,还可以随意添加子域名 www.fasionchan.com

我甚至还可以添加一个子域 lumy.fasionchan.com ,送给我的朋友 Lumy 。同理, Lumy 拥有 lumy.fasionchan.com 的管理权。她可以修改域名关联的 IP ,也可以随意添加子域名。

顶级域

域名的第一级是 顶级域 ,包括

  • 通用顶级域 ,例如 .com.net.org 等;
  • 国家和地区顶级域 ,例如 .cn.us 等;
通用顶级域 含义
.com 商业公司
.edu 教育机构
.net 互联网服务供应商
.org 非营利组织、国际机构等
国家和地区顶级域 含义
.cn 中国
.hk 中国香港
.mo 中国澳门
.tw 中国台湾
.jp 日本
.us 美国

域名系统

域名系统domain name system ,简称 DNS ),是互联网提供的一项名字服务。我们可以将 DNS 看作一个分布式数据库,它保存着域名和 IP 的映射关系。

有了这个对应关系,我们就可以通过 域名domain name )来访问网络服务,不用再苦苦记忆 IP 地址。要知道域名 www.fasionchan.com 比 IP 地址 163.181.33.224 好记多了。

那么,域名系统到底是怎么工作的呢?

域名注册后,所有人可将域名关联的 IP 登记到域名系统。这是一个分布式数据库,以域名为键,以 IP 为值。域名系统提供一些服务器用户查询,这就是 DNS服务器dns server )。

当互联网用户通过浏览器访问网站时,以 https://www.fasionchan.com 为例:

  1. 浏览器解析 URL ,得到主机域名 www.fasionchan.com
  2. 浏览器向 DNS 服务器发起域名解析请求,获取 www.fasionchan.com 对应的 IP 地址,如图示步骤①;
  3. DNS 服务器找到域名对应的 IP ,然后向浏览器回复应答,如图示步骤②;
  4. 浏览器拿到 IP 地址后,即可向 www.fasionchan.com 所在的 Web 服务器发起请求,如图示步骤③;

这就是域名系统的基本工作原理,它看似简单,但还有很多细节等着我们进一步探索:

小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注:

【小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注: