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 的网络发展层级:
- 初始状态;未经认证且尚未连接
- 已经认证但尚未连接
- 已经认证且已经连接
每种状态分别对应到 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 转载请注明出处,做个合格的程序猿,非常感谢!