1、CLIENT首先发出广播的DHCPDISCOVER报文,广播的目的是让DHCP SERVER能够收到这个请求报文。在这个报文中,CLIENT可以在“选项”字段中加入“request paramter list”选项,表明自己想要获得的各种参数,而且四个IP地址字段都必须为0。
2、由于DHCPDISCOVER报文是广播,那么所有的DHCP SERVER都能够收到,所有的DHCP SERVER都会响应一个DHCPOFFER报文,其中“你的IP地址”字段就是DHCP SERVER能够提供给CLIENT使用的IP地址,而且DHCP SERVER会把自己的IP地址放在“选项”字段中以便CLIENT区分不同的DHCP SERVER,发出此报文后,在DHCP SERVER上就会存在一个已分配IP地址的记录。
3、CLIENT能够收到所有的DHCPOFFER报文,但CLIEN只能处理其中的一个,一般的原则是CLIENT接收、处理最先收到的那个DHCPOFFER报文。CLIENT会再发出一个广播的DHCPREQUEST报文,在“选项”字段中会加入选中的DHCP SERVER的IP地址和用户想要的IP地址,之所以广播是因为要通知所有的DHCP SERVER进行相应的处理。
4、DHCP SERVER收到DHCPREQUEST报文,判断“选项”字段中的DHCP SERVER的IP地址是否与自己的地址相同,不相同,则不做任何处理,如果自己发出过DHCPOFFER报文,则清除相应IP地址记录;当“选项”字段中的DHCP SERVER的IP地址是与自己的IP地址相同时,DHCP SERVER就会响应一个DHCPACK报文,其内容同DHCPOFFER类似,并在“选项”字段中增加了IP地址使用租期选项。
5、CLIENT收到DHCPACK报文后(经过上面的处理后,有且只有一个DHCPACK报文),会检查DHCP SERVER分配给自己的IP地址是否能够使用,如在以太网类型的网络中,CLIENT会发出免费的ARP请求来确定DHCP SERVER分配的IP地址是否已经被别人使用,如果可以使用,则CLIENT成功获得IP地址,并根据IP地址使用租期自动启动续延过程。
6、如果CLIENT发现DHCP SERVER分配的IP地址已经被别人使用,则CLIENT会发出DHCPDECLINE报文通知DHCP SERVER禁用这个IP地址以免引起IP地址冲突。然后CLIENT又开始新的DHCP过程,从第1步开始。
7、当CLIENT成功获取IP地址后,会根据IP地址使用租期自动启动续延过程,在使用租期过去50%时刻处,向DHCP SERVER发送单播DHCPREQUEST报文续延租期,如果成功即收到DHCP SERVER的DHCPACK报文,则租期相应向前延长,如果失败即没有收到DHCPACK报文,则CLIENT继续使用这个IP地址。在使用租期过去87.5%时刻处,向DHCP SERVER发送广播DHCPREQUEST报文续延租期,如果成功即收到DHCP SERVER的DHCPACK报文,则租期相应向前延长;如果失败即没有收到DHCPACK报文,则CLIENT继续使用这个IP地址。在使用租期到期时,CLIENT应自动放弃使用这个IP地址,并开始新的DHCP过程,从第1步开始。
8、CLIENT在成功获取IP地址后,随时可以通过发送DHCPRELEASE报文释放自己的IP地址,DHCP SERVER收到DHCPRELEASE报文后,会回收相应的IP地址重新分配。