802.11 MAC架构

数据链路层

802.11数据链路层分为两个子层。上层是IEEE802.2逻辑链路控制(LLC)子层,底层是媒介访问控制(MAC)子层。

LLC和MAC

MAC服务数据单元MSDU

网络层(第3层)将数据发送到数据链路层,数据被移交给LLC后即称为MAC服务数据单元(MSDU)。MSDU包含LLC和第3-7层的数据

MAC协议数据单元MPDU

LLC将MSDU发送到MAC子层后,需要给MSDU加MAC头信息。被封装后的MSDU称为MAC协议数据单元MPDU,这也就是802.11帧。

物理层

物理层也分为两个子层。上层称为物理层汇聚协议(PLCP)子层,底层称为物理媒介相关(PMD)子层。PLCP为传输数据帧做好准备,将MAC子层的帧变为PLCP协议数据单元PPDU。PMD子层进行数据调制处理并按照比特方式进行传输。

数据链路层和物理层

三种802.11帧类型

管理帧

  • Association Request(关联请求)
  • Association Response (关联响应)
  • Reassociation Request(重关联请求)
  • Reassociation Response(重关联响应)
  • Probe Request(探测请求)
  • Probe Response(探测响应)
  • Beacon(信标帧)
  • ATIM(通知传输指示信息)
  • Disassociation(解除关联)
  • Authentication(身份验证)
  • Deauthentication(解除身份验证)
  • ACK(应答)
  • No ACK(无应答)
  • Timing advertisement

控制帧

  • Power Save Poll(PS-Poll)
  • RTS
  • CTS
  • ACK
  • CF-End
  • CF-End + ACK
  • Block ACK Request [BlockAckReq]
  • Block ACK [BlockQck]
  • Control wrapper

数据帧

  • Data
  • Null function
  • Data + CF-ACK
  • Data + CF-Poll
  • Data + CF-ACK + CF-Poll
  • CF-ACK(No data)
  • CF-Poll(No data)
  • CF-ACK + CF-Poll(No data)
  • QoS Data
  • QoS Null(No data)
  • QoS Data + CF-ACK
  • QoS Data + CF-Poll
  • QoS Data + CF-ACK + CF-Poll
  • QoS CF-Poll(No data)
  • Qos CF-ACK + CF-Poll(No data)

信标管理帧

信标管理帧,也就是Beacon。基本服务集(BSS)中无线AP发送Beacon,客户端侦听Beacon。客户端只有在加入独立基本服务集(IBSS)时才发送Beacon.

被动扫描

STA将侦听媒介中是否有与客户端软件使用程序配置了相同SSID的信标帧。一旦无线客户端听到该信标帧,便可以尝试连接发送信标帧的无线局域网。

主动扫描

客户端主动发送探询请求(probe request)的管理帧。包含特定SSID信息的探询请求帧被称为定向探询请求(direct probe request),不包含SSID信息的探询请求帧被称为空探询请求(Null probe request)

认证

开放式系统认证,共享密钥认证

漫游

当无线局域网存在多个无线AP时,有一种功能使得客户端从一个AP过渡到另一个AP时扔然保持上层应用程序的网络连接。这个功能称为漫游(Roaming)。

漫游的决定权由客户端决定,决定客户端是否漫游的规则由无线网卡制造商确定。客户端可以与多个AP认证,但是只和一个AP关联。当客户端移动并远离其原本关联的无线AP时,信号强度低于预定信号阈值,它将尝试连接到另一个AP,并从当前BSS漫游到新的BSS。

重关联

当客户端决定漫游到一个新的AP时,会发送reassociation到新AP。

电源管理

主动模式

主动模式(active mode)是大多数802.11终端默认的电源管理模式。时刻准备好传输或接受数据,并不提供电力节省功能。在802.11帧的MAC报头中,电源管理字段占用一位。值为0表示终端处于主动模式,可以比节电模式实现更高的吞吐量,但续航会缩短。

MAC报头中的电源管理位

节电模式

可以关闭某些收发器组件,比如天线等,从而节省电力。MAC报头电源管理位置为1表示正在使用节电模式。此时AP会缓存客户端所有的802.11帧。

频段引导Band steering

当双频客户端第一次启动时,它会在2.4G和5G发送探询请求帧来查找AP。当双频AP听到来自于同一客户端的两个频段的探询请求帧时,便知道客户端能够运行在5G频带。AP将仅响应使用5G频段的客户端,使用这种方法尝试引导客户端使用5G频段。通常情况下,客户端在2.4G和5G频段发送探询请求,但AP只在5G频段进行探询响应。尽管客户端被引导使用5G频段的AP,但仍有客户端使用2.4G频段连接AP。如果客户端持续尝试使用2.4G连接AP,AP最终会允许这个连接。可以查看我另一篇博客:

wifi双频优选


注:具体802.11帧格式,建议阅读CWAP,我后续也会继续也这个系列的学习笔记,待阅读后会把笔记链接附在此处。