深度分析 DHCP协议状态机

我在前文上分析了DHCP报文格式内容,这一文我将对DHCP协议几种状态机进行分析。
RFC2131中定义了七种状态,分别为INIT状态,SELECTING状态,REQUESTING状态,BOUND状态,RENEWING状态,REBINDING状态,REBOOT状态。整个状态机迁移如下:
1、 INIT状态:当用户第一次启动时,进入初始化状态,为了获取一个IP地址,用户首先要与本地网络上所有的DHCP服务器联系。为此,用户广播一个DHCPDISCOVER报文,并转换到SELECTING状态。
2、SELECTING状态:当用户处于SELECTING状态时,用户从DHCP服务器收集DHCPOFFER响应。每个响应提供了用户的配置信息,还有服务器给用户提供可以租用的一个IP地址。用户必须选择其中一个响应(一般为最先到达的响应),并与服务器协商租用。为此,用户给服务器发送一个DHCPREQUEST报文,并转换到REQUESTING状态。
3、 REQUESTING状态:为了确认已经接收请求并开始租用,服务器在收到用户的DHCPREQUEST报文后,发送一个DHCPACK报文进行响应。用户收到确认后转换到BOUND状态。
4、 BOUND状态:用户收到SERVER的确认报文后,将分配的IP地址与网卡绑定,开始使用该IP地址。
5、RENEWING状态:当租约定时器到期时,用户发送DHCPREQUEST报文到分配该IP地址的服务器进行续约,然后用户转换到RENEWING状态等待。
6、 REBINDING状态:用户在进行续约时,如果重绑定定时器到期时用户还是没有收到DHCPSERVER的ACK回应报文,则在本地网络内广播DHCPREQUEST报文,并转换到REBINDING状态等待回应。若在原服务器分配的IP地址到期之前用户收到了原服务器的回应报文,则重新转换到BOUND状态,使用原IP地址。若在原服务器分配的IP地址到期之前用户没有收到原服务器的回应报文,则重新转换到初始化状态重新申请IP地址。
7、REBOOT状态:为用户的重启动状态,此时用户直接发送DHCPREQUEST报文,申请上一次使用的IP地址,并等待DHCP SERVER的回应报文。
结合上图状态迁移图,已经可以很清楚的分析了dhcp协议的整个交互过程。相信对大家理解这个协议应该起了不少帮助。

weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 福州二手房信息 0

      貌似很深奥的样子!!!!!