wifi基础

·3.3.3节介绍802.11中的物理组件和网络结构。
·3.3.4节将在物理组件和网络结构基础上,介绍802.11为无线网络所定义的服务。
·3.3.5节介绍802.11 MAC服务和帧方面的内容。这部分知识比较具体,相信读者理解起来没有问题。
·3.3.6节介绍MAC层管理实体方面的内容。清楚这部分内容有助于读者理解后续有关Linux Wi-Fi编程的知识。
·3.3.7节介绍802.11安全性方面的知识。


----------------------------------------------------------------------------------
802.11组件


1.物理组件 【WM, AP, STA, DS】
2.BSS ESS DS(有线网络,以太网)
3.BSS类型:
独立型BSS(Independent BSS):这种类型的BSS不需要AP参与。各STA之间可直接交互。这种网络也叫ad-hoc BSS(一般译为自组网络或对等网络)。
基础结构型BSS(Infrastructure BSS):所有STA之间的交互必须经过AP。AP是基础结构型BSS的中控台。
   这也是家庭或工作中最常见的网络架构。在这种网络中,一个STA必须完成诸如关联、授权等步骤后才能加入某个BSS。注意,一个STA一次只能属于一个BSS。
4.ESS中的BSS拥有相同的SSID
BSSID(BSS Identification):每一个BSS都有自己的唯一编号。在基础结构型网络中,BSSID就是AP的MAC地址,该MAC地址是真实的地址。
  IBSS中,其BSSID也是一个MAC地址,不过这个MAC地址是随机生成的。
SSID(Service Set Identification):一般BSSID会和一个SSID关联。BSSID是MAC地址,而SSID就是网络名。
5.portal


----------------------------------------------------------------------------------
1. 对数据传输来说,各服务的逻辑关系如下
DSS用于完成数据的传输。 【DS联合了各个DSS】 *******
由于有线和无线网络的差异性,当数据需要传输到有线网络时候,就通过Integration Service在二者之间进行转换。
由于存在transition,为了保证DSS能找到对应的STA,所以就存在association、reassociation服务。
当STA不再使用DSS时,就通过disassociation服务离开DS。


2. 802.11 Service的分类:


从模块考虑,802.11中的Service分为两大类别:
SS(Station Service):它是STA应该具有的功能。
DSS(Distribution System Service):它指明DS应具有的功能。 DS-以太网   *****


从其所代表的功能出发进行划分以得到如下类别:
·6种Service用于支持802.11 MAC层的数据传输(规范定义为MAC Service Data Unit Delivery)
·3种Service用于控制802.11 LAN的访问控制(Access Control)和数据机密性(Data Confidentiality)
·2种Service用于频谱管理(Spectrum Management)  5G相关
·1种Service用于支持QoS
·1种Service用于支持时间同步
·1种Service用于无线电测量(Radio Measurement)




3.数据传输相关服务 【无线MAC帧数据】 QOS、DS、IS、association、reassociation、disassociation
其中,QoS trafficScheduling服务和QoS有关
(1)Distribution Service和Integration Service
Distribution Service(DS,分布式服务): ************
只要STA传送任何数据都会使用这项服务。当AP接收到数据帧后,就会使用该服务将帧传输到目的地。
任何使用接入点的通信都会通过该服务进行传播。包括关联至同一个AP的两个STA之间的相互通信。


Integration Service(IS,整合服务):
当DSS发现数据的目的端是LAN时,就需要把数据传给Portal了。
这时候,DS就会使用IS将无线数据进行必要的转换,以发送到LAN中去。


(2)association、reassociation、disassociation服务
要求使用DSS时,必须提供足够的信息给它以保证数据能传输成功。


Transition Type对STA在无线网络中移动的类型进行了分类:
No-Transition:即没有移动。它包括固定不动的情况以及在某个AP无线覆盖范围内移动。
BSS-Transition:即从ESS中的一个BSS切换到另一个BSS。
ESS-Transition:从一个ESS中的BSS切换到位于另外一个ESS的BSS。这种情况极有可能导致网络切换,影响用户使用。


