其他分享
首页 > 其他分享> > 邓凡平WIFI学习笔记2: WiFi 协议

邓凡平WIFI学习笔记2: WiFi 协议

作者:互联网

原文链接:https://blog.csdn.net/Innost/article/details/20651445

ISO/IEC 8802将Data Link Layer划分成了两个子层。

·媒介访问控制子层(MAC Sub Layer):该子层的目的是解决局域网(Local Area Network,LAN)中共用信道的使用产生竞争时,如何分配信道的使用权问题。目前LAN中常用的媒介访问控制方法是CSMA/CD(争用型介质访问控制)。

·逻辑链路控制子层(LLC Sub Layer):该子层实现了两个站点之间帧的交换,实现端到端(源到目的),无差错的帧传输和应答功能及流量控制功能。

 

 

·有线网络最常使用的方法(此处仅考虑以太网)是CSMA/CD(Carrier Sense Multiple Access/Collision Detect,载波监听多路访问/冲突检测机制)。其主要工作原理是:工作站发送数据前先监听信道是否空闲,若空闲则立即发送数据。并且工作站在发送数据时,边发送边继续监听。若监听到冲突,则立即停止发送数据并等待一段随机时间,然后再重新尝试发送。

无线网络主要采用CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance,载波监听多路访问/冲突避免机制)方法。无线网络没有采用冲突检测方法的原因是:如果要支持冲突检测,必须要求无线设备能一边接收数据信号一边传送数据信号,而这种设计对无线网络设备来说性价比太低

 

CSMA/CA主要使用两种方法来避免碰撞。

·设备发送数据前,先监听无线链路状态是否空闲。为了避免发生冲突,当无线链路被其他设备占用时,设备会随机为每一帧选择一段退避(backoff)时间,这样就能减少冲突的发生。

·RTS-CTS握手。设备发送帧前,先发送一个很小的RTS(Request To Send)帧给目标端,等待目标端回应CTS(Clear To Send)帧后才开始传送。此方式可以确保接下来传送数据时,其他设备不会使用信道以避免冲突。由于RTS帧与CTS帧长度很小,使得整体开销也较小。

 

,802.11提供了三种情况供用户选择以处理。

·使用RTS和CTS帧。

·当数据帧的长度超过某一数值时才使用RTS和CTS帧。

·不使用RTS和CTS帧。

尽管协议经过了精心设计,但冲突仍然会发生。例如,站B和站C同时向站A发送RTS帧。这两个RTS帧发生冲突后,使得站A收不到正确的RTS帧因而站A就不会发送后续的CTS帧。这时,站B和站C像以太网发生冲突那样,各自随机地推迟一段时间后重新发送其RTS帧。

 

协议还定义了SDU和PDU两个概念。当上一层调用MAC的request原语时,会把要发送的数据传给MAC层。这个数据被称为MSDU。对MAC层来说,MSDU其实就是MAC要发送的数据,即载荷(Payload)。MAC层处理Payload时还会封装MAC层自己的一些头信息。这些信

息和MSDU共同构成了MAC层的Protocol Data Unit(简写为MPDU)

 

独立型BSS(Independent BSS):这种类型的BSS不需要AP参与。各STA之间可直接交互。这种网络也叫ad-hoc BSS(一般译为自组网络或对等网络)。

·基础结构型BSS(Infrastructure BSS):所有STA之间的交互必须经过AP。AP是基础结构型BSS的中控台。

 

 

·BSSID(BSS Identification):每一个BSS都有自己的唯一编号。在基础结构型网络中,BSSID就是AP的MAC地址,该MAC地址是真实的地址。IBSS中,其BSSID也是一个MAC地址,不过这个MAC地址是随机生成的。

·SSID(Service Set Identification):一般而言,BSSID会和一个SSID关联。BSSID是MAC地址,而SSID就是网络名。网络名往往是一个可读字符串,因为网络名比MAC地址更方便人们记忆。

 

规范定义了三个服务用于处理安全性,分别如下。

·Authentication和Deauthentication:这两个服务用于Access Control,译为身份验证以及解除身份验证。

·Confidentiality:原本称为私密性(privacy)服务,后来对这部分内容实施了加强。规范中提到的数据加密方法有WEP、TKIP、CCMP。

 

 

·More Fragments:表明数据是否分片。只支持data和management帧类型。

·Retry:如果该值为1,表明是重传包。

·Power Management:表明发送该帧的STA处于活跃模式还是处于省电模式。

·More Data:和省电模式有关。AP会为那些处于省电模式下的STA缓冲一些数据帧,而STA会定时查询是否有数据要接收。该参数表示AP中还有缓冲的数据帧。如果该值为0,表明STA已经接收完数据帧了(下节将介绍省电模式相关的内容)。

·Protected Frame:表明数据是否加密。

·Order:指明接收端必须按顺序处理该帧。

 

 

