[0036] 以下具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
[0037] 实施例1,基于现有的技术难题,目前无线AP(无线接入点)的研发中,当无线AP与云AC平台(云无线控制器平台)的通信链路发生变化时,为了处理流程的方便,采用先强制踢出所有用户使用户重新连接无线接入点的流程,这种做法虽然可以实现逃生模式下允许所有用户获取网络资源,非逃生模式下恢复正常业务流程的目的,但是也存在着如下几点问题:
[0038] (1)强制踢出所有用户的做法会先使得用户先下线再上线的做法,虽然上下线之间间隔时间非常短,但是这样会影响用户体验,而且不方便研发人员用户下线问题的定位。
[0039] (2)对于开启portal认证(入网认证)的各个SSID(无线网络)而言,在用户管理过程中有用户的状态机变化,踢出portal用户使其再上线的做法是有必要的,但是对于不开启portal的SSID而言,比如不加密的SSID,用户一旦连接上SSID即可以上网,状态机不会发生变化,如果因为AP与云AC平台通信链路的中断导致该SSID上的用户不断频繁上下线,会严重影响用户的体验效果。
[0040] 所以针对上述问题,本发明提出了如下方法:
[0041] 一种通信链路变化时恢复用户业务的方法,按如下步骤进行:
[0042] 步骤S1,根据通信链路变化切换无线接入点是否处于逃生模式状态并设置各个无线网络是否开启入网认证状态;
[0043] 步骤S2,根据步骤S1的设置结果,设置用户的状态机状态;
[0044] 步骤S3,判断是否允许用户访问网络资源。
[0045] 本发明的该方法中不踢出用户,而是通过根据用户的状态机及当前AP(无线接入点)的是否为逃生模式状态来恢复用户的正常业务。
[0046] 总的流程图如图1所示。
[0047] 其中,给每个用户都应该设置状态机,并需要根据逃生模式状态切换情况以及当前AP中SSID的的portal状态,对状态机的状态进行特殊设置,可以实现的时候,当逃生模式下,不进行踢出的步骤,同时还能更好的正常恢复非逃生模式的正常业务。而在逃生模式下可以是将状态机的状态均设置为已连接已认证的状态,则可以允许用户进入转发状态,并对网络资源可以进行访问;而如果是在非逃生模式下,则需要根据用户原有的信息、状态,恢复正常的业务。
[0048] 下面我们具体设计一下,逃生模式下和非逃生模式下的具体流程。
[0049] 逃生模式:
[0050] 在步骤S1中,若无线接入点切换为逃生模式状态,则将各个无线网络设置为未开启入网认证状态;
[0051] 在步骤S2中,若用户为新上线用户,且无线接入点切换为逃生模式状态又无线网络为未开启入网认证状态,则将用户的状态机设置为已连接已认证状态,则允许该用户访问网络资源;
[0052] 若用户在无线接入点已经切换为逃生模式状态之前为已连接未认证用户,则将用户的状态机设置为已连接已认证状态,则允许该用户访问网络资源;
[0053] 若用户为已连接已认证用户,则允许该用户访问网络资源并保存用户信息。
[0054] 由于开始的时候应该是正常的非逃生模式,而逃生模式一般是第二发生模式,但后续可能会交替,那么从上述可以看出,通过本方法,即将各个用户的状态机可都设置成了已连接已认证状态,并允许他们进入转发状态,并得到了访问网络资源的权限。但是有一点值得注意:
[0055] 新上线用户是不进行区分的,所以等到非逃生模式,可以继续判断是否需要认证的用户,而已经判断为已连接未认证用户,由于状态机在逃生模式主动进行了变化,变成了已连接已认证的状态,但用户实质的属性还是已连接未认证用户,如果恢复到正常的非逃生模式,则其应该还是要继续认证才比较合理,那么就需要做如下的改进;
[0056] 切换为逃生模式状态之前的已连接未认证用户通过认证标志位进行标记.。该设置意思即为该类用户设置非逃生模式下需要portal标志位,便于非逃生模式下,判断需要进行继续进行portal认证,才能进入转发状态并被允许访问网络资源。
[0057] 非逃生模式:
[0058] 在步骤S1中,若无线接入点切换为非逃生模式状态,则将各个无线网络根据当前配置内容设置是否开启入网认证状态。
[0059] 在步骤S2中,若用户为新上线用户,且无线接入点切换为非逃生模式状态又无线网络为开启入网认证状态,则将用户的状态机设置为已连接未认证状态,该用户需要经过入网认证后才可允许访问网络资源;
[0060] 若用户为新上线用户,且无线接入点切换为非逃生模式状态又无线网络为未开启入网认证状态,则将用户的状态机设置为已连接已认证状态,则允许该用户访问网络资源;
[0061] 若用户为已连接已认证用户,则允许该用户访问网络资源并保存用户信息。
[0062] 由上,对于新用户而言,就是正常继续;而已连接已认证用户也是一样的,会保持原有访问状态,并且需要保存信息供系统进行判断。那么这里,涉及特殊的就是逃生模式下的已连接未认证用户,当他恢复到正常的非逃生模式,虽然在逃生模式没有认证,但是在非逃生模式,还是要继续进行该步的判断,具体为:
[0063] 在步骤S2中,若用户为在逃生模式下被认证标志位标记的用户,则将用户的状态机设置为已连接未认证状态,该用户需要经过入网认证后才可允许访问网络资源。
[0064] 由这两种模式的切换,可以更好的进行用户业务的恢复。
[0065] 另外,关于无线网络的是否开启入网认证状态,该方法中,在逃生模式下,其实,简单来说,就是屏蔽了入网认证,都将AP无线网络的入网认证关掉了,但是,当恢复到正常的非逃生模式的时候,还是需要根据无线网络当前配置内容还决定是否开启入网portal认证,配置内容中肯定是要包括用户访问网络是否需要进行portal认证的信息的。
[0066] 接下来,再简单举个例子,以已连接未认证用户为例,该细化的流程图如图2所示,具体流程如下:
[0067] 1.已连接未认证用户处于AP的非逃生模式;
[0068] 2.切换至逃生模式;
[0069] 3.SSID的portal认证关闭;
[0070] 4.用户状态机状态设置为已连接已认证并设置非逃生模式下需要入网认证的portal标志位;
[0071] 5.允许用户访问网络;
[0072] 6.切换至非逃生模式;
[0073] 7.SSID的portal认证根据当前内容配置决定是否开启;这里同时会是开启的状态,因为AP的SSID的portal认证的原始配置一般是不会动的。
[0074] 8.用户状态机状态设置为已连接未认证用户;
[0075] 9.恢复需重新portal认证用户才能上网。
[0076] 整个过程,利用本发明的方法,就能完成非常好的链路变化时用户业务的恢复。
[0077] 在瘦AP的研发过程中,AP需要保证用户正常业务,当无线AP与云AC平台的通信链路建立正常时,无线AP处于正常模块即非逃生模式,这种模式下针对未开启portal的SSID而言,用户连接SSID后既可实现上网;针对开启portal功能的SSID而言,用户第一次连接SSID后需要先经过portal认证才能实现上网。当无线AP与云AC平台的通信链路异常时,AP会进行独立的工作模式即逃生模式,这种模式下针对所有SSID,用户只要连接上AP后即可实现上网;与之前当瘦AP的逃生模式变化时AP会踢出所有用户的方案不同,本发明不踢出用户,而是通过根据用户的状态机及当前AP的模式来恢复用户的正常业务,这种做法在不仅同样保证了用户的正常业务,而且在一定程度上不会导致大量用户需频繁上下线的操作,提升了用户体验。
[0078] 实施例2,系统图如图3所示,一种通信链路变化时恢复用户业务的系统,包括用户管理模块、驱动模块、云无线控制器通信模块,其中,
[0079] 所述用户管理模块用于管理无线接入点并与云无线控制平台进行通信;
[0080] 所述驱动模块用于将用户信息上报给所述用户管理模块;
[0081] 所述云无线控制器通信模块用于所述用户管理模块和所述云无线控制器平台之间通信。
[0082] 本实施例的系统,可有效适用于实施例1的恢复用户业务的方法。
[0083] 进一步进行设计如下:
[0084] 所述驱动模块设置于无线接入点中;
[0085] 所述用户管理模块设置于应用层。应用层应用在开放式系统中较为常见。
[0086] 更进一步设计如下;
[0087] 所述用户管理模块还包括信息保存子模块、无线网络入网认证状态管理子模块、信息上报子模块、用户状态机控制子模块、逃生模式识别子模块,其中,[0088] 所述信息保存子模块用于保存信息;
[0089] 所述无线网络入网认证状态管理子模块用于管理各个无线接入点是否启用入网认证状态;
[0090] 所述信息上报子模块用于上报信息;
[0091] 所述用户状态机控制子模块用于设置用户的状态机状态;
[0092] 所述逃生模式识别子模块用于确定无线接入点是否处于逃生模式。
[0093] 结合上述的各个模块,下面具体一下各个模块所能执行的功能:
[0094] 驱动模块
[0095] 当无线客户端(用户)连接无线网络SSID后,AP中的驱动模块就会将用户连接SSID接口的信息,通过netlink消息上报给应用层的用户管理模块。
[0096] 用户管理模块
[0097] 该模块负责管理无线客户端信息的保存,认证状态的管理及相关信息的上报等。其中,
[0098] 未连接状态:当用户管理模块启动时,默认设置各个用户的初始状态机为未连接状态。
[0099] 已连接未认证状态:当用户连接portal开启的SSID成功后,用户即进入已连接未认证状态。
[0100] 已连接已认证状态:当SSID开启portal,用户只要经过portal认证,即进入已连接已认证状态,即可以实现正常的访问网络资源的目的,如果该SSID没有开启portal,用户只要简单的连接上SSID后即可进入该状态,用户即可实现上网。
[0101] 另外,用户管理模块还会保存一些全局的变量,如当前AP中各个SSID的portal状态及AP是否处于逃生模式的标识。
[0102] 云AC无线控制器通信模块
[0103] 该模块负责与云AC平台进行通信,用户一旦接入SSID,用户管理模块将该用户信息进行保存并发消息给云AC通信模块,云AC通信模块通过网络通信将该用户信息上报给云AC平台,云AC平台会保存该用户时长等信息,当AP与云AC的通信链路的状态变化时,云AC通信模块会通知用户管理模块,用户管理模块即可保存当前AP的状态。
[0104] 通过这些模块进行处理的流程如下述:
[0105] 当无线AP进入逃生模式后的处理流程为:
[0106] 用户管理模块中设置当前全局变量中各个SSID的portal状态为未启用状态,设置当前AP处于逃生模式的状态,这样存在三种用户的处理流程:
[0107] (1)新上线用户的处理:驱动模块将新用户上线的消息通过netlink上报给上层应用的用户管理模块,用户管理模块判断当前AP为逃生模式后,直接将该用户的状态机设为已连接已认证状态,同时用户管理模块将允许转发的消息设置给驱动,该用户即可访问网络资源。
[0108] (2)逃生模式之前已连接未认证的用户的处理:用户管理模块在收到AP进入逃生模式的消息时,会遍历当前处于已连接未认证的用户,将其状态机直接设置为已连接已认证状态,同时将允许转发的消息设置给驱动,这些用户即可访问网络资源,另外,该类用户设置非逃生模式下需要portal的标志位,以便从逃生模式进入到非逃生模式时正常业务的恢复。
[0109] (3)针对逃生模式之前已连接已认证状态的用户,用户管理模块保存现有用户信息即可。
[0110] 当无线AP进入非逃生模式后的处理流程为:
[0111] 用户管理模块中读取当前配置文件内容,更新每个SSID的portal状态到全局变量中,设置当前AP处于非逃生模式的状态,这样也会存在三种用户的处理流程:
[0112] (1)新上线用户的处理:驱动模块将新用户上线的消息通过netlink上报给上层应用的用户管理模块,用户管理模块判断当前AP为非逃生模式后,针对开启portal的SSID而言,该用户状态设置为已连接未认证状态,需要经过portal后才能进入转发状态;针对未开启portal的开放SSID而言,该用户设置为已连接已认证状态,同时将允许转发的消息设置给驱动,用户即可访问网络资源。
[0113] (2)非逃生模式之前已连接未认证的用户的处理:用户管理模块会先遍历所有非逃生模式下需要portal标志位的用户,将这些用户的状态机设置为已连接未认证状态,恢复需重新portal认证才能上网的业务。
[0114] (3)针对非逃生模式之前已连接已认证状态的用户,用户管理模块保存现有用户信息即可。
[0115] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。