规范要求STA在传输数据前,必须要和一个AP建立关联关系,这就需要使用association服务。
当STA进行transition的时候(如BSS Transition),它就需要使用reassociation服务了。
因为之前它和BSS1建立了关联关系,此后它需要和BSS2建立关联关系。
这时就可以使用reassociation服务来完成该功能。reassociation服务只能由STA发起。


当STA不需要使用DSS,或者AP不再为某个STA服务时,就需要调用disassociation服务。
STA和AP都可以调用取消关联服务。


上述内容在RSN中大有不同。RSN主要为了 增强WLAN的数据加密和认证性能,并且
针对WEP加密机制的各种缺陷做了多方面的改进。




4. 访问控制和数据机密性相关服务(Access Control and Data Confidentiality)  3个
访问控制:有线/无线; 数据机密:数据加密
Authentication和Deauthentication:这两个服务用于Access Control,译为身份验证以及解除身份验证。
Confidentiality:私密性(privacy)服务,目前规范中提到的数据加密方法有WEP、TKIP、CCMP。


5. 频谱管理服务
频谱管理服务包括TPC(Transmit Power Control,传输功率控制)服务和DFS(DynamicFrequency Selection,动态频率选择)服务。


对TPC而言,当无线设备工作在5GHz频段时,必须限制其各信道的最大发射功率,以避免干扰卫星服务。
  --支持STA根据功率要求选择和不同的AP关联。
  --设定当前信道的最大传输功率。
  --根据传输过程中的损耗等信息来自动调整传输功率


DFS也是针对那些工作在5GHz频段的无线设备,使其能够根据情况动态选择传输信道以避免干扰雷达系统
特点是针对信道(即不同频率)
  --根据STA支持的信道情况去选择合适的AP。
  --静默某个信道,以支持雷达使用该信道。
  --使用某个信道前,先检查是否有雷达系统已经使用该信道。如有,必须停止在该信道工作以避免干扰雷达。


6. QoS和时间同步服务
规范中定义的STA之间时间同步(Timing Synchronization Function,TSF)机制


7. 无线电测量服务  --用于无线网络组建
·为上层应用提供查询无线电相关信息的接口。
·通过无线电测量来获取周围AP的信息。******
·能够在所支持的信道上进行无线电测量。


----------------------------------------------------------------------------------
802.11 MAC服务和帧 [3个service,]
数据传输相关服务 【无线MAC帧数据】 QOS、DS、IS、association、reassociation、disassociation


1. MAC服务定义: MAC层定义了一些Service用于为上层LLC提供服务。
三种服务,分别如下。
·MA-UNITDATA.request:供LLC层发送数据。
·MA-UNITDATA.indication:通知LLC层进行数据接收。
·MA-UNITDATA-STATUS.indication:通知LLC层自己(即MAC层)的状态。


MA-UNITDATA.request(
  source address // 指定本次数据发送端的MAC地址
  destination address // 指定接收端的MAC地址。可以是组播或广播地址
  routing information // 路由信息。对于802.11来说,该值为null(表示该值没有作用)
  data // MSDU,即上层需要发送的数据。对802.11来说,其大小不能超过2304字节
  priority // priority和service class的解释见下文
  service class
)
priority和service class参数与QoS有关系。
priority的取值为0~15的整数。对于非QoS相关的操作,其取值为Contention和ContentionFree。
802.11中,QoS设置了不同的用户优先级(User Priority,UP)。显然,UP高的数据将优先得到发送。
Priority参数和QoS中的其他参数一起决定发送数据的优先级。


service class的取值也针对是否为QoS而有所不同。
对于非QoS,取值可为ReorderableGroupAddressed或StrictlyOdered。
这两个都和数据发送时是否重排(reorder)发送次序有关。
非QoS情况下,STA发送数据时并不会主动去调整发送次序。
而QoS情况下,很明显那些UP较高的数据见得到优先处理。
但对于组播数据,发送者可以设置service class为ReorderableGroupAddressed进行次序调整。




