极路由自动桥接分析 2015.1.22 一、背景 极路由搭配极卫星,有效的扩展了家庭使用环境中的死角问题。其实针以此种情况,早就有了解决方案,如2个无线路由器进行桥接。 我们的A300/A301就在此种环境下设计的产品,可以很方便的在路由器端、A301端按下按键,然后就桥接上了。 但极路由的杀手锏在于,只要极路由和极卫星靠近,就能连接上,无论有无加密,easy的不能再easy。且指示灯状态非常好区分,蓝常亮---桥接正常,红蓝闪---桥接异常(此种情况下就按Reset按键6秒,类似恢复出厂设置,就能再桥上了)。完全的傻瓜操作。 再者,自动桥接需要离得很近,官网上说是50cm内,中间不要有障碍物,实际是尽量要离得近,不然真的连接不上(是极路由来判断的,后面会详解)。桥接成功后把卫星放到厕所里就OK。 虽然功能上和A301基本一致,且极卫星只能做为极路由附属设备(无操作页面,不能与其它产家的设备兼容或桥接),但似乎此功能(自动桥接)已把桥接功能神化。 在感叹用户小白(功能都一样的嘛)的同时,我们也在思考,功能的改进(或是操作的简化),能够带来多么神奇的体验。 经过大量的了解,极卫星与极路由的桥接性能的改进(连接时间、桥接效果),是耗费1年左右的时间才达到现在的效果。它的第一批极卫星效果很差,从试用者的评论(极论坛)即可看出。专注、持续的优化很重要。 回想一下TP 的Hifi套装,虽然使用的是PLC,但一曲同工之妙相同。 二、功能分解 在此,将此功能分为3个里程碑点: (1)连接过程 (2)无缝切换 (3)信号质量 Phase 1: 连接过程 此过程重在功能的实现,现在有两种设计方案,在细化评估后,选择一个着手实施。在这个过程中,调试桥接时间、过程的稳定、状态转换、异常处理。 以能够快速稳定的桥接作为里程碑点。 附加完成(1)指示灯的状态。 (2)桥接客户的显示,及A301在路由端的显示。 Phase 2:无缝切换 说是无缝,虽然有点假,但至少目标Smart。在这个过程中,需要解决如下问题: 1.WiFi优先接入算法,路由和A301同时存在时,优先接入信号更强的一方。(选择哪个作为接入点,由手机或Sta决定有些片面,毕竟我们要做的更好。) 2.Station在路由和A301之间的漫游。当你从家里的客厅走到厕所时(厕所放了个A301做为桥接器),当然需要手机现在连接的是A301,而不是路由。 Phase 3:信号质量 信号质量概念有点大,从用户角度应该叫服务质量。 1.桥接的稳定性,尤其在有大数据、信号质量差时,不能出现连接不上、连接断开。 2.提高吞吐量,在此需要说明,如果A301作为家用,存在20信号的家庭应该不多,所以定义5个左右作为环境进行提高。 下面内容,集中在Phase 1上面来。 三、极路由自动桥接功能分析 使用过程在此不再赘述。 极卫星配置: Atheros AR9331 Flash Winband 25Q64F 8MB MemeroyM13s5121632A 64MB 极卫星MAC:D4:EE:07:0B:69:14 极路由MAC:D4:EE:07:03:18:B8 极路由仅能配置为无加密或WPA/WPA2-PSK,现将配置为WPA/WPA2-PSK,密码:12345678。 (1)极路由发出Beacon数据报文 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps13.tmp.png WPA字段声明为有加密,Vendor Specific字段可以为制造商的特别信息。 (2)极卫星发出的Probe Request报文 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps14.tmp.png 从图中可以看出,极卫星带的是WPS V1.0的标准 (3)极路由收到卫星的Request,回复Response file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps15.tmp.png 在此字段中可以看到极路由并未开启WPS功能,但就在此数据包发出后,再发出去的Beacon或是Response数据包中,带有WPS功能字段,由此可以推断,在此条件下极路由开启了WPS功能(通过UI扫描,可以看到WPS的标志)。 接下来极路由发出的Beacon数据报文(如下) file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps16.tmp.png 后续的过程就可以预料得到了,极卫星和极路由通过WPS进行协商,卫星获得密码后可以正常进行桥接。 如果到了这一点,就相当于我们的A301和路由端都按下了WPS按键。 提出如下问题: (1)极卫星全用WPS功能进行连接,那么我拿一台路由器也按下WPS,它俩能连接么? 可以不用回答了,肯定连不上的,抓包分析也是这样的。虽然路由器回得Probe Respons,且看到时WPS按下,但卫星不会进行连接,估计是过虑掉了。(可以采用上页面提到的Vendor Specific字段)。要找到正确的另一半才连接。 (2)极路由开启WPS后,我用其它客户端也全用WPS,能连到时极路由上么? 我想如果是第一版的极路由,可能会让这种小三(第三者)有机可乘,混水摸鱼的连上。 我估计作为极路由器的开发人员也会说:这么低的概率的事件会发生么?测试的又在找茬。 但是现的极路由不在在这个问题(已经牺牲掉了WPS功能及兼容性,怎么会再让这种第三者有机可乘),通过抓包分析,可怜的第三者一直在苦苦等待,看着极路由和卫星打得火热,最终不得已Disassocate。 (3)极路由开启WPS后,可以通过PIN连接极路由么? 未焊串口,不知道PIN码多少,就像第2个问题一样,但这种只有开发人员才会想到的问题,就庭它吧。 (4)极路由开启WPS后,岂不是带了那个圈圈的小标志(UI扫描到的)? 开启后会带啊,但是过一会,就把WPS功能关了,就不带了。 一个巴掌是拍不响的,要从双方入手,才能得到一个更好的效果,分析先到时这里。 四、实现过程 如下时序图 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps17.tmp.png 实现方式放到后面设计文档吧,问题可能较多,后续再完善。 |