一、MAC

802.11规范的关键在于MAC(媒介访问控制层),位于物理层之上,控制数据的传输,负责核心成帧操作以及与有线骨干网络之间的交互。不同的物理层可能提供不同的传输速度,不过物理层之间必须彼此互用。

二、监听和传输机制

802.11和以太网在控制对传输媒介的控制时采用不同的机制,按照二者的产生顺序来说,802.11之所以没有沿袭以太网的CSMA/CD(Carrier Sense Multiple Access with Collision Detection)机制,是因为存在检测冲突导致处于无线网络的sta必须要具备同时发送和接收信息的能力,但是这在无线系统中是做不到的,所以802.11后来采用的是CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)这个新的协议机制,二者的作用原理差不多,都是在发送数据之前会检测当前信道的状态再等个随机时间发送,二者主要区别是:

  1. CSMA/CD:带有冲突检测的载波监听多路访问,可以检测冲突,但无法“避免”;CSMA/CA:带有冲突避免的载波侦听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量“避免”。
  2. .检测方式不同,CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。

802.11采用肯定确认机制(positive acknowledge),所有传送出去的帧必须要得到回应,若在传输过程中的任何一个环节失败,都会视为这个帧丢失,这个过程和数据库对于事务定义的原子性一样,要么全成功,要么全失败,对于传输过程来说就是整个过程的每一个环节成功才算成功,一个环节有问题都算失败,流程图如下:

  • 隐藏节点

如上图所示,节点2可以和节点1、节点3直接通信,但是可能由于某种原因(比如距离过远)节点1不能直接与节点3直接通信,因此从节点1的角度来讲,节点3属于隐藏节点,相对隐藏的两个节点在同时传送数据的时候,一旦发生冲突那么两个节点都将无从得知冲突的发生,根据上图来讲就是,一旦1、3节点发生了冲突,那么1、3节点都不知道发生了冲突,只有节点2能知道。因此由隐藏节点而产生的冲突问题难以检测,因为无线收发器通常都是半双工模式,即不支持同时收发功能,为了防止冲突的情况,802.11允许sta使用RTS(request to send请求发送)和CTS(clear to send清除发送)信号来清空传送区域。

  • 载波监听功能

载波监听功能是用来判断媒介是否处于可用状态,802.11具备两种载波监听功能:物理载波监听和虚拟载波监听,一旦载波监听功能显示媒介处于忙碌状态,就会将此状况汇报给上层的协议。

物理载波监听:该功能是由物理层所提供,取决于所使用的媒介与调制方式。要为基于射频的媒介打造物理载波监听硬件相当不易(更确切的说法是十分昂贵),原因是除非采用昂贵的电子零件,否则收发器无法同时进行收发的动作。此外,由于隐藏节点随处可见,物理载波监听并无法提供所有必要的信息。

虚拟载波监听:由网络分配矢量(NAV,network allocation vector)提供。802.11帧包含duration字段,表示将占用媒介的时间,NAV本身相当于一个计时器,sta会用NAV代表着占用媒介的时间,而其他的sta会以NAV来倒数,只要NAV不为0,就表示当前的媒介处于忙碌状态,当NAV为0时,虚拟载波监听功能会显示媒介处于闲置状态。

  • 帧间间隔

802.11会用到四种帧间间隔(interframe space),每种间隔的时长都不同,分别是

短帧间间隔(short interframe space,简称SIFS):用于高优先级的传输场合,例如RTS/CTS以及肯定确认帧。经过一段SIFS时间之后,开始传输,媒介处于忙碌状态,所以在SIFS之后开始传输的帧一般优先级比较高

PCF帧间间隔(PCF interframe space,简称PIFS):PIFS主要被PCF使用在无竞争操作中,有时被误称为优先级帧间间隔(priorityinterframe space)。在无竞争时期,有数据待传的工作站可以等待PIFS后再加以传送,其优先级高于任何竞争式传输。

DCF帧间间隔(DCF interframe space):DIFS是竞争式服务中最短的媒介闲置时间。如果媒介闲置时间长于DIFS,则sta可以立即对媒介进行访问。

扩展帧间间隔(Extended interframe space,简称EIFS):EIFS并非固定的时间间隔。只有在帧传输出现错误时才会用到EIFS。

各间隔之间的大小关系如下图:

在开始传送之前,原子操作必须要等候一段时间帧间间隔,一般是DIFS,在其后面的步骤开始使用SIFS。由于SIFS时间短于其他间隔,被应用在不同原子操作之间,如图3-5所示,SIFS被应用在不同单位的原子操作之间。当传送端取得媒介访问权时,接收端会在SIFS之后响应CTS。任何试图在RTS结束之后访问媒介的工作站至少必须等候一段DIFS。若在DIFS进行时SIFS已先行结束,则会开始传送CTS。

在发送数据之前,sta必须先查看媒介是否处于闲置状态,若处于忙碌状态,则需要使用指数退避算法,来避免发生冲突。大部分传输操作会使用DCF(分布式协调功能),它提供了类似Ethernet的基于竞争的服务,在所有使用DCF传输中将会运用到两项基本规则:

  1. 如果媒介限制时长大于DIFS则立即进行传输,载波监听可以同时物理与虚拟两种方式
  2. 如果媒介处于忙碌状态则需要等到媒介再次闲置,802.11称之为访问延迟,一旦访问延迟,sta会等候媒介闲置一段DIFS,同时准备指数退避过程
  • 退避算法

当帧传送完且经过一段DIFS后,sta便会尝试传送刚刚要传送的数据,DIFS之后紧接的一段时间称为竞争窗口或退避窗口,此窗口会进一步分割成时隙,时隙的长度因媒介而异,速度较高的物理层会使用较短的时隙,当多个sta同时发送数据时,拿到第一个时隙的sta可以优先发送数据。

帧的分段与重组:来自较上层的封包以及某些较大型的管理帧可能必须经过分段,无线信道才有办法加以传送。当干扰存在时,分段封包也有助于提升可靠性。利用帧的分段,无线局域网工作站可让干扰只影响较小的帧片段,而非较大的帧。通过降低可能被干扰的数据量,帧分段可以提高整体的有效吞吐量。干扰可能来自不同的来源。虽然并非全部,但还是有些微波炉会对2.4 GHz网络造成干扰,至于户外的网络,可能造成千扰的因素就更多了。

七、802.11对上层协议的封装

802.11同样支持不同网络协议的数据传输,但是和以太网不同的是802.11是以802.2的逻辑链路控制(logical-link control,LLC)封装来携带上层协议,下图显示了如何以802.2LLC封装来携带IP封包

传送时,用来封装LLC数据的方式有两种,一种是RFC 1042所描述的方式,另一种是802.1H所规范的方式,RFC 1042与802.1H均衍生自802.2的子网访问协议(sub-network access protocol,简称SNAP)。MAC地址会被复制到封装帧(encapsulation frame)的开头,然后插入SNAP标头。SNAP标头以目的地服务接入点(destination service access point,简称DSAP)与源服务接入点 ( source service access point,简称SSAP)开始。在地址之后,SNAP包含了一个控制(Control)字段。和高层数据链路协议(high-level data link control,简称HDLC)及其衍生协议一样,此控制字段会被设定为0x03,代表未编号信息,是映射到IP datagram所谓的尽力传递的范畴。SNAP最后置入的字段是组织唯一标识符。

八、广播与组播数据或管理帧

广播与组播帧的交换过程最为简单,因为这些帧无需响应。这两种帧也可以视为组帧( group frame) ,因为其接收对象不限于单一工作站。成帧(framing)与寻址(addressing )在802.11中较为复杂,适用此规则的帧的类型如下所示:

组播帧无法分段,也无需得到确认。整个原子交换过程只牵涉到一个帧,根据基于竞争的访问控制(contention-based access control)规则加以传送。传送结束后,所有工作站必须等待一段DIFS,然后在竞争窗口(contention window〉倒数随机产生的延迟时间。

因为帧的交换过程只牵涉到个帧,所以将NAV(网络分配矢量)设定为0。既然此后已无其他帧,也就不必使用虚拟载波监听来锁定媒介以防止其他工作站的访问。传送该帧之后,所有工作站均会等候一段DIFS,然后通过竞争窗口(contention window)开始为任何被延迟的帧进行倒数。整个交换过程如下图:

如果组播帧没有得到确认的话会影响整个服务质量,所以会导致一些sta在可能会遗漏广播或组播数据,但是MAC并未内置一些功能来在遗漏情况下重传这些帧。

  • 单播帧

在802.11标准中,针对个别sta所传送的帧称为直接数据,我们可以称之为单播,单播帧必须得到确认以确保其可靠性,也意味着可借助各种机制来改善传达效率。两个sta之间的可靠性通信建立在简单的肯定确认之上,没被确认的帧会被认定为该帧遗失。

十、分段机制

在较上层的网络协议中常常会用到分段传输,进行分段的缺点就是在接收的时候必须再对这些帧进行重组,而分段传输的优点就是可以提升传输速度,即以较小的MTU在hop跳跃点间传送数据,另外在遇到强大无线电波干扰的时候,分段传输也是一种更加稳定的方式,可以保护大多数的帧不会被损坏。传输机制如下图:

最后两个帧的交换和之前的过程没有两样,NAV的设定也完全相同。不过,倒数第二个帧之前的所有帧均会使用NAV为下一个帧锁定媒介。第--个数据帧会将NAV的时间设定至足以涵盖ACK1、下一个帧片段及其确认(ACK2)。为了表示是帧片段,MAC会将帧头的控制字段的More Fragments位设定为1。最后一个确认(ACK3)除外,其余确认都会继续为下一个数据片段及其确认延长锁定媒介的时间。后续的数据帧会继续延长NAV以涵盖后续的确认,直到最后一个数据帧才会将More Fragments位设定为0,而最后一个确认(ACK3)则会将NAV设定为0。帧片段的数量并无限制,不过帧的总长度必须短于PHY对交换过程所做的限制。

帧分段是由MAC的分段阈值(fragmentation threshold)参数控制。大部分的网卡驱动程序都允许用户设定此参数。任何超过分段阈值的帧都会被分段,分段方式因具体实现而异。调高分段阈值意味着帧的传送负担较小,不过帧遗失与损坏的成本较高,因为将会有较多的数据必须丢弃与重传。调低分段阈值意味着传送负担较重,不过在面临较恶劣的环境时,这种做法可以提供较好的稳定性。

十一、省电程序(powersaving sequence)

在RF(RadioFrequency射频)系统中,最费电的要数放大器了,它负责将信号放大至可处理的程度,在夜间情况我们的手机可以关闭无线电波收发器进入睡眠状态,这样可以保证手机在夜间不会被其他无线电波“叫醒”,从而避免了手机在夜间高耗电的情况。在休眠期间,AP会为每一个进入睡眠的sta缓存单播帧,如果有缓存帧的话,AP会由后续的beacon帧通知sta,从休眠状态苏醒的sta可以通过PS-Poll帧取得到这些缓存帧,AP可以对PS-Poll帧迅速作出反应,经过一段SIFS,AP即可传输帧。

除了以上的立即响应,AP也可以先回复一个简单响应。这种做法称为延迟响应(deferredresponse),因为AP虽然响应了访问缓存帧的请求,但并未立即采取实际的发送行动。使用延迟响应的优点在于AP方面的软件较易实现,因为确认信息可以通过芯片组固件立即传送,至于数据则可以先予以缓存,然后依正常流程传送。

通过PS-Poll请求帧的sta必须保持清醒,直到该帧传送完成。不过,在基于竞争的

服务期间,AP可以在任何时间点传送帧。此时sta不能返回省电模式,除非接收到一个Beacon帧,其中对应至该sta的TIM ( traffic indication map,传输指示映射)位已被清除。

收到数据帧之后,sta还必须停留在清醒状态,直到下一个Beacon帧被传送出来。Beacon帧只是用来提醒是否有为某个sta缓存的帧,没有办法告知实际的帧数量。一旦sta收到的Beacon帧中显示已无缓存帧,便可断定已经完成缓存帧的接收,然后返回省电模式。

  • 帧的处理与桥接

无线AP的核心就是桥接器,也就是数字信号和模拟信号的转换,当数据从无线的形式进入到有线的设备中,AP就扮演了802.11和以太网之间的桥梁,两者间相互转换的过程如下:

①无线至有线(802.11 ~ Ethernet):

1.当接入点接收到一个帧时,首先会检测该帧基本的完整性。接下来,接入点会针对

所使用的物理层,查看本章之前讨论过的物理层标头,然后验证802.11帧上的帧校验码(FCS)。

2.验证帧接收无误后,接入点就会继续查看是否应该进一步处理该帧。

a.传送至接入点的帧会将接入点的MAC地址(即 BSSID)作为802.11 MAC标

头的Address 1字段。不匹配该接入点的BSSID的帧应予以丢弃(有些产品并未实现此步骤)。

b. 802.11 MAC接着检测且移除重复的帧。产生重复帧的原因很多,不过最常见

的情况是802.11确认在传送过程中遗失或损坏。为了简化上层协议的操作因此由802.11 MAC负责剔除重复的帧。

3.―一旦接入点判断出需要进一-步处理该帧,就必须予以解密,因为该帧受到链路层安

全算法的保护。解密的细节详见后续与安全性有关的章节。

4.成功解密之后,接入点即查看该帧是否为帧片段,是否需要进一步重组。完整性保

护(integrity protection)针对的是重组后的完整帧,而不是个别的帧片段。

5.如果经过步骤2a的BSSID校验﹐判断接入点必须桥接该帧,较复杂的802.11 MAC

标头就会被转换为较简单的Ethernet MAC标头。

a.记录在802.11 MAC标头的Address 3字段里的目的地地址会被复制到Ethernet

的目的地地址。

b. 记录在802.11 MAC标头的Address 2字段里的来源地址会被复制到Ethernet

的来源地址。

c.在802.11 Data字段里的SNAP标头将(Type字段里的)类型代码复制到

Ethernet帧里的Type字段中。如果该Ethernet帧也使用SNAP,就复制整个SNAP标头。

d.顺序信息主要供帧片段重组之用,不过当帧被桥接之后即予以丢弃。

e.如果有标准的服务质量(quality of service)处理过程,即在此进行无线接口

与有线接口的QoS映射。不过到目前为止,用来表示服务质量的形式,通常就是在有线帧中使用802.1p优先级位或者其他的控制形式。

6.重新计算FCS(帧校验码)。Ethernet 与802.11使用相同的算法来计算FCS,不过

802.11帧多出一些字段,同时受FCS保护。

7.将产生的新帧交付给Ethernet 接口传送。

②有线至无线(Ethernet ~ 802.11):

将帧从接入点有线端桥接至无线媒介的过程刚好相反:

1.验证 Ethernet FCS后,接入点首先会查看是否需要进一步处理所接收到的帧,即

查看该帧的目的地址是否属于当前与接人点关联的工作站。

2.将SNAP标头附加于Ethernet帧的数据之前。上层封包以SNAP标头进行封装,而

其Type字段从Ethernet帧里的类型代码复制而来。如果该Ethernet帧也使用SNAP,则复制整个SNAP标头。

3.对帧的传送进行调度。802.11包含复杂的省电操作,将帧置于传送队列(transmit

queue)之前,接入点可能会将帧缓存于缓冲区。省电操作将于第八章详述。4.一旦帧被置于队列待传,就会被赋予一个顺序编号。如有必要,所产生的数据可以

用完整性校验值加以保护。如果帧需要分段,则会根据事先设定好的分段阈值进行分段。分段帧时,Sequence Control字段中的片段编号也会被赋值。

5.如果帧需要保护,则对帧(或每个帧片段)的主体加密。

6.802.11 MAC标头根据Ethernet MAC标头产生。

a.将Ethernet的目的地地址复制到802.11 MAC标头的Address 1字段。b.将BSSID置于Address 2字段以作为无线媒介上帧的发送者。

c.将帧的来源地址复制到MAC标头的Address 3字段中。

d.将其他字段填入802.11 MAC标头。也就是把预计传送时间填入Duration字段,

并把适当的标记填入Frame Control字段。

7.重新计算FCS(帧校验码)。Ethernet与802.11使用相同的算法来计算FCS,不过

802.11帧多出一些字段,同时受FCS保护。

8.将产生的新帧交付给802.11接口传送。

80211无线网络权威指南(三)之MAC相关推荐

  1. 80211无线网络权威指南(四)之成帧细节

    上一篇802.11的文章主要讲了帧的基本结构和组成字段,这篇文章主要讲不同类型帧的成帧细节.以太网的帧结构非常简单,只要为帧加上前导码.寻址信息并在结尾加上验证码即可,802.11成帧就比较复杂了, ...

  2. 802.11无线网络权威——(三、MAC基础)

    MAC位于各式物理层之上,控制数据的传输.它负责核心成帧操作(core framing operation)以及与有线骨干网络之间的交互. 802.11采用载波监听多路访问 / 冲突避免(carrie ...

  3. 80211无线网络权威指南(七)之RSN、TKIP与CCMP

    802.1X所提供的认证与密钥管理框架解决了WEP设计上的两个弊端,其他尚待解决的是WEP的密钥缺乏机密性.802.11i采用双轨并行的做法以解决链路层加密协议的弱点问题.802.1li组成自两种新的 ...

  4. 《802.11无线网络权威指南》摘录

    <802.11无线网络权威指南>摘录 ---------------------------- 第一.二章: 无线频谱管控: 美国:FCC联邦通信委员会 欧洲:FRO欧洲无线通信局 其他地 ...

  5. 802.11基本概念介绍【802.11 无线网络权威指南学习总结1】

    802.11基本概念介绍[802.11 无线网络权威指南学习总结1] 1.802.11网络技术介绍 IEEE 802 规格的重心放在 OSI 模型最底下的两层,因为它们同时涵盖了实体(physical ...

  6. 读书笔记——《802.11无线网络权威指南》

    读书笔记--<802.11无线网络权威指南> 文章目录 读书笔记--<802.11无线网络权威指南> 概要 摘要 概念 MAC层 成帧细节 用户认证 概要 秉承"不动 ...

  7. 802.11 无线网络权威指南-第1章 无线网络导论

    相关背景知识 1.IEEE 802网络(Ethernet) 以太网是当今现有局域网采用的最通用的通信协议标准.该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法.以太网在互联设备之间以10~ ...

  8. WEP无线网络破解指南

    背景&前提 本文所阐述的破解技术是基于WEP格式的加密无线网络. 本文假定你使用的是Ubuntu Linux操作系统,Windows平台下所用方法与本文类似. 本文假定你有一个可以接收无线信号 ...

  9. Android之连接指定SSID的无线网络

    SSID指的是无线网络的名称全程为Service Set Identifier 通过查阅网上资料找到了连接指定SSID的方法,无线网络可以是三种简单的方式 1. 无加密 2. wep加密 3. wpa ...

最新文章

  1. 一元建站-基于函数计算 wordpress 构建 serverless 网站
  2. 小米8 twrp recovery_小米手机、红米手机通用刷机教程
  3. OpenGL textures纹理的实例
  4. kafka 报错:kafka server:Message was too large ,server rejected it to avoid allocation
  5. hdu5720_贪心
  6. EFI模式下安装win8.1系统
  7. pthread_join来接收线程的返回参数
  8. Mac系统设置系统搜索范围的方法
  9. python3虚拟环境的设置
  10. java爬虫框架哪个好_Java爬虫(二)Java爬虫框架
  11. 射频能量用于治疗和美容
  12. wps中论文标题编号的设置
  13. 分享一个互联网职业教育免费视频、资料、机构综合类资源平台!
  14. 菊风携手麦瑞思与Takumi实现中国首个北美运营商Verizon的RCS入库成功案例
  15. P6364 1024 程序员节发橙子 ( 正序 反序遍历不降序 )
  16. operator int()用法
  17. php rn 返回,rn滑动返回页面监听 - osc_13a0punx的个人空间 - OSCHINA - 中文开源技术交流社区...
  18. 用python画小狗,用turtle画个单身狗送给自己~
  19. 穷人思维和富人思维的根本区别在于底层系统不一样
  20. 有感:pycharm里面下载库的两种方法的下载路径

热门文章

  1. 在信用中国网站爬取你想要查找的任何公司的所有相关信息
  2. android mkdirs 权限,无法创建mkdirs()目录 - 安卓
  3. 网站服务器间歇性打不开,网站打不开的常见原因之域名解析问题
  4. C++ - explicit关键字
  5. 梅花表309独有的都市女性特别气质
  6. tensorflow显卡配置
  7. android soap webservice 数据流传输,Android利用Soap读取WebService并且解析XML的DataSet数据...
  8. mac下安装autojump
  9. PANet 实例分割
  10. WebGoat通关教程