域名系统:
计算机除了拥有一个唯一的IP地址外,还可以拥有一个由字符串组成的名字。ex:www.google.com 该名字叫做主机名或者计算机名 (host name)。主机名与IP地址一一对应,当用户访问访问一台计算机时,只需给出其主机名。使用主机名必须要解决两个问题:首先是主机名在全世界范围内不能重复。那如何有效的为计算机分配主机名呢? 其次是主机名与 IP地址的转换问题。因为网络通信还是需要IP地址。所以需要一种机制把主机名转换为IP地址。
域名结构:ex www.stud.edu.cn 和 jsjxy.stud.edu.cn同属于stud.edu.cn 域(三级域名)www.stud.edu.cn 和 www.pku.edu.cn 同属于edu.cn 域(二级域名),www.stud.edu.cn 和icbc.com.cn同属于cn域(顶级域)
顶级域名有三大类:1)国家顶级域名: .cn .us .uk(British) .jp(Japan)
2)国际顶级域名ex: .int 3)通用顶级域名:通用顶级域名包括以.com,.net,.org结尾的常用域名,还包括以.biz(企业的网上新形象),.name(适用于个人注册的通用顶级域名),.aero(适用于航空运输业的专用顶级域名),.museum(适用于博物馆的专用顶级域名),.info(提供信息服务的单位),.pro(适用于医生、律师、会计师等专业人员的通用顶级域名)和.coop(适用于商业合作社的专用顶级域名)结尾的新的通用顶级域名。
主机名转换为IP地址:术语叫“地址解析”。基本的思路是:建立一个主机名数据库,把主机名及其对应的IP地址存入其中,需要的时候随时查询。数据库可以放在每一台计算机上,很多操作系统就是这样做的。比如微软就在C:\Windows\System32\drivers\etc 目录下有一个纯文本hosts文件。
这种方法虽然可用但是并不常用,因为因特网上的计算机不计其数,而且主机名也在不断变化。常用的办法就是把主机名数据库分散的存放在多台服务器上,这样的服务器叫做DNS服务器(域名服务器)。当一台计算机向DNS服务器查询主机名时,他向DNS服务器发送DNS请求,DNS服务器则返回DNS响应。因为DNS请求和DNS响应的数据量很少,所以封装在UDP报文段中进行传输。DNS服务器的熟知端口号为53. 在Windows中,hosts文件的级别高于DNS服务器,Windows会首先查看自己的hosts文件,若查询不到、再向DNS服务器发出查询请求。
DNS服务器分为不同的级别,自高到低:根域名服务器、顶级域域名服务器、授权域名服务器。授权DNS是最基本的域名服务器,它存储着一个域内的主机名 和 IP地址的对应关系。负责该域内的地址解析工作。每个顶级域设一个顶级域DNS服务器,其中保存着该顶级域所有下级域的授权DNS服务器的IP地址。现在有13个根DNS服务器,大多在美国这些DNS服务器的内容一样,用户可就进使用。
当一个授权DNS服务器管理的域很大的时候,在这个有域中也应该再多设置多个DNS服务器。叫做本地DNS服务器。 本地DNS服务器上面的数据是从其他DNS服务器上Copy过来的。用户可以就近访问,分散压力。
不过,由于DNS的分级,我们也能想象查询过程必然是繁琐的,DNS缓存有效的简化了这个过程。
————————————————————————————————————————整理自《计算机网络》