DHCP协议交互过程分析

DHCP交互过程

标准的DHCP server端与client端的交互过程如下:

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地址使用租期自动启动续延过程 ;如果CLIENT发现DHCP SERVER分配的IP地址已经被别人使用,则CLIENT会发出DHCPDECLINE报文通知DHCP SERVER禁用这个IP地址以免引起IP地址冲突,然后CLIENT又开始新的DHCP过程从第1步开始。

6.续约阶段:当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步开始。

7.释放阶段:CLIENT在成功获取IP地址后,随时可以通过发送CLIENTRELESE报文释放自己的IP地址,DHCP SERVER收到CLIENTRELESE报文后,会回收相应的IP地址并重新分配。

DHCP CLIENT的行为

所有支持DHCP 协议并能够发起DHCP过程的终端都称之为DHCP CLIENT,包括普通PC机,各种特殊设备,如CABLE MODEM,IDT等。DHCP CLIENT自己必须能够发出DHCPDISCOVER,DHCPREQUEST,DHCPDECLINE等报文(DHCPINFORM报文也是DHCP CLIENT发出但实际中很少见),并且必须能够处理从服务器收到的以下几种报文:DHCPOFFER,DHCPACK和DHCPNAK。


                                                        DHCP CLIENT 行为图
————————————————
版权声明:本文为CSDN博主「hurray2004」的原创文章,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hurray2004/article/details/26240171

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值