Dhcp延时事件处理方法及装置的制造方法

文档序号:8365257阅读:667来源:国知局
Dhcp延时事件处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及网络通信技术领域,尤其涉及一种DHCP延时事件处理方法及装置。
【背景技术】
[0002]一台计算机或其他终端要想接入IP网络,必须有一个唯一的IP (InternetProtocol,因特网协议)地址,此 IP 地址可通过 DHCP (Dynamic Host Configurat1nProtocol,动态主机配置协议)自动获取。DHCP分为客户端和服务器端,每一台动态获取IP地址的计算机上都有一个DHCP客户端,用来与DHCP服务器端交互。
[0003]DHCP服务器为用户分配一个IP地址,同时为用户指定一个租约时间。用户需要在租约到期前,根据DHCP协议中的续约算法请求续约,续约成功则继续使用此IP地址,不成功则释放此IP地址,以便DHCP服务器将此IP地址分配给其他用户。
[0004]无论DHCP客户端还是DHCP服务器端都需要使用定时器来维护租约时间,用于判断IP地址是否到期。
[0005]对DHCP客户端而言,普通计算机中的DHCP客户端只需请求并记录一个IP地址,然后由定时器控制,根据DHCP协议提供的算法进行续约。而对于网络边缘设备,其内置的DHCP客户端需要请求并记录成千上万用户的IP地址并为其续约。
[0006]对DHCP服务器端而言,网络管理员会划分不同的地址池,并配置不同的租约时间,这样在服务器中就要维护具有不同租约时间的IP地址,其IP地址数量可能达到万级甚至几十万级。
[0007]当有大量的IP地址需要维护时,现有技术通常通过维护单链表的方式实现。这种单链表方式随着IP地址数量的增加,其处理效率会明显下降。
[0008]对于DHCP客户端而言,每一个节点包括IP地址的获取时间及租约时间,然后根据DHCP续约算法计算出需要续约的时间,最后按照续约时间的先后顺序建立链表。同时,启动定时器,每隔一段时间遍历时间链表,删除时间链表中已经超时的节点,然后续约,根据剩余的租约时间计算续约超时时间,再重新挂到链表上。
[0009]对于DHCP服务器端而言,每分配一个IP地址,就计算出其租约到期的时间,然后按照租约到期时间的先后顺序建立链表。同时,启动定时器,每隔一段时间遍历时间链表,删除已经超时的IP地址,以便重新分配给其他设备。
[0010]综上所述,可以看出所有节点都挂在一条链表上,此单链表随着IP地址数量的增力口,逐步加长。然而,无论是插入节点还是删除节点都需要遍历链表,随着链表的增长,遍历耗时增加,系统资源消耗较大,必然导致效率降低。

【发明内容】

