医用PDA异常下线后无法再重新关联原有的AP
问题处理
一、 组网说明:
XX医院采用我司AC+瘦AP的组网模式,SSID使用明文方式,终端动态获取IP地址。
二、 问题描述:
XX医院使用的PDA异常下线后,无法再重新关联原有的AP,手动重启PDA后同样无法再重新关联原有的AP。
三、 问题分析:
1. 正常情况下,PDA第一次关联AP成功的过程
第162号报文是一个probe request,展开如下所示:
PS:
1) 简单的说,PDA关联AP的过程就是从162号报文(probe request)开始。 从目前看来,目前市场上主流的无线网卡是会在probe request中携带休眠标记的(图中红框所示)。
2) 当PDA第一次关联一个新的AP时,因为AP上这个客户端并不存在,所以对于probe request报文中的休眠标记不予理会,直接回复probe response(第163号报文)。PDA收到后,继续发送auth(166号报文)继续接下来的关联过程,直至完成。
2. 如果PDA出现掉线后,PDA无法重新关联AP
第194号报文是一个beacon,展开如下所示:
PS:
1) PDA掉线后,由于PDA没有向AP发送de-authentication断开连接报文,所以AP继续认为此PDA在线,并且保留有客户端的信息。
2) 根据协议,收到客户端的报文中携带休眠标记时则认为客户端处于休眠状态,不能把发送给客户端的报文直接发送出去,而是把报文缓存起来,并且通过beacon携带信息(上图红框所示)来通知客户端;当客户端苏醒后需要主动发送报文获取“AP上为客户端缓存的报文”。
3) 通过上面抓包,掉线后的PDA在不断的发送probe request,但是由于probe request表明了PDA要睡眠(睡眠标志为1),所以AP所有发送的probe response被缓存起来,并且通过beacon来通知PDA“AP有数据需要发送”。但是PDA始终没有苏醒过来,也不会主动向AP获取报文(苏醒过来的话会发送一个null报文携带苏醒标记),从而造成PDA无法获取probe response,而在此种情况下,PDA就不进行后续的关联过程,最终导致PDA无法注册成功。
3. PDA连接成功后,休眠苏醒过程的处理介绍
第2406号报文是一个probe request,展开如下所示:
第2407号报文是一个beacon,展开如下所示:
第2408号报文是一个null,展开如下所示:
PDA正常在线的时候,会定期发送probe request来探测网络。这种情况下,因为probe request(2406号报文)中携带了休眠标记,AP缓存probe response,并且通过beacon(2407号报文)试图唤醒PDA。PDA收到beacon后回复了一个null(2408号报文),里面没有携带休眠标记,也就是在声明自己苏醒过来了。AP收到这个null报文后才认为PDA已经苏醒,从而把缓存的probe response发送出去。
四、 解决方法:
1. PDA可以处理AP直接回复的probe response报文,说明PDA实际上并没有休眠,也就是PDA对于休眠的处理有问题(参见分析1)。
2. 在关联过程中和关联成功以后对于休眠的处理表现不一致(参见分析3和分析2)。
3. 总之,PDA的每一个probe request报文都携带休眠标志,不但与协议不符,而且与实际情况不符合,最终导致该现象的出现。
4. 由于是PDA没有遵循规范操作,建议PDA厂商修改驱动解决该问题。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作