802.11 帧格式和分类详解

帧类型

802.11帧主要有三种类型:
在这里插入图片描述

管理帧

它的主要作用是维护接入点和无线客户端之间的通信,管理帧框架拥有以下子类型:

  • Authentication

  • De-authentication

  • Association Request

  • Association Response

  • Reassociation Request

  • Reassociation Response

  • Disassociation

  • Beacon

  • Probe Request

  • Probe Response

控制帧

控制帧是负责客户端和接入点的数据交换,类型为:

  • Request to Send (RTS)
  • Clear to Send (CTS)
  • Acknowledgement (ACK)

数据帧

携带传输的数据的帧,类型主要有:

  • DHCP
  • TCP
  • HTTP
  • EAPOL-Key
  • 802.11 Flag
  • 等等

802.11 帧格式

802.11帧的最大长度2346个字节,结果如下:
在这里插入图片描述

802.11帧—Frame Control

在802.11帧的开头,占2个字节共8bit位。
所有帧的开头均是长度两个元组的Frame Control位,如下图所示:Frame Control位包含以下bit位。
在这里插入图片描述

  • Protocol(协议版本)
    上图中,协议版本的值为0,因为这是目前唯一的版本,未来可能会出其他新的版本。

  • Type:
    管理帧的Type值为00。
    控制帧的Type值为01。
    数据帧的Type值为10。

  • Subtype(子类型):
    此位代表发送帧的子类型。
    在这里插入图片描述
    在这里插入图片描述

  • To DS 与From DS
    分别表示无线链路向无线工作站(如AP)发送的帧和无线工作站向无线链路发送的帧。

  • More Fragments(更多片段)
    用于说明长帧被分段的情况,是否还有其它的帧。若较上层的封包经过MAC 分段处理,最后一个片段除外,其他片段均会将此bit 设定为1。

  • Retry(重试)
    有时候可能需要重传帧。任何重传的帧会将此bit 设定为1,以协助接收端剔除重复的帧。

  • Power Management(电源管理)
    此bit 用来指示、完成当前的帧交换过程后,发送端的电源管理状态。
    为1表示STA处于Power_save模式,为0表示STA处于active模式。

  • More Data(尚有数据)
    More Data bit 只用于管理数据帧,在控制帧中此bit 必然为0。

  • Protected Frame(受保护帧)
    为1表示帧体部分包含加密处理过的数据,为0则表示没有进行加密处理。
    在这里插入图片描述

  • Order(次序)
    帧与帧片段可依序传送,不过发送端与接收端的MAC必须付出额外的代价,对帧片段进行严格编号。一旦进行“严格依序”传送,此bit被设定为1。
     

Duration/ID 位

在802.11帧第2位,占2个字节,共8bit位。
Duration(持续时间)位用来记载网络分配矢量NAV得值。
访问介质时间限制是由NAV所指定。
在这里插入图片描述
当第15 个bit被设定为0时,Duration/ID位就会被用来设定NAV。此数值代表目前所进行的传输预计使用介质多少微秒。
工作站必须监视所收到的任何帧头,并据以更新NAV。
任何超出预计使用介质时间的数值均会更新NAV,同时阻止其他工作站访问介质

802.11帧—Address

地址字段包含不同类型的MAC地址,地址的类型取决于帧类型。
在这里插入图片描述
举例:
在这里插入图片描述

  • Address 1
    代表帧接收端的地址。
    在某些情况下,接收端即为目的地,但不然如此。
    目的地是负责处理帧中网络层封包的工作站。 而接收端是负责将无线电解码为802.11 帧的工作站。
    如果Address 1 被设为广播或组播地址,则必须同时检查BSSID(基本服务组合识别码)。工作站只会应答来自同一个基本服务组合(basic service set,简称BSS)的广播或组播信息;至于来自其他不同BSS 者则加以忽略。
  • Address 2
    发送端的地址,用来发送应答信息。
    在某些情况下,发送端即为源地址,但不然如此。
    源地址是指产生帧中网络层协议封包的工作站;而发送端则是负责将帧发送至无线链路。
  • Address 3
    Address 3 位则是供基站与传输系统过滤之用,不过该位的用法,取决于所使用的网络类型。
  • Address 4
    Address 4 一般不使用,只有在WDS(无线分布系统)中才会使用。
     

802.11帧—Seq-Ctl(顺序控制位)

