简介:面向无线网络入门者与需要梳理基础概念的读者,这份《wifi 基础知识讲解.doc》围绕WLAN与IEEE 802.11协议展开,重点回答无线网络有哪些特点、协议如何演进、常见术语怎么理解等问题,也可作为3G/4G与wifi知识衔接的辅助材料。资源包内仅含1个doc文档,压缩后约88KB,体积轻便,适合快速查阅和离线阅读。文档从有线与无线网络的差异切入,说明半双工通信、误码与重传、抓包安全、功耗和吞吐量等要点,并梳理802.11a/b/g/n的频段、速率与演进关系,提及802.11n的信道合并、MIMO与OFDM等改进;同时解释LAN、WAN、WLAN、AP、Station、SSID、BSSID、BSS、DS等术语,说明Station与AP的关联过程以及分布式系统在接入点之间转发帧的作用。已有280人学习,便于读者建立从基本概述到协议和术语的入门框架,对准备网络课程或排查无线连接问题有一定参考价值。
1. 半双工的代价:wifi 基础知识里最容易被跳过的那一页
翻 wifi 基础知识资料时,多数人的注意力会落在「802.11n 能跑 600Mbps」「5GHz 更干净」这类结论上,而真正决定体验的一句话往往被划过去:无线链路是半双工的,同一时刻、同一信道上只能有一个设备在说话。这句话听起来朴素,却几乎解释了后面所有的设计——为什么要先关联再通信,为什么单播帧必须回 ACK,为什么隐藏节点要靠 RTS/CTS 提前清场,为什么抓包时看到的大半是管理帧和控制帧而不是数据帧。把 wifi 和 3G/4G 蜂窝、和以太网摆在一起看会更清楚:以太网是全双工交换、误码率低到可以只在 TCP 层兜底重传;wifi 不行,它必须在网络层以下自己造一套确认与重传机制。读懂这套「自己兜底」的机制,才算真的入门。
2. 速率是怎么一层层堆上去的:频段、信道宽度与 MIMO 的分工
2.1 频段、信道、信道宽度,是三个层级别混着说
802.11 的几代协议,本质上是在「用多宽的频谱、用什么调制方式、用几根天线」这三个维度上做加法。802.11a 在 1999 年 9 月制定,工作在 5GHz,频段宽度 325MHz,最大速率 54Mbps,但当年叫好不叫座,实际部署很少;802.11b 几乎同期,稍晚一点落地,工作在 2.4GHz,频段宽度 83.5MHz,最大速率只有 11Mbps,却因为便宜和穿墙能力好而大范围铺开;802.11g 在 2003 年 6 月把 2.4GHz 上的速率拉到 54Mbps;802.11n 直到 2009 年才被正式批准,2.4GHz 和 5GHz 双频都能工作,最大速率标到 600Mbps。
| 协议 | 制定时间 | 频段 | 频段宽度 | 最大速率 |
|---|---|---|---|---|
| 802.11a | 1999.9 | 5GHz | 325MHz | 54Mbps |
| 802.11b | 1999.9 | 2.4GHz | 83.5MHz | 11Mbps |
| 802.11g | 2003.6 | 2.4GHz | 83.5MHz | 54Mbps |
| 802.11n | 2009 批准 | 2.4GHz / 5GHz | 双频 | 600Mbps |
这三个概念必须分层理解。Band 是频段,指 2.4GHz 还是 5GHz 这一级的划分;一个 AP 如果两个频段都能同时开启而不是互斥,它就等于同时建了两个无线网络,像收音机在长波和短波上各收各的。Channel 是对频段的进一步切分,把一整段频率范围再划成若干小段,每段一个信道,配置里常见的「5.18GHz」「Auto(DFS)」都是信道这个层级的取值。Channel Width 则是这个小段本身有多宽,20MHz、40MHz 说的就是它。很多人配 AP 时把 Channel 和 Channel Width 当成一回事,结果调了半天发现干扰没变——因为改的是中心频点而不是带宽。
信道的使用在国际上有约定,一部分无需授权即可使用,一部分属于授权频段,不允许在里面发射,否则会干扰该信道上其他数据。这也是为什么 2.4GHz 这么拥挤:除了 wifi,微波、红外、蓝牙(走 802.15 协议)都在这个范围里工作,它们互相把对方的信号识别成噪声,谁也听不懂谁。
注意:2.4GHz 频段总共 83.5MHz,按 20MHz 一个信道切下来只有四个出头,实际工程上普遍按 1、6、11 三个中心频点错开部署,因为相邻信道之间存在频率重叠,看着是五个信道,实际能互不干扰的只有三个。
配置里的 Channel 常常有个「Auto」选项,意思是 AP 上电后自己扫描周围环境,挑一个干扰最小的信道,一旦选定通常就不再变动。这个设计很省事,代价是它只在启动那一刻做决策——楼上邻居晚上换了个信道,你的 AP 是不会知道的,一整天都待在那个被踩烂的频点上。
2.2 HT-40 与 MIMO:一个换频域,一个换空域
802.11n 相比前几代最大的变化不在调制,而在 MAC 层动了刀子,原文点出了两个关键改进。第一个是信道合并:传输数据时把两个相邻信道并成一个 40MHz 的宽信道再发,这就是 HT-40(high through)。吞吐在很大程度上取决于 Channel Width 有多宽,把 20MHz 变成 40MHz,理论上直接翻倍。这个思路非常「暴力美学」——不改进编码效率,直接多占一倍频谱。
代价也很直接。40MHz 在 5GHz 上还算奢侈得起来,在 2.4GHz 上基本是灾难:整个频段才 83.5MHz,你一个人占掉 40MHz,剩下的人只能在残羹里挤。所以实际部署中,2.4GHz 通常强制锁 20MHz,40MHz 留给 5GHz。配置界面里选了 20MHz 之后再选一个 5.18GHz,表示以 5.18GHz 为中心的前 10MHz 和后 10MHz 被一起占用——这个细节在很多设备的说明里写得含糊,但它决定了你实际吃掉了多少频谱。
第二个是 MIMO,多输入多输出。它让两对天线可以在同时、同信道上传输数据,而两者不相互干扰。这听起来违反直觉:同一时刻同一频率,两份信号叠在一起,凭什么能分开?答案在 OFDM 调制上——正交频分复用把一条信道切成大量互相正交的子载波,所谓「正交」在数学上就是:在一个子载波的积分周期内,其他子载波的积分为零。因此接收端可以用一组相关器把交叠在一起的子载波逐个「捞」出来,而不像模拟时代那样只能靠滤波器硬掰。常见的实现思路是:空间上分开的两路数据流各自调制到同一组子载波上,接收端有多根天线,靠信道估计矩阵把混在一起的信号解回原来的两路,这就是空间复用的基本框架。
一句话概括两者的分工:HT-40 用频域换速率,MIMO 用空域换速率,前者受限于频谱法规和邻居,后者受限于天线数量和射频链路成本。802.11n 的 600Mbps 是这两个手段叠加再加上 4 流、40MHz、短 GI 之后的乘积结果,缺一个条件就打折。
2.3 Datarate 和 Throughput:标称 600Mbps 为什么到手只剩一半
这是最容易被误解的一个点。Datarate 是理论上最大的数据传输速率,出现在协议表和包装盒上;Throughput 是实际能达到的最大吞吐量,出现在你测速的时候。两者之间隔着一整套协议开销:每帧前面的前导码、MAC 头、帧间距(SIFS/DIFS)、随机退避窗口、每个单播帧都要回的 ACK、周期性广播的 Beacon,以及不可避免的重传。原文给的经验值是实际最大吞吐约为理论的 50%,这个数字不算精确但方向正确。
一个粗略的对照能帮人建立手感:网络上一般的视频码率也就 4Mbps 左右,高清视频所需吞吐约 30Mbps。也就是说,一条理论 54Mbps 的 802.11g 链路,跑高清已经开始紧张了,而标称 600Mbps 的 802.11n 在干扰环境下退化到 100Mbps 出头属于常态。理解了这一点,就不会再拿「路由器标 1200M,为什么测速只有 400M」当成设备坏了——那是标称和实测本来就该有的差。
另外一个常被忽略的因素是半双工共享。整个 BSS 里所有 station 和 AP 共享同一个信道,任何时刻只有一方能发。接入的设备越多,碰撞概率越高,退避等待的期望时间越长,有效吞吐掉得比带宽本身还快。这也是为什么在会议室里加一个 AP 往往比调高功率更有效。
3. SSID、BSSID 与分布式系统:一个帧怎么找到它该去的地方
3.1 SSID 给人看,BSSID 给机器看
SSID 是一个子网的名字,无线路由用这个名字向外标识自己的网络。设备扫描时把周围的 SSID 收集起来,用户从列表里挑一个连上去;理论上不扫描也行,直接指定一个已知的 SSID 也能连。SSID 是可以重复的,扫描列表里出现两个同名网络很正常——这通常是为了扩大覆盖:把一个无线网络的范围撑大,就给多个 AP 配同一个 SSID,用户从一头走到另一头,名字没变,连接自动切换过去。这就是漫游的基本原理。
BSSID 则是另一回事。它是 48 位地址,格式和 MAC 一样,用来标识一个 BSS,通常就是所在 AP 的射频 MAC 地址。SSID 是网络的名字,给人看的;BSSID 是给机器看的。两者并不一一对应:一个 BSSID 在不同的 Channel 上可能对应多个 SSID,但在同一个 Channel 上是一一对应的。漫游的时候现象最明显——SSID 始终不变,BSSID 一定发生变化,因为背后换了物理射频。
实际抓包时最容易犯的迷糊是:抓到的 AP 地址和机身上贴的 MAC 地址对不上,或者只差最后几位。这跟无线路由器的硬件形态有关。一个同时具备路由和 AP 功能的设备(俗称 Fat AP)上往往有两个 MAC,一个用于外网 WAN 口,一个用于内网(WLAN 和 LAN),而机身标签和配置页面通常只标注外网那个。两个 MAC 一般只差几位,甚至连续。所以看到两个几乎相同的 MAC 地址,第一反应应该是「同一台设备的不同角色」,而不是「这里有两台 AP」。
3.2 BSS 与 DS:为什么所有流量都必须绕一圈 AP
BSS(Basic Service Set)是 802.11 无线网络的基本组件,由一组相互通信的工作站组成。它有两种形态:IBSS 也就是常说的 Ad Hoc,组网是临时的,通信方式是 Station 对 Station 直连;另一种是基础结构型网络,通信方式是 Station ↔ AP ↔ Station,所有无线设备想通信,都必须经过 AP 中转。日常说的 wifi 基本都是后一种。
为什么非要绕这一圈?因为覆盖范围和功率不对等。两个 station 可能相距很远,彼此的射频够不着,但都在 AP 的覆盖内,于是由 AP 做二跳中继。这个设计的代价是空口资源被消耗两次(一次上行一次下行),有效吞吐减半;好处是网络可控、可以做集中调度和功率管理。理解这一点,就能明白为什么两个人在同一个 AP 下互相传文件,速度永远比不上插网线。
再往外一层是 DS,分布式系统。它是 802.11 的逻辑组件,负责把帧转发到目的地址,但 802.11 标准本身并不规定它怎么实现,所以各家产品用桥接引擎加分步式系统媒介自己搭。DS 有三个要点:骨干网络(一般是以太网,也可以是无线媒介 WDS)、桥接器(有线和无线两个网络接口的 AP 里就含它)、以及 AP 之间必须互相传递与之关联的工作站信息。最后这点是关键——外部路由只认识 station 的 MAC 地址,不知道这个 MAC 挂在哪台 AP 下面,只有让所有 AP 把「谁在我这儿」的信息互通,DS 才知道该把帧往哪个口送。
所以一个帧从 A 到外网的完整路径是:A 发给 AP(To DS),AP 的桥接器把它塞进骨干网,骨干网上的路由器按 MAC 转发,回来的帧再从骨干网到 AP,AP 再发给 A(From DS)。DS 不等于 AP,它是 AP 之间以及 AP 与外界之间的那套转发体系,只是从 station 的视角看,DS 的表现就像 AP。
3.3 扫描与关联:Beacon 和 Probe 的两条路径
设备加入网络前得先知道网络存在,这有两种方式。被动扫描是等 AP 定期广播 Beacon 帧,这个间隔就是 Beacon Interval,一般用默认值就行,不必特别调。Beacon 里除了 SSID,还带着 Power Save、Region 等信息。主动扫描是 station 自己发 Probe Request,在能覆盖的范围内询问有没有 AP,AP 收到后回 Probe Response——这就是通常说的「找接入点」。
提示:Beacon 一旦停发,扫描端就可能发现这个 SSID 时有时无,已经建立的连接也会跟着断。所以调 Beacon Interval 是在拿「发现速度」换「空口开销」,间隔拉太长,新设备接入会变慢;调太短,管理帧又会挤占本就不宽裕的信道。
关联(Associate)是正式入网的动作。Association Request 里带着自己需要的 Channel 和 Data Rate 等状态,让 AP 判断是否接纳;关联成不成功,看 Response 里的 Status code 是不是 Success。这里有一个历史包袱值得说清楚:抓包时会发现 Authentication 阶段一开始居然是 Open 的,也就是无鉴权,连接在那一瞬间其实已经建好了,随后才用 802.1X/EAP 之类的安全协议做二次认证,认证不过就立刻把刚建立的关联踢掉。这套「先连后验」的流程看着别扭,是因为最初的 802.11 没有充分考虑安全,后来的标准为了兼容老设备只能这么叠上去。
Region 参数也在这条链路上传递。AP 上配置了所处地区之后,这个信息会被塞进 Beacon 帧;station 从 Beacon 里读到地区规定,据此调整自己的发射功率。如果 AP 一开始就设错了 Region,station 会按错误的规范选频段和功率,可能干扰该地区其他传输,这在实际运维里属于必须纠正的配置项。
4. 帧结构与字节序:DS 两位字段如何决定地址怎么解析
4.1 管理帧、控制帧、数据帧的分工
802.11 的帧分三类。管理帧负责维持网络的存在和成员关系,典型是 Beacon 和 Association;控制帧负责协调空口的使用权,典型是 RTS、CTS、ACK;数据帧是承载数据的载体,它独有的 DS 字段用来标识方向。帧头里的类型字段标识这一帧属于哪一类,抓包工具就是靠这个做第一层分类。
ACK 帧值得单独拎出来看。它是单播的,帧里有接收地址字段,标明这是在确认谁,但它没有源地址,也没有序号。原因在于无线协议的冲突避免机制:一发完单播帧,除了那个接收者,其他人都不会在这个窗口里抢发,所以接收者只要回一个「收到了」,发送方就能凭上下文知道这是给自己的 ACK。按协议的规定,发送单播帧和收到对应 ACK 应当被看作一个原子的、不可分割的整体,它俩合起来才算一次成功的通信。反过来,广播帧和组播帧不需要确认——Probe 是广播帧,所以它没有对应的 ACK,回复它的是 Probe Response;而 ACK 本身虽然是单播的,却不需要再被确认,否则就无限递归了。
判断一个帧是单播、组播还是广播,看目的 MAC 第一个字节的最低位:为 0 是单播,为 1 是组播,前两位都是 1 是广播。这里有个坑,MAC 是 Pattern 不是数值,没有大小端之分,也没有谁比谁大这回事。比如a8:27:26:...:b7,第一个字节 a8 写成二进制是 10101000,它的「最低位」是最右边那个 0,所以这是个单播地址。
4.2 To DS / From DS 的四种组合
数据帧的方向由 DS 字段的两位标识,这两个位分别叫 To DS 和 From DS,只存在于数据帧里,控制帧和管理帧里这两位全零。把 DS 大致理解成 AP 是可以的,但更准确的说法是:To/From 是从 DS 的角度看的,To DS 就是「让 AP 干活」,也就是上行。
| To DS | From DS | 含义 | 典型场景 |
|---|---|---|---|
| 0 | 0 | Station 之间的直连,或控制帧、管理帧 | Ad Hoc、Beacon、ACK |
| 0 | 1 | Station 接收的帧 | AP → Station,Download |
| 1 | 0 | Station 发送的帧 | Station → AP,Upload |
| 1 | 1 | 无线桥接器上的数据帧 | WDS 组网 |
这四种组合的真正意义在于地址字段怎么解析。802.11 的 MAC 头最多有四个地址位:地址 1 永远是接收方,地址 2 永远是发送方,这两个位置固定;地址 3 的含义随 DS 组合变化,可能是 BSSID,也可能是最终目的地址或最终源地址;地址 4 只在 To DS=1 且 From DS=1 的 WDS 场景才出现。用一段精简的结构体来表达最直观:
/* 802.11 数据帧 MAC 头关键字段,只保留与 DS 解析相关的部分 */ struct ieee80211_hdr { uint16_t frame_control; /* b0-1 协议版本 | b2-3 类型 | b4-7 子类型 * b8 ToDS | b9 FromDS | b10 MoreFrag * b11 Retry | b12 PwrMgmt | b13 MoreData * b14 Protected | b15 Order */ uint16_t duration; /* 占用信道的时长,接收方据此更新 NAV 计数器 */ uint8_t addr1[6]; /* 接收方,永远存在 */ uint8_t addr2[6]; /* 发送方,永远存在 */ uint8_t addr3[6]; /* 随 DS 组合变化:BSSID / 最终目的 / 最终源 */ uint16_t seq_ctrl; /* 高 12 位序号,低 4 位分片号 */ /* addr4 仅在 ToDS=1 && FromDS=1 时出现 */ };duration字段是虚拟载波侦听的基础,谁听到这个值就把自己的倒计时设成它,这段时间内不发言,这就是 NAV。seq_ctrl里的序号是排查重传的关键:重传帧的序号和原帧完全一样,只是把frame_control里的 Retry 位置 1。看到序号连续但 Retry 频繁置位,说明链路误码严重,问题在物理层而不在协议层。
4.3 字节序:协议图是小端,字段值是大端
这是读 802.11 规范时最容易翻车的地方。以太网和 802.11 在物理线路上都按字节传输,一个字节一个字节地发,先发低位字节,所以整体帧格式的描述采用小端:|b0|b1|b2|b3|...|,最低位 b0 画在最前面。但在解释某个具体字段的取值时,规范又切成大端来描述。
举个例子就清楚了。假设 b3=0、b2=1、b1=0、b0=0 四个位共同组成一个叫 FLAG 的域,规范里会写成「FLAG=4(即 0100),表示 XXX」——这里按大端书写,b3b2b1b0 = 0100。可实际传输时走的是小端顺序,b0b1b2b3 = 0010。同一个字段,读格式图是一个数,读字段说明是另一个数,抄错一次就够 debug 一整天。
比特序和字节序还得分清。以太网线路上按 Big Endian 传字节(最高字节先传),而字节内部按 Little Endian 传比特(最低位先传)。所以一个写成01-80-C2-00-00-00的 MAC 地址,实际传出去的比特流是1000 0000 0000 0001 0100 0011 0000 0000 ...——每个字节都被从右往左翻了。至于内存,地址是用来标记字节的,位没有地址,所以讨论内存布局时只说字节序:32 位小端机器存十六进制的00000001,由低地址到高地址依次是01、00、00、00。而 Wireshark 展示时统一按b7b6b5b4b3b2b1b0的顺序组织,跟线路上的比特序正好相反,但它会自动做这层转换,你只需要知道自己看的是哪一层。
5. 抓包与配置的常见坑:五类高频翻车现场的现象、成因与处置
5.1 为什么普通网卡抓不到「别人的包」
先要接受一个事实:机器上的软件抓无线网卡的包时,抓到的帧目的地址基本都是本机网卡,因为不是发给它的帧在网卡硬件层就被过滤掉了。想抓所处无线环境里所有的包,得配专用嗅探设备,再交给抓包工具分析。这类硬件在市面上不便宜,从几百到上千美金,好处是既能当嗅探器也能当普通无线网卡用,当嗅探器时会抓取所有经过它的帧。它历史上只在特定桌面系统上有驱动,所以要配合对应的抓包软件使用;另一套思路是在支持监听模式的网卡上跑命令行工具,分析思路是一样的。
工具只是前提,判断才是核心。拿到一堆帧之后,第一步不是找内容,而是判断这个包是否完整正确:只要校验位对不上,这个包就是错的,接收端当时在哪里出了差错已经无从得知,分析价值几乎为零,直接排除。第二步是确认嗅探信道和实际传输信道一致——因为干扰等原因,在 Channel 1 上嗅探却抓到 Channel 2 的包,这种事真的会发生。
过滤器的分工也要理清。抓包时设的是 capture filter,用 BPF 这种通用过滤语言描述,不是某款工具专有的语法;但抓包期间的过滤有时候不准,稳妥做法是先把所有帧抓下来,再用显示过滤器(display filter)做筛选,复杂条件还能用宏封装起来。保存的时候也分两种:按显示过滤保存还是按抓取过滤保存,选错了下次打开会少一半东西。
5.2 五条踩坑记录
现象一:抓了半天,只有自己的流量,同网段其他设备一个都看不见。原因:无线网卡默认只上报目的地址为自己的帧,没有进入监听模式;即便开了监听,不少消费级网卡在驱动层也不支持完整的射频监听。 解决:确认网卡和驱动是否支持监听模式,不支持就换专用嗅探硬件;同时确认抓包工具选的是无线接口而不是以太网接口。
现象二:抓下来的帧一大半报 checksum 错误,分析无从下手。原因:无线环境误码本来就高,加上嗅探器所在信道和 AP 实际工作信道不一致,或者 AP 开了信道自动切换而嗅探器没跟着走。 解决:先把校验错误的帧全部过滤掉只看合法帧;然后固定 AP 信道和嗅探信道,关掉 Auto,让两端都待在一个确定频点上。
现象三:能抓到帧,但内容完全看不出来是什么,全是 Data。原因:帧里 data protected 位置位,说明载荷被加密了。这里要区分两个概念——「访问网络需要密码」和「数据帧被加密」不是一回事,前者是接入控制,后者是链路层加密。 解决:如果手上有 PSK,可以在抓包工具里配置解密参数试着还原;但只能解自己知道密钥的那条链路,别人的流量解不开,这一点不要抱幻想。
现象四:抓到的 AP 地址跟设备标签对不上,或者两个 AP 的地址只差最后几位。原因:抓包里出现的是 BSSID,而设备标签上印的往往是 WAN 口的 MAC;一台 Fat AP 本身就可能虚拟出多个 MAC,分别对应内外网接口。 解决:按 BSSID 归并设备而不是按标签;再看 sequence 是否连续,如果一个设备虚拟出的两个地址上的序号能接上,基本可以确认是同一射频。
现象五:在 40MHz 信道上抓包,大量丢帧甚至完全抓不到。原因:嗅探硬件的芯片固件对 40MHz 带宽支持很差,这是硬件限制而非配置问题。 解决:退回到 20MHz 复现问题,或者在特定信道上抓并手动设置 offset+1;如果一定要在 40MHz 上抓,只能在少数几个固定信道上尝试。
5.3 用命令行直接看连接状态
有些设备带命令行环境,一行命令就能把当前连接的关键标识吐出来,比抓包快得多:
# 查询当前无线连接状态,输出中重点看以下几个键 wpa_cli status # ssid= 网络名,给人看的 # bssid= 所在 AP 的射频地址,漫游时会变,SSID 不变 # freq= 当前频点,可反推信道与所在频段 # key_mgmt= 鉴权方式,PSK 还是 802.1X # wpa_state= COMPLETED 表示四次握手已经完成bssid和freq这两项配合起来能快速定位很多问题:如果freq落在一个拥挤的 2.4GHz 频点上,而ssid又有多个同名设备,那大概率是漫游粘滞——设备死抱着一个远端 AP 不放。另外还有更底层的调试命令,上层命令通常通用,下层命令往往绑定特定芯片厂商,换一颗芯片就用不了了,这也是为什么同一套排查脚本在不同设备上表现不一致。
6. 安全与兼容的拉扯:三代加密背后的取舍
无线安全的演进史,本质上是一部「兼容性拖后腿」的历史。WEP 在 1999 年 9 月作为 802.11 标准的一部分通过,用的是 RC4 加密,很快被发现有若干结构性弱点,2003 年被 WPA 淘汰。WPA 是 Wi-Fi 联盟制定的商业化标准,目的是支持以技术为导向的 802.11i,它换上了新的 TKIP 算法——但 TKIP 保留了 RC4 的内核,所以那些弱点并没有真正消失。为什么明知有弱点还要用?因为更好的 CCMP 当时还没完成,只能先拿 TKIP 顶一阵。WPA2 是 WPA 的第二个版本,采用 CCMP 加密协定,到 2004 年完整的 802.11i 落地,这一代才算把账还清。所以安全性最强的组合是 WPA2 + AES——不少设备在配置加密算法时用 AES 这个字眼代替 CCMP,指的是同一件事。
| 加密方式 | 底层算法 | 状态 | 兼容代价 |
|---|---|---|---|
| WEP | RC4 | 1999 年标准,2003 年被淘汰 | 802.11n 草案不支持,启用后回落 b/g |
| WPA | TKIP(保留 RC4) | 过渡方案 | 性能与安全性均不及 WPA2 |
| WPA2 | CCMP / AES | 802.11i 完整标准 | 需要设备支持,老设备可能不认 |
还有一个命名上的迷雾值得拨开:配置界面里常见的 WPA-Enterprise / WPA2-Enterprise,其实就是 WPA / WPA2 走 802.1X/EAP 的鉴权模式,需要 RADIUS 服务器;而 WPA-Personal / WPA2-Personal 就是 WPA-PSK / WPA2-PSK,用预共享密钥代替 802.1X/EAP,不需要验证服务器。家用和小型办公场景选 PSK 就够了,Enterprise 那套是给需要按人发账号的环境准备的。
真正体现取舍的是那条不那么显眼的规则:WEP 工作于 802.11b/g 模式,802.11n 草案并不支持它。也就是说,一台支持 N 的设备一旦启用了 WEP,它会自动降级到 b/g 模式跑,N 的全部性能优势——HT-40、MIMO、600Mbps——统统作废。很多人抱怨换了新路由速度没提升,最后发现是加密方式还停在十年前。顺带说,有些路由器在配置时并不严格按这套规则来,比如选了 WPA 还能再选 AES,看着矛盾,实际是厂商在兼容性和易用性之间和稀泥。
同类的取舍遍布整个参数表。Fragmentation Threshold 调小,一个大数据包被切成若干小片,出错时只需重传一片而不是整包,在误码率高的环境里成功率高得多,代价是每片都要额外的头部标记,还要在接收端重组,开销直线上升。RTS Threshold 调低,超过阈值就先发 RTS 清场,能显著缓解隐藏节点带来的碰撞,代价是每次通信前多两个控制帧,小包场景下纯属浪费。Beacon Interval 调长能省空口,但新设备发现网络变慢;DTIM Interval 决定休眠 station 多久醒一次查缓存,调大省电但延迟变高——ping 一台休眠中的机器,响应时间比平时长一大截,就是这个参数在起作用。这些参数没有普适的最优值,只有针对当前环境的解。
我早年在一个会议室环境里吃过亏:为了「优化」把 Fragmentation Threshold 调到很小,想着重传代价低,结果会议投屏卡成幻灯片,抓包一看全是分片和重组开销。从那以后我每次动这类阈值之前,都强制走一遍「先抓包建立基线、只改一个参数、再抓包对比」的流程,绝不凭感觉一次改三个。无线这东西,玄学感大多来自同时改动了多个变量,剩下的才是真的物理限制。
希望帮到你。
本文还有配套的精品资源,点击获取