[0011]有鉴于此,本发明提供一种DHCP延时事件处理装置,应用于网络设备或者主机上,其特征在于,该装置包括:
[0012]节点管理单元,用于在发生用户DHCP延时事件时,根据该事件的触发延时时长确定该事件所归属的管理链表,并将该事件作为管理链表的尾节点添加到管理链表中,其中同一个管理链表中每个延时事件的延时触发时长相同;
[0013]事件处理单元,用于在管理链表对应的定时器超时时,处理该定时器对应的头节点的DHCP延时事件,并删除该头节点;
[0014]定时更新单元,用于在管理链表的头节点发生变化时,确定定时器对应的管理链表中延时触发时间点最早的头节点,更新管理链表对应的定时器,使该定时器的超时时间点更新为该头节点的延时触发时间点。
[0015]本发明还提供一种DHCP延时事件处理方法,应用于网络设备或者主机上,其特征在于,该方法包括以下步骤:
[0016]步骤A,在发生用户DHCP延时事件时,根据该事件的触发延时时长确定该事件所归属的管理链表,并将该事件作为管理链表的尾节点添加到管理链表中,其中同一个管理链表中每个延时事件的延时触发时长相同;
[0017]步骤B,在管理链表对应的定时器超时时,处理该定时器对应的头节点的DHCP延时事件,并删除该头节点;
[0018]步骤C,在管理链表的头节点发生变化时,确定定时器对应的管理链表中延时触发时间点最早的头节点,更新管理链表对应的定时器,使该定时器的超时时间点更新为该头节点的延时触发时间点。
[0019]本发明能够有效提升了网络设备或主机对于DHCP延时事件的管理效率,有效节约了网络设备或主机在管理DHCP延时事件上所消耗的系统资源,避免了现有技术中长时间的遍历处理。
【附图说明】
[0020]图1是本发明一种实施方式中DHCP延时事件处理装置的逻辑结构及其基础硬件环境的示意图。
[0021]图2是本发明一种实施方式中DHCP延时事件处理方法的流程图。
[0022]图3是本发明一种实施方式中DHCP延时事件链表管理的流程图。
[0023]图4是本发明一种实施方式中定时器超时处理的流程图。
[0024]图5是本发明一种实施方式中提前终止延时事件处理的流程图。
[0025]图6是本发明一种实施方式中单一定时器与链表对应关系的示意图。
[0026]图7是本发明一种实施方式中多个定时器与链表对应关系的示意图。
【具体实施方式】
[0027]以下结合附图对本发明进行详细描述。
[0028]在一种较佳的实施方式中,本发明提供一种基于软件实施方式实现的DHCP延时事件处理装置,该装置应用在网络设备或者主机上,本发明并不排除诸如硬件或者逻辑器件等其他实现方式。如图1所示,该网络设备或者主机通常包括CPU、内存、非易失性存储器以及其他硬件。该DHCP延时事件处理装置作为一个逻辑层面的虚拟装置,其通过CPU运行对应的计算机程序实现,该装置包括节点管理单元、事件处理单元以及定时更新单元。请参考图2,该装置的使用和运行过程包括以下步骤。
[0029]步骤101,在产生用户DHCP延时事件时,根据该事件的触发延时时长确定该事件所归属的管理链表,并将该事件作为管理链表的尾节点添加到管理链表中,其中同一个管理链表中每个延时事件的延时触发时长相同;
[0030]步骤102,在管理链表对应的定时器超时时,处理该定时器对应的头节点的DHCP延时事件,并删除该头节点;
[0031]步骤103,在管理链表的头节点发生变化时,确定定时器对应的管理链表中延时触发时间点最早的头节点,更新管理链表对应的定时器,使该定时器的超时时间点更新为该头节点的延时触发时间点。
[0032]上述DHCP延时事件可以是典型的DHCP续约延时事件或DHCP租约释放延时事件。在DHCP协议的C/S (Client/Server,客户端/服务器)模型中,DHCP客户端负责为用户请求IP地址和管理IP地址的续约。当DHCP客户端向DHCP服务器端请求IP地址时,DHCP服务器为用户分配IP地址,同时指定一个租约时间,此租约时间为DHCP服务器允许该用户占用此IP地址的时间长度。若用户在租约到期后,仍希望继续使用此IP地址,则需在租约到期前向DHCP服务器端请求续约。续约成功则继续使用此IP地址,不成功则释放此IP地址,以便DHCP服务器将此IP地址分配给其他用户。因此,DHCP续约延时是指DHCP客户端从获取IP地址到下一次请求续约的时间长度。此续约延时是根据DHCP协议中的续约算法进行计算的,默认为租约时间的一半。所述DHCP续约延时事件是指DHCP客户端在到达续约延时时间点时请求续约的事件。DHCP租约释放延时是指DHCP服务器端从分配IP地址到租约到期的时间长度,即租约时间。所述DHCP租约释放延时事件是指DHCP服务器端在租约到期后释放IP地址的事件。
[0033]现以DHCP续约延时事件处理为例,在一种优选的方式中,DHCP客户端内置于网络边缘设备,负责为多个用户申请IP地址和管理续约。在此优选方式中,通过建立多个管理链表(以下简称为“链表”)管理用户的DHCP续约延时事件,同一链表中每个续约延时事件的续约延时时长相同。优选地,采用一个定时器处理DHCP续约延时事件。请参考图3,在产生用户DHCP续约延时事件时,需根据该续约延时事件的延时时长将该续约延时事件作为节点添加到对应的链表中。如图6所示,若节点9为新发生的续约延时事件,首先根据DHCP协议的续约算法计算出该节点的续约延迟时间。例如,通过续约计算得出该续约延时事件的续约延时时长为3天,则查询是否有对应的链表。如图6所示,链表3的延时时长为
3天,并且此链表中已有节点7和节点8,因此,将节点9添加到节点8的后面,作为当前链表3的尾节点。如图6所示,若节点10为新发生的续约延时事件,该延时事件的续约延时时长为4天,查询时发现无此延时时长对应的链表,则新建链表4,此链表的延时时长为4天,将节点10作为链表4的头节点添加入链表。综上所述可以看出,所有节点都进行了分类管理,每一个节点的添加无需遍历已存在的所有节点,只需查询到对应链表,将节点添加到对应链表尾部,此操作即可实现同一链表内节点按照时间先后顺序排列,进而保证每一个链表的头节点是相应链表中最早超时触发的节点。
[0034]在上述实施例中,采用一个定
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1