AP需要定时发送自己的数据缓存状态。因为STA也会定期接收信息(相比发送数据而言,开启接收器所消耗的电力要小)。一旦STA从AP定时发送的数据缓存状态中了解到它还有未收的数据,STA则会进入Active模式并通过PS-POLL控制帧来接收它们。

PM为1表示STA将进入PS状态,否则将进入Active状态。

配合PM使用的字段就是More Data。根据前文介绍,STA通过PS-POLL来获取AP端为其缓存的数据帧。一次PS-POLL只能获取一个缓存帧。STA怎么知道缓存数据都获取完了呢?

原来More Data值为1表示还有缓存帧,否则为0。虽然MAC帧中没有字段说明AP缓存了多少帧,但通过简单的0/1来标示是否还有剩余缓存帧也不失为一种好方法。

 

Duration/ID域占2字节共16位,其具体含义根据Type和Subtype的不同而变化,不过大体就两种,分别代表ID和Duration。

·对于PS-POLL帧,该域表示AID的值。其中最后2位必须为1,而前14位取值为1~2007。这就是该域取名ID之意。

·对于其他帧,代表离下一帧到来还有多长时间,单位是微秒。这就是该域取名Duration之意。

 

·MAC地址的组成包括两个部分。0~23位是厂商向IETF等机构申请用来标识厂商的代码,也称为“组织唯一标识符”(Organizationally Unique Identifier,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位。

·字节序为Big-endian,即最高字节在前

·比特序为Little-endian,即最低位在前。

 

 

 

,Address 1用作接收端,Address 2用作发送端。Address 3携带其他信息用于帮助MAC帧的传输

 

管理帧中的Frame Body将携带具体的管理信息数据

1)Authentication Algorithm Number:该字段占2字节,代表认证过程中所使用的认证类型。其取值如下。

·0:代表开放系统身份认证(Open System Authentication)。

·1:代表共享密钥身份认证(Shared Key Authentication)。

·2:代表快速BSS切换(Fast BSS Transition)。

·3:代表SAE(Simultaneous Authentication of Equals)。用于两个STA互相认证的方法,常用于Mesh BSS网络。

2)Beacon Interval field:该字段占2字节。每隔一段时间AP就会发出Beacon信号用来宣布无线网络的存在。其单位为Time Units(规范中

缩写为TU。注意,一个TU为1024微秒。这里采用2作为基数进行计算)。一般该字段会设置为100个TU。

3)Capability Information(性能信息):该字段长2字节,一般通过Beacon帧、Probe Request和Response帧携带它。该字段用于宣告此网络具备何种功能

4)Current AP Address:该字段长6字节,表示当前和STA关联的AP的MAC地址。

5)Listen Interval:该值长2字节,和省电模式有关。其作用是告知AP,STA进入PS模式后,每隔多长时间它会醒来接收Beacon帧。AP可以根据该值为STA设置对应的缓存大小

6)Association ID(AID):该字段长2字节。STA和AP关联后,AP会为其分配一个Association ID用于后续的管理和控制(如PS-POLL帧的使用)。

7)Reason Code:该字段长2字节。用于通知Diassociaton、Deauthentication等操作(包括DELTS、DELBA、DLS Teardown等)失败的原因。

8)Status Code:该字段长2字节,用于反馈某次操作的处理结果。0代表成功

 

 

Beacon帧:AP定时发送Beacon帧用来声明某个网络。

 

 

2)Probe Request/Response帧:STA除了监听Beacon帧以了解网络信息外,还可以发送Probe Request帧用于搜索周围的无线网络。规范要求由送出Beacon帧的STA回复Probe Response帧,这样,在基础结构型网络中,Beacon帧只能由AP发送,故Probe Response也由AP发送。IBSS中,STA轮流发送Beacon帧,故Probe Response由最后一次发送Beacon帧的STA发送。

 

3)Association Request/Response帧:当STA需要关联到某个AP时,将发送此帧。

 

 

4)Authentication帧:用于身份验证

由Scan.request的ScanType参数可知,802.11规定了两种扫描模式。

·ACTIVE模式:这种模式下,STA在每个Channel(信道)上都会发出Probe Request帧用来搜索某个网络。具体工作方式是,STA首先调整到某个信道,然后等待来帧指示(表明该信道有人使用)或超时时间ProbeDelay。两个条件满足任意一个,STA都将发送Probe

Request帧,然后STA在该信道上等待最少MinChannelTime时间(如果在此时间内信道一直空闲),最长MaxChannelTime时间。

·PASSIVE模式:这种模式下,STA不发送任何信号,只是在ChannelList中各个信道间不断切换并等待Beacon帧。根据前述介绍可知,在基础结构型网络中AP会定时发送Beacon帧以宣告网络的存在。所以,PASSIVE模式下,STA能根据Beacon帧来了解周围所存在的无线网络。

 

标签:WIFI,STA,地址,WiFi,Beacon,发送,AP,MAC,邓凡平
来源: https://blog.csdn.net/kv110/article/details/99742155