《计算机网络 自顶向下方法》 第2章 应用层 Part2

域名、主机名?
 
从范围上看:
域名的范围比主机名大
一个域名下通常有多个主机名
从组成上看:
主机名 = 服务器名(或计算机名) + 域名
举例说明:
baidu.com 是百度的域名
www.baidu.com 是百度的 www 主机名
map.baidu.com 是百度的地图主机名
 
 
DNS 是什么?
 
DNS 的全称 Domain Name System,即域名系统
它的作用是提供主机名到 IP 地址的映射
在上一个问题中讨论了域名和主机名的区别,知道它们不是一回事,至于为什么 DNS 叫域名系统,不叫主机名系统,我弄不明白
 
 
为什么需要 DNS?
 
主机名对人类友好,便于人类记忆
IP 地址便于网络寻址,它由 4 个字节组成,我们平常看到的 IP 地址一般会有英文的点(.)将每个字节隔开,从左往右读 IP 地址,可以逐步确定其对应机器的位置,比如对于同一个市的人,乙想去甲家找他玩,甲告诉乙他家的地址是 县.镇.村.门牌号,这样乙就能准确无误的找到甲的家了
现在的关系链是这样的,人类 → 主机名,IP 地址 → 主机,中间缺少从主机名到 IP 地址的映射,DNS 提供的就是这样一个映射服务,从而将整个链路打通(人类 → 主机名 → IP 地址 → 主机)
 
 
DNS 提供的服务有哪些?
 
DNS 除了提供从主机名到 IP 地址的映射
还提供以下服务:
1、主机别名
由于有些主机名比较复杂,所以 DNS 允许他们使用一些易于记忆的别名,而且我们可以通过将别名传送给 DNS 来获取它的(规范)主机名和 IP 地址
2、邮件服务器别名
同上
3、负载分配
由于服务器站点可能非常繁忙,单台主机无法应付频繁的、大量的请求,所以有些他们准备了多台服务器来提供相同的服务,即一个主机名可以映射到一个 IP 地址集合
当客户对映射到某地址集合的名字发出一个 DNS 请求时,该服务器用 IP 地址的整个集合进行响应,但在每个回答中循环这些地址次序
 
 
DNS 的工作机制是怎样的?
 
一般而言,将所有的主机与 IP 地址的映射关系放在一台服务器上,是能想到最简单的方案
但是由于因特网上的主机数量实在是太多了,所以如果都放在同一个服务器上的话,会有以下问题存在:
1、单点故障
即,如果这个服务器出了故障,则会导致整个因特网整体瘫痪
2、通信容量
一个服务器要处理来自整个因特网所有主机的请求,容量必须很大
3、远距离的集中式数据库
即,如果只有一个服务器,则地球上总有距离它很远的主机,当这些主机请求 DNS 服务时,时延会相当大
4、维护
由于要维护所有的主机与 IP 地址的映射关系,则这个中央数据库非常庞大,而且当有新添加的主机时,这个数据库还要对应更新
综上,集中式服务器扩展性极差
所以,对于这种巨大规模的数据处理,不可能采用集中式的方案
DNS 使用了分布式方案,使用了大量的服务器,以层次组织它们
大致来说,有三种类型的服务器,即根 DNS 服务器、顶级域 DNS 服务器和权威 DNS 服务器
一般而言,在 DNS 中查询 IP 地址时,使用的是下图所示的模式:
 
DNS 缓存?
 
为了改善时延性能并减少在因特网上到处传输的 DNS 报文数量,DNS 广泛使用了缓存技术。
在一个请求链中,当某 DNS 服务器接收一个 DNS 回答时,它能将该回答中的信息缓存到本地存储器中
 
 
P2P 应用强大在哪?
 
对于客户-服务器体系结构,能够提供资源的只有服务器,如果大量的客户需要同一个服务器上的同一个文件,他们都需要从服务器上获取,那么总时间会随着客户数量线性增长
而对于 P2P 应用,每个主机都可以成为服务器,可想而知,整个的时间会被平摊下来
书中“2.6 P2P 应用”一节,有详细的定量讨论
原文地址:https://www.cnblogs.com/stone94/p/10935082.html