前言
前面介绍了应用层的DNS协议 你知道上网时输入的URL是怎么解析成IP地址的吗?一文带你搞懂DNS,我们知道了DNS可以将域名映射成IP地址。
今天给大家介绍下应用层另一个协议——动态主机配置协议DHCP。
我们的PC在和网络中的其他终端通信时需要获取一个IP地址,这个IP地址可以手动配置,也可以通过DHCP协议动态获取。今天就来看下我们的PC是如何动态获取到IP地址的?
正文
1为什么需要DHCP动态分配IP地址? DHCP和手动配置IP的优缺点?
手动配置IP地址
操作简单,但是在局域网容易造成IP地址冲突,如果终端数量较多需要一台台配置,工作量大。
使用DHCP动态分配IP地址:
可以减少管理员的工作量,避免用户手工配置网络参数时造成的地址冲突。
2什么是DHCP协议
DHCP(动态主机配置协议)是应用层的网络协议,可以用于给客户端动态分配IP地址和子网掩码。DHCP基于服务器-客户端的模式进行工作。
3DHCP的工作原理
DHCP协议是基于客户端-服务器模式的,为了动态获取IP地址和子网掩码配置信息,DHCP客户端需要和DHCP服务器进行报文交互。
1、DHCP客户端发送DHCP Discover广播报文来发现DHCP服务器。(询问谁可以为我分配IP地址。)
2、DHCP服务器在收到DHCP Discover报文后,会选取一个未分配的IP地址,向DHCP客户端发送DHCP提供报文(DHCP Offer),此报文中包含IP地址等配置信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应。(告诉DHCP客户端我可以给你提供服务)
3、如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文,然后发送DHCP Request报文,报文中包含请求的IP地址。(告诉所有的DHCP服务器我选择哪个服务器给我分配的地址)
4、DHCP服务器在收到DHCP Request报文后,会回应一个DHCP Ack报文。(告诉DHCP客户端我知道了)
地址冲突检测:
DHCP客户端收到DHCP Ack报文后,会发送免费ARP报文,检查网络中是否有其他主机使用分配的IP地址。
1、如果指定时间内没有收到ARP应答,DHCP客户端会使用这个IP地址。
2、如果有主机使用该IP地址,DHCP客户端会向DHCP服务器发送DHCP拒绝报文,通知服务器该IP地址已被占用。然后DHCP客户端会向服务器重新申请一个IP地址。
DHCP地址续租:
在使用租期超过50%时刻处DHCP Client会以单播形式向DHCP Server发送DHCP Request报文来续租IP地址。
1、如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;
2、如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址。
在使用租期超过87.5%时刻处,DHCP Client会以广播形式向DHCP Server发送DHCP Request报文来续租IP地址。
1、如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;
2、如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址,直到IP地址使用租期到期时,DHCP Client才会向DHCP Server发送DHCP Release报文来释放这个IP地址,并开始新的IP地址申请过程。
注意:从上面我们知道DHCP客户端经历了从DHCP服务器动态获取IP地址,续租IP地址到最后释放IP地址的生命周期。
4DHCP报文类型和报文格式: