Wi-Fi是一套无线网络协议族群,它基于IEEE 802.11 标准族群,在设备通信和互联网连接中广泛应用,如咖啡厅、酒店、图书馆、机场等大家最常见的公共场合都通过Wi-Fi技术为客户的通信工具提供互联网连接。大多数常见的Wi-Fi运行在2.4 GHz和5 GHz频段,而这些频段又会被细分为多个信道,此外,同一个信道还可以被多个网络共享。IEEE 802.11 标准族定义了Wi-Fi的技术规范,该家族囊括了不同版本的Wi-Fi技术标准,例如802.11a、802.11b、802.11ax等,不同的技术标准代表了不同的频率和最高连接速度,见表4-1,Wi-Fi 6E之后才开始支持6 GHz的频率。日常生活可能经常会看到“5G Wi-Fi”或“Wi-Fi-5G”的字样,表示的是工作在5 GHz频率的Wi-Fi网络。通常来说,Wi-Fi工作的频率越高,其速率更高,信道干扰更小。但信号传播时的衰减会比较大,较难穿透墙体等障碍物。这些Wi-Fi标准代表了不同时期的发展和技术进步,用户应根据其设备和网络需求选择适当的Wi-Fi类型。同时,新的Wi-Fi标准可能会带来更多先进的功能、性能提升。
表4-1 Wi-Fi版本
注:① Wi-Fi 0、1、2、3的版本称呼由推演得来,并不存在于官方的命名中。
Wi-Fi通信的原理涉及数据的转换、调制、信号传输、解调、分包、加密等多个部分,这些步骤协同工作,使得设备能够通过无线信道进行高效的数据通信。例如在Wi-Fi通信中,负责将数据分割为小数据包的是TCP和IP协议,小数据包经由通信链路传输到目标设备后,由目标设备上将它们重新组装完整。Wi-Fi通信通常包括安全协议,例如WPA2、WP3 等,这些安全协议确保数据的机密性、完整性,同时它们使用加密算法保护数据免受未经授权的访问和截获。
一般来说,Wi-Fi数据包结构遵循着IEEE 802.11 标准,不同的帧类型具有不同的结构。如图4-2所示是一个典型的Wi-Fi数据包(帧)结构,其主要包括以下几个部分:
(1)帧控制字段(frame control):标识帧的类型和控制信息,包括帧的子类型、是否加密、是否有数据等。
(2)持续时间字段(duration ID):用于指定当前帧占用的传输时间,协调网络中其他设备的传输。
(3)接收地址字段(address):包含接收器的MAC地址,可以是单播、多播、广播地址。
(4)帧体(frame body):包含实际的数据负载,可以是传输的数据、管理帧的信息等。
(5)FCS字段(frame check sequence):包含帧的错误检测序列,通常使用循环冗余检测(CRC)来检测数据传输过程中的错误。
图4-2 Wi-Fi数据包格式
图4-3 802.11i规定的四次握手示意
在802.11i标准中规定了Wi-Fi通信的4 次握手,其示意图如图4-3所示,4 次握手基于一个共享的密钥提供请求方(supplicant,通常是客户端)和验证方(authenticator,通常是基站或接入点)的双向认证,该共享密钥在标准中定义为pairwise master key(PMK),由SSID、Wi-Fi密码等元素计算得到。
此外,请求方和验证方通过4 次握手协商一个全新的会话密钥,该会话密钥在标准中定义为pairwise transient key(PTK)。首先,验证方通过向请求方发送包含着ANonce信息的消息1 来发起4 次握手;当请求方收到消息1 后,SNonce就会产生,同时PTK也被计算出来;随后将SNonce通过消息2 发送给验证方;验证方获得SNonce后,同样会计算PTK,并且向请求方发送一个群密钥(grouptransient key,GTK),即消息3;最后,请求方会向验证方回复消息4,并且装载PTK和GTK;验证方在收到消息4 后也会装载PTK(GTK在接入点启动时就已经装载),从而结束握手。