
简介围绕 Wi-Fi 基础知识整理的这份 doc 文档面向无线网络入门者以及需要补齐基础概念的开发、运维人员重点解决 802.11 协议脉络不清、常见术语混淆等问题。内容从有线与无线网络差异切入梳理 Wi-Fi 灵活、便捷但半双工、易抓包、功耗较高等特点并依次介绍 802.11a/b/g/n 各协议的工作频段与速率演进解释 LAN、WAN、WLAN、AP、Station、SSID、BSSID、BSS 及分布式系统等常用概念便于读者建立从网络组件到通信流程的基础认知。压缩包内共 1 个 doc 文件大小约 88KB适合作为课堂笔记、入职自学或查阅术语时的轻量资料。目前已有 280 人学习可帮助读者快速对照协议参数与术语含义为后续无线抓包、组网调试和故障排查打下概念基础。1. 别急着背术语wifi 到底是什么为什么值得零基础先学一遍很多人第一次被 wifi 卡住不是在配置路由器的时候而是在某个深夜手机显示信号满格视频却在转圈重启一下路由器又莫名其妙地好了。你打开管理页面看到 Auto、20/40MHz、RTS 阈值、Beacon 间隔这一堆选项手悬在鼠标上不敢点怕一点就断网。这也是我建议零基础的人先花两小时过一遍 wifi 基础知识的原因它并不是什么高深学问更像一张地图让你看懂这些选项出问题时知道先看哪里。说白了wifi 是一套“设备之间怎么用无线电聊天”的约定。你手机里的网卡和家里那台路由器靠 802.11 这套协议商量谁先说话、说到哪、说错了怎么重来。学它不用先啃完厚厚的标准文档只要先认清几个角色、记住几个数字就能自己动手验证。2. 先认清谁是谁AP、Station、SSID 与 BSSID 的角色分工新手最容易犯的错是把“路由器”“wifi”“网络名”当成一回事。它们其实是三个层级的东西一个是物理设备一个是协议一个是给人看的标签。这一章先把角色分清后面所有参数你才不会看晕。2.1 一个最简家庭网络里到底有几个角色把家里的无线网络想成一场小会议室。会议桌旁坐着的手机、笔记本、平板在 802.11 里统一叫 Station工作站那台负责喊话、转发、维持秩序的设备叫 APAccess Point接入点AP 带着一圈 Station 组成的那一“桌”叫 BSS基本服务集而把好几个会议室连起来的那条走廊叫 DS分布式系统在家庭里它就是那根网线背后的以太网。名称中文用一句话理解AP接入点会议室主持人也管传达室Station工作站参会的人手机、笔记本都算BSS基本服务集一个 AP 带一圈设备组成的“一桌”DS分布式系统连接多个 AP 的骨干网通常是以太网Associate关联入场登记登记完才算进来在这个基础结构型网络里有一条规矩必须先记住所有 Station 之间的通信都要经过 AP 中转路径是 Station 到 AP 再到 Station。资料里还提到另一种临时组网叫 IBSS也叫 Ad Hoc设备之间直连不需要 AP入门阶段可以先放一边因为你家里那台设备百分之九十九跑的是基础结构型网络。DS 这块值得多说两句它是后面看懂数据帧方向的钥匙。DS 属于 802.11 的逻辑组件负责把帧转发到目的地址协议本身并没规定它用什么技术实现绝大多数商业产品是用桥接引擎加骨干网媒介拼出来的。它有三件事在干骨干网例如以太网当媒介接入点里的桥接器同时具备有线口和无线口像是有两个 MAC 地址外部路由只知道 Station 的 MAC 地址得靠 DS 才能查到这台设备挂在哪台 AP 下并正确送到。所以各个 AP 之间还要互相同步“谁挂在我这儿”的信息不然包会送错门。2.2 SSID 是给人看的名字BSSID 是给机器看的门牌号SSID 是你手机 wifi 列表里看到的那个名字它标识的是一个子网。设备扫描时把周围能听到的 SSID 列出来你点一个就连过去理论上你不扫描、直接手输已知的 SSID 也能连。这里有个新手常问的点为什么有的地方会扫出两个同名网络因为 SSID 允许重复当你嫌一台路由器的信号覆盖不够想扩大同一个无线网络的范围时给多台路由设置相同 SSID 就是这个目的漫游也是这个道理——从客厅走到卧室SSID 不变但背后服务的 AP 已经换了。BSSID 就不一样了它的格式和 MAC 地址一模一样是 48 位的十六进制地址一般来说就是所在接入点的 MAC 地址。一句话区分SSID 是给人看的BSSID 是给机器看的。它们不是一一对应关系同一个 BSSID 在不同 Channel 上可能对应多个 SSID但在同一个 Channel 上是一一对应的而漫游的时候SSID 保持不变BSSID 一定会变。所以判断“我到底连的是哪台 AP”看 BSSID 而不是看 SSID。顺便把 MAC 的结构也在这里理清。MAC 是介质访问控制属于数据链路层的一部分地址烧录在网卡里也叫硬件地址由 48 位组成也就是 6 个字节、12 个十六进制数字。其中 0 到 23 位叫组织唯一标志符 OUI用来识别厂商有些抓包工具会把前三个字节映射成厂商名称显示24 到 47 位由厂家自己分配。你在抓包里看到两个 AP 的 MAC 只差最后几位别惊讶那很可能就是同一台设备虚拟出来的多个地址无线路由器常见做法是外网一个 MAC、内网一个 MAC而设备外壳和配置页面上通常只印了外网那个。提示判断一个目标是单播还是广播看 MAC 第一个字节的最低位——最低位是 0 表示单播第一个字节最低位为 1 表示组播前两位都是 1 表示广播。MAC 是一串模式而不是一个数值所以没有大小端之分。2.3 第一次动手用三条命令看清你身边的 wifi概念讲完该动手了。这一步不需要任何额外硬件也不用改任何设置只是把刚才那些名词和你眼前的设备对上号。下面按系统挑一条执行就行命令都是只读的不会影响网络。# Windows查看本机当前连着的那个无线网络的详细信息 netsh wlan show interfaces这条命令的输出里重点看几个字段SSID 是你连的网络名BSSID 就是 2.2 里说的门牌号Signal 是信号百分比Radio type 会告诉你在跑 802.11n 还是别的Channel 是当前信道Authentication 是加密方式。把 BSSID 和 Channel 记在便签上后面调路由器时你会用到它。# Windows扫描周围所有 wifimodebssid 会把同一网络下所有 AP 的门牌号都列出来 netsh wlan show networks modebssid不加 modebssid 时你只看到网络名和信号格加上之后每个 SSID 下面会列出它所有的 BSSID、各自的信道和信号强度。这时候你就能亲眼看到“一个 SSID 对应多个 BSSID”是什么样子。# Linux先用 iw dev 确认你的无线网卡叫什么常见的是 wlan0 或 wlp3s0 iw dev # 再看这张卡当前连到了谁身上 iw dev wlan0 linkiw后面的dev是列出无线设备link是查看当前连接状态。如果你执行时报“No such device”八成是网卡名不对把 wlan0 换成iw dev第一条输出里那个 Interface 名字即可。# Linux扫描周围网络只挑出名字、门牌号、信道、信号质量四行来看 sudo iwlist wlan0 scan | grep -E ESSID|Address|Channel|Qualityiwlist的 scan 会输出很长一段用 grep 过滤是新手最省力的读法。注意 Address 那行显示的是 BSSID不是你的网卡地址。# macOS把无线网卡的整体状态一次性打印出来 system_profiler SPAirPortDataTypemacOS 的输出比较长找 “Current Network Information” 这一段里面就有 SSID、BSSID、Channel 和 Security 类型。第一次跑完你手上应该已经有三样东西自己连的 SSID、BSSID、信道。这就是后面所有实验的基准点。3. 协议和频段802.11a/b/g/n 四代怎么排2.4G 和 5G 差在哪有线和无线的关系值得先用一句话定位有线网络里最出名的是以太网走的是 IEEE 802.3wifi 属于 WLAN走的是 IEEE 802.11。两者网络层以上基本一致差别都在下面。这份资料整理到 802.11n 为止后面几代没有展开入门阶段先吃透这四代足够用了。3.1 四代协议一张表从 11Mbps 到 600Mbps对新手来说最省事的记法是把协议看成“代际”越新的一代理论速度越快、机制越聪明。协议制定时间工作频段频段宽度最大理论速率802.11a1999 年 9 月5GHz325MHz54Mbps802.11b1999 年 9 月稍晚2.4GHz83.5MHz11Mbps802.11g2003 年 6 月2.4GHz83.5MHz54Mbps802.11n2009 年获批2.4GHz 和 5GHz 均可视配置而定600Mbps802.11a 速率不低但当年流行不起来用的人少802.11b 慢却便宜铺得广802.11g 相当于在 2.4G 上补齐了速度802.11n 才是真正的转折点双频段都能跑理论速率一下冲到 600Mbps。它凭什么快两个关键改动一是允许在传数据时把两个信道合并成一个来用也就是常说的 HT-40信道越宽速率越高二是引入 MIMO 多输入多输出让两对天线能在同一信道上同时传数据还不互相干扰这背后靠的是 OFDM 这种特殊的调制技术。这也是为什么我在行里常听到一句话同样显示“信号满格”跑 802.11n 和跑 802.11g 的体感能差出一倍玄学感就是这么来的。这里必须分清两个词不然你调参数时会一直困惑。Data rate 是理论最大传输速率Throughput 是实际最大吞吐量。因为协议开销、厂家实现差异等因素实际吞吐一般只有理论值的一半左右。给个直观参照网络上一般清晰度的视频大约需要 4Mbps高清视频也就 30Mbps 左右所以你看到“600Mbps”时心里要自动打个折。3.2 Band 与 Channel把频段想成一排收音机旋钮Band 指频率范围。一台 AP 如果能同时设置 2.4G 和 5G 而不互斥它就相当于同时建了两个无线网络用的是不同频段很像收音机既能在长波范围收台、也能在短波范围收台互不干扰。Channel 是把频段再切细。把 5G 或 2.4G 的范围划分成几个小段每一段就是一个信道配置页上你会看到“5.18GHz”“Auto(DFS)”这类取值。不同信道上的数据只要覆盖范围不重叠就不会互相干扰。信道的使用在国际上有规定一部分信道无需授权即可使用另一部分是授权信道不允许随便往上发数据否则会干扰该信道上其他传输。2.4G 这一段特别拥挤这一点新手几乎都会踩坑蓝牙走 802.15 协议、微波炉、红外设备都在 2.4G 附近工作它们和 wifi 在不同协议下通信彼此把对方的信号当成噪声处理。这就是为什么你在厨房热饭时视频会卡一下也是为什么很多人换了 5G 之后觉得“世界清净了”。配置页上的 Channel 常有个 Auto 选项意思是 AP 启动时自己扫一遍周围环境挑一个干扰最小的信道选定后一般就不再变。新手建议先保留 Auto等你学会手动看图再考虑固定。3.3 Channel Width为什么 40MHz 不是永远更快Channel Width 是信道宽度常见取值有 20MHz、40MHz它表示一个信道片段的宽度。举个便于理解的算法假设 5G 频段总宽 100MHz平均切成 10 个互不重叠的信道那每个信道宽度就是 10MHz实际中信道并不一定完全不重叠。关键在于它不是想设多大就设多大。不是 802.11n 的协议可能根本没有 40MHz 这一档因为“把两个信道合并”正是 N 模式的特征。当你选了 20MHz再选一个 5.18GHz 的信道实际占用的就是以 5.18GHz 为中心的前后各 10MHz。所以这里有一条很实用的经验屋子里 AP 越多越应该把 Channel Width 收窄、把信道错开。因为干扰一起来协议本身会有协调机制比如让谁先发、谁等一会儿再发可一旦要靠这种“排队协商”来避让性能就下来了。我见过不少出租屋场景房东图快全设 40MHz结果晚上八点集体卡顿这就是典型的血泪经验。3.4 第二次动手给家里的信道做一次体检现在做一次真正有用的操作看看你家的 2.4G 挤不挤。回到 2.3 里那条netsh wlan show networks modebssid把输出里所有网络的信道列出来数一数每个信道出现了几次。在 2.4G 上新手只需要记住 1、6、11 这三个互不重叠的信道其余信道多少会和邻居叠上。信道中心频率建议12412 MHz可以固定使用62437 MHz可以固定使用112462 MHz可以固定使用3、4、8、9 等与相邻信道重叠尽量别固定在这些上面具体步骤第一步先按 2.3 的命令记录当前 BSSID 和信道第二步数一遍周围用 1、6、11 的各有多少个第三步登录路由器管理页面把 2.4G 的 Channel 改成数量最少的那个Channel Width 保持 20MHz第四步改完等一分钟再跑一次netsh wlan show interfaces确认 BSSID 和 Channel 变了测一下网速。如果改完更卡就改回去这一步没有任何风险只是要记得“改完必验”。4. 加密与关键参数WEP、WPA、WPA2 的前世今生和那几个不敢动的选项这一章解决的是另一种焦虑配置页上那些缩写到底该选哪个。先把结论放前面——今天你家里的路由器Security 选 WPA2 配 AES 就对了其他选项大多是历史包袱。4.1 WEP、WPA、WPA2三代加密的接力关系这里有个容易混淆的背景IEEE 802.11 制定的是技术性标准Wi-Fi 联盟制定的是商业化标准而商业化标准基本都符合 IEEE 的技术标准。WEP 是 1999 年 9 月通过的 802.11 标准的一部分采用名为 RC4 的加密技术它有好几个明显弱点所以在 2003 年被 WPA 淘汰WPA 是联盟推出的商业化安全标准目的是支持以技术为导向的 802.11i它采用新的 TKIP 算法但 TKIP 保留了 RC4所以弱点还在那会儿更好的 CCMP 还没做完只能先用 TKIP 顶着WPA2 就是 WPA 的第二个版本2004 年由完整的 802.11i 标准取代前者采用 CCMP 加密协定。有些设备在设置加密算法时不用 CCMP 这个词而是直接写 AES其实是同一件事。所以 WPA2 加 AES 是这套体系里安全性最强的组合。还有一组词你会常在参数里看到WPA-Personal 和 WPA-Enterprise。Personal 就是 PSK也就是预共享密钥、口令模式不需要专门的验证服务器特别适合家用和小型办公Enterprise 走的是 802.1X/EAP 那套需要额外的认证服务器配合一般出现在公司网络里。家里选 Personal 就够了。最容易翻车的一条放在最后WEP 是旧加密方式工作于 802.11b/g 模式下802.11n 草案并不支持它。也就是说如果你把一台 N 路由器设成 WEP 加密它会乖乖退回 b/g 模式跑N 的性能一点都发挥不出来。不少人抱怨“我明明买的是高速路由”问题就出在这一格。4.2 那几个不敢动的参数Beacon 间隔、DTIM、分片阈值Beacon Interval 表示无线路由定期广播 SSID 的时间间隔。AP 靠这个定时广播告诉周围“我在这儿”Station 进入一个区域后扫描到 Beacon 就知道有网络可连除了被动听广播Station 也可以主动发探寻包去问“这附近有 AP 吗”这就是我们平时说的扫描。这个值一般不用特别设置用默认即可。如果关掉广播Station 扫描时会发现这个网络时有时无很可能就直接断开了。DTIM Interval 和 TIM 一起管省电。为了省电池处于无线网络中的 Station 会在一定时间后自动休眠休眠期间 AP 替它缓存发给它的数据而它只在固定间隔醒来给 AP 发一帧确认有没有自己的数据。你在主机上 ping 一台正在睡眠的机器响应时间会明显比它醒着时长很多原因就在这里。Fragmentation Threshold 是分片阈值。一个数据包超过这个阈值802.11 就会自动把它切成几片发。因为无线环境在网络层以下出错的概率远高于有线切小片的好处是某一片出错只需重传那一片不用整个包重来坏处是每片都要额外标记、最后还要重组开销上去了。所以这个值不是越小越好默认值通常最稳。4.3 RTS/CTS 与隐藏节点为什么“信号满格还是卡”这是我认为整份资料里最值得新手读懂的一段因为它能解释很多看似无解的现象。想象同一个 AP 覆盖范围内有两个 StationA 和 B。它们离得很远各自在 AP 覆盖范围的两端彼此的信号够不着所以互相“看不见”但 AP 两边都能收到。这种互相不可见的节点叫隐藏节点。问题来了A 想发数据必须经 AP 转发B 也这么想而无线网络同一时刻不允许两个人同时传于是 A 和 B 同时发在 AP 那里撞车双方还都以为对方不存在。隐藏节点一多失败重传的概率就往上飙。解决办法就是 RTS 和 CTS。RTS 是请求发送CTS 是允许发送。A 要通信之前先广播一个 RTS 给 AP说“我要发了”收到 RTS 的其他 Station 就知道 A 要占场先闭嘴AP 收到 RTS 后广播 CTS告诉范围内所有 Station包括对 A 而言隐形的 B“A 要发数据了”B 收到后也会退让于是 A 可以无干扰地发送。顺带一提不同网络的工作站之间也能靠 RTS/CTS 清场。配置页上的 RTS Threshold 就是这个机制的门槛包超过阈值才启用设得太小会频繁握手拖慢速度设得太大等于形同虚设一般保持默认。4.4 第三次动手给自己家的加密和参数做一次核对登录路由器管理页面地址和账号通常在机身贴纸上按下面这张表逐项核对只改明显不对的项一次只改一项。参数建议值什么时候才需要改Security / 加密方式WPA2-Personal若现在是 WEP一定要改否则 N 速率白买加密算法AES即 CCMP设备只支持 TKIP 时才妥协Channel Width2.4G 用 20MHz独栋、周围 AP 很少时可试 40MHzChannel1 / 6 / 11 中占用最少的Auto 结果长期不变且卡顿时Beacon Interval默认基本不需要动Fragmentation Threshold默认信号极差、干扰极重时可小幅下调试RTS Threshold默认隐藏节点明显的场景可下调改完记得用 2.3 的命令复查一遍确认 Security 那一栏变成了 WPA2-Personal、Radio type 还是 802.11n。这一步看着琐碎但它能挡掉后面一大半“为什么我的网这么慢”的疑问。5. 抓包避坑新手最容易翻车的五个地方抓包是把前面所有概念落到实处的关键一步也是新手最容易受挫的一步软件装好了点开始屏幕上刷出几千行看不懂的东西。这一章先给一个最小可用的流程再列出五个最常见的坑每条都按“现象、原因、解决”说清楚。5.1 先搭对一次最小可用的抓包流程装机器的普通无线网卡抓包时其实你抓到的包目标地址都是本机网卡因为不是发给你的包都被网卡过滤掉了。想听整个无线环境的包需要专门的嗅探器硬件配合抓包软件使用这类设备可以当普通网卡用也可以当嗅探器用后者会抓下经过它的一切。最小流程是插好嗅探器打开抓包软件选中这块网卡开始抓先抓三十秒停保存再分析。分析时有个读图顺序要养成软件展示一个包时最前面几行是它为了方便你而加的全局信息比如包大小、时间、以及类似 BG1 这种标记表示这个包在 B/G 模式下的 1 号信道真正该看的是后面的 Header 和 Body 两部分那里才是按协议字段排布的内容。别被最上面那几行带偏这是新手最常犯的读图错误。5.2 坑一以为装了软件就能抓到别人的包现象兴致勃勃打开抓包软件看到的全是和自己有关的流量室友在下载什么完全看不到。原因普通无线网卡在硬件层面就把目的地址不是自己的帧过滤掉了这是网卡的工作方式不是软件设置问题。解决要么接受“只能抓自己”用它来验证自己这条链路要么使用支持监听的专用嗅探硬件。入门阶段我建议先用前者因为你自己的连接过程本身就足够学了。5.3 坑二抓下来一堆“坏包”越看越焦虑现象列表里大量条目被标成错误点开一片空白或者读不出内容。原因有两种一是校验位不对这类包在接收环节就已经出错你无法确定错在哪里几乎没有分析价值直接忽略二是这些数据本身被加密过帧里带有 data protected 字段没有密钥你当然看不出它是什么类型、干什么用的。解决先把校验错误的包全部过滤掉再区分“网络需要密码”和“数据被加密”这两件事它们不是一回事有密码连上网络不代表你抓到的数据帧就是明文。5.4 坑三在 1 号信道嗅探却抓到了 2 号信道的包现象明明把嗅探器锁在某个信道上抓出来的包却对不上号。原因无线环境里干扰无处不在嗅探器在物理层面可能收到邻近信道泄露过来的能量。解决不要看到一两个异常包就下结论先看主流量的信道标记是否一致分析结论只建立在占比绝大多数的那批包上。这也提醒你抓包前先记录当时的信道和宽度否则事后回看根本对不上现场。5.5 坑四看到“已连接”就以为认证结束了现象抓连接过程时前面一路顺畅看起来验证都通过了可网络就是用不了或者过一会儿掉线。原因802.11 早期对安全考虑不足认证开始阶段实际是 Open 的也就是无授权状态连接在形式上已经建立紧接着才会用类似 802.1X 的安全加强协议做二次鉴权如果这一步没过前面建立的关联会被立刻断开。解决看连接过程要看全流程把“关联成功”和“真正能通数据”当成两个阶段中间那段才是关键。5.6 坑五40MHz 的帧抓不全还以为是自己不会用现象在宽信道上抓包怎么都抓不到完整的帧各种丢。原因不少嗅探硬件对 40MHz 信道宽度支持不好这是设备固件层面的限制不是你的操作问题。解决如果非要抓就在 36 号或 40 号信道上抓并在软件里把信道参数设成 36、偏移量加 1平时偏移量都是 0这样能抓到这一处的宽信道帧其他信道上的宽信道帧依然抓不到认命就好。知道边界在哪比反复重装软件省时间。注意抓包时先看目的 MAC 判断这帧是广播还是单播。广播帧不需要确认比如探寻帧就没有对应的确认帧对它的回复叫探寻响应单播帧一般需要确认帧而确认帧本身是单播的却不需要再被确认它里面只有接收地址没有源地址和序号。6. 下一步学什么把一帧 Beacon 拆开看是最划算的进阶如果你只打算再花一个晚上我建议把时间全押在“帧”上。802.11 里的帧分三类管理帧负责维持关系比如 Beacon 帧、关联帧控制帧负责协调谁先说话比如 RTS、CTS、ACK数据帧是真正扛数据的载体它头部里的 DS 字段标识方向极其重要。帧头部的类型字段会告诉你这属于哪一类你只要会看这一个字段就能把满屏的包分成三堆。先啃管理帧里的 Beacon。它定时广播作用是告诉大家 AP 还在关联过程也要用到它里面还带着省电和地区等信息。看懂一个 Beacon你就同时理解了扫描、连接和地区限制这三件事。接着看关联帧它通常成对出现请求里带着自己需要的信道和速率让 AP 判断要不要收响应的状态码是不是成功决定你连不连得上。再往后是数据帧的方向这是我认为最值得背下来的一张表To DSFrom DS含义00Station 之间直连Ad Hoc或是管理帧、控制帧01从 AP 下发给 Station可以理解为下载10从 Station 发往 AP可以理解为上传11无线桥接器之间转发的帧把 DS 大致想成 AP 就好理解了To 和 From 都是从 AP 的角度说的。数据帧里还有个序号字段重传帧的序号不变只是多了一个重传标记看出这一点你就能区分“新包”和“重发的包”。真上手时用显示过滤器把范围缩小别硬看全量# 在抓包软件的显示过滤器栏输入只看管理帧type 为 0 wlan.fc.type 0 # 只看数据帧里由 AP 下发的那一类type 为 2DS 字段为 0x1 wlan.fc.type 2 wlan.fc.ds 0x1第一条里的type 0就是帧类型字段管理帧是 0、控制帧是 1、数据帧是 2第二条的ds 0x1对应上表里 From DS 为 1、To DS 为 0 的那一行。过滤器写错不会报错只会什么都不显示所以看到空列表先怀疑表达式别怀疑网卡。最后一个容易被忽略但会持续困扰你的点字节序。以太网和 802.11 在物理线路上都按小端方式传输一个字节一个字节发低位字节先走而协议标准在描述单个字段的取值时用的却是大端写法的数值。所以你会看到同一位段整体帧图里写成 b0b1b2b3字段说明里却写成 b3b2b1b0 对应的数值两边都对只是视角不同。我第一次对着标准文档抄字段时在这里整整卡了两小时最后发现自己把位的顺序当成了字节的顺序。从那以后我养成一个习惯每拆一个新帧先在纸上按字节画格子把每个字段占几位、是读整体还是读数值分别标清楚再回头对照抓包结果一次都不跳。希望这个笨办法也能帮到你。本文还有配套的精品资源点击获取