学习WiFi,怎么入手?

欢迎大家一起学习探讨通信之WLAN。在工作和平时与朋友交流中,时不时有人问到,“想学WiFi,不知道如何入手?”,“搞了一两年WiFi,但感觉还是一头雾水,啥都没掌握,怎么办?”。本文个人将从自己工作和职业发展的角度尝试回答这个问题,希望对想从事WiFi开发的朋友们有所帮助。

本节相关课节内容:

1.公众号"通信之WLAN"内容《通信系列》

2.公众号"通信之WLAN"内容《WiFi专栏》

从一个小故事开始。故事内容是这样的!

小王:计算机专业,研究生毕业。今天正式入职一家从事WiFi产品相关开发的公司。

师傅:你之前了解过WiFi流程和协议吗?

小王:没有。

师傅:好。我先发你点资料,你先学习看看。《802.11无线网络权威指南》和《80211-2020.pdf协议标准》。

小王:好的。

时间两周过去了。。。

师傅:学的咋样了?

小王:大概知道了啥是WiFi,WiFi有哪些帧类型。基本的名词掌握了。

师傅:好的。学习WiFi要基于实际流程分析。你结合抓包学习学习。

时间两周过去了。。。

师傅:学的咋样了?

小王:大概知道了WiFi的连接流程和相关帧类型。

师傅:好的。学习WiFi要从代码层去分析和研读协议标准。你要开始分析简单的一些WiFi连接过程中的问题。

时间两个月过去了。。。

小王可以从代码层面上分析WiFi连接和断开等流程,可以开始工作了。

时间一年过去了。。。

小王对WiFi协议交互和代码比较熟悉,处理问题比较顺手。

时间又一年过去了。。。

小王将可能面临两种情况:

情况1:“WiFi相关专业知识这么多,感觉啥都不会,很迷茫”。

情况2:“WiFi就这一点东西,每天就是分析包,分析流程,没意思”。

此时的小王,很容易放弃从事的WiFi行业,转行了。

相信大家身边也遇到类似小王的情况。WiFi网络作为一种无线通信系统,说它简单,一定是骗人的。WiFi领域可分为两个大方向“学术研究”和“工程开发”。

“学术研究”:协议标准研究制定,通过引进新的技术和优化通信机制,提高WiFi网络通信系统的性能。

“工程开发”:基于WiFi协议标准,开发实现组成WiFi网络通信系统的产品。

重点来看“工程开发”。以Android系统为例,先来看下WiFi岗位的划分,WiFi技术的“工程开发”涉及细分的WiFi岗位为:

WiFi应用工程师:WiFi设置开发,基于WiFi技术应用开发,DHCP/DNS等应用层协议。

WiFi框架工程师:Android系统Framework WiFi模块和wpa_supplicant。

WiFi驱动工程师:Host WiFi驱动开发。

WiFi协议工程师:WiFi MAC层协议的开发,如Firmware固件实现。

WiFi数字工程师:WiFi技术涉及数字部分RTL实现。

WiFi射频工程师:WiFi RF相关实现。

大多数公司WiFi岗位划分都不是很清晰,统称为WiFi工程师。从WiFi涉及岗位的划分,除“WiFi数字工程师”和“WiFi射频工程师”岗位外,强烈建议从上向下学,方便入手。

好。接下来尝试解答“学习WiFi,怎么入手更合适?”。

第一阶段:通信基础

WiFi是组成无线通信系统网络的技术,学习WiFi之前,需掌握“通信原理“的基本知识,了解基本的通信系统模型,设备间数据无线传输需经过哪些主要过程。

学习内容:

1、查看《通信原理》教材

2、公众号-通信系列【第1,2,4节】

WiFi网络也完全符合基本的通信系统模型,通过对通信系统理论的了解,在进一步入手学习WiFi,就有了“心中有网,学着不慌”感觉。

第二阶段:理论基础

经过第一阶段的学习,掌握了通信系统主要模块组成。WiFi技术即按照WiFi协议实现,使设备间可以组成WiFi网络通信系统。掌握WiFi相关的名称概念和理论基础,必不可少。推荐两本WiFi中文版书籍。

学习内容:

1、阅读学习《802.11 无线网络权威指南》

2、阅读学习《CWNA 官方学习指南(第3版)-认证无线网络管理员》

通过以上两本WiFi技术相关的书籍学习,将会对WiFi网络通信系统有更深一步的了解。同时,可掌握WiFi的相关基础理论知识点。

第三阶段:实例分析