MA-UNITDATA.indication(
  source address // 代表数据源MAC地址。其值取值MAC帧中的SA(关于MAC帧格式详情见后文)
  destination address // 代表目标MAC地址,取自MAC帧中的DA,可以是组播地址
  routing information // 值为null
  data // MAC帧数据
  reception status // 表示接收状态,例如成功或失败。对802.11来说,该状态永远返回success
  // MAC层会丢弃那些错误的数据包
  priority // 和request的取值略有不同,此处略过
  service class
)


STATUS.indication用于向LLC层返回对应request原语的处理情况。
MA-UNITDATA-STATUS.indication(
  // source和destination address和对应request的前两个参数一样
  source address
  destination address
  transmission status // 返回request的处理情况,详情见下文
  provided priority // 只有status返回成功,该参数才有意义。其值和调用request发送数据时的值一致
  provided service class // 只有status返回成功,该参数才有意义
)


indication最关键的一个参数是transmission status,可以是以下值。
·Successful:代表对应request发送数据成功。
·Undeliverable:数据无法发送。其原因有数据超长(excessive data length)、在request时
指定了routing information(non-null source routing)、不支持的priority和service class、没有
BSS(no BSS available)、没有key进行加密(cannot encrypt with anull key)等。




2.MAC帧
MAC帧分为三大类型,分别是data(数据帧)、management(管理帧)和control(控制帧)。
其中和service直接相关的是management帧,而control帧用于帮助传输data和management帧。


MAC帧由以下三个基本域组成:
--MAC Header:包括帧控制(Frame Control)、时长(Duration)、地址(Address)等。
   注意,每个方框上面的数字表示该域占据的字节数。例如Frame Control需要2字节。
--Frame Body:代表数据域。这部分内容的长度可变,其具体存储的内容由 帧类型 和 子类型 决定。
--FCS:(Frame Check Sequence,帧校验序列)用于保障帧数据完整性。


如果是QoS数据帧,还需要附加QoS Control字段。如果是HT(High Throughput)数据帧,还需要附加HT Control字段。


(1)Frame Control域
Frame Control域共2字节16位。
Protocol Version:代表802.11 MAC帧的版本号。目前的值是0。
Type和Subtype:这两个字段用于指明MAC帧的类型。802.11中MAC帧可划分为三种类
     型,分别是control、data和management,每种类型的帧用于完成不同功能。 ********mac帧类型和作用
To DS和From DS:只用在数据帧中。【mac帧的来源与目的地】
More Fragments:表明数据是否分片。只支持data和management帧类型。
Retry:如果该值为1,表明是重传包。


Power Management:表明发送该帧的STA处于活跃模式还是处于省电模式。
More Data:和省电模式有关。该参数表示AP中还有缓冲的数据帧。如果该值为0,表明STA已经接收完数据帧


Protected Frame:表明数据是否加密。
Order:指明接收端必须按顺序处理该帧。


--------------------------------------------------------------------------------
规范为STA定义了两种和电源相关的状态,分别是Active模式和PS(Power Save)模式。
处于PS模式下,无线设备将关闭收发器(transceiver)以节省电力。


结构型网络中省电模式的知识:
1)AP需要了解和它关联的STA的电源管理状态。
当某个STA进入PS状态后,AP就要做好准备以缓存发给该STA的数据帧。
一旦STA醒来并进入Active模式,AP就需要将这些缓存的数据发送给该STA。
注意,AP无须PS模式,因为绝大多数情况下,AP是由外部电源供电(如无线路由器)。
在AP中,每个和其关联的STA都会被分配一个AID(Association ID)。
2)AP需要定时发送自己的数据缓存状态。
因为STA也会定期接收信息(相比发送数据而言,开启接收器所消耗的电力要小)。
一旦STA从AP定时发送的数据缓存状态中了解到它还有未收的数据,STA则会进入Active模式并通过PS-POLL控制帧来接收它们。