在这里插入图片描述

此位占16bit位,用来重组帧片段以及丢弃重复帧。它由4个bit的fragment number(片段编码)位以及12个bit的sequence number(顺序编号)位所组成。

  • fragment number(片段编号)在上层封包被切割处理时使用,第一个片段的编号为0。其后每个片段依序累加1,方便帧进行重组。所有帧片段都会具有相同的顺序编号,如果是重传帧,则顺序编号不会有任何改变。

  • sequence number(顺序编号)位的作用,相当于已传帧的计数器取4096 的模(modulo)。此计数器由0 起算,MAC 每处理一个上层封包就会累加1。
    如果发生重传,则顺序编号不变,便于进行帧处理,丢弃重复帧。
    主要是将我们发送的帧进行编号,对重新传输的帧进行刷选,保证帧的正确性。

802.11帧—Frame Body(帧主体)

Frame Body 称为数据位,负责在工作站之间传输上层数据(payload)。
802.11帧最多可以传输2312个bit组的上层数据
在这里插入图片描述
Frame Body包含了SSID、Channel、TX、RX等信息
在这里插入图片描述

802.11帧—FCS(帧检验序列)

802.11帧以FCS作为结束,FCS让工作站得以检查所收到的帧的完整性。在这里插入图片描述
在以太网上,如果帧的FCS有误,则随即予以丢弃,否则就会传送给上层协议处理。在802.11网络上,通过完整性检验的帧还需接收端送出应答。
例如,接收无误的数据帧必须得到正面应答,否则就必须重传。
对于未能通过FCS检验的帧,802.11并未提供负面应答机制;在重传之前,工作站就必须等候应答超时。

帧类型细分

管理帧

管理帧的主体所包含的固定位与信息元素是用来运送信息。管理帧有好几种分别负责链路
层各种维护功能。

Beacon(信标)帧

在这里插入图片描述

  • Beacon 帧是相当重要的维护机制,主要用来宣告某个网络的存在。
  • 定期发送的信标,可让移动工作站得知该网络的存在,从而调整加入该网络所必要的参数。
  • 在基础型网络里,基站必须负责发送 Beacon 帧。 Beacon 帧所及范围即为基本服务区域。在基础型网络里,所有沟通都必须通过基站,因此工作站不能距离太远,占则便无法接收到信标。

检测要求(probe request)帧

在这里插入图片描述

  • 移动工作站将会利用 Probe Request(检测要求)帧,扫描所在区域内目前有哪些 802.11
    网络
  • Probe Request 帧包含两个位: SSID 以及 Supported Rates(移动工作站所支持的速率)。
    收到 Probe Request 帧的工作站会据此判定对方能否加入网络。为了相处愉快,移动工作站必
    须支持网络所要求的所有数据速率,并以 SSID 表明所欲加入的网络。 SSID 可设定为特定网络
    的 SSID,或设定为任何相容网络的 SSID。允许网卡加入任何网络的驱动程式,将会在 Probe
    Requests 中使用 broadcast SSID(广播形式的服务集合识别码)。

检测应答(probe response)帧

在这里插入图片描述

  • 如果 Probe Request 帧所探查的网络与之相容,该网络就会以 Probe Response 帧应答。
    送出最后一个 Beacon 帧的工作站,必须负责应答所收到的检测信息。在基础型网络里,负责应
    答的工作站即为基站。在 IBSS 当中,工作站会彼此轮流发送 Beacon 信号。发送 Beacon 信号
    的工作站必须负责发送 Probe Response 帧, 直到下一个 Beacon 被发送出来。 Probe Response
    帧的格式如图 4-53 所示。 其中某些位彼此互斥; 此规则同样适用于 Probe Response 以及 Beacon帧
  • Probe Response 帧中包含了 Beacon 帧的所有参数,移动工作站可据以调整切入网络所需
    要的参数· Probe Response 帧可以剔除 TIM 元素,因为此时工作站尚未建立连接,因此不必知
    道哪些连接在基站中有暂存帧

IBSS的数据待传指示通知信息(ATIM)帧

在这里插入图片描述
HISS 中没有基站,因此无法仰赖基站暂存帧。 IBSS 中的工作站如果为处于休眠状态的接
收者暂存帧,就会在递送期间送出一个 ATIM 帧,通知对方有信息待阵,如图 4-54 所示。

