DHCP若干种request报文

DHCP request报文主要分成两大类型:

类型一、收到offer报文后,发送request广播报文进一步确认,同时通知其他dhcp服务器已经收到租约,如下所示:

DHCP若干种request报文_第1张图片

类型二、在租约的0.5倍时间上,发送request单播报文续约,如下所示:

如果此报文没有回复,则在0.875倍时间上,发生request广播续约。

DHCP若干种request报文_第2张图片

类型一、二有啥区别?dhcp server在接收到此两种类型的报文后,处理是否相同呢?

类型一存在option 50、54,而不存在client  ip(bootp flag);

类型二不存在option 50、54,而存在client ip(bootp flag);

原因:在offer的确认,client其实还不能确定该ip能否真正能为自己所用,还需要等待server 回复ack;

           而0.5倍单播request续约时,不需要携带option 50、54,默认该ip已经为自己所用,即在client ip(bootp flag)填写即可

          在0.85倍广播request续约时,不同于0.5倍单播续约,存在client ip(bootp flag)和option 50,而不存在option 54(因为client默认server已经丢失)

dhcp server在收到此类报文时,均对两种情况进行了检查,也即如果

1、option 50、54与server中租约信息相符合,则回复ack报文

2、client ip(bootp flag)与server ip相符合 ,则回复ack报文

3、option 54不存在,option 50与本地租约符合,也可回复ack报文(即有可能单播续约包没有及时收到)

另外在网口down up过程中,dhcp client会进入init-reboot态,发送广播request报文(且源ip也为0),与0.85倍续约发送的广播request报文有不同(此时的源ip为已经分配的ip)

总结:

dhcp client状态机会在四种状态下发送request报文

                                          报类型                      client-ip        option50      option54

1、init-reboot状态:    广播(且源ip为0)           N                   Y                   N

2、selecting态:         广播(且源ip为0)            N                  Y                   Y

3、renewing态:        单播                                   Y                  N                   N

4、rebinging态:        广播(源ip有效)             ?                  ?                   ?

init-reboot态:是指网卡重启后进入的状态,与init态区别在于:init态是完全没有任何租约信息,init-reboot态是存在之前租约信息的

selecting态:offer报文后的确认报

renewing态:0.5倍续约报文

rebinging态:0.85倍续约报文

 

 

 

 

 

你可能感兴趣的:(通信)