TCP/IP协议簇把OSI七层网络模型的应用层、表示层、会话层合并为一层——应用层。应用层直接和应用程序接口结合,并提供常见的网络应用服务。
常见的应用层协议有DNS协议、DHCP协议、HTTP协议。
DNS协议
域名系统(Domain Name System,缩写:DNS)也叫做域名解析协议,是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。域名由点、字母和数字组成,点分割不同的域。
TCP协议、UDP协议使用“IP地址+端口”表示网络进程,但是IP地址不人性化、很难记忆;而域名则非常符合人类的记忆习惯,例如:www.baidu.com、www.qq.com。DNS协议可以将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
域名可以分为顶级域名(一级域名)、二级域名、三级域名。
顶级域名也称为一级域名,有国家/地区顶级域名、通用顶级域名。国家/地区顶级域名有:cn、us、uk、ca。通用顶级域名有:com、net、gov、org。
二级域名是在一级域名前加一级,例如二级域名有:baidu.com、qq.com。二级域名中的baidu、qq称为二级域。由于互联网早期很多域名注册商把 xxx.com 这种二级域名称为一级域名(估计是注册商为了显示自己卖的域名更高级),所以也有人把baidu.com、qq.com这种域名称为一级域名。
三级域名,例如:www.qq.com。www称为三级域。
域名的结构是一种树形结构
DNS分为递归查询和迭代查询两种方式
递归查询过程如上图所示
1、浏览器发送DNS请求到本地DNS服务器。
2、本地DNS服务器接收到请求后查询本地缓存,缓存中有域名与IP的映射则返回结果;没有则发请求给根域名服务器。
3、如果根域名服务器查询不到域名与IP的映射,会根据域名中的顶级域去顶级域名服务器查询。
4、顶级域名服务器查询缓存,缓存中找不到结果,则去二级域名服务器查询。
5、后面二级域名服务器、三级域名服务器的过程也类似,缓存中有结果则返回,没有就去低一级的域名服务器查询。最终返回结果,这是一个递归调用的过程。
迭代查询如上图所示
1、浏览器发送DNS请求到本地DNS服务器。
2、本地DNS服务器接收到请求后查询本地缓存,缓存中有域名与IP的映射则返回结果;没有则发请求给根域名服务器。
3、从这一步开始就和递归查询不一样了。如果根域名服务器查询不到域名与IP的映射,则会根据顶级域名返回能解析此顶级域名的服务器列表。
4、本地DNS服务器拿到顶级域名服务器列表后,去顶级域名服务器查询,如果这些顶级域名服务器找不到域名与IP的映射,也是返回能解析此二级域名的服务器列表。
5、后面的解析过程也跟第3、第4步类似。
DHCP协议
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
window系统配置为“自动获得IP地址”,自动获取IP便是使用DHCP协议。
DHCP工作过程如下:
1、主机使用UDP协议广播DHCP发现报文。目的地址为255.255.255.255就是向局域网所有地址广播报文。
2、网络中的DHCP服务器(局域网中的DHCP服务器可能有多台)响应广播报文,并返回一个IP地址给主机。
3、主机选中一台DHCP服务器提供的IP,并广播报文,公告自己选择了这台DHCP服务器提供的IP。
4、被选中的DHCP服务器回应一个ACK报文,并将IP地址分配给主机。
DHCP服务器出租给主机的IP是有时间限制的,DHCP客户机要延长其IP租约,则需要向DHCP服务器发送更新其IP租约的信息。