解除连接和解除认证(Disassociation 与 Deauthentication)

  • Disassociation(解除连接)帧用来终结一段连接关系。
  • 而 Deauthentication(解除认证)帧则用来终结一段认证关系。
  • 两者均包含一固定位, Reason Code(原因代码),如图 4-55 所示。当然, Frame Control 位彼此不同,因为不同类型的管理帧拥有不同的次类型。 802.11 改版并不需要改变这一格式,但几次修订均加入了新的原因代码。
    在这里插入图片描述

连接要求( Association Request)

一旦移动工作站找到相容网络并且通过身份认证,便会发送 Association Request(连接要
求)帧,试图加入网络。 Association Request 帧的格式如图 4 一 56 所示。
在这里插入图片描述

  • Capability Information(性能信息)位用来指出移动工作站所欲加入的网络类型。在接受连
    接要求之前,基站会验证 Capability Information、 SSID 以及( Extended) Supported Rated
    等位是否符合网络参数。此外,基站也会记录工作站所使用的 Listen Interval(聆听间隔;即移
    动工作站每隔多久聆听一次 Beacon 帧,以监视 TIM 信息)。支持频谱管理的工作站具备 power
    (功率)与 channel(信道)性能信息元素,支持安全防护的工作站则具备 RSN 信息元素。

重新连接( Reassociation Request)

在这里插入图片描述

  • 位于相同扩展服务区域,但在不同基本服务区域之间游走的移动工作站,若要再次使用传
    输系统, 必须与网络重新连接。 如果工作站暂时离开基站所涵盖的范围, 之后要重新加入的时候,也必须重新连接。如图 4-57 所示。
  • association Request(连接要求)与 Reassociation Request(重新连接要求)之间的差别
    在于,后者包含移动工作站目前所连接之基站的地址。拥有这项信息可让新旧基站彼此联系,以
    及交接连接数据。交接项目包括先前连接之基站所暂存的帧。

连接应答与重新连接应答( Association Response 与 Reassociation Response)

在这里插入图片描述

  • 当移动工作站试图连接基站时,基站会回覆一个 Association Response(连接应答)或
    Reassociation Response(重新连接应答)帧,如图小 58 所示。两者之间的差别,在于 Frame
    Control 位所记载的 subtype 位。 所有位均属必要。 在应答的过程中, 基站会指定一个 Association ID(连接识别码),至于指定的方式则因实作而异。

认证( Authentication)

在这里插入图片描述

  • 802.11 网络发展初期,工作站是使用共享密钥以及图 4-59 所示的 Authentication 帧进行身
    份认证。到了 802.11i,共享密钥身份认证虽然仍保留在标准当中,但却无法与新的安全机制相
    容。如果工作站使用共享密钥身份认证,将不允许使用较为牢靠的安全性协议
  • 不同的身份认证算法可以同时存在。 Authentication Algorithm Number(身份认证演算法编
    号)位用于选择演算法。整个认证程序可能包含好几个步骤(与所使用的算法有关),因此认证
    的过程中每个帧都有其序号。 Status Code 与 Challenge Text 的用法因算法而异

Action

  • 802.11h 加入了 Action 帧的支持,用来触发测量动作。这些帧将于 8.8 节<频谱管理>详加
    描述

控制帧

控制帧主要在协助数据帧的传递。它们可用来监督无线介质的访问(但非介质本身),以
及提供 MAC 层次的可靠性。

RTS(请求发送)

RTS 帧可用来取得介质的控制权,以便传输「大型」帧。至于多大称之大型:是由网卡驱
动程式中的 RTS threshold(门限)来定义。介质访问权只能保留给单点传播( unicast)帧使用,而广播( broadcast)与组播( multicast)帧只须发送便是了。 RTS 帧的格式如图 4-13 所示。就和所有控制帧一样, RTS 帧只包含标头。帧主体中并未包含任何数据,标头之后即为 FCS(帧检查码)。
在这里插入图片描述
RTS 的 MAC 标头由四个位构成:

  • Frame Control(帧控制)
    Frame Control 位并没有任何特殊之处。帧的 subtype(次类型)位设定为 1011,代表 RTS
    帧。除此之外,它与其他的控制帧具备相同位。(在 802.11 规格书中,最高效 bit 乃是最后一
    个 bit,因此在 subtype 位中,第 7 个 bit 代表最高效 bit。)
  • Duration(持续时间)
    RTS 帧会试图预定介质使用权,供帧交换程序使用,因此 RTS 帧发送者必须计算 RTS 帧结束后还需要多少时间。图 4-14 说明了整个交换过程,总共需要三个 SIFS、一个 CTS、最后的 ACK,加上发送第一个帧或帧片段所需要的时间。( fragmentation burst〔片段宣泄期〕会使用后续的帧片段来更新 Duration 位。)传输所需要的微秒数经过计算后会置于 Duration 位。假使计算的结果不是整数,就会被修正为下一个整数微秒。
    在这里插入图片描述
    Address 1 位; Receiver Address(接收端地址)
    接收大型帧的工作站的地址。
    Address -2 位: Transmitter Address(发送端地址)
    RTS 帧的发送端的地址。

