IEEE802.11中的联结与重联结(原创)
By Yanjian on 2007-4-14
摘要:接下来的时间,我将开始研究实现wireless mesh network中的二层快速切换的工作。现在刚处于起步阶段。在整个工作的过程中,我将会不时地贴出工作进展文章。这一篇是关于802.11中association的文章。
一.原语介绍
1.MLME-ASSOCIATE.request
MLME-ASSOCIATE.request用来请求到AP的联结,它包含的消息如下所示:
MLME-ASSOCIATE.request (
PeerSTAAddress, //要关联的目标的MAC地址
AssociateFailureTimeout, //关联过程的限制时间
CapabilityInformation, //指定要用的容量信息
ListenInterval //STA醒来并侦听前经过的信标间隙数
)
当一个STA想要建立一个到AP的连接时,MLME-ASSOCIATE.request由该STA的SME(station management entity)
创建。MLME-ASSOCIATE.request发起一次建立连接的过程。随后,MLME(MAC sublayer management entity)发
出一个MLME-ASSOCIATE.confirm反应结果。
2.MLME-ASSOCIATE.confirm
MLME-ASSOCIATE.confirm报告联结尝试的结果,它包含消息如下:
MLME-ASSOCIATE.confirm (
ResultCode //结果,SUCCESS/INVALID/PARAMETERS/TIMEOUT/REFUSED
)
当一个MLME-ASSOCIATE.request到达后,MLME生成并发出MLME-ASSOCIATE.confirm指示联结的结果。
3.MLME-ASSOCIATE.indication
MLME-ASSOCIATE.indication信息:
MLME-ASSOCIATE.indication (
PeerSTAAddress //建立联结的STA的MAC地址
)
MLME-ASSOCIATE.indication是由MLME生成的联结成功的信息,由发起联结过程的MAC实体生成并发出,用
以通知联结建立的成功。
4.MLME-REASSOCIATE.request
MLME-REASSOCIATE.request用来请求改变关联的AP,包含信息如下:
MLME-REASSOCIATE.request (
NewAPAddress, //重新联结的目的AP的地址
ReassociateFailureTimeout, //时间限制
CapabilityInformation, //指定容量
ListenInterval //STA醒来并侦听前经过的信标间隙数
)
MLME-REASSOCIATE.request由要改变AP的STA生成,发起再联结过程,随后由MLME-REASSOCIATE.confirm
指定再联结的结果。
5.MLME-REASSOCIATE.confirm
MLME-REASSOCIATE.confirm结构、用法及意义均同MLME-ASSOCIATE.confirm。
6.MLME-REASSOCIATE.indication
MLME-REASSOCIATE.indication结构、用法及意义均同MLME-ASSOCIATE.indication。
7.MLME-DISASSOCAITE.request
MLME-DISASSOCAITE.request发起解除联结过程,它包含信息如下:
MLME-DISASSOCAITE.request (
PeerSTAAddress, //请求解除联结的STA地址
ReasonCode //请求解除联结的原因
)
MLME-DISASSOCAITE.request发起解除联结的过程。
8.MLME-DISASSOCAITE.confirm
MLME-DISASSOCAITE.confirm通知解除联结的结果,它包含信息如下:
MLME-DISASSOCAITE.confirm (
ResultCode
)
MLME-DISASSOCAITE.confirm用来通知解除联结的结果。
9.MLME-DISASSOCAITE.indication
MLME-DISASSOCAITE.indication通知联结解除成功的MAC地址,它包含如下信息:
MLME-DISASSOCAITE.indication (
PeerSTAAddress,
ReasonCode
)
二.Association and reassociation
1.STA联结过程
在接到一个MLME-ASSOCIATE.request后,STA通过下列的步骤来建立到一个AP的联结:
1).STA发送一个association request到AP,该AP是接受STA认证的AP。
2).如果STA收到一个联结回复帧,且其中状态值为"successful",那么STA联结上了AP。MLME应该发
出MLME-ASSOCIATE.confirm来指示操作的成功完成。
3).如果STA收到一个联结回复帧且其中状态值不为"successful",或者AssociateFailureTimeout超
时。MLME应该发出MLME-ASSOCIATE.confirm来指示操作的失败。
2.AP联结过程
AP执行下列的步骤来支持STAs的联结。
1).无论何时收到来自验证过的STA的Association Request帧,AP应该发送一个带有status code的
association response到STA。如果status是"successful",分配给STA的Association ID应该
包含在这个response中。如果STA尚未验证,则发送一个Deauthentication帧到STA。
2).如果从STA收到带有"successful"的association response,STA则被认为联结上了本AP。
3).AP应该把联结通知DS,并且MLME应该发出一个MLME-ASSOCIATE。indication。
3.STA重联结过程
收到一个MLME-REASSOCIATE.request后,STA应该通过下列步骤重新连接到AP:
1).STA发送一个Reassociation Request帧到AP。
2).如果收到一个状态值为"successful"的Reassociation Response帧,那么STA现在是和AP联结的,
MLME应该发送一个MLME-REASSOCIATE.comfirm来指示操作的成功完成。
3).如果收到一个状态值不为"successful"的Reassociation Response帧,或ReassociateFailureTimeout
到时,那么STA现在并没有和AP联结上,并且MLME应该发送一个MLME-REASSOCIATE.confirm来指示操作的
失败。
4.AP重联结过程
AP应该执行以下的操作步骤来支持STAs的重联结。
1).无论何时从验证过的STA收到一个Reassociation Request帧,AP应该发送带有status value的
reassociation response到STA。如果status value是"successful",分配给STA的联结的ID
应该包含在response中。如果STA没有验证,AP应该发送一个Deauthentication帧到STA。
2).如果从STA收到一个reassociation response,且status value为"successful",那么STA认为是联结上
了AP。
3).AP应该把reassociation通知到DS,且MLME应该发送一个MLME-REASSOCIATE.indication。