一种DHCP配置方法及DHCP客户端与流程

文档序号:15684305发布日期:2018-10-16 20:53阅读:288来源:国知局

本发明涉及局域网技术领域,特别是涉及一种dhcp配置方法及dhcp客户端。



背景技术:

随着计算机技术和网络技术的蓬勃发展,网络在各行各业的应用越来越广,在网络中每台联网的电脑上都需要有ip(internetprotocol,互联网协议)地址,才能正常通信,ip地址是一种重要的网络资源。在局域网中,对于大多数的拨号上网的用户,由于用户上网的时间和空间的离散性,为每一个用户分配一个固定的ip地址是不可取的,会造成大量ip地址资源的浪费。因此,通常采用动态分配的方式为用户分配ip地址。

其中,dhcp(dynamichostconfigurationprotocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中地管理、分配ip地址,使网络环境中的主机动态地获得ip地址、网关地址、域名服务器地址等信息,并能够提升ip地址的使用率。

发明人发现,在相关的dhcp流程中,dhcp客户端发生了网络切换,如果dhcp服务器也发生了网络切换,那么,只有在dhcp客户端在网络切换前的原有ip地址的租约时间没有到期,并且dhcp服务器即将为dhcp客户端分配的新的ip地址和dhcp客户端的原有ip地址在同一网段的情况下,dhcp客户端才能继续使用原有ip地址通信;在其它情况下,dhcp客户端都不能使用原有ip地址。

所以说,如果dhcp客户端发生了网络切换,且dhcp服务器也发生了网络切换,那么,dhcp客户端有很大概率不能继续使用原有ip地址,而且dhcp客户端无法及时获取新的ip地址,导致发生了网络切换的dhcp客户端在一定的时间内不能正常通信。



技术实现要素:

本发明实施例的目的在于提供一种dhcp配置方法及dhcp客户端,在发生网络切换时,可使dhcp客户端快速正常通信。具体技术方案如下:

本发明实施例公开了一种dhcp配置方法,包括:

检测dhcp客户端是否发生网络切换;

如果检测到所述dhcp客户端发生网络切换,且当所述dhcp客户端的状态为selecting态、requesting态或rebinding态时,将dhcp客户端切换至init态,以使所述dhcp客户端进入dhcp初始化流程;

如果检测到所述dhcp客户端发生网络切换,且当所述dhcp客户端的状态为bound态、renewing态或rebooting态时,将dhcp客户端切换至init-rebooting态,以使所述dhcp客户端进入快速dhcp初始化流程。

可选的,所述dhcp客户端进入dhcp初始化流程,包括:

dhcp客户端初始化配置信息;

所述dhcp客户端广播发送dhcp发现消息,并进入selecting态;

所述dhcp客户端接收到dhcp服务器单播发送的dhcp提供消息后,广播发送第一dhcp请求消息并进入requesting态,其中,所述dhcp提供消息包括:dhcp服务器提供的ip地址、dhcp服务器提供的租约时间,所述第一dhcp请求消息包括:所述dhcp客户端租用的dhcp服务器提供的ip地址;

所述dhcp客户端接收到所述dhcp客户端租用的dhcp服务器单播发送的dhcp确认消息后,确认所述dhcp服务器提供的ip地址可用,所述dhcp客户端记录租约时间,进入bound态。

可选的,在所述dhcp客户端广播发送dhcp发现消息之前,所述方法还包括:

检测所述dhcp客户端的网络状态是否为连接;

所述dhcp客户端广播发送dhcp发现消息,包括:

在检测到所述dhcp客户端的网络状态为连接时,所述dhcp客户端广播发送dhcp发现消息;

在所述检测所述dhcp客户端的网络状态是否为连接之后,所述方法还包括:

在检测到所述dhcp客户端的网络状态为断开时,将所述dhcp客户端切换至init态,以使所述dhcp客户端进入dhcp初始化流程。

可选的,所述dhcp客户端进入快速dhcp初始化流程,包括:

dhcp客户端广播发送第二dhcp请求消息,并进入rebooting态,其中,所述第二dhcp请求消息包括:所述dhcp客户端存储的ip地址;

当所述dhcp客户端接收到dhcp服务器发送的dhcp确认消息时,所述dhcp客户端记录租约时间,进入bound态;

当所述dhcp客户端接收到dhcp服务器发送的dhcp拒绝消息时,进入init态,以使所述dhcp客户端进入dhcp初始化流程。

可选的,所述检测到所述dhcp客户端发生网络切换的步骤,包括:

在检测到所述dhcp客户端的网络状态为断开之后,经过大于或等于预设阈值的时延之后,再检测到所述dhcp客户端的网络状态为连接,则确定所述dhcp客户端发生网络切换。

可选的,在所述dhcp客户端记录租约时间,进入bound态之后,所述方法还包括:

所述dhcp客户端以固定周期检测所述dhcp客户端的租期,在第一预设租期到期时,所述dhcp客户端向所述dhcp客户端租用的dhcp服务器发送第三dhcp请求消息,进入renewing态,其中,所述第一预设租期小于所述租约时间,所述第三dhcp请求消息包括:所述dhcp客户端存储的ip地址。

可选的,在所述dhcp客户端向所述dhcp客户端租用的dhcp服务器发送第三dhcp请求消息,进入renewing态之后,所述方法还包括:

在第二预设租期到期时,如果所述dhcp客户端没有收到所述dhcp客户端租用的dhcp服务器对所述第三dhcp请求消息的回复,所述dhcp客户端广播发送第四dhcp请求消息,进入rebinding态,其中,所述第二预设租期小于所述租约时间,且大于所述第一预设租期。

本发明实施例还公开了一种dhcp客户端,包括:

网络状态检测模块,用于检测dhcp客户端是否发生网络切换;

状态切换模块,用于如果所述网络状态检测模块检测到所述dhcp客户端发生网络切换,且当所述dhcp客户端的状态为selecting态、requesting态或rebinding态时,将dhcp客户端切换至init态,以使所述dhcp客户端进入dhcp初始化流程;

所述状态切换模块,还用于如果所述网络状态检测模块检测到所述dhcp客户端发生网络切换,且当所述dhcp客户端的状态为bound态、renewing态或rebooting态时,将dhcp客户端切换至init-rebooting态,以使所述dhcp客户端进入快速dhcp初始化流程。

可选的,所述dhcp客户端还包括:

流程执行模块,用于初始化配置信息;广播发送dhcp发现消息,并进入selecting态;接收到dhcp服务器单播发送的dhcp提供消息后,广播发送第一dhcp请求消息并进入requesting态,其中,所述dhcp提供消息包括:dhcp服务器提供的ip地址、dhcp服务器提供的租约时间,所述第一dhcp请求消息包括:所述dhcp客户端租用的dhcp服务器提供的ip地址;接收到所述dhcp客户端租用的dhcp服务器单播发送的dhcp确认消息后,确认所述dhcp服务器提供的ip地址可用,记录租约时间,进入bound态。

可选的,所述网络状态检测模块,还用于检测所述dhcp客户端的网络状态是否为连接;

所述流程执行模块,进一步用于在所述网络状态检测模块检测到所述dhcp客户端的网络状态为连接时,广播发送dhcp发现消息;

所述流程执行模块,还用于在所述网络状态检测模块检测到所述dhcp客户端的网络状态为断开时,将所述dhcp客户端切换至init态,以使所述dhcp客户端进入dhcp初始化流程。

可选的,所述dhcp客户端还包括:

流程执行模块,还用于广播发送第二dhcp请求消息,并进入rebooting态,其中,所述第二dhcp请求消息包括:所述dhcp客户端存储的ip地址;当所述dhcp客户端接收到dhcp服务器发送的dhcp确认消息时,记录租约时间,进入bound态;当所述dhcp客户端接收到dhcp服务器发送的dhcp拒绝消息时,进入init态,以使所述dhcp客户端进入dhcp初始化流程。

可选的,所述网络状态检测模块,具体用于在检测到所述dhcp客户端的网络状态为断开之后,经过大于或等于预设阈值的时延之后,再检测到所述dhcp客户端的网络状态为连接,则确定所述dhcp客户端发生网络切换。

可选的,所述dhcp客户端还包括:

租期检测模块,用于以固定周期检测所述dhcp客户端的租期,在第一预设租期到期时,通知所述流程执行模块向所述dhcp客户端租用的dhcp服务器发送第三dhcp请求消息,进入renewing态,其中,所述第一预设租期小于所述租约时间,所述第三dhcp请求消息包括:所述dhcp客户端存储的ip地址。

可选的,所述租期检测模块,还用于在第二预设租期到期时,如果没有收到所述dhcp客户端租用的dhcp服务器对所述第三dhcp请求消息的回复,通知所述流程执行模块广播发送第四dhcp请求消息,进入rebinding态,其中,所述第二预设租期小于所述租约时间,且大于所述第一预设租期。

本发明实施例提供的dhcp配置方法及dhcp客户端,在检测到dhcp客户端发生网络切换,且当dhcp客户端的状态为selecting态、requesting态或rebinding态时,将dhcp客户端切换至init态,以使dhcp客户端进入dhcp初始化流程。在检测到dhcp客户端发生网络切换,且当dhcp客户端的状态为bound态、renewing态或rebooting态时,将dhcp客户端切换至init-rebooting态,以使dhcp客户端进入快速dhcp初始化流程。可见,本发明实施例在发生网络切换时,根据dhcp客户端所处的不同状态,确定使dhcp客户端进入dhcp初始化流程或者快速dhcp初始化流程,优化了dhcp客户端在发生网络切换时的处理流程,从而使dhcp客户端在发生网络切换时能够快速恢复正常通信,避免了该dhcp客户端的ip地址不能被当前网络中其他设备识别的问题。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为相关技术中的dhcp流程图;

图2为本发明实施例的dhcp配置方法的一种流程图;

图3为本发明实施例的dhcp配置方法的另一种流程图;

图4为本发明实施例的dhcp客户端的一种结构图;

图5为本发明实施例的dhcp客户端的另一种结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在局域网中,dhcp的主要作用为动态地分配ip地址,下面首先对相关技术中的dhcp流程进行介绍。参见图1,图1为相关技术中的dhcp流程图,包括dhcp初始化流程和快速dhcp初始化流程。

dhcp初始化流程中,dhcp客户端启动后进入init态,初始化dhcp客户端的配置信息,包括:获取dhcp客户端的状态、配置dhcp客户端是否需要获取ntp(networktimeprotocol,网络时间协议)服务器参数等等。dhcp客户端广播发送dhcp发现消息,并进入selecting态,以寻找将要租用的dhcp服务器。若该dhcp客户端在多个dhcp服务器的覆盖范围内,那么,dhcp客户端广播的dhcp发现消息可能被多个dhcp服务器接收到,dhcp客户端将可能会收到多个dhcp服务器回复的dhcp提供消息。其中,dhcp提供消息可以包括:dhcp客户端的mac(mediaaccesscontrol,介质访问控制)地址、dhcp服务器提供的ip地址、dhcp服务器提供的子网掩码、dhcp服务器提供的默认网关、dhcp服务器提供的租约时间、dhcp服务器自身的ip地址。其中,dhcp服务器提供的ip地址指的是dhcp服务器为dhcp客户端提供的ip地址,租约时间指的是dhcp服务器为dhcp客户端提供的ip地址等参数的使用时间。在dhcp客户端接收到第一个dhcp提供消息后,dhcp客户端使用第一个dhcp提供消息中的网络参数广播发送dhcp请求消息,并进入requesting态,该dhcp请求消息用于确认选择租用哪一个dhcp服务器提供的ip地址。dhcp客户端接收到dhcp服务器发送的dhcp确认消息后,确认dhcp服务器提供的ip地址等参数可用,记录租约时间,并进入bound态,此时,dhcp客户端可正常通信。

在dhcp客户端使用的ip地址达到第一预约租期t1后,dhcp客户端向该dhcp客户端租用的dhcp服务器发送dhcp请求消息,进入renewing态,以更新租约时间。如果dhcp客户端接收到该dhcp客户端租用的dhcp服务器发送的dhcp确认消息,那么,dhcp客户端重新进入bound态。如果dhcp客户端接收到该dhcp客户端租用的dhcp服务器发送的拒绝消息,dhcp客户端进入init态,重新dhcp初始化流程。如果dhcp客户端没有收到该dhcp客户端租用的dhcp服务器的回复消息,在dhcp客户端使用的ip地址达到第二预约租期t2后,dhcp客户端广播发送dhcp请求消息,进入rebinding态,以重新开始dhcp初始化流程。如果dhcp客户端在广播dhcp请求消息后接收到该dhcp客户端租用的dhcp服务器发送的dhcp确认消息,那么,dhcp客户端重新进入bound态。如果dhcp客户端接收到该dhcp客户端租用的dhcp服务器发送的拒绝消息,dhcp客户端进入init态,重新dhcp初始化流程。可选的,第一预约租期t1为租约时间的1/2,第二预约租期t2为租约时间的7/8,当然,第一预约租期t1和第二预约租期t2是可以根据实际情况进行调整的,在此不做限定。

在dhcp客户端已经进行过dhcp初始化流程,且需要再次进行dhcp时,由于dhcp客户端中已经存储有ip地址等信息,那么不需要重新初始化dhcp客户端的配置信息。此时,可以进行快速dhcp初始化流程来提升效率。快速dhcp初始化流程中,dhcp客户端进入init-rebooting态,广播发送dhcp请求消息,并进入rebooting态。其中,dhcp请求消息包括:该dhcp客户端存储的ip地址,该ip地址是在dhcp初始化流程之后使用的ip地址。当dhcp客户端接收到dhcp服务器的dhcp确认消息时,dhcp客户端记录租约时间,进入bound态。当该dhcp客户端接收到dhcp服务器回复的dhcp拒绝消息时,dhcp客户端进入init态,重新dhcp初始化流程。

由图1所述dhcp流程可见,dhcp客户端发生了网络切换,且dhcp服务器也发生了网络切换的情况下,只有在dhcp客户端在网络切换前的原有ip地址的租约时间没有到期,并且dhcp服务器即将为dhcp客户端分配的新的ip地址和dhcp客户端的原有ip地址在同一网段的情况下,dhcp客户端才能继续使用原有ip地址通信;在其它情况下,dhcp客户端都不能使用原有ip地址。所以说,如果dhcp客户端发生了网络切换,且dhcp服务器也发生了网络切换,那么,dhcp客户端有很大概率不能继续使用原有ip地址,而且dhcp客户端无法及时获取新的ip地址,导致发生了网络切换的dhcp客户端在一定的时间内不能正常通信。由此,本发明实施例提供了一种dhcp配置方法及dhcp客户端,一旦dhcp客户端发生了网络切换,使dhcp客户端能够快速恢复正常通信。下面首先对本发明实施例的dhcp配置方法进行详细介绍。

参见图2,图2为本发明实施例的dhcp配置方法的一种流程图,包括如下步骤:

s201,检测dhcp客户端是否发生网络切换。

从上述dhcp初始化流程和快速dhcp初始化流程可知,在不同阶段,dhcp的状态是不同的。因此,在检测到dhcp客户端发生网络切换时,根据dhcp客户端的不同状态执行s202或s203。

在一些场景下,由于网络链路的连接状态可以使用网卡的中断检测或者使用网卡的数据包检测,但是不同网卡硬件可能标准不一样,也就是没有统一的检测标准。因此,本发明实施例中,针对不同的硬件抽象出一层网络状态获取的统一接口,用于提供获取网络状态,然后dhcp客户端可以调用该层次的接口来获取网卡状态。本发明实施例中,可以通过网络状态从网络断开到网络连接成功的变化,以及两个状态之间的时延,判断dhcp客户端是否发生了网络切换,该过程在下文将进行详细描述,这里不再赘述。

s202,当dhcp客户端的状态为selecting态、requesting态或rebinding态时,将dhcp客户端切换至init态,以使dhcp客户端进入dhcp初始化流程。

在本发明实施例中,当dhcp客户端的状态为selecting态或requesting态时,表明dhcp客户端还在dhcp初始化流程中,dhcp客户端还未获取到dhcp服务器提供的ip地址,dhcp客户端还未进行正常通信。那么,在检测到dhcp客户端发生了网络切换时,将dhcp客户端切换至init态,以使dhcp客户端进入dhcp初始化流程。而在dhcp客户端的状态为rebinding态时,表明dhcp客户端原有ip地址不能继续使用,dhcp客户端需要重新获取新的ip地址,那么,在检测到dhcp客户端发生了网络切换时,将dhcp客户端切换至init态,从而使dhcp客户端进入dhcp初始化流程。这样,如果dhcp客户端发生了网络切换,dhcp客户端可通过进入dhcp初始化流程获取ip地址等参数,避免dhcp客户端无ip地址可用而导致通信中断的情况发生。

s203,当dhcp客户端的状态为bound态、renewing态或rebooting态时,将dhcp客户端切换至init-rebooting态,以使dhcp客户端进入快速dhcp初始化流程。

在本发明实施例中,当dhcp客户端的状态为bound态或renewing态时,表明dhcp客户端已经完成了dhcp初始化流程,获取到了租用的dhcp服务器提供的ip地址,dhcp客户端已经可以正常通信。当dhcp客户端获取ip地址成功之后,仍然主动检测dhcp客户端的网络状态,如果发现dhcp客户端发生了网络切换,那么,将dhcp客户端切换至init-rebooting态,以使dhcp客户端进入快速dhcp初始化流程。而在dhcp客户端的状态为rebooting态时,表明dhcp客户端已经进入快速dhcp初始化流程,在dhcp客户端检测到dhcp客户端自身发生网络切换时,同样地,将dhcp客户端切换至init-rebooting态,以使dhcp客户端进入快速dhcp初始化流程。这样,dhcp客户端检测到dhcp客户端自身发生网络切换时,根据dhcp客户端所处的不同状态,使dhcp客户端进入快速dhcp初始化流程,优化了dhcp客户端在发生网络切换时的处理流程,从而使dhcp客户端在发生网络切换时能够快速恢复正常通信,避免了该dhcp客户端的ip地址不能被当前网络中其他设备识别的问题。

本发明实施例的dhcp配置方法,在检测到dhcp客户端发生网络切换,且当dhcp客户端的状态为selecting态、requesting态或rebinding态时,将dhcp客户端切换至init态,以使dhcp客户端进入dhcp初始化流程;在检测到dhcp客户端发生网络切换,且当dhcp客户端的状态为bound态、renewing态或rebooting态时,将dhcp客户端切换至init-rebooting态,以使dhcp客户端进入快速dhcp初始化流程。本发明实施例在dhcp客户端发生网络切换时,根据dhcp客户端所处的不同状态,确定使dhcp客户端进入dhcp初始化流程或者快速dhcp初始化流程,优化了dhcp客户端在发生网络切换时的处理流程,从而使dhcp客户端在发生网络切换时能够快速恢复正常通信,避免了该dhcp客户端的ip地址不能被当前网络中其他设备识别的问题。

在本发明实施例的一种实现方式中,dhcp客户端进入dhcp初始化流程,包括:

dhcp客户端初始化配置信息。

dhcp客户端广播发送dhcp发现消息,并进入selecting态。

dhcp客户端接收到dhcp服务器单播发送的dhcp提供消息后,广播发送第一dhcp请求消息并进入requesting态,其中,dhcp提供消息可以包括:dhcp服务器提供的ip地址、dhcp服务器提供的租约时间,第一dhcp请求消息包括:dhcp客户端租用的dhcp服务器提供的ip地址。

dhcp客户端接收到dhcp客户端租用的dhcp服务器单播发送的dhcp确认消息后,确认dhcp服务器提供的ip地址可用,dhcp客户端记录租约时间,进入bound态。

例如,dhcp初始化流程中,dhcp客户端启动后进入init态,初始化dhcp客户端的配置信息,包括:获取dhcp客户端的状态、配置dhcp客户端是否需要获取ntp(networktimeprotocol,网络时间协议)服务器参数等等。dhcp客户端广播发送dhcp发现消息,并进入selecting态,以寻找将要租用的dhcp服务器。若该dhcp客户端在多个dhcp服务器的覆盖范围内,那么,dhcp客户端可能会收到多个dhcp服务器回复的dhcp提供消息。在dhcp客户端接收到第一个dhcp提供消息后,广播发送dhcp请求消息,并进入requesting态,以确认选择租用哪一个dhcp服务器提供的ip地址,因此,dhcp请求消息包括:dhcp客户端租用的dhcp服务器提供的ip地址。dhcp客户端接收到dhcp服务器发送的dhcp确认消息后,确认dhcp服务器提供的ip地址等参数可用,记录租约时间,并进入bound态,此时,dhcp客户端可正常通信。

可选的,在dhcp客户端广播发送dhcp发现消息之前,本发明实施例的dhcp配置方法还包括:

检测dhcp客户端的网络状态是否为连接。

dhcp客户端广播发送dhcp发现消息,包括:

在检测到dhcp客户端的网络状态为连接时,dhcp客户端广播发送dhcp发现消息。

在检测dhcp客户端的网络状态是否为连接之后,本发明实施例的dhcp配置方法还包括:

在检测到dhcp客户端的网络状态为断开时,将dhcp客户端切换至init态,以使dhcp客户端进入dhcp初始化流程。

需要说明的是,本发明实施例中,在dhcp初始化流程中,在dhcp客户端初始化之后,只有当网络链路层连接成功之后才广播发送dhcp发现消息,进而dhcp客户端进入selecting态。而在网络状态为断开时,则没有进行dhcp的必要,因此,将dhcp客户端切换至init态,重新开始dhcp初始化流程。与没有主动检测dhcp客户端的网络状态相比,本发明实施例可避免不必要的dhcp流程,提高dhcp客户端获取ip地址等参数的效率。

在本发明实施例的一种实现方式中,dhcp客户端进入快速dhcp初始化流程,包括:

dhcp客户端广播发送第二dhcp请求消息,并进入rebooting态,其中,第二dhcp请求消息包括:dhcp客户端存储的ip地址。

当dhcp客户端接收到dhcp服务器发送的dhcp确认消息时,dhcp客户端记录租约时间,进入bound态。

当dhcp客户端接收到dhcp服务器发送的dhcp拒绝消息时,进入init态,以使dhcp客户端进入dhcp初始化流程。

需要说明的是,初始化dhcp流程中dhcp客户端还未得到dhcp服务器提供的ip地址,因此,第一dhcp请求消息中不包括dhcp服务器提供的ip地址等信息。而在快速dhcp初始化流程中,由于dhcp客户端已经得到了dhcp服务器提供的ip地址,因此,第二dhcp请求消息中包括dhcp服务器提供的ip地址等信息,该ip地址是在dhcp初始化流程之后使用的ip地址。具体的,快速dhcp初始化流程中,dhcp客户端进入init-rebooting态,广播发送第二dhcp请求消息,并进入rebooting态。当dhcp客户端接收到dhcp服务器的dhcp确认消息时,dhcp客户端记录租约时间,进入bound态。当该dhcp客户端接收到dhcp服务器回复的dhcp拒绝消息时,dhcp客户端进入init态,重新dhcp初始化流程。

可选的,本发明实施例的dhcp配置方法中,检测到dhcp客户端发生网络切换的步骤,包括:

在检测到dhcp客户端的网络状态为断开之后,经过大于或等于预设阈值的时延之后,再检测到该dhcp客户端的网络状态为连接,则确定该dhcp客户端发生网络切换。

可选的,dhcp客户端定期检测网络状态,可以是0.5秒检测一次,可以是1秒检测一次,也可以是其他时间周期,这里不进行限定。当dhcp客户端连接的网络发生断开,然后再连接上,那么,意味着dhcp客户端可能发生了网络切换。但是,有些网络可能会频繁断开,例如:dhcp客户端连接的网线由于震动出现短时间的松动、无线网络中的网络短时间的不稳定等等。如果当发生上述短时的网络断开就判定dhcp客户端发生了网络切换,并指示dhcp客户端进行状态切换,可能会造成dhcp状态切换过于频繁和网络中dhcp数据包过多的问题。因此,本发明实施例中,当检测到dhcp客户端的网络状态为断开后,可以在一段时间后再判断dhcp客户端是否连接到网络上,进而判断dhcp客户端是否发生了网络切换。例如,可以设定一个预设阈值,在检测到dhcp客户端的网络状态断开后,经过一段时延再检测网络状态,如果此时dhcp客户端的网络状态变成了成功连接网络,并且这段时延大于或等于预设阈值,则判定dhcp客户端发生了网络切换。这样,通过增大预设阈值的设置可以增加判断dhcp客户端是否发生网络切换的时延,这样可以避免将网线松动和无线网络不稳定等网络频繁短时间断开的情况误判为dhcp客户端发生了网络切换,从而避免误检测造成的dhcp客户端频繁状态切换和dhcp数据包过多的问题。

上述预设阈值可根据实际情况进行设定,例如,经过一些网络测试,在一些情况下上述时延在3-5秒时,既能让dhcp客户端在发生了网络切换后快速正常通信,又能避免过于频繁的dhcp客户端状态切换,那么,就可以将预设阈值设置为5秒。

如果进行了网线插拔,或者交换机端口的更换,那么,其网络时延较久,通常会超过上述预设阈值,这种情况可以被判定为dhcp客户端发生了网络切换。

可选的,在dhcp客户端记录租约时间,进入bound态之后,本发明实施例的dhcp配置方法还包括:

dhcp客户端以固定周期检测该dhcp客户端的租期,在第一预设租期到期时,dhcp客户端向该dhcp客户端租用的dhcp服务器发送第三dhcp请求消息,进入renewing态,其中,第一预设租期小于租约时间,第三dhcp请求消息包括:dhcp客户端存储的ip地址。

可选的,在dhcp客户端向dhcp客户端租用的dhcp服务器发送第三dhcp请求消息,进入renewing态之后,本发明实施例的dhcp配置方法还包括:

在第二预设租期到期时,如果dhcp客户端没有收到dhcp客户端租用的dhcp服务器对第三dhcp请求消息的回复,dhcp客户端广播发送第四dhcp请求消息,进入rebinding态,其中,第二预设租期小于租约时间,且大于第一预设租期。

在本发明的一个可选实施例中,dhcp客户端获取该dhcp客户端租用的dhcp服务器提供的ip地址等信息时,ip地址等信息是有一定的租约时间的,在第一预设租期到期时,dhcp客户端向该租用的dhcp服务器发送第三dhcp请求消息,请求继续租用该dhcp服务器提供的ip地址等信息。可选的,第一预设租期为租约时间的1/2。如果在第二预设租期到期时,dhcp客户端仍然没有收到该dhcp服务器的回复,那么,dhcp客户端广播发送第四dhcp请求消息,请求该dhcp服务器或其他dhcp服务器的回复,其中,第二预约租期为租约时间的7/8。需要强调的是,第三dhcp请求消息为dhcp客户端向租用的dhcp服务器单播发送的dhcp请求消息,而第四dhcp请求消息为dhcp客户端广播发送的dhcp请求消息。并且,第三dhcp请求消息和第四dhcp请求消息中都包括dhcp客户端存储的ip地址等信息。

下面对本发明实施例的dhcp初始化流程和快速dhcp初始化流程进行详细说明。参见图3,图3为本发明实施例的dhcp配置方法的另一种流程图。下面首先介绍dhcp初始化流程。

dhcp客户端进入init态后,检测该dhcp客户端的网络状态,如果dhcp客户端检测到网络状态为断开,将dhcp客户端的状态切换至init态,重新dhcp初始化流程。

如果dhcp客户端检测到网络状态为连接,dhcp客户端广播发送dhcp发现消息,并进入selecting态。dhcp客户端检测dhcp客户端自身是否发生网络切换,如果检测到dhcp客户端发生了网络切换,将dhcp客户端的状态切换至init态,重新dhcp初始化流程。

如果dhcp客户端没有检测到dhcp客户端自身发生网络切换,dhcp客户端收到dhcp服务器回复的dhcp提供消息。其中,dhcp提供消息可以包括:dhcp客户端的mac地址、dhcp服务器提供的ip地址、dhcp服务器提供的子网掩码、dhcp服务器提供的默认网关、dhcp服务器提供的租约时间、dhcp服务器的ip地址。需要说明的是,若网段中存在多个dhcp服务器,该dhcp客户端将会收到多个dhcp服务器回复的dhcp提供消息。在dhcp客户端接收到第一个dhcp提供消息后,广播发送第一dhcp请求消息确认当前选择租用的dhcp服务器提供的ip地址,并进入requesting态。dhcp客户端检测dhcp客户端自身是否发生网络切换,如果检测到dhcp客户端发生了网络切换,将dhcp客户端的状态切换至init态,重新dhcp初始化流程。

如果dhcp客户端没有检测到dhcp客户端自身发生网络切换,dhcp客户端接收到dhcp服务器发送的dhcp确认消息后,确认dhcp服务器提供的ip地址等参数可用,记录租约时间,并进入bound态。dhcp客户端检测dhcp客户端自身是否发生网络切换,如果检测到dhcp客户端发生了网络切换,将dhcp客户端的状态切换至init-rebooting态,重新快速dhcp初始化流程。需要强调的是,在dhcp客户端进入bound态后,dhcp客户端已经获取到可用的ip地址等信息,因此,在dhcp客户端发生网络切换时,可直接进行快速dhcp初始化流程以提高dhcp客户端获取ip等参数的效率。

如果dhcp客户端没有检测到dhcp客户端自身发生网络切换,在达到第一预约租期t1后,dhcp客户端向该dhcp客户端租用的dhcp服务器发送第三dhcp请求消息,进入renewing态。dhcp客户端检测dhcp客户端自身是否发生网络切换,如果检测到dhcp客户端发生了网络切换,将dhcp客户端的状态切换至init-rebooting态,重新快速dhcp初始化流程。

如果dhcp客户端没有检测到dhcp客户端自身发生网络切换,且没有收到该dhcp客户端租用的dhcp服务器对第三dhcp请求消息的回复消息,那么,在达到第二预约租期t2后,dhcp客户端广播发送第四dhcp请求消息,进入rebinding态。如果dhcp客户端接收到该dhcp客户端租用的dhcp服务器发送的dhcp确认消息,那么,dhcp客户端重新进入bound态。如果dhcp客户端接收到该dhcp客户端租用的dhcp服务器发送的拒绝消息,dhcp客户端进入init态,重新dhcp初始化流程。可选的,第一预约租期t1为租约时间的1/2,第二预约租期t2为租约时间的7/8,当然,第一预约租期t1和第二预约租期t2是可以根据实际情况进行调整的,在此不做限定。

上述为本发明实施例的dhcp初始化流程,下面对本发明实施例的快速dhcp初始化流程进行详细说明。

在dhcp客户端已经进行过dhcp初始化流程,且需要再次进行dhcp时,由于dhcp客户端中已经存储有ip地址等信息,不需要重新初始化dhcp客户端的配置信息,这样,可以先进行快速dhcp初始化流程来提升效率。快速dhcp初始化流程中,dhcp客户端进入init-rebooting态,广播发送第二dhcp请求消息,并进入rebooting态。其中,第二dhcp请求消息包括:该dhcp客户端存储的ip地址,该ip地址是在dhcp初始化流程之后使用的ip地址。dhcp客户端检测dhcp客户端自身是否发生网络切换,如果检测到dhcp客户端发生了网络切换,将dhcp客户端的状态切换至init-rebooting态,重新快速dhcp初始化流程。

如果dhcp客户端没有检测到dhcp客户端自身发生网络切换,且当dhcp客户端接收到dhcp服务器的dhcp确认消息时,dhcp客户端记录租约时间,进入bound态。当该dhcp客户端接收到dhcp服务器回复的dhcp拒绝消息时,dhcp客户端进入init态,重新dhcp初始化流程。

由上述dhcp初始化流程和快速dhcp初始化流程可知,dhcp客户端主动检测网络状态,及时识别dhcp客户端的网络状态,从而根据dhcp客户端的状态进行状态切换,提高了dhcp客户端获取ip地址等参数的效率。

相应于上述方法实施例,本发明实施例还公开了一种dhcp客户端,参见图4,图4为本发明实施例的dhcp客户端的一种结构图,包括:

网络状态检测模块401,用于检测dhcp客户端是否发生网络切换。

状态切换模块402,用于如果网络状态检测模块401检测到dhcp客户端发生网络切换,且当dhcp客户端的状态为selecting态、requesting态或rebinding态时,将dhcp客户端切换至init态,以使dhcp客户端进入dhcp初始化流程。

状态切换模块402,还用于如果网络状态检测模块401检测到dhcp客户端发生网络切换,且当dhcp客户端的状态为bound态、renewing态或rebooting态时,将dhcp客户端切换至init-rebooting态,以使dhcp客户端进入快速dhcp初始化流程。

可见,本发明实施例的dhcp客户端,在检测到dhcp客户端发生了网络切换,且当dhcp客户端的状态为selecting态、requesting态或rebinding态时,将dhcp客户端切换至init态,以使dhcp客户端进入dhcp初始化流程;在检测到dhcp客户端发生了网络切换,且当dhcp客户端的状态为bound态、renewing态或rebooting态时,将dhcp客户端切换至init-rebooting态,以使dhcp客户端进入快速dhcp初始化流程。本发明实施例在发生网络切换时,根据dhcp客户端所处的不同状态,确定使dhcp客户端进入dhcp初始化流程或者快速dhcp初始化流程,优化了dhcp客户端在发生网络切换时的处理流程,从而使dhcp客户端在发生网络切换时能够快速恢复正常通信,避免了该dhcp客户端的ip地址不能被当前网络中其他设备识别的问题。

需要说明的是,本发明实施例的dhcp客户端是应用上述dhcp配置方法的装置,则上述dhcp配置方法的所有实施例均适用于该dhcp客户端,且均能达到相同或相似的有益效果。

参见图5,图5为本发明实施例的dhcp客户端的另一种结构图,在图4实施例的基础上,还包括:

流程执行模块501,用于初始化配置信息;广播发送dhcp发现消息,并进入selecting态;接收到dhcp服务器单播发送的dhcp提供消息后,广播发送第一dhcp请求消息并进入requesting态,其中,dhcp提供消息可以包括:dhcp服务器提供的ip地址、dhcp服务器提供的租约时间,第一dhcp请求消息包括:dhcp客户端租用的dhcp服务器提供的ip地址;接收到该dhcp客户端租用的dhcp服务器单播发送的dhcp确认消息后,确认dhcp服务器提供的ip地址可用,记录租约时间,进入bound态。

流程执行模块501,还用于广播发送第二dhcp请求消息,并进入rebooting态,其中,第二dhcp请求消息包括:dhcp客户端存储的ip地址;当dhcp客户端接收到dhcp服务器发送的dhcp确认消息时,记录租约时间,进入bound态;当dhcp客户端接收到dhcp服务器发送的dhcp拒绝消息时,进入init态,以使dhcp客户端进入dhcp初始化流程。

租期检测模块502,用于以固定周期检测dhcp客户端的租期,在第一预设租期到期时,通知流程执行模块501向dhcp客户端租用的dhcp服务器发送第三dhcp请求消息,进入renewing态,其中,第一预设租期小于租约时间,第三dhcp请求消息包括:dhcp客户端存储的ip地址。

租期检测模块502,还用于在第二预设租期到期时,如果没有收到dhcp客户端租用的dhcp服务器对第三dhcp请求消息的回复,通知流程执行模块501广播发送第四dhcp请求消息,进入rebinding态,其中,第二预设租期小于租约时间,且大于第一预设租期。

可选的,本发明实施例的dhcp客户端中,网络状态检测模块401还用于检测dhcp客户端的网络状态是否为连接。

流程执行模块501进一步用于,在网络状态检测模块401检测到dhcp客户端的网络状态为连接时,广播发送dhcp发现消息。

流程执行模块501,还用于在网络状态检测模块401检测到dhcp客户端的网络状态为断开时,将dhcp客户端切换至init态,以使dhcp客户端进入dhcp初始化流程。

可选的,本发明实施例的dhcp客户端中,网络状态检测模块401具体用于,在检测到dhcp客户端的网络状态为断开之后,经过大于或等于预设阈值的时延之后,再检测到dhcp客户端的网络状态为连接,则确定dhcp客户端发生了网络切换。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1