具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的方法主要包括:AP接收到孤立STA发送的包含该孤立STA扫描到的AP信息的接入请求后,判断该AP的负载状况是否达到负载上限,如果是,则根据所述接入请求中包含的第一STA扫描到的AP信息,判断该孤立STA扫描到的所有AP的负载状况是否都达到负载上限,如果是,则从接入该AP的其他STA中选择另一个STA,按照预定的负载均衡策略确定该选择的另一个STA能够接入的负载状况没有达到负载上限的AP,指示该选择另一个STA接入确定的AP,并允许该孤立STA的接入。
下面对上述方法进行详细描述,图2为本发明实施例提供的方法流程图,如图2所示,该方法可以包括以下步骤:
步骤201:预先将共同参与负载均衡的AP设定为一个负载均衡服务集(LSS)。
一个ESS中可以存在一个LSS,也可以存在多个LSS。例如,一个ESS中的所有AP或者一部分AP共同参与负载均衡,则将该共同参与负载均衡的AP设定为一个LSS,采用共同的LSS ID进行标识;一个ESS中可能有其中一部分AP共同参与负载均衡,另外有一部分AP共同参与负载均衡,但是,这两部分分别进行负载均衡,则可以将这两部分设置为两个LSS,分别采用不同的LSS ID进行标识。
当然,也可以不对各AP进行关于LSS的划分,此时,可以看作是同一个ESS内的所有AP都属于一个LSS,即LSS即为ESS,这种情况的处理方式也可以采用该流程,并不影响本发明方法的实施。
步骤202:STA对AP进行扫描。
本步骤中,STA在对AP进行扫描的过程可以有两种形式,一种是主动扫描,即STA主动广播探测请求(Probe Request),接收到该Probe Request报文的AP向该STA回复探测响应(Probe Response);另一种是被动扫描,即STA监听AP发送的信标帧(Beacon)。各AP在发送的Probe Response或Beacon中携带自身的BSSID和LSS ID,不参与负载均衡的AP可以不包含LSS ID,或者将该LSS ID设置为0。图2中所示的本步骤采用主动扫描的方式。
现有技术中的Probe Response或Beacon中已经携带了AP自身的BSSID,另外,可以采用在Probe Response或Beacon中扩展一个字段来携带AP所属的LSS ID,该扩展字段的长度可以根据实际需求预先设置,例如,可以设置2个字节的长度,取值范围为1至65535,另外,可以采用取值0标识该AP不参与负载均衡。
步骤203:STA从扫描到的AP中选择一个AP并向该AP发送接入请求(LSS Request)。
本步骤中,STA利用扫描到的与该选择的AP属于同一个LSS的AP的BSSID形成BSSID列表,并将该BSSID列表携带在LSS Request中发送给选择的AP。本发明中各STA扫描到的AP信息采用BSSID列表的形式,当然,也可以采用其他的形式。其中,BSSID列表中的BSSID信息至少包含BSSID,例如,可以采用AP的MAC地址的形式标识该AP的BSSID,另外,每个BSSID信息中还可以包含STA接收到的该AP的信号强度、信道信息等。
STA选择AP的方法可以根据预设的选择策略进行,例如,可以选择扫描到的信号质量最强的AP,或者可以任意选择其中一个AP,或者首先选择要接入的LSS,再从该LSS中选择一个AP等,具体选择策略在此不做限制。
步骤204:接收到LSS Request的AP判断自身的负载状况是否达到负载上限,如果否,执行步骤205;如果是,则执行步骤206。
步骤205:该AP允许该STA接入,结束流程。
步骤206:根据自身所属LSS中各AP的负载状况,判断该LSS Request所携带的BSSID列表中的各BSSID对应的AP的负载状况是否都已经达到负载上限,如果否,执行步骤207;如果是,执行步骤208。
本发明中,属于同一个LSS中的各AP可以通过AP间协议周期性交互自身负载状况,并将其它AP的负载状况进行存储,接收到LSS Request的AP可以根据自身存储的各AP的负载状况来判断BSSID列表中的各BSSID对应的AP的负载状况是否都已经达到负载上限。
步骤207:该AP从BSSID列表中各BSSID对应的AP中选择负载状况没有达到负载上限的AP,通知该STA接入该选择的AP,结束流程。
步骤208:该AP获取接入自身的各STA发送的BSSID列表。
该AP可以将通过LSS Request获取的针对各STA的BSSID列表进行存储,本步骤中,可以获取自身存储的针对各STA的BSSID列表。
也可以向接入自身的各STA发送LSS更新请求(LSS Update),接入该AP的各STA接收到LSS Update后,重新对AP进行扫描,并根据扫描结果更新自身的BSSID列表,将更新后的BSSID列表通过LSS报告报文(LSS Report)发送给当前接入的AP,该AP从而获取到各STA的BSSID列表。
也可以根据自身存储的针对各STA的BSSID列表,对能够接入其他AP的STA发送LSS Update,并利用返回的LSS Report中携带的更新后的BSSID列表对自身存储的BSSID列表进行更新。
另外,为了维护AP自身存储的接入自身的STA的BSSID列表,AP可以周期性地、或者在感知到STA移动的状况达到一定程度时、或者在AP自身的状态发生变化时等满足一定更新条件时,向接入自身的各STA发送LSS Update,利用接收到的更新后的BSSID列表更新自身存储的针对各STA的BSSID列表,该过程称为主动更新,其流程可以如图3(a)所示。
另外,也可以进行被动更新,即STA可以周期性地、或者在自身移动状况达到一定程度时、或者感知到的当前AP的信号强度降低到设定阈值等满足一定的更新条件时,向当前接入的AP发送LSS Report等,并利用接收到的更新后的BSSID列表更新自身存储的针对各STA的BSSID列表,被动更新的过程可以如图3(b)所示。
步骤209:该AP根据自身所属LSS中各AP的负载状况,判断在接入自身的STA中是否至少存在一个STA能够接入负载状况小于负载上限的AP,如果否,执行步骤210,如果是,执行步骤211。
步骤210:AP拒绝该发送LSS Request的STA接入,结束流程。
步骤211:AP从当前接入该AP的STA中,确定能接入负载状况小于负载上限的AP的STA。
也就是说,该确定的STA的BSSID列表中至少存在一个BSSID对应的AP的负载状况低于负载上限。
本发明中,属于同一个LSS中的各AP可以通过AP间协议周期性交互自身负载状况,并将其他AP的负载状况进行存储,该AP可以根据自身存储的各AP的负载状况,确定能接入负载状况小于负载上限的AP的STA。
步骤212:AP从确定的STA中选择一个STA,并从该选择的STA能够接入的AP中选择一个负载状况低于负载上限的AP,将该AP的BSSID携带在LSS重分配报文(LSS Reassign)中发送给选择的STA,并允许上述发送LSS Request的STA接入。
本步骤中,在选择STA时,可以采用多种负载均衡策略,例如,选择可接入AP数量最多的STA,或者选择可接入负载最小的AP的STA,或者任意选择一个STA等。在选择该STA接入的AP时,也可以采用多种选择策略,例如,选择该STA能够接入的AP中负载最小的AP,或者选择该STA能够接入的AP中剩余资源最多的AP,或者任意选择一个负载状况小于负载上限的AP等。具体STA和AP的负载均衡策略,本发明不做限制。
步骤213:接收到LSS Reassign的STA从当前接入的AP下线,尝试接入LSS Reassign所携带BSSID对应的AP。
为使上述方法更加直观,下面举一个具体的例子。以图4(a)所示的网络架构为例,假设AP 1、AP 2和AP 3共同参与负载均衡构成一个LSS,STA 1和STA 2当前接入AP 2,此时,STA 3移至该网络,且该STA 3仅扫描到AP 2,且此时AP 2的负载状况已经达到负载上限,此时对应的方法流程如图4(b)所示,具体为:
STA 3广播Probe Request,仅接收到AP 2回复的Probe Response,说明该STA 3仅扫描到AP 2,其中Probe Response携带了AP 2的BSSID和LSS ID。STA 3将携带BSSID列表的LSS Request发送给AP 2,请求接入AP 2,该BSSID列表中仅包含AP 2的BSSID。AP 2接收到该LSS Request后,确定自身的负载状况已经达到负载上限,且该STA 3不能够接入其他负载状况小于负载上限的AP,此时,向接入自身的STA 1和STA 2发送LSSUpdate,STA 1和STA 2接收到该LSS Update后,重新进行扫描,并根据扫描结果更新自身的BSSID列表,并将更新后的BSSID列表携带在LSSReport中发送给AP 2。AP 2根据接收到的STA 1和STA 2更新后的BSSID列表,并根据AP 1和AP 3的负载状况,确定STA 2还可以接入AP 1,且AP 1的负载状况没有达到负载上限,因此,将AP 1的BSSID携带在LSSReassign中发送给STA 2,并允许STA 3的接入。STA 2接收到该LSSReassign后,从AP 2下线,尝试接入AP 1。
上述更新过程中采用的LSS Update和LSS Report,以及重分配过程中采用的LSS Reassign都可以采用Action帧的形式,可以在Action帧的FrameBody域中携带,采用Frame Body域中的Action field字段来携带报文类型信息,其对应关系如表1所示,当Action field字段中的值为0时表明该报文为LSS Update,当Action field字段中的值为1时表明该报文为LSS Report,当Action field字段中的值为2时表明该报文为LSS Reassign;Frame Body域中的信息字段中携带BSSID,或者BSSID列表等信息,例如,LSS Report对应的信息字段中可以携带更新是否成功的信息以及更新后的BSSID列表,LSS Reassign对应的信息字段中可以携带指定的BSSID或BSSID列表。
表1
Action Field |
对应报文类型 |
0 |
LSS Update |
Action Field |
对应报文类型 |
1 |
LSS Report |
2 |
LSS Reassign |
其他 |
预留 |
[0063]以上是对本发明所提供方法进行的描述,下面对本发明所提供的系统进行详细描述。图5为本发明实施例提供的系统结构图,如图5所示,该系统主要包括:第一AP 500、第一STA 510和第二STA 520。
第一STA 510,用于向第一AP 500发送包含该第一STA 510扫描到的AP信息的接入请求。
第一AP 500,用于接收到第一STA 510发送的接入请求后,判断该第一AP 500的负载状况是否达到负载上限,如果是,则根据所述接入请求中包含的第一STA扫描到的AP信息,判断该第一STA 510扫描到的所有AP的负载状况是否都达到负载上限,如果是,则从接入该第一AP 500的各STA中选择第二STA 520,按照预定的负载均衡策略确定该第二STA 520能够接入的、且负载状况没有达到负载上限的第二AP,向第二STA 520发送接入第二AP的指示,并允许第一STA 510的接入。
第二STA 520,用于接收到第一AP 500发送的接入第二AP的指示后,尝试接入第二AP。
另外,第一STA 510在发送接入请求之前,还可以对各AP进行扫描,具体为:第一STA 510从接收到的信标帧中获取发送该信标帧的AP的BSSID和所属的LSS标识,或者,广播Probe Request,并从接收到的Probe Response中获取发送该Probe Response的AP的BSSID和所属的LSS标识,并根据获取到的LSS标识选择一个LSS,在扫描到的AP中选择一个属于LSS的AP,该选择的AP为第一AP 500。
上述接入请求中包含的第一STA扫描到的AP信息为BSSID列表,该BSSID列表中包含第一STA 510扫描到的、且与第一AP 500属于同一LSS的所有AP的BSSID。
下面对该系统中的AP和STA的结构进行详细描述。图6为本发明实施例提供的AP的结构图,如图6所示,该AP可以包括:请求接收单元601、第一判断单元602、第二判断单元603、第一处理单元604和第一指示单元605。
请求接收单元601,用于接收第一STA发送的包含该第一STA扫描到的AP信息的接入请求。
第一判断单元602,用于判断该AP的负载状况是否达到负载上限,如果是,则向第二判断单元603发送判断通知。
第二判断单元603,用于接收到判断通知后,根据所述接入请求中包含的第一STA扫描到的AP信息,判断第一STA扫描到的所有AP的负载状况是否都达到负载上限,如果是,则向第一处理单元604发送处理通知。
第一处理单元604,用于接收到处理通知后,从接入该AP的各STA中选择第二STA,按照预设的负载均衡策略确定该第二STA能够接入的、且负载状况没有达到负载上限的第二AP,向第一指示单元605发送触发通知,并允许第一STA的接入。
第一指示单元605,用于接收到触发通知后,向第一处理单元604选择的第二STA发送接入第二AP的指示。
该AP还可以包括:信息发送单元606,用于在请求接收单元601接收到Probe Request后,向发送该Probe Request的STA发送携带该AP的BSSID和LSS标识的Probe Response;或者主动广播携带该AP的BSSID和LSS标识的信标帧。
此时,请求接收单元601,还用于接收Probe Request。
另外,该AP还可以包括:第二处理单元606和第二指示单元607。
第二判断单元603,还用于在确定第一STA扫描到的所有AP中存在负载状况没有达到负载上限的AP时,向第二处理单元606发送处理通知。
第二处理单元606,还用于接收到处理通知后,从第一STA扫描到的AP中选择负载状况没有达到负载上限的AP,并向第二指示单元607发送触发通知。
第二指示单元607,还用于接收到触发通知后,向第一STA发送接入第二处理单元选择的AP的指示。
其中,上述第一处理单元604可以包括:通知接收子单元6041、列表获取子单元6042、负载获取子单元6043、判断子单元6044和处理子单元6045。
通知接收子单元6041,用于接收处理通知。
列表获取子单元6042,用于在通知接收子单元6041接收到处理通知后,获取接入该AP的各STA的BSSID列表。
负载获取子单元,用于在通知接收子单元6041接收到处理通知后,获取该AP所属LSS中各AP的负载状况。
判断子单元6044,用于根据各STA的BSSID列表和各AP的负载状况,判断在接入自身所在AP的STA中是否至少存在一个STA能够接入负载状况小于负载上限的AP,如果否,向处理子单元6045发送拒绝通知;如果是,向处理子单元6045发送选择通知。
处理子单元6045,用于接收到拒绝通知后,拒绝第一STA的接入请求;如果接收到选择通知,则从当前接入自身所在AP的STA中,选择能够接入负载状况小于负载上限的AP的第二STA,确定该第二STA能够接入的、且负载状况没有达到负载上限的第二AP,向第一指示单元605发送触发通知,并允许第一STA的接入。
其中,列表获取子单元6042可以包括:列表存储子模块6046和列表获取子模块6047。
列表存储子模块6046,用于存储接入该AP的各STA的BSSID列表。
列表获取子模块6047,用于在通知接收子单元6041接收到处理通知后,从列表存储子模块6046获取接入该AP的各STA的BSSID列表。
或者,列表获取子单元6042也可以采用另一种结构,即可以包括:更新请求发送子模块6048和报告接收子模块6049。
更新请求发送子模块6048,用于在通知接收子单元6041接收到处理通知后,向接入该AP的各STA发送LSS更新请求。
报告接收子模块6049,用于接收LSS报告报文,并从接收到的LSS报告报文中获取接入该AP的各STA的BSSID列表。
图7为本发明实施例提供的STA结构图,图5所示系统中的第一STA和第二STA都具有相同的结构,如图7所示,该STA可以包括:请求发送单元701和接入处理单元702。
请求发送单元701,用于向第一AP发送包含该STA扫描到的AP信息的接入请求。
接入处理单元702,用于受到第一AP的接入允许后,接入第一AP,并且,接入第一AP后,如果接收到第一AP发送的接入第二AP的指示,则从第一AP下线,尝试接入第二AP。
另外,该STA还可以包括:扫描单元703、AP选择单元704和列表形成单元705。
扫描单元703,用于进行对AP的扫描,具体为:从接收到的信标帧中获取发送该信标帧的AP的BSSID和所属的LSS标识,或者,广播Probe Request,并从接收到的Probe Response中获取发送该Probe Response的AP的BSSID和所属的LSS标识。
AP选择单元704,用于根据扫描单元703获取到的LSS标识选择一个LSS,并在扫描单元703获取到的BSSID所对应的AP中选择一个属于LSS的AP,该选择的AP为第一AP,并将该第一AP的信息提供给请求发送单元701。
列表形成单元705,用于利用扫描单元703获取到的、且属于LSS的AP的BSSID形成BSSID列表,并将该BSSID列表作为该STA扫描到的AP信息携带在接入请求中。
该STA还可以包括:更新处理单元706,用于接收到第一AP发送的LSS更新请求后,触发扫描单元703重新进行对AP的扫描,并根据扫描单元703的扫描结果更新BSSID列表,并将更新后的BSSID列表通过LSS报告报文发送给第一AP。
由以上描述可以看出,本发明提供的方法、系统和装置中,AP接收到STA发送的包含该STA扫描到的AP信息的接入请求后,判断该AP的负载状况是否达到负载上限,如果是,则判断该STA扫描到的所有AP的负载状况是否都达到负载上限,如果是,则从接入该第一AP的各STA中选择一个STA,确定该选择的STA能够接入的、且负载状况没有达到负载上限的AP,指示该选择的STA接入该确定出的AP,并允许所述发送接入请求的STA接入。也就是说,当AP接收到STA发送的接入请求后,如果自身的负载已经达到负载上限,并不是直接拒绝该STA的接入,即便该STA所有扫描到的AP的负载状况都达到负载上限,即该STA为孤立STA时,能够对当前接入该AP的STA进行调整,指定当前接入该AP的另一个STA转至接入负载状态小于负载上限的其他AP,此时,当前的AP便可以使得发送接入请求的孤立STA也能够成功接入AP,并提高了无线资源的利用率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。