经过前两个阶段的学习,对WiFi技术有了一定的了解。掌握WiFi相关的抓包工具使用,分析设备间帧交互流程,可更好的了解WiFi技术。利用身边手机WiFi设备连接路由器,抓取完整手机WiFi连接路由器的整个过程。结合第二阶段学习内容,学习相关帧格式和主要字段含义。

学习内容:

1、阅读学习《第二十九节:通信之WLAN(Omnipeek-Ⅰ)》

第四阶段:代码分析

根据手头资源情况选择对应的设备。如Android 手机,找到对应的Android源码。根据岗位情况,从WiFi 设置应用开始,代码层面仔细跟踪WiFi扫描的整个代码实现流程。

WiFi设置->Android WiFi Framework->wpa_supplicant->linux cfg80211->host driver->Firmeware。

其他FreeRTOS或linux系统等,建议从代码层面详细分析WiFi的扫描流程逻辑。

第五阶段:协议学习

通过前四个阶段的学习,学习WiFi已算成功入门。为了解决小王两年后可能面临的问题。从事WiFi技术开发,学习研读WiFi协议标准非常重要。

工作中好多协议上的问题和困惑,在标准协议中基本都可以找到答案。同时,可以更系统的掌握WiFi技术。

举个例子,笔者在分析RTS和CTS流程有点疑问,RTS请求Duration值怎么计算?

阅读相关协议有以下规定:

1、控制帧需要使用Basic Rate发

2、CTS 回复的速率不能高于RTS 使用速率。

3、CTS frame PLCP Preamble 回复使用RTS相同的Long或Short。

CTS Frame占14个字节, 使用以RTS的速率来计算还是相同制式最小速率计算?

如RTS 11Mb/s, CTS Frame 14个字节,以RTS速率计算发送占用时长:14*8/11=11us。

但CTS Frame回复的速率有可能1Mb/s 回复, CTS Frame 14B 占用时长:112us。

这里将有个问题:

问题1:

如果RTS Duration值以RTS速率11Mb/s计算,发送RTS的设备,收到CTS是1Mb/s,即认为媒介可以使用,直接发送。

做为CTS接收方,不检测CTS Duration。将导致空口时长少申请了101us。

存在潜在造成空口冲突,导致数据发送失败的风险。

问题2:
如果RTS Duration值以相同制式最低速率计算,如1Mb/s,CTS使用11Mb/s回复。将多申请101us。

潜在存在造成空口资源占用浪费。

通过阅读802.11标准协议,协议已写的很明确,CTS帧发送占时就以RTS速率计算。

注:协议规范【原】

1. The Duration/ID field in the CTS frame shall be the duration field from the received RTS frame, adjusted by subtraction of aSIFSTime and the number of microseconds required to transmit a CTS frame at the data rate used for the RTS frame to which this CTS frame is a response.

2. When an RTS/CTS exchange is used, the asynchronous data frame shall be transmitted after the end of the CTS frame and a SIFS period. No regard shall be given to the busy or idle status of the medium when transmitting this data frame.

可见,研读802.11协议在从事WiFi开发工作中是非常必要的。但刚开始入手WiFi相关协议,将会发现WiFi的协议特别多,802.11b/g/n/ac/ad/ax/be,802.11-1999/802.11-2007和802.11-2020等等。每个文档少则几百页,多则几千页。建议从最初的WiFi协议研读,后续的WiFi相关协议发展都在最初的协议标准上进行。

网络上WiFi相关技术的帖子也非常多。可以根据需要针对的阅读学习。

如下引用徐博整理的网络中WiFi相关资源。

https://zhuanlan.zhihu.com/p/375649906

学习内容:

1、《802.11-1999》

2、《802.11i》

3、《802.11e》

4、《802.11n》

上面协议建议按照顺序研读。开始就入手研读《802.11-2020》内容太多,难度大。对于刚入手学习WiFi协议的人阅读《802.11-1999》会更合适,更友好。文档总共才536页,相比《802.11-2020》的4379页少太多。其页数少,内容更为重要。

针对刚入手学习WiFi的朋友来说,WiFi相关知识点确实很多,但通过以上五个阶段的学习,从WiFi网络通信系统的角度学习研究,可很好的将零碎的知识点串联起来。有理论又有实践,将会发现从事WiFi行业,也是一种快乐的事。

笔者整理了文章内容提及到的所有资料,如有需要,可在CSDN上下载,链接如下。如无积分,可公众号私信获取。谢谢~!

https://download.csdn.net/download/chase_dtao/87824651

注:

以上文章内容仅代表个人观点,仅供参考。如感兴趣更多通信知识,可关注“通信之WLAN”微信公众号。谢谢大家支持~!

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值