无线僵尸节点影响网络效率的案例分析
最近在QQ群里有一些朋友问了WiFi方面的问题,我帮忙解答了,大家觉得蛮有意思,希望能写一些科普的文章,大家学习交流。所以,在这里我就把我们当前做的工作中,一些蛮有意思,大家又非常常见的问题分享一下,大家可以多多了解WiFi这个领域。(确实比较复杂,但又非常可爱,令人着迷)
就在即将发布的软件版本,我们解决了一个几乎所有WiFi厂家都会遇到,但不一定能解决的问题。我给它取名“无线僵尸节点影响网络效率的问题”。这个名字听起来挺吓人,但原理非常简单,跟大家分享一下:
在这个拓扑中,有5台设备连到极路由上,大家工作的很正常,就在此时,假设出现了这种情况:
随便一台移动客户端,比如IPAD的主人带着它出门了,离开了房间。
此时,就会触发一次无线僵尸节点,因为极路由不知道IPAD离开了(它是在主人的带领下,从物理距离离开的,不是手动关闭无线这种方式)。因此,互联网上有数据发来,极路由会继续给IPAD发送,结果IPAD收不到(它已经不在了),但极路由会重发,又收不到,又重发,反反复复10次以上,直到持续N分钟左右的老化时间,然后放弃此无线节点。
这是一个经典案例,几乎每一台无线路由器,不管是不是极路由,都会遇到。当前方案商给的原始算法就是我描述的那样,不停重发,失败,直到老化时间,才结束。
这是典型的“拿别人的离开惩罚还在的人们”...,(这跟现实太像了,某些官猿们爽够了,移民了,留下一堆屌丝奋斗奋斗!)。凭什么IPAD离开了,路由器还要给他发数据,占用信道,占用效率,让剩下的4台终端情何以堪?这不科学,这不公平!!
结论是:算法太不人性化,太过保守,太跟不上时代。于是,有极友反馈我们说:“极客们,我家的极路由偶尔有延迟,持续几分钟就好了”,经过我们与该用户反复联调,最终发现了这个线索,之后,深究出了原因,原来如此,恍然大悟!
能够引起“无线僵尸节点”的原因很多,简单来说,非正常方式离开无线网络,都会造成无线僵尸节点。比如:笔记本突然没电了,USB无线网卡直接拔掉,移动无线客户端物理关机,被主人带离无线网络,掉水里...等等,都会触发“无线僵尸节点”。
“无线僵尸节点”的危害可大可小,说大点,可以影响其他设备的传输,比如有些厂家对无线传输做的很精,当给某台设备发送数据失败后,他们会降速,再重发,再失败,再降速,因此,整个10次重发是以一个阶梯速率尝试。这样的效果会拉低整个无线网络的效率,让其他设备延迟增大,速率降低。说小点,是给空气中传输了一堆永远不可能被收到的包,浪费资源...
于是,本着节约资源,环保高效的原则,极路由出手了,我们解决了无线僵尸节点问题。由于涉及到专利,具体细节不便透露太多,但可以肯定的是,你们大可放心去制造“无线僵尸节点”,来对比极路由和其他路由器的表现,你们会惊奇的发现,极路由对“无线僵尸节点”几乎是免疫的,几乎无影响;其他路由器是否有影响,我非常希望看到有用户给我们专业的评测报告,我们就不便出手了,否则,"拿别人的不足说事"的帽子就扣头上了...