文章样张-DNS
DNS的诞生
南京师范大学计算机与电子信息学院 教授 张国强
我们上网时,偶尔会碰到QQ的聊天功能可以正常使用,但浏览器却打不开网页的情况。如果产生这一状况,那基本可以判断是我们当前使用的域名解析服务器出了问题。
域名系统(DNS)一旦不能正常工作,我们就没法在网上自由地冲浪。DNS对当前互联网的正常运行极为重要,以至于有人将其称为互联网的“中枢神经系统”。那么,DNS究竟是什么?为什么它对互联网如此重要?我们不妨从一则小故事开始。
话说有个嗜酒的外星人,他听说地球上有个名为杏花村的酒都盛产美酒。为了能一品杏花村的美酒,他跨越了几十光年的路程,来到了这颗蓝色星球。外星人的飞船降落在了俄罗斯库页岛的某个小村庄。可他一打听,这地球上居然有十来个杏花村。那这个杏花村指的是唐代大诗人杜牧的诗句“牧童遥指杏花村”里牧童遥指的安徽省池州市贵池区杏花村,还是“杏花村里酒如泉”里所指的山西省汾阳市杏花村呢?
还好,外星人随身携带的推广名片上写着“杏花村.汾阳市.山西省.中国”,应该是指山西省汾阳市的杏花村。
不过,地球这么大,这杏花村的具体位置在哪里呢?通过与当地村民的沟通,外星人了解到地球上是用经纬度来标识位置。因此,只要确定了这个杏花村的经纬度,再用上地球人的导航系统,就能导航到这个杏花村了。
可怎么才能确定这个山西临汾杏花村的经纬度呢?
外星人发现,与自己所在星球的集中式管理不同,地球上的管理有些奇特,是一个分布式的松散联盟。这个联盟有许多个国家或地区组成,每个国家或地区都非常强调独立自治能力。比如在他所降落的库页岛,就不能直接查到“杏花村.汾阳市.山西省.中国”这个地名的经纬度。这个岛上的计算机直接能查到的就是位于库页岛上每个村庄的经纬度。这个酒都杏花村的经纬度信息则存储在汾阳市的一台计算机上。只有找到了汾阳市的这台计算机,才能确定这个杏花村的经纬度。那怎么找到这台计算机呢?外星人经过一番研究,发现这个过程看似复杂,实际上却也科学和合理。首先找到负责中国的计算机,然后再找到负责山西的计算机,最后再找到负责汾阳市的计算机,就可以查询到杏花村的经纬度了。
上面的这则小故事很好地诠释了域名系统(DNS: Domain Name System)的工作方式。
从功能上讲,域名系统其实很简单,就是一个翻译系统,你丢进去一个域名和要查找的记录类型,系统就会返回相应的记录信息。DNS系统的主要功能之一就是把人类易于理解的域名翻译成计算机易于理解的二进制IP地址。这里,域名就类似于前面的小故事中外星人名片上所写的以分层形式表示的酒都杏花村的完整名称,而IP地址则类似于经纬度。
可为什么需要两个层面的名字呢?人类不能直接使用IP地址吗?可以是可以,但人类并不擅长记忆以一长串0-1表示的IP地址,而相反,计算机则擅长处理这类固定长度的数字。相比而言,人类更容易记住有意义的单词。
其实,这一现象不仅发生在网络领域,也发生在日常的社会生活中。比如我们每个人都有一个身份证号,同时也有一个名字。但我们称呼一个人的时候,从来都是称呼“嗨,张三”,而不会说“嗨,320402198664563221”。但在公安局的计算机系统里,却是用身份证号来记录和查询人的档案的。
因此,为了便于记忆,人们就开始用单词来标识主机,比如用www标识一台Web服务器,用ftp标识一台FTP服务器,用printer标识一台打印机。最早的时候,由于联网的设备少,人们就把主机名和IP地址的对应关系记录在一个名为host.txt的文本文件中。用户想要访问以某个单词命名的一台计算机时,直接查询计算机事先下载到本地的host.txt文件,将主机名映射为IP地址后,再通过IP地址访问对应的计算机。
但很快,人们发现这个做法存在不少弊端。首先,互联网的发展速度和规模远远超出了预期,导致host.txt文件的大小迅速增加,以至于每次下载host.txt文件都太过庞大。其次,每次增加一台主机或更换主机名与IP地址的映射时都需要更新host.txt文件,更新操作过于频繁。再者,由于众多的主机都要访问存储host.txt文件的服务器,因此这台服务器很容易成为系统的瓶颈;最后,仅用一个单词标识主机极易产生重名,查一下全国有多少人和你同名同姓就能想象出这个问题的严重性了。
为了解决上面的这些弊端,域名系统应运而生。
所有评论仅代表网友意见