TCP/IP网络是通过IP地址来确定通信对象的,因此不知道IP地址就无法将消息发送给对方,这和我们打电话的时候必须要知道对方的电话号码是一个道理。因此,在委托操作系统发送消息时,必须要先查询好对方的IP地址。
那既然如此,我们只使用IP地址就可以了,为什么还要使用域名呢?主要是因为IP地址都是由一串数字组成,虽然方便计算机识别,但用户在访问网站时很难记住这些高度相似的数字,因此域名就作为一种更简单的寻址方式出现了。
与IP地址相比,域名往往是由用户自己注册,所以具有较大的自主性,可以根据网站名称、业务去进行选择,具有一定的规律性,方便用户记忆和输入,所以在一般情况下,人们往往优先使用域名访问站点获取信息。
但既然如此,另一个问题出现了,我们为什么不干脆放弃IP地址,统一使用域名来确定通信对象呢?为什么还要保留IP,采用域名和IP并用的模式呢?
主要原因在于互联网中存在无数的路由器,这些路由器之间相互配合,根据IP地址来判断应该把数据传送到哪些地方。如果我们放弃IP地址改用域名会发生什么呢?
IP 地址的长度为32比特,也就是4字节,相对地,域名最短也要几十个字节,最长甚至可以达到255字节。换句话说,使用IP地址只需要处理4字节的数字,而域名则需要处理几十个到255个字节的字符,这增加了路由器的负担,传送数据也会花费更长的时间。
那我们能不能使用更高性能的路由器来解决这个问题呢?现阶段来看,路由器的速度是有极限的,互联网内部流通的数据量已经让路由器疲于应付了,如果我们将IP地址改为长度更长的域名,就会进一步增加路由器的工作压力。
随着技术的发展,路由器的性能会不断提升,但与此同时,流通的数据量也以更快的速度增长,在可预见的未来,这种趋势不会发生变化。出于这样的原因,使用域名本身来确定通信并不是一个更优的选择。
于是,现在我们使用的方案是让人来使用域名,让路由器来使用IP地址。为了弥补两者之间的障碍,就需要一个机制能够通过域名来查询IP地址或者通过IP地址来查询域名,这个机制就是DNS。