Power Management取值:
·对于AP不缓存的管理帧,PM字段无用。
·对于AP发送的帧,PM字段无用。
·STA发送给还未与之关联的AP的帧中,PM字段无用。
·其他情况下,PM为1表示STA将进入PS状态,否则将进入Active状态。


(2)Duration/ID域
其具体含义根据Type和Subtype的不同而变化,大体就两种,分别代表ID和Duration。
·对于PS-POLL帧,该域表示AID的值。其中最后2位必须为1,而前14位取值为1~2007。这就是该域取名ID之意。
·对于其他帧,代表离下一帧到来还有多长时间,单位是微秒。这就是该域取名Duration之意。


(3)Address域
·MAC地址可用6字节的十六进制来表示,如笔者网卡的MAC地址为1C-6F-65-8C-47-D1。
·MAC地址的组成包括两个部分。0~23位是厂商向IETF等机构申请用来标识厂商的代码,也称为“组织唯一标识符”(OUI)。
    后24位是各个厂商制造的所有网卡的一个唯一编号。
·第48位用于表示这个地址是组播地址还是单播地址。
    如果这一位是0,表示此MAC地址是单播地址;如果这位是1,表示此MAC地址是组播地址。
    例如01-XX-XX-XX-XX-XX为组播地址。另外,如果地址全为1,例如FF-FF-FF-FF-FF-FF,则为MAC广播地址。
·第47位表示该MAC地址是全球唯一的还是本地唯一。故该位也称为G/L位


802.11 MAC帧头部分共包含四个Address域,但规范中却有五种地址定义,分别如下。
·BSSID:在基础型BSS中,它为AP的地址。而在IBSS中则是一个本地唯一MAC地址。
    该地址由一个46位的随机数生成,并且U/M位为0,G/L位为1。另外对MAC广播地址来说,其名称为wildcard BSSID。
·目标地址(Destination Address,DA):用来描述MAC数据包最终接收者(finalrecipient),可以是单播或组播地址。
·源地址(Source Address,SA):用来描述最初发出MAC数据包的STA地址。一般情况下都是单播地址。


·发送STA地址(Transmitter Address,TA):用于描述将MAC数据包发送到WM中的STA地址。
·接收STA地址(Receiver Address,RA):用于描述接收MAC帧数据的。如果某个MAC帧数据接收者也是STA,那么RA和DA一样。
   但如果接收者不是无线工作站,而是比如以太网中的某台PC,那么DA就是该机器的MAC地址,而RA则是AP的MAC地址。
   这就表明该帧将先发给AP,然后由AP转发给PC。


·IBSS网络中,由于不存在DS,所以Address 1指明接收者,Address 2代表发送者。Address 3被设置为BSSID,
    其作用是:如果Address 1被设置为组播地址,那么只有位于同一个BSSID的STA才有必要接收数据。
·基础结构型网络中,如果STA发送数据,Address 1必须是BSSID,代表AP。因为这种网
    络中,所有数据都必须通过AP。Address 3代表最终的接收者,一般是DS上的某个目标地址。
·基础结构型网络中,如果数据从AP来,那么Address 1指明STA的地址,Address 2代表
    AP的地址,Address 3则代表DS上的某个源端地址。
·Address 4只在无线网络桥接的时候才使用。


(4)Sequence Control域
Sequence Control域长16位,前4位代表 片段编号,后12位为 帧顺序编号


·Fragment Number:用于控制分片帧。如果数据量太大,则MAC层会将其分片发送。每个分片帧都有对应的分片编号。
·Sequence Number:STA每次发送数据帧时都会设置一个帧顺序编号。注意,控制帧没有帧顺序编号。
    另外,重传帧不使用新的帧顺序编号。




3.MAC帧 具体类型分析
MAC帧分为三大类型,分别是data(数据帧)、management(管理帧)和control(控制帧)。
其中和service直接相关的是management帧,而control帧用于帮助传输data和management帧。









猜你喜欢

转载自blog.csdn.net/u012989337/article/details/53575035