背景技术
WLAN(无线局域网)利用无线技术在空中传输数据、话音和视频信号,作为传统布线网络的一种替代方案或延伸,它可以使用户任意对有线网络进行扩展和延伸。从个人及桌边无线接入,到跨地域的无线数据通讯的传输,使用户可以随时随地获取信息,提高了网络的使用效率。
如图1所示为WLAN网络结构示意图,在WLAN网络中,一个无线AP(无线接入点)构成一个BSS(基本服务集),通过BSSID(基本服务集识别码,一般是AP的MAC地址)进行标识。AP可以提供的服务通过SSID进行标识(服务集识别码,即一个标识AP可以提供的服务的字符串),多个AP可以使用相同的SSID。STA(站点,例如具备无线功能的笔记本)通过AP提供的DS(分发系统)服务,可以对BSS以及BSS以外的网络资源进行访问。
在无线局域网(WLAN)系统中,STA有两种方式选择AP接入:一种是通过被动方式选择接入,一种是通过主动方式选择接入。被动接入方式是STA扫描各个信道,通过接收AP定时发送的信标(Beacon)帧发现WLAN中的AP,然后从扫描的结果中选择一个AP接入。主动接入方式是STA根据SSID发送探询请求(Probe Request)帧探询网络中支持此SSID的AP,STA根据探询结果选择一个AP接入。
由于WLAN是共享介质的技术,当接入用户增多时,STA中间的竞争就会增加,分配每一个用户的带宽会下降。因此,在实际应用中,为了增大WLAN的用户容量,会采用多个AP配置在不同信道覆盖同一个区域进行组网。这时,只有AP之间的负载能够均衡才能使带宽资源得到充分的利用。
如图2所示为覆盖同一区域的AP信道设置图,由于AP工作在同一信道时,AP之间的信号会相互干扰,因此覆盖同一区域的AP需要工作在相互独立的信道。以802.11b为例,可以使用3个相互独立的信道:1信道、6信道和11信道。
对于STA,不管是被动方式接入AP还是主动方式接入AP,STA选择接入AP时都没有考虑AP的负荷情况,STA或者是选择信号最强的AP接入,或者是随机选择的AP接入。对于AP,由于没有AP之间相互通告自己的负载的协议,因此目前普遍的做法是,AP之间不进行通信,每一个AP独立配置自己的最大用户,以决定是否接入STA。当AP接入用户数达到最大后才会拒绝接入新的用户。这种方法的缺点在于同时会有多个AP提供接入服务,STA可能总是选择信号最强的一个进行接入。这样,使得AP之间的负荷无法均衡,出现某些AP接入的STA过多,导致性能下降,而某些AP空闲的状况。
目前,对于负载均衡还没有一个既定的标准,虽然现在许多AP也支持负载均衡,但都是使用自定义的私有协议,不同厂商AP之间没有办法起到负载均衡的作用。
现有技术有的采用AP之间通过以太网等进行有线互联,交流自己的负载信息,从而进行负载均衡。AP实时通告自己的负载信息,包括AP连接的用户数目、现有的流量信息等。对于通过用户数进行负载均衡的AP,需要在每一次用户上下线时,实时向网络中的其他AP通告自己的用户信息;对于通过流量进行均衡的AP,当流量变化超过一定的粒度,需要实时向网络中的其他AP通告自己的流量信息。
现有技术的缺点在于:由于通过以太网连接在同一个LAN中的AP很多,在AP覆盖范围相互重叠的情况下,STA可以搜索到多个AP,由于STA接入的随意性,使得AP之间的负荷无法均衡,出现某些AP接入的STA过多,导致性能下降,而某些AP空闲的状况。若AP间使用有线方式传递负载信息,存在的问题是,有线互联的AP并不一定覆盖同一个区域,AP无法判断哪些AP与自己覆盖同一个范围,由此获得的邻居信息存在大量的冗余。而且由于AP的用户数、流量等信息是实时改变的,AP需要不断通知相邻AP自己的负载信息,存在大量的信息传递。同时,使用以太网进行AP互联将增加组网设备和布线的工作量,不适合灵活组网,有线传递信息限制了AP的安装和使用方式。
发明内容
本发明所要解决的技术问题是:克服现有技术无线局域网中接入设备间负载不均衡,或采用有线互联方式传递负载信息会导致大量冗余信息传递、不灵活的缺点,提供一种无线局域网中接入设备间实现负载均衡的方法,从而方便灵活地实现接入设备的负载均衡。
本发明为解决上述技术问题所采用的技术方案为:
这种在无线局域网中接入设备间实现负载均衡的方法,包括以下步骤:对覆盖同一区域的每个无线接入点配置接入优先级以及优先级更改策略,每个无线接入点根据自己的优先级更改策略更改自己的接入优先级;在各无线接入点上维护相邻无线接入点的邻居信息,而且每个无线接入点对自己维护的邻居信息定期进行更新;无线接入点通过比较自己和相邻无线接入点的优先级,决定自己接入站点的状态,只有处于允许接入状态的无线接入点才能广播信标信息及响应站点的探询请求。
无线接入点通过对无线接入点间的链路检测或接收邻居无线接入点定期通过无线信道广播的信息对自己维护的邻居信息进行更新;当无线接入点在一段时间内无法接收到某一个相邻无线接入点的信息,或检查到某一个相邻无线接入点的链路中断后,可将所述相邻无线接入点从所维护的邻居信息中删除。若无线接入点当前优先级最大且邻居中不存在相同优先级的无线接入点,则无线接入点接入状态为允许接入,其余的为不允许接入;当存在多个无线接入点当前优先级均为最大时,各无线接入点采用相同的策略决定自己的接入状态,保证当前只有一个无线接入点的接入状态为允许接入。
无线接入点可使用接入用户数作为优先级改变的策略,配置用户接入阈值,当无线接入点接入用户数达到该接入阈值时,优先级下降一级。允许接入状态的无线接入点在接入状态变为不允许接入后,继续广播信标帧,但不再响应新的探询请求,直至该无线接入点的所有接入站点下线。
站点只处于一个无线接入点覆盖范围内,且无线接入点为不允许接入状态时,若该无线接入点连续几次接收到同一个站点的探询请求,则该无线接入点可进行响应,保证站点总是可以接入到一个无线接入点。
所述的无线接入点之间可采用广播或组播方式进行通信,对无线接入点之间的交互信息进行加密,并在交互优先级信息之前,无线接入点之间相互认证,建立通信链路,只有当无线接入点间的状态处于已连接已认证时,无线接入点之间才能够传递优先级信息。
当无线接入点加入网络或状态改变时,可采用状态通知报文主动通过无线信道通知相邻的无线接入点,使相邻的无线接入点更新自己的邻居信息,所述的状态通知报文至少包括无线接入点的媒体访问控制地址、服务集识别码和接入优先级。当无线接入点退出网络时,可使用退出报文主动通过无线信道通知相邻的无线接入点,使相邻的无线接入点更新自己的邻居信息,所述的退出报文至少包括无线接入点的媒体访问控制地址和服务集识别码。
当无线接入点支持多个服务集识别码时,可为每一个服务集识别码维护邻居信息、接入优先级和接入状态。
本发明的有益效果为:本发明提供了一种AP之间通过无线信道相互告知无线接入信息,并在此基础上实现AP之间负载均衡的方法。AP具备邻居发现和自组网的能力,能够根据网络情况自动调整自身的接入状态,动态实现AP之间的负载均衡;同时能够支持多个SSID环境下,AP之间的负载均衡,并能保证AP之间信息交互的安全性,防止非法AP的存在。
每个AP能够独立地根据自己的配置情况决定自己的接入优先级,每一个AP可以灵活地设置自己的接入门限,如根据最大用户数接入、根据最大流量接入等,可以支持多种负载均衡策略。只有AP的负载导致AP接入优先级改变时,AP才需要通知其他AP,而无需在每次用户上下线或者流量改变时通知其他AP,使得AP间的交互信息减少,方便灵活地实现接入设备的负载均衡。
具体实施方式
下面根据附图和实施例对本发明作进一步详细说明:
为克服现有技术的不足,本发明定义一种AP之间通过无线信道相互告知无线接入信息的协议,并在此基础上实现AP之间的负载均衡。AP之间进行通信的无线信道和用于用户接入的信道可以采用不同的频率或信道,也可以是相同的,但应保证各AP之间通信使用同一个信道,否则很难保证接收到其他AP的消息。
如图3所示为同一区域中多个AP同时提供接入服务结构示意图,本发明对覆盖同一区域的每个无线接入点配置接入优先级以及优先级更改策略,每个无线接入点根据自己的优先级更改策略更改自己的接入优先级;在各无线接入点上维护相邻无线接入点的邻居信息,每个无线接入点通过对无线接入点间的链路检测或接收邻居无线接入点定期通过无线信道广播的信息,对自己维护的邻居信息进行更新,无线接入点通过比较自己和相邻无线接入点的优先级,决定自己接入站点的状态,只有处于允许接入状态的无线接入点才能广播信标信息及响应站点的探询请求。
下面对本发明的实现过程进行具体说明:
1、配置接入优先级以及优先级更改策略
对于每一个AP配置接入优先级,以及优先级更改策略。如,可以配置用户接入阈值,当AP接入用户数达到接入阈值时,优先级下降一级。每一个AP可以单独配置自己的优先级改变策略,如使用接入用户数作为优先级改变的策略,AP的优先级变化规则如下:
a)STA连接成功后,AP当前接入用户数+1;若AP当前接入用户数>=阈值,优先级-1;其他情况下,优先级不变;
b)STA断开连接后,AP当前接入用户数-1;若AP当前用户数=阈值-1,优先级+1;其他情况下,优先级不变。
2、维护邻居信息
对于可以支持负载均衡的AP需要维护相邻AP信息,每个具有负载均衡能力的AP在加入网络、状态改变和退出网络时应主动通知相邻的AP,以便相邻AP更新自己的邻居信息。同时,每个AP需要对自己的邻居表进行维护,包括对AP间的链路状态进行检测,或者AP定期广播自己的信息,以便邻居AP对自己维护的邻居信息定期进行老化。当一段时间内无法接收到某一个AP的信息后,或检查到某一个AP的链路中断后,应将该AP从邻居表中删除。
AP之间的负荷分担以同一个SSID为单位,在配置为同一个SSID的AP之间进行负荷分担。对于支持多SSID的情况,AP对于每个SSID都需要维护单独的邻居信息表、接入优先级和接入状态。
3、优先级比较和接入状态的确定
AP间通过比较自己的优先级和相邻AP的优先级,决定是否接入STA。若AP的优先级相同,AP之间可以基于相同的规则确定一个AP具有有效接入STA的权利,如,可以选择MAC地址较小的AP具有优先接入STA的权利。
当AP接入优先级改变时,需要通知所有的邻居。并根据自己接收到的邻居信息,改变接入状态。每一个AP根据自己和相邻AP的优先级决定了自己的接入状态。以下规则保证当前只有一个AP将自己的接入状态设置为允许接入(enable),能够接入用户。
a)若AP当前优先级最大且邻居中不存在相同优先级的AP,则AP接入状态为enable;
b)当存在多个无线接入点当前优先级均为最大时,无线接入点采用相同的策略决定自己的接入状态,如,选择媒体访问控制(MAC)地址最小者,其无线接入点接入状态为enable;
c)基于b)所选择的策略,若AP当前优先级最大,但在相同优先级AP中存在MAC地址更小的AP,则AP接入状态为disable;
d)其它情况下AP的接入状态为disable;
当邻居AP中存在任意一个AP的优先级变化,或拓扑结构改变时,所有的邻居AP均需要根据以上规则调整自己的接入状态。拓扑结构的改变包括:
a)新的AP加入到网络中;
b)AP主动从网络中退出;
c)AP出现突然断电等情况,不能主动从网络中退出,其它AP检测到某个AP长时间没有信号时,将其从邻居表中老化。
综上所述,当自身优先级改变、邻居AP优先级改变、或邻居拓扑改变(有AP新加入或AP退出或被老化)时,AP均需要调整自己的接入状态。
只有当前处于enable状态的AP才能广播beacon(信标帧)信息以及响应STA的探询请求。由于STA一般是通过接收AP的beacon信息保持和AP的连接,为了保证已经是enable状态的AP在接入状态变为disable后,已经连接的STA不下线,应继续广播beacon帧,但不再响应新的探询请求,直至所有的STA下线。这时,此AP虽然能够广播beacon,但是不能响应STA的探询请求,不能接入新的STA。
STA接入时,可以搜索beacon信息。由于一个覆盖范围内只会存在一个AP广播beacon信息,因此,保证了STA只能接入一个AP。或者,STA为了寻找到合适的AP,首先发起Probe Request(探询请求)。当STA处于多个AP重叠覆盖范围内时,多个AP同时接收到Probe Request,每个AP根据自身的接入状态决定是否接入相应STA。当前接入状态为enable的AP向STA发送Probe Response(探询响应)。
当STA只处于一个AP的覆盖范围内时,若这个AP的接入状态正好是enable,则AP可以接入用户。若此AP的接入状态正好处于disable状态,为了保证STA总是可以接入到一个AP,若处于disable状态的AP连续n次接收到同一个STA的probe request,处于disable状态的AP可以进行响应。
如果AP之间的消息传播以明文的形式进行传递,面临的问题是,非法AP可以将自己的优先级设置为最高,则用户总是接入到非法AP上,而合法AP则处于闲置状态。因此,AP之间的消息传递需要安全机制的保证。由于802.11控制帧和管理帧都不能加密,因此AP之间交互信息承载在802.11数据帧中,可以使用WEP/WPA等进行加密,也可以采用其它的加密方法。802.11协议层通过支持WEP/802.11i等协议提供数据加密、完整性校验、重放保护等功能。如图4所示为本发明AP间通信的协议栈图,MAC(媒体访问控制)层采用802.11MAC,在其上通过802.11i等增强协议提供安全等功能,AP间的交互协议作为数据承载在802.11MAC帧的数据中。
在AP中间交互优先级信息之前,AP之间需要相互认证,建立通信链路。建立通信链路的方法,AP之间的认证可以使用802.11i定义的PSK、802.1x等机制。在认证过程中,AP之间协商出AP之间数据加密的密钥等信息。
如图5所示为AP间连接状态机示意图,AP之间的连接状态分为:
a)未连接;AP之间没有建立通信链路;
b)已连接,未认证;AP之间建立了通信链路,但是AP之间没有进行相互的身份认证;在这个阶段,AP之间可以拆除链路,即取消AP之间的连接回到未连接状态。
c)已连接,已认证;当AP之间进行了相互的身份认证之后,AP进入已认证状态。在这个阶段,AP之间可以拆除链路,即取消AP之间的连接回到未连接状态。
只有当AP间的状态处于已连接,已认证时,AP之间才能够传递优先级信息;由此保证了AP之间数据的安全性。AP根据接收到的优先级信息建立邻居关系,保证了非法AP无法散布虚假报文信息。
本发明AP之间采用广播或组播(包括二层组播和三层组播)进行通信。可以定义两种报文——状态通知报文和退出报文。当AP加入网络和状态改变时,使用状态通知报文通知相邻的AP,相邻的AP收到此状态通知报文后,更新邻居信息和自身的接入状态。为维护AP的邻居信息,AP周期性以广播或组播方式发送状态通知报文。如在一定时间内未收到某个AP的状态通知报文,将该AP从自己的邻居中删除,并更新自己的接入状态。AP对于邻居的检测也可以通过对AP之间链接状态的检测完成,这时无需周期性地发送状态通知报文。当AP退出网络时,使用退出报文,通知相邻的AP。
AP间通信协议报文格式定义如下:
0 1 2 3
其中:AP间每一个报文均需要包括报文类型code、报文标识Identifier以及报文长度信息。AP之间需要传递的其他信息作为Attributes携带在报文中。
code:1字节,用于标识报文类型:
1为status-notify(状态通知)
2为leave(离开)
Identifier:1字节,报文标识。
Length:2字节。包括Code、Identifier、Length以及Attribute在内的所有报文长度。报文最小长度为20,最大长度为4096。
Attributes包括AP的MAC地址、AP的SSID、AP的接入优先级。
(1)报文类型
报文Code域的取值决定了报文类型。对于状态通知报文,code类型为status-notify。AP状态通知报文必须包括AP的MAC地址、AP的SSID、AP的接入优先级。其中,AP的MAC地址使用AP_id属性、AP的SSID使用AP_ssid属性、AP的接入优先级使用AP_priority属性。
对于退出报文,code类型为leave;AP退出报文必须包括AP的MAC地址、AP的SSID。其中,AP的MAC地址使用AP_id属性、AP的SSID使用AP_ssid属性。
(2)属性Attributes
报文内容的设计采用TLV格式。其格式为:
0 1 2
Type:1字节,属性类型;
Length:2个字节,属性长度,表示这个属性的长度。
Value:属性的值。值类型分为text、string、address、integer、time。
下面介绍状态通知报文和退出报文中定义的属性:
1)Ap_id属性
用于标识AP的MAC地址;类型为string,长度为48bit
0 1 2 3
2)Ap_ssid属性
用于标识AP的SSID;类型为string,长度由属性长度指定。
3)Ap_priority属性
用于标识AP的接入优先级;类型为integer,长度为4字节。
0 1 2 3
取值:优先级随数字增加而减小,0为最大优先级。
本发明提供了一种AP之间通过无线信道相互告知无线接入信息,并在此基础上实现AP之间负载均衡的方法。AP具备邻居发现和自组网的能力,能够根据网络情况自动调整自身的接入状态,动态实现AP之间的负载均衡;同时能够支持多个SSID环境下,AP之间的负载均衡,并能保证AP之间信息交互的安全性,防止非法AP的存在。
每个AP能够独立地根据自己的配置情况决定自己的接入优先级,每一个AP可以灵活地设置自己的接入门限,如根据最大用户数接入、根据最大流量接入等,可以支持多种负载均衡策略。只有AP的负载导致AP接入优先级改变时,AP才需要通知其他AP,而无需在每次用户上下线或者流量改变时通知其他AP,使得AP间的交互信息减少,
本发明适用于覆盖同一区域的AP,这些AP配置不同的信道,但SSID、对STA的认证方式、加密方式相同,STA可以选择任何AP接入的情况。本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案实现本发明,以上所述仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效结构变化,均包含于本发明的权利范围之内。