应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。
对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。
域名系统DNS:互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS,DNS是大多数名字都在本地进行解析,仅少量解析需要互联网上通信。
作用: 将浏览器中输入的域名转换为ip地址。
原理: ip地址与域名的对应关系会存储在某一个“权限域名服务器”上,DNS的解析过程就是查询这个权限域名服务器,并且从该服务器上获取域名对应的ip地址的过程。查询到这个权限域名服务器还需要其他域名服务器的帮忙。
DNS查询方式: 递归查询和迭代查询
递归查询:主机向本地域名服务器查询,采用递归查询(对被查询的域名服务器负担太大)
如果本地域名服务器不知道查询域名的IP,则本地域名服务器以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。因此,递归查询返回的查询结构是查询的IP地址或报错,即无法查询到IP
迭代查询:本地域名服务器向根域名服务器查询,采用迭代查询(对本地域名服务器的负担较重)
当根域名服务器收到本地域名服务器发出的查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器下一步应向哪个域名服务器查询,然后让本地域名服务器进行后续查询。根域名服务器通常把自己知道的顶级域名服务器的IP告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询
迭代查询思路:每次查询先向最高级查询(根域名服务器),最高级根据查询情况返回下一级该向哪一级查询,如此重复进行,知道查询完毕。
高速缓存
DNS用什么传输层协议
DNS占用53号端口,同时使用TCP和UDP协议。