19

(更新)802.11协议精读1:学习资料整理

 3 years ago
source link: https://zhuanlan.zhihu.com/p/181706750
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

(更新)802.11协议精读1:学习资料整理

Wi-Fi话题下的优秀回答者

序言

很早之前,笔者做了一份802.11和Wi-Fi技术的相关资料整理,当时资料都是放在CSDN上面的,一者是作者本身的习惯,当时还不是很习惯用github,二者是本身也习惯在CSDN上面写写东西,所以就顺带放一起了。不过现在CSDN的下载业务比较麻烦,还需要积分,所以笔者另外开始在Github上面也整理了一份学习资料。

开源的项目地址为:https://github.com/fzxy002763/Wi-Fi_Study_Public

大家可以Star下这个项目,后续我整理学习资料的时候就直接基于该项目继续整理了。

Remark:ReadME还没有来及更新,后面慢慢再折腾。

整理的目录直接引用之前写的了,我就不打算在文章这里梳理新的目录了,到时候直接在Github的ReadMe部分做梳理。

综合类
1.CWNP系列教材
CWNP(CWNP)是一个无线方向的认证项目,其教材是比较适合初学802.11协议的人使用的,其主要是避免了大量的数学工程,基本是从工程师应用的角度来编写。按照其官网所描述,CWNP的认证包含:CWTS,CWNA,CWSP,CWDP,CWAP,CWNE,CWNT。其中CWNA的教材最为适合初学,且也有中文的翻译版。其余CWSP,CWDP等教材适合进阶一步阅读。
2.802.11权威指南(O'Reilly)
802.11权威指南是早期的一本802.11的专著,与协议的贴合度很高(个人感觉更接近于2007版本的802.11协议),不过缺点在于对于一些当前最新的802.11协议缺乏描述,毕竟该书的初版的时候,802.11n还是处于草案阶段。整体而言,整本书的内容还是比较丰富的,而且也包含了很多细节的部分(如物理层细节),同时也避免了很多公式推导。
3.802.11 Survival Guide(O'Reilly)
由于802.11权威指南中没有专门讨论过802.11n和802.11ac,所以后面O'Reilly还有两本书专门说明有关802.11n和802.11ac的内容,包含:802.11n A Survival Guide与802.11ac A Survival Guide。粗读一遍,感觉协议的很多部分(包含物理层和MAC层)还是描述的很详细的。
4.Next Generation Wireless LANs(Cambridge)
Cambridge的两本有关802.11的专著:Cambridge.Next Generation Wireless LANs.802.11n与Cambridge.Next Generation Wireless LANs.802.11n and 802.11ac,感觉是两本描述802.11的书籍中最为细致的两本书,也同时感觉最为权威的两本书,其中很多物理层细节与MAC层细节都只有在这本书中可以找到(尤其是802.11的物理层部分)。如果打算详细研究802.11协议的话,非常建议读下这本书,其中后者是新版(包含了802.11n和802.11ac的主要内容),所以更加推荐阅读。
5.WAPI协议
WAPI和802.11的关系有兴趣可以自行搜索。从学习的角度上而言,WAPI可以当做中文的802.11(即802.11的早期版本)。比较适合早期阅读802.11协议原版,毕竟原协议内容,写法之类都和一般书本不同,所以还是中文的资料好适应一些。
6.802.11协议(2007版与2012版)
802.11协议有很多个版本,包含了众所周知的是802.11a/b/g/n/ac这些,其余还有802.11r/802.11k/802.11s等等很多协议版本,以及还存在协议的演化,比如802.11ae/802.11aa这些。其中802.11的2007版和2012版算是一个协议整合版,其中802.11-2012版包含了07版以及802.11n,802.11k,802.11r等相应的内容,所以适合详细阅读802.11协议使用,不过2012版中没有包含802.11ac/ad,802.11ah,802.11ae,802.11aa等相关的内容,所以这些新协议还需要读协议的分支。
安全类
1.802.11 security(O'Reilly)
O'Reilly也有一本关于802.11安全的专著,这本书目前还没有读完,整体感觉还是比较好的。
2.Real 802.11 Security - Wi-Fi Protected Access and 802.11i
这本书老早之前读过一次,总体感觉还是可以的,该书主要讨论的是802.11i的内容,不过由于出版的较早,所以有些内容有些老了。
设计类
1.IEEE 802.11 Tutorial(Berkeley)
这份材料是bekerly那里出的较早期的IEEE 802.11 Tutorial,实际应该放在综合类中的。不过这份资料中的很多流程图描绘的还不错,是从整个协议执行的机制上所述,且都做了一定的简化,所以也是不错的材料。
2.Wi-Fi:802.11 物理层和发射机测量概述
这份资料是泰克公司公开的资料,实际上是将802.11物理层部分加以总结出的一份文档,用来快速学习802.11物理层的有关知识是很适合的,而且其中的内容也是从测试厂家的角度而写,相比一般书本的知识,这些内容更加偏实际一些。
3.802.11物理层规范海报
这一份泰克这份海报,非常贴切802.11协议,其中很多物理层的内容,以及信道分配,5G可用信道有哪些,都有总结,作为速查非常方便。
4.通信新读
实际上这份资料与802.11的关系不是很大,但是该书是一本的用来学习通信知识不错的书。适合初学者学习通信的理论知识,与大话系列不同,这本书还是很注重理论知识的。该书没有完整的电子版,只收集到试读的部分(笔者不少资料还是读的纸质版)。
5.OFDM for wireless communications systems
这本书是一份OFDM的专题书,且内容较短且精,适合作为了解OFDM基本原理后,不断重新深入理解OFDM原理所阅读,其中有些细节还是比较不错的。
6.Radio Frequency Propagation Made Easy
802.11中的信道模型实际上描述的内容并不多,故需要一些有关射频传播模型的背景知识才好深入理解一些,上面这份教材讲的深浅适中,对于理解802.11协议中的内容是足够的了。
仿真类
1.MIMO-OFDM Wireless Communications with MATLAB
该书是一篇有关MIMO-OFDM理论以及仿真的综合书,书中夹杂描述了一些802.11情况下的信道模型,物理层模型之类,由于当前802.11的主流技术是基于MIMO-OFDM的,且如果需要真正学习802.11相应的通信知识,还是多接触些物理层和数学为好,该书的理论都有配以仿真,所以很适合学习。
2.NS2仿真实验-多媒体与无线网络
柯志恒老师的书,很多学习NS2的人一开始都学习过,这里收集了下书的电子版以及源码。

3.The NS2 Manual
有关NS2的资料实际上是非常多的,笔者曾经用过一段时间NS2做802.11仿真,当时顺着这份材料学习了下,所以记录下。NS2有关802.11的资料还是非常多的,每个人可以根据自己的需求寻找资料。

4.Implementation of IEEE 802.11 Physical Layer Model in NS3
这份材料的原题目比较长(Study and Implementation of IEEE 802.11 Physical Layer Model in YANS (Future NS-3) Network Simulator),主要是讨论如何在NS3中模拟802.11物理层的模型。该资料中,提供了很多不同种类的物理层模型,以及参数,由于笔者在做仿真的时候,需要采用一些跨层仿真的方法,从这份资料里面算是得到不少启发,故记录一下。
实现类
1.深入理解Android:WiFi模块 NFC和GPS卷
这本书是朋友推荐的一本书,当时是为了学习802.11安全协议的部分。由于直接从openwrt的角度来分析802.11源码的书很少,所以这本从andriod的角度分析源码的书也是挺好的。

2.基于XILINX FPGA的OFDM通信系统基带设计
该书是比较完整的叙述了802.11a的基带在FPGA上实现的书,虽然调源码的时候发现可能会发现有一些错误,但是总体上而言,这本书的知识结构也是较为完整的,笔者对于802.11在FPGA实现的英语材料没有怎么阅读过,故从这本书上也算获取了不少知识,总体感觉也是不错的。
3.Linux Kernel Networking
该书主要是描述了Linux内核中网络的实现部分,其第12章具体就是对应无线模块。由于描述Linux内核中无线模块资料比较少,所以这本书也是比较推荐的,只不过对于细节部分,该书描述不是特别细致,不过总体还是不错的。
4.Linux Wi-Fi open source drivers-mac 802.11
该材料比较完整的叙述了从kernel到802.11驱动底层的一个函数调用过程,用来学习802.11具体驱动过程是一份比较好的材料。
5.通信IC设计
这份本书内容感觉目前是除了MATLAB 2016a/b代码以外,对802.11物理层最为详尽描述的材料了(在该书下册)。该书也有附带的相应代码。该书目前只有纸质版,有可以自行阅读。
历史类
1. The Innovation Journey of Wi-Fi (The Road to Global Success)
这一份是描述802.11协议诞生以来到被广泛推广这一段时间以来的大致发展历史,其第二作者Vic Hayes在1990-2000年期间作为IEEE 802.11的主席,对这一块历史了解应该是非常深入的。
驱动开发类
1. Programming with Libpcap - Sniffing the Network From Our Own Application
pcap开发的学习资料,我们一般都是直接用抓包软件进行抓包,或者如果编程之类的,在无线侧也是直接配合python+scapy或者lorcon之类的软件,很少有直接关注pcap库的,本篇文章是对libpcap做一个简介,对于深入了解抓包原理是比较有帮助的。
2. Linux Wireless架构总结
这份资料没有一个明确的名字,主要是关于无线架构方面,包含了关键数据结构,各层间关键数据接口,USB 无线适配器枚举过程等过程的缩略图,可以参考下。
3. linux 无线网络系统
该资料实际上还没有写全,可能是当作作者没有持续更新的,作者大致整理了Cfg80211的一些过程,因为这方面的资料比较少,所以笔者还是把资源整理到这里。
4. The mac80211 subsystem for kernel developers
这份资料比较好,标题就是适用于内核开发者看的802.11开发指南,主要关注的是内核侧关于802.11开发的资料。之前我们介绍过一本资料《Linux Kernel Networking》,这本书对于Wi-Fi内核开发虽然也有解读,但是信息没有这份资料全。
5.Linux Wi-Fi open source drivers-mac 802.11
这一份资料上一次就整理过的,这次因为是关于驱动开发方面再整理下,所以又放了一遍。该材料比较完整的叙述了从kernel到802.11驱动底层的一个函数调用过程,用来学习802.11具体驱动过程是一份比较好的材料。
6. The mac80211 TX Path
这是关于mac80211部分具体发送过程的流程图,虽然资料的信息不多,但是这个流程图还是挺有用的,有的时候用数据包inject之类出问题的时候,可以参考做进一步调整。
7. Analysis of Open Source Drivers for IEEE 802.11 WLANs
这是一篇paper,虽然作为学术论文而言,创新点不大,仅仅是一个知识总结。但是作为一份入门的802.11驱动开发资料,还是可以的,文中基本列举关于802.11驱动开发的一些基础知识,苦于这个范畴一直都没有特别好的教材,所以这一份资料也可以参考下。
OpenWRT开发类
在上次的书目到现在之间,又出了基本关于openwrt开发的中文书,所以这里总结下。
1. 智能路由器开发指南
这本书实际上内容不是很深,都是关于一些基础的openwrt开发知识,不过内容倒是很实用了,作为一个openwrt上层的开发者,后者入门的话,还是很适合的,不过对于细节,比如说驱动之类的,信息就很少了。更加适合新手学习。
2. OpenWrt智能路由系统开发 - 跟hoowa学智能路由
这本书在面世之前,笔者已经读过其word版本的,不过当时并不知道这个是准备出版的书哈。这本书相对比上面一本,信息会多一些。不过可能还是偏向于openwrt的开发者。整体架构还是不错的,内容也比较广,比较适合入门开发使用。

本文为原创文章,如需转载须注明出处和原文链接。

欢迎大家关注我们的微信公众号:无线技术大讲堂,请搜索公众号(must_wireless)。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK