一种动态检测促使AP及时下线的方法技术

技术编号:16783384 阅读:26 留言:0更新日期:2017-12-13 02:04
本发明专利技术涉及一种动态检测促使AP及时下线的方法,包括以下步骤:步骤S1:将上线AP的信息存储在hash表的链表头下;步骤S2:读取AP个数,计算定时器的定时时间;步骤S3:按照定时时间设置定时器,定时器时间到达后从第1个链表头开始遍历AP链表;步骤S4:每遍历一个AP判断该AP是否连续三次未收到保活报文,若是则判断该AP不在线,删除该AP的结构体信息。本发明专利技术解决了AC用于判断AP是否在线调用大量定时器占用太多AC资源的问题,解决AC遍历哈希表的时间不定,影响其他功能的正常运行。

【技术实现步骤摘要】
一种动态检测促使AP及时下线的方法
本专利技术涉及无线局域网领域,尤其涉及一种动态检测促使AP及时下线的方法。
技术介绍
无线局域网应用范围愈发广泛,AC–AP布网模式应用的范围也越来越广,在这种布网模式中,一个AC会关联成百上千的AP,AC上存储每一个AP的相应信息,AC的网页上会显示所有在线AP的信息。而AP下线一般有两种方式,一种是在AC网页上手动给AP下线,AC上删除这个AP信息;另一种是AP定时给AC发送保活报文,AC会开启定时器检测是否收到保活报文,如果连续多次没有收到保活报文,则认为AP已下线,AC则删除AP的信息。现有一般采用以下两种方案实现AP的下线:现有技术方案一:每AP一个定时器。每当有AP与AC关联时,AC会为当前AP开启一个定时器,定时去检测是否收到保活报文,如果没有收到保活报文的次数大于规定的最大次数,AC认定这个AP已经掉线,删除这个AP的相关信息。现有技术方案二:AP存储在一个哈希表中,AC使用一个定时器,每次处理固定行数的AP。AC启动时开启一个定时器,定时去检测AP是否收到保活报文,每次固定检测存储AP信息的哈希表的固定行数,如果某个AP没有收到保活报文的次数大于规定的最大次数,AC认定这个AP已经掉线,删除这个AP的相关信息。现有技术方案一的缺点:现有技术需要AC开启大量的定时器,浪费了太多系统资源,每次去查询这些定时器,又耗费很多cpu时间,严重影响AC的性能,甚至可能使AC宕机。现有技术方案二的缺点:AC遍历哈希表时遍历固定的行数,这种方案有可能某一次遍历的固定行数内AP的数量非常少,甚至没有;另外一次遍历固定行数内的AP数量非常多,会导致锁定哈希表及AP过长时间,影响AP的后续操作。同时,每次遍历完固定行数的时间不同,影响其他功能的正常运行。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种动态检测促使AP及时下线的方法,解决了AC用于判断AP是否在线调用大量定时器占用太多AC资源的问题,解决AC遍历哈希表的时间不定,影响其他功能的正常运行。为实现上述目的,本专利技术采用如下技术方案:一种动态检测促使AP及时下线的方法,其特征在于,包括以下步骤:步骤S1:将上线AP的信息存储在hash表的链表头下;步骤S2:读取AP个数,计算定时器的定时时间;步骤S3:按照定时时间设置定时器,定时器时间到达后从第1个链表头开始遍历AP链表;步骤S4:每遍历一个AP判断该AP是否连续三次未收到保活报文,若是则判断该AP不在线,删除该AP的结构体信息。进一步的,所述步骤S2中定时时间的具体计算方法如下:其中,T0为保活报文的时间间隔;N0为单次遍历的AP个数下限;N总为上线的AP总个数;T1为第一次遍历AP链表对应的定时时间;Ti为第i次遍历AP链表对应的定时时间;Ti+1为第i+1次遍历AP链表对应的定时时间,Ni为第i次遍历的AP个数;其中i为大于等于1的自然数。进一步的,所述单次遍历的AP个数下限为100,第i次遍历的AP个数的具体计算如下:每开始遍历一个链表时,查看本次已遍历的AP个数是否大于100;若小于100,则继续遍历;若大于等于100,则将本次遍历过的所有AP链表中的AP个数求和即为本次遍历的AP个数。进一步的,所述步骤S4的具体过程如下:步骤S41:如果AP的在线标志为1,将该AP没有收到保活报文的数目清零,本次遍历的AP个数累加1;步骤S42:如果AP的在线标志为0,将该AP没有收到保活报文的数目累加1,本次遍历的AP个数累加1;步骤S43:判断该AP没有收到保活报文的数目是否达到3,若是,则判断该AP不在线,则删除该AP的结构体信息。本专利技术与现有技术相比具有以下有益效果:本专利技术结合hash表实现AP的遍历检测,并根据上一次遍历的AP个数动态调整下一次遍历的定时时间,平滑遍历的整体时间,尽可能地减少对其他功能运行的影响;在连续多次未检测到保活报文时,删去对应AP的结构体信息,减小AC的负担。附图说明图1是本专利技术一实施例的整体流程图。具体实施方式下面结合附图及实施例对本专利技术做进一步说明。请参照图1,本专利技术提供一种动态检测促使AP及时下线的方法,其特征在于,包括以下步骤:步骤S1:根据AP特征(如序列号、ip地址等)算出一个key值,根据key值把上线AP的信息存储在hash表的链表头下;步骤S2:读取AP个数,计算定时器的定时时间;具体计算方法如下:其中,T0为保活报文的时间间隔;N0为单次遍历的AP个数下限;N总为上线的AP总个数;T1为第一次遍历AP链表对应的定时时间;Ti为第i次遍历AP链表对应的定时时间;Ti+1为第i+1次遍历AP链表对应的定时时间,Ni为第i次遍历的AP个数;其中i为大于等于1的自然数。其中,所述单次遍历的AP个数下限N0为100,第i次遍历的AP个数的具体计算如下:每开始遍历一个链表时,查看本次已遍历的AP个数是否大于100;若小于100,则继续遍历;若大于等于100,则将本次遍历过的所有AP链表中的AP个数求和即为本次遍历的AP个数。根据公式(2)计算下次定时器的定时时间。步骤S3:按照定时时间设置定时器,定时器时间到达后从第1个链表头开始遍历AP链表;实施例一:保活报文的时间间隔T0为120s,上线的AP总个数N总为1000,因此:即:第一次遍历AP链表对应的定时时间为12s,下一次遍历AP链表对应的定时时间也以12s为基准,初步平滑了遍历的时间。如第一次遍历的过程依次遍历了三个链表,其内AP个数分别为30、40、50,当遍历至第三个链表时,已遍历的个数为70个,小于100,因此遍历第三个链表;当遍历至第四个链表时,已遍历的个数为120个,大于100,则本次遍历的AP个数Ni为120,同时记住当前的链表头,作为下次遍历的起始位置,则下次定时器的定时时间为:即,显然T1<3*T1,因此采用上面的公式计算,得到第二次遍历AP链表对应的定时时间为14.4s。步骤S4:每遍历一个AP判断该AP是否连续三次未收到保活报文,若是则判断该AP不在线,删除该AP的结构体信息;具体过程如下:步骤S41:如果AP的在线标志为1,将该AP没有收到保活报文的数目清零,本次遍历的AP个数累加1;步骤S42:如果AP的在线标志为0,将该AP没有收到保活报文的数目累加1,本次遍历的AP个数累加1;步骤S43:判断该AP没有收到保活报文的数目是否达到3,若是,则判断该AP不在线,则删除该AP的结构体信息。以上所述仅为本专利技术的较佳实施例,凡依本专利技术申请专利范围所做的均等变化与修饰,皆应属本专利技术的涵盖范围。本文档来自技高网
...
一种动态检测促使AP及时下线的方法