CTS(允许发送)

CTS 帧有两种目的,其格式如图 4-15 所示。起初, CTS 帧仅用于应答 RTS 帧,如果之前
没有 RTS 出现,就不会产生 CTS。后来, CTS 帧被 802. 11g 防护机制用来避免干扰较旧的工作站。此防护机制和 802.11g 的其他数据
在这里插入图片描述
CTS 帧的 MAC 标头由三个位构成:

  • Frame Control(帧控制)
    帧的 subtype(次类型)位被设定为 1100,代表 CTS 帧。
  • Duration(持续时间)
    用来应答 RTS 时, CTS 帧的发送端会以 RTS 帧的 duration 值作为持续时间的计算基准。
    RTS 会为整个 RTS-CTS-frame-ACK 交换过程预留介质使用时间。不过当 CTS 帧被发送出后,
    只剩下其他未帧或帧片段及其回应待传。CTS 帧发送端会将 RTS 帧的 duration 值减去发送 CTS
    帧及其后短帧间隔所需的时间,然后将计算结果置于 CTS 的 Duration 位。图 4-16 显示了 CTS
    duration 与 RTS diratopm 的关系。
    在这里插入图片描述
  • Address 1 位: Receiver Address(接收端地址)
    CTS 帧的接收端即为之前 RTS 帧的发送端,因此 MAC 会将 RTS 帧的发送端地址复制到
    CTS 帧的接收端地址。 802.118 防护作业所使用的 CTS 帧会被发送给发出 RTS 的工作站,而
    且只用来设定 NAV。

ACK(应答)

ACK 帧(图 4-17)就是 MAC 以及任何数据传输(包括一般传输 RTS/CTS 交换之前的帧、
帧片段)所需要的正面应答( positive acknowledgment)。服务质量扩展功能放宽了个别数据帧必须各自得到应答的要求。
在这里插入图片描述
ACK 帧的 MAC 标头由三个位构成:

  • Frame Control(帧控制)
    帧的 subtype(次类型)位被设定为 1101,代表 ACK 帧。
  • Duration(持续时间)
          依照 ACK 信号在整个帧交换过程中位居何处, duration 的值可以有两种设定方式。在完整
    的数据帧及一连串帧片段的最后一个片段中, duration 会被设定为 0。数据发送端会将 Frame
    Control(帧控制)位中的 More Fragments(尚有片段) bit 设定为 0,表示数据传输已经结束。
    如果 More Fragments bit 为 0,表示整个传输已经完成,没有必要再延长对无线信道的控制权,
    因此会将 duration 设定为 0。
           如果 More Fragments bit 为 1, 表示尚有帧片段仍在发送中。 此时 Duration 位的用法和 CTS
    帧中的 Duration 位相同。发送 ACK 以及短帧间隔所需要的时间,将由最近帧片段所记载的
    duration 中减去。如果不是最后一个 ACK 帧, duration 的计算方式类似 CTS duration 的计算方
    式。事实上, 802.11 的规格书将 ACK 帧中的 duration 设定称为虚拟 CTS。
  • Address 1 位: Receiver Address(接收端地址)
    接收端地址是由所要应答的发送端帧复制而来。技术上而言,它是由所要应答 帧的
    Address 2 位复制而来。应答主要是针对数据帧、管理帧以及 PS-Poll 帧。
    在这里插入图片描述

PS-Poll(省电模式一轮询)

