java构建TCP/IP协议:DNS,域名解析协议的基本原理介绍

从本节开始,我们研究和实现一个体系较为复杂的协议,也就是域名解析协议,简写为DNS。该协议几乎也是我们”日用而不知“的幕后英雄,没有它肯定就没有现在的互联网繁荣。

当我们在浏览器上输入网址,例如www.baidu.com时,浏览器先通过DNS协议找到与该网址对应的IP地址,然后再使用IP去向服务器获取网页信息。也就是说互联网上的设备其实有两种辨认方法,一种是IP,一种是域名。就如同人的身份证,人有名字,同时也有几十位数字组成的身份证号。

人与人相互识别时,使用的都是名字,几乎没有人使用身份证号来识别他人的,即使身份证号相对于名字而言更加唯一和准确。说到底是因为人对数字识别很费劲,而记住名字很容易。

对计算机的访问也是如此。在互联网发展早期,计算机只是在局域网内互联,并且联网的机器非常有限,因此当时使用IP直接定位不同的机器。但是随着网络的发展,联网的机器越来越多,使用数字辨别每一台计算机变得越来越困难,于是人们开始想用更方便的记忆方式,于是自然就想到用字符串来替代难以记忆的数字。

然而对程序而言,它只能识别数字,于是字符串仅仅用作于方便记忆,在运行机制上,程序就得把字符串与IP数字进行转换。最早使用的转换机制很简单,甚至到现在还在使用,那就是hosts文件,它使用文本的方式将IP与字符串名字对应起来,如下图:

屏幕快照 2019-04-09 下午4.21.49.png

程序在运行时,先将该文件内容读入内存,当用户输入网址时,它先从里面的对应关系中,将网址直接转换成对应的IP地址。这种方法在主机数量少时适用,但现在网络上的主机数量数以千万计,如此我们得在文件中维护几万个对应关系,这显然不合情理,随着联网的设备越来越多,适用这种静态配置的方式越来越不合时宜,因此全网使用一种统一的IP字符串映射方式是势在必行。

如今能满足这种域名转换成IP需要机制,就是我们要研究和实现的DNS协议,它是极佳的分布式系统设

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值