【技术保护点】
一种动态检测促使AP及时下线的方法,其特征在于,包括以下步骤:步骤S1:将上线AP的信息存储在hash表的链表头下;步骤S2:读取AP个数,计算定时器的定时时间;步骤S3:按照定时时间设置定时器,定时器时间到达后从第1个链表头开始遍历AP链表;步骤S4:每遍历一个AP判断该AP是否连续三次未收到保活报文,若是则判断该AP不在线,删除该AP的结构体信息。

【技术特征摘要】
1.一种动态检测促使AP及时下线的方法,其特征在于,包括以下步骤:步骤S1:将上线AP的信息存储在hash表的链表头下;步骤S2:读取AP个数,计算定时器的定时时间;步骤S3:按照定时时间设置定时器,定时器时间到达后从第1个链表头开始遍历AP链表;步骤S4:每遍历一个AP判断该AP是否连续三次未收到保活报文,若是则判断该AP不在线,删除该AP的结构体信息。2.根据权利要求1所述的动态检测促使AP及时下线的方法,其特征在于,所述步骤S2中定时时间的具体计算方法如下:其中,T0为保活报文的时间间隔;N0为单次遍历的AP个数下限;N总为上线的AP总个数;T1为第一次遍历AP链表对应的定时时间;Ti为第i次遍历AP链表对应的定时时间;Ti+1为第i+1次遍历A...

【专利技术属性】
技术研发人员:贾晓凯
申请(专利权)人:杭州全维技术股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1