DNS,域名服务,负责吧域名解析成IP。
理论上讲一个全世界使用一个域名服务器就够了,但为了防止服务器过载,或者服务器出现故障,导致整个网络瘫痪。DNS被设计成一个分布式的数据库系统,即使单个计算机除了故障,也不会妨碍DNS系统的正常运行。
在DNS请求报文中,为了减少开销和加快速度,使用的是UDP用户数据报方式
域名服务器是一个树状的层次结构
1,根域名服务器,根域名服务器知道所有顶级域名服务器的域名和IP地址。知道本地域名服务器无法解析域名,首先要求助的就是根域名服务器。
2,顶级域名服务器,负责以.com .edu .org等结尾的域名
3,权限域名服务器,负责顶级域名服务器下的二级或三级域名,比如xyz.com,a.xyz.com
4,本地域名服务器,当一个主机发出DNS查询时,会先请求本地域名服务器,本地域名服务器一般距离用户较近。一个大学,甚至一个学院都可以拥有一个本地域名服务器
DNS两种查询方式:迭代查询和递归查询
迭代查询:当根域名服务器收到本地域名服务器的查询报文时,要么给出对应的IP地址,要么告诉本地域名服务器,你下一步应当向那一个域名服务器查询,然后让本地域名服务器进行后续的查询
递归查询:当根域名服务器收到本地域名服务器的查询报文时,要么给出对应的IP地址,要么它自己作为DNS客户向其他域名服务器请求
为了提高查询的效率,会在域名服务器中使用高速缓存(有时也称高速缓存域名服务器),高速缓存存放的是最近查询过的域名和IP的映射,比如不久前有用户查询过a.xyz.com,如果我再去查询这个域名的IP时,不会再向根域名服务器情趣,而是直接从高速缓存中直接读取对应的IP。
参考:计算机网络(谢希仁)