当一部移动工作站从省电模式中苏醒, 便会发送一个 PS-Poll 帧给基站, 以取得任何暂存帧。PS-Poll 帧的格式如图 4-19 所示。
在这里插入图片描述
PS-Poll 帧的 MAC 标头由四个位构成:

  • Frame Control(帧控制)
    帧的 subtype(次类型)位被设定为 1010,代表 PS-Poll 帧。
  • AID(连接识别码)
    PS-Poll 帧将会以 MAC 标头的第三与第四 bit 来代表连接识别码(association ID)。连接
    识别码是基站所指定的一个数值, 用以区别各个连接。 将此识别码置入帧, 可让基站找出为其(移动工作站)所暂存的帧。
  • Address 1 位: BSSID
    此位包含发送端目前所在 BSS 的 BSSID,此 BSS 建立自目前所连接的 AP。
  • Address 2 位: Transmitter Address(发送端地址)
    此为 PS-Poll 帧之发送端的 MAC 地址
    在 PS-Poll 帧中并未包含 duration 信息,因此无法更新 NAV。不过,所有收到 Ps-Poll 帧
    的工作站,都会以短帧间隔加上发送 ACK 信号所需要的时间来更新 NAV。此一自动调整机制使
    得基站在发送 ACK 信号时,比较不会与移动基站发生碰撞。

【 连接识别码(AID)在 PS-Poll 帧中,Duration/ID 位是连接识别码,而非虚拟载波侦测
功能所使用的数值。当移动工作站与基站连接时,基站会从 1-2,007 范围内指派一个值来做为连接识别码(AID)】

帧的状态和等级

所能发送的帧类型,依连接状态与身份认证状态而有所不同。工作站可能已经认证或未经认证,也可能己经连接或尚未连接。这两个变数的组合有三种可能状态,结果构成了 802.11 的网络发展层级:

  1. 初始状态;未经认证且尚未连接
  2. 已经认证但尚未连接
  3. 已经认证且已经连接

每种状态分别对应到 802.11 连接的发展阶段。一开始,移动工作站处于状态 1,只有进入状态 3 才可以通过传输系统发送数据。(IBSS 不包含基站,也无须进行连接,因此只会停留在状态 2。) 802.11 帧传输的整体状态图,如图 4-60 所示。
在这里插入图片描述

帧可以被划分为三种等级。在状态 1 可以传递第 1 级帧;在状态 2 可以发送第 1 与 2 级帧;
在状态 3 则可以传递第 1、 2 与多级帧。

第 1 级帧

第 1 级帧可以在任何状态中传递,它让 802.11 的工作站得以进行基本作业。 在 IBSS 当中,控制帧主要用来依循 CSMA/CA 规则,以及发送帧。工作站也会使用第 1 级帧来找寻基础型网络,并与之进行身份认证。表 4-11 列出了属于第 1 级的各种帧。
在这里插入图片描述

第 2 级帧

工作站只有在经过身份认证之后,方能够发送第 2 级帧,而且第 2 级帧只能使用于状态 2与状态 3。 2 级帧主要用来管理连接。线或重新连接成功后,工作站就会进入状态 3;如果连接失败,则工作站依然处于状态 2。工作站收到未经认证的作站所传来的第 2 级帧时,就会应答一 个 Deauthentication(解除认证)帧,将对方推回状态 1。表 4-12 列出了所有的第 2 级帧。
在这里插入图片描述
第 3 级帧
第 3 级帧的使用时机,是在工作站认证成功并与基站连接之后“一旦工作站进入状态 3,就
可以使用传输系统服务,也可以和基站范围以外的对象进行通讯。在状态 3,工作站还可以利用PS-Poll 帧享受基站所提供的省电服务。表列出了不同类型的第 3 级帧。
在这里插入图片描述
如 果 所 收 到 的 帧 , 来 自 一 部 已 经 验 证 但 尚 未 连 接 的 工 作 站 , 基 站 就 会 应 答 一 个Disassociation(解除连接)帧,迫使工作站回到状态 2。如果发出帧的工作站尚未经过验证,则基站会应答一个 Deauthentication(解除认证)帧,迫使工作站回到状态 1。
 
 
 
原文地址:https://www.cnblogs.com/rougungun/p/14340489.html 转载请注明出处,做个合格的程序猿,非常感谢!

posted @ 2021-01-28 16:23  肉滚滚和代码  阅读(1787)  评论(0编辑  收藏  举报