802.11
一、802.11对应的iOS分层
首先简单回顾一下IOS模型的7层结构:
Layer 7: APPlication
Layer 6: presentation
Layer 5: session
Layer 4: Transport
Layer 3: Network
Layer 2: Data-Link
LLC sublayer
MAC sublayer
Layer 1: Physical
PLCP
PMD
相对于802.3以太网协议,802.11协议主要是对Layer1和Layer2两层进行定义,从无线网卡进来的包携带的是无线报文头部,从有线网卡进来的包携带是有线报文头部,两种包只要将他们的头部和尾部校验都去掉就剩下需要传输的有效数据域playload。所以当数据帧去除头部进入到Layer3以后,是分不出该包是有线报文还是无线报文的,因为这些报文都统一看作是IP报文或TCP报文。
802.11协议只对物理层和数据链路层进行了定义,数据链路层又分为逻辑链路控制层和媒介访问控制层,理清这些分层的关系,将有助于我们后面的分析。其实物理层也分两层,后面介绍。
1. 数据链路层
MAC Service Data Unit (MSDU):当一个数据包从Layer3传到Layer2数据链路层的时候,在LLC会添加一些内容(比如前面提到过的一些加密信息)形成MSDU,需要注意的时候,802.11协议有规定三种类型的帧,控制帧、管理帧和数据帧,只有数据帧才会在LLC中形成MSDU,一般MSDU的最大size是2304(不含加密信息部分)
MAC Protocol Data Unit (MPDU) :当MSDU移交到MAC层的时候,就会给他添加上MAC头部信息和尾部FCS校验信息,这时就形成了一个802.11无线帧,也就是我们平常无线抓包所看到的帧。
2. 物理层
物理层也分两层:Physical Layer Convergence Procedure (PLCP)和Physical medium Dependent (PMD)
当MAC层的MPDU移交到PLCP层的时候,它就有一个新的身份,叫PSDU(PLCP Service Data Unit),其实MPDU和PSDU是同一个东西,只是在门的两边叫法不一样而已。
所以当PLCP层接收到PSDU的时候,它将给这个帧添加一个前导同步码和PHY头部形成PPDU(PLCP Protocol Data Unit )。
然后PPDU会移交到PMD层,根据不同的算法调制成一串0/1比特流进行发送。
下图就是无线报文发送和接收的基本过程:
二、 802.11 帧类型
802.11协议有规定三种类型的帧,分别时管理帧,控制帧和数据帧。
1.管理帧
有线通信和无线通信的最大区别是什么?那就是有没有用网线!有线客户端如果想连接某个网络,只要将网线接到对应的路由器上就好了,但是无线客户端想完成这个“接入”动作应该怎么办呢?这就需要管理帧的帮忙,管理帧的主要工作就是管理无线客户端的接入和断开。有线连接并不太需要管理帧的帮忙,插拔网线的动作也很简单,但是无线接入却复杂得多。管理帧是不带上层payload信息的,但是它携带一些固定大小的Information felds和可变大小的Information elements (IE)。
管理帧主要包括下面这些种类:
Association response
Reassociation request
Reassociation response
Probe request
Probe response
Beacon
Announcement traffic indication message (ATIM)
Disassociation
Authentication
Deauthentication
Action
2.控制帧
有线通信和无线通信另外一个区别是传输媒介的稳定性,无线因为传输媒介是电磁波,容易受到各种干而变得不稳定,为了保证数据的稳定传输,就需要控制帧的帮忙。控制帧不仅可以控制传输的速率,还可以用来清空通道(CTS/RTS),协商channel(DFS/ACS)和提供单播通知(PS-Poll/ACK)等功能。
Power Save Poll (PS-Poll)
Request to send (RTS)
Clear to send (CTS)
Acknowledgment (ACK)
contention Free-End (CF-End)
CF-End + CF+ACK
Block ACK Request (BlockAckReq)
Block ACK (BlockAck)
3.数据帧
在802.11协议中,大部分数据帧都是通过携带MSDU来传输数据的,当然有一些特殊用途的空帧不会携带MSDU(比如用来通知power save status的帧),所以传输时不会对它进行加密。一般来说,控制帧、管理帧和空的数据帧都是不需要加密的。数据帧的类型主要包括下面这些:
Data (simple data frame)
Null function (no MSDU payload)
Data + CF-ACK
Data + CF-Poll
Data + CF-ACK + CF-Poll
CF-ACK (no MSDU payload)
CF-Poll (no MSDU payload)
CF-ACK + CF-Poll (no MSDU payload)
QoS data
QoS Null (no MSDU payload)
QoS data + CF-ACK
QoS data + CF-Poll
QoS data + CF-ACK + CF-Poll
QoS CF-Poll (no MSDU payload)
QoS CF-ACK + CF-Poll (no MSDU payload)
这里简单介绍了一下802.11都会用到哪些帧,后面将对这些帧的格式以及作用做详细分析。
相关阅读
用gdb调试程序笔记: 以段错误(Segmental fault)为例
用gdb调试程序笔记: 以段错误(Segmental fault)为例[转]1.背景介绍2.程序中常见的bug分类3.程序调试器(如gdb)有什么用4.段错误(S
第三部 我要扼住命运的咽喉,它决不会使我完全屈服! 这里是引用 孙少平手里提着醋瓶,一个人静静地沿着铁路往回走。现在,他面对满山遍
控制的含义 控制(CONTROL)----某个主体使某个客体按照一定的目的动作。主体–人:人工控制; 机器:自动控制客体–指一件物体,一套装置,一
四控:质量控制、投资控制、进度控制、变更控制。三管:合同管理、信息管理和安全管理。一协调:沟通协调。根据工程监理的深入程度不同
数据库的基本操作分类:1、数据库的查询及查询语句;2、数据库数据修改;select union单独数据的查询:"%":表示任意0个或多个字符