应用层-5、DNS
参考哈工大公开课。
DNS(域名解析系统)
DNS是Internet的核心服务且在应用层实现,它的核心作用就是把域名(www.baidu.com)转换为能够在互联网确定唯一服务器的IP地址。核心方法就是按照域名分层解析。
DNS服务:
DNS提供如下服务:
1、 域名向IP地址的翻译;
2、 定义主机别名;
3、 定义邮件服务器别名;
4、 负载均衡:Web服务器。例如:在双11,都访问www.taobao.com。一个服务器肯定不能处理这么大的访问量,所以阿里巴巴会提供一个服务器农场(多台服务器),每台服务器有个IP,你用这个域名访问的是服务器甲,而他用同一域名访问的是服务器乙。这就需要服务器把同一域名解析成不同的IP,让不同的服务器响应,从达到负载均衡的目的。
DNS的分层结构
当本地域名解析服务器无法解析域名,就访问根域名服务器。跟域名服务器在开始逐级查询并返回结果。且DNS的分层结构是每一各域名解析服务器只知道该DNS服务器下一层的域名。
图一:DNS的分层结构
在上文中提及的本地域名解析器不严格属于图一中的层级体系,每一个ISP(网络服务提供商)都有一个本地域名服务器,当主机进行DNS查询时,查询下被发送到本地域名服务器,由本地域名服务器代理查询。
DNS查询过程(迭代查询和递归查询)
迭代查询:类似于问路,走一截问一截,在DNS就是一层一层的查,它每查一层,返回应该去查的下一个服务器的地址,直到最后查到IP。
图二:迭代查询
递归查询:类似于递归函数调用的过程,函数逐层调用,找到IP后,再逐层return回来。
图三:递归查询
DNS协议:
DNS采用查询(query)和回复(reply)方式,且发送与回复消息格式格式相同。
消息头部:
1、 Identification:16位查询编号,回复使用相同的编号;
2、 flag:包括:查询或回复、期望递归、递归可用、权威回答等信息;
3、 更多的信息请参照图四;
图四:DNS消息格式