MAC(媒介访问控制层)位于各式物理层之上,控制数据的传输。它负责核心成帧操作以及与有线骨干网络之间的交互。
802.11采用载波监听多路访问/冲突避免(CSMA/CA)机制来控制对传输媒介的访问。
802.11与Ethernet之间的主要差异在于所使用的底层媒介不同,无线网络环境与传统有线网络环境的差异性为网络协议设计人员带来了种种挑战。

MAC所面临的挑战

  • 射频链路品质
    无线信号的传输会受到微波炉及其他射频(RF)来源的影响,多徑衰落(multipath fading)所造成的布线死区(dead spot)也可能导致帧无法传送。
    802.11采用肯定确认(positive acknowledgment)机制,所有传送出去的帧都必须得到相应,如下图所示。

无线链路的质量也会影响网络操作的速度。信号质量较佳,就可以用较高的速度来传送数据。工作站必须具备某种机制,可以判断何时该变更数据传输速率以适应环境的改变。

  • 隐藏节点的问题
    无线网络的界限比较模糊,有时候并不是每个节点都可以跟其他节点通信,如下图所示。

    节点1和节点3互为隐藏节点,如果使用简单的传输祈求(transmit-and-pray)协议,节点1和节点3可能在同一时间传送数据,这会造成节点2无从相应数据,而且,节点1和节点3无从得知发生了错误,因为只有节点2才知道有冲突发生。

为了防止冲突发生,802.11允许工作站使用Request to Send(请求发送,简称RTS)及Clear to Send(清除发送,简称CTS)信号来清空传送区域。如下图所示。

RTS帧本身带有两个目的:预约无线链路的使用权与要求接收到这一帧的其他工作站保持沉默,一旦受到RTS帧,接收端会以CTS帧应答,CTS帧也会令附近的工作站保持沉默。RTS/CTS通常用在高用量的环境下以及传输竞争比较显著的场合。

MAC访问模式与时机

无线媒介的访问是由协调(coordination function)功能控制。

  • DCF(distributed coordination function,分布式协调功能)
    在传送数据之前,先检查无线链路是否处于清空状态。为了避免冲突的发生,当某个传送者占据信道时,,工作站会随机为每个帧选定一段退避(backoff)时间,在某些情况下,DCF可利用CTS/RTS清空技术进一步减少发生冲突的可能性。

  • PCF(point coordination function,点协调功能)
    点协调者位于接入点,可以确保工作站不必通过竞争即可使用媒介,PCF在实现上并不常见。

  • HCF(hybrid coordination function,混合协调功能)
    HCF允许工作站维护多组服务队列,针对需要更高服务质量的应用提供更多的无线媒介访问机会。

载波监听功能与网络分配矢量

载波监听(carrier sensing)主要用来判断媒介是否处于可用状态。802.11具备两种载波监听功能:物理载波监听(physical carrier-sensing)与虚拟载波监听(virtual carrier-sensing)。只要其中有一个监听功能显示媒介处于忙碌状态,MAC就会将此状况汇报给较高层的协议。物理载波监听功能是由物理层所提供,取决于所使用的媒介与调制方式;虚拟载波监听是由网络分配矢量(Network Allocation Vector, NAV)提供。802.11的帧通常会包含一个Durition字段,用来预定一段媒介时间。NAV是一个定时器,用来指定要占用媒介多少时间,以微秒为单位。下图说明了NAV如何保障整个过程不受干扰。

帧间间隔

802.11会用到四种不同的帧间间隔,其中三种用来决定媒介的访问。

  • 短帧间间隔(Short interframe space, SIFS)
    SIFS用于高优先级的传输场合
  • PCF帧间间隔(PCF interframe space,PIFS)
    PIFS主要被PCF使用在无竞争操作中
  • DCF帧间间隔(DCF interframe space,DIFS)
    DIFS是竞争式服务中最短的媒介空闲时间。如果媒介空闲时间长于DIFS,则工作站可以立即对媒介进行访问
  • 扩张帧间间隔(Extended interframe space,EIFS)
    只有在帧传输出现错误时才会用到EIFS,EIFS并非固定的时间间隔

帧的分段与重组

来自较上层的封包以及某些较大型的管理帧可能必须经过分段,无线信道才有办法加以传送。当干扰存在时,利用帧的分段,无线局域网工作站可让干扰只影响较小的帧片段。每个帧片段都有相同的帧序号以及一个递增的帧片段编号以便于重组。

上图RTS与CTS会将NAV设定成从预定时间到第一个帧片段结束,每个帧片段都会设定NAV,继续掌握媒介的控制全,直到下一个帧的确认结束。

帧格式

为迎接无线数据链路所带来的挑战,802.11 MAC帧格式的制定经过了深思熟虑的考量。下图展示了一般的802.11 MAC帧。字段的传输顺序从左至右,最高有效位将在最后出现。

Frame Control字段

所有帧的开头均是长为两个字节的Frame Control字段,如下图所示。

  • Protocol字段
    显示帧所使用的MAC版本,目前802.11 MAC只有一个版本,它的协议编号为0
  • Type与Subtype字段
    Type与Subtype字段用来指定使用的帧类型
  • To DS与From DS位
    指示帧的目的地是否为分布式系统
  • More fragments位
    若较上层的封包经过MAC分段处理,除了最后一个片段,其他片段均会将此位设定为1
  • Retry位
    任何重传的帧都会将此位设定为1以协助接收端剔除重复的帧
  • Power management位
    此位用来支持发送端在完成当前的原子帧交换之后是否进入省电模式
  • More data位
    接入点如果设定此位,即代表至少有一个帧待传给休眠中的工作站
  • Protected Frame位
    如果帧受到链路层安全协议的保护,则此位会被设定为1
  • Order位
    若帧按照严格依次传送,则此位会被设定为1

Duration/ID字段

Duration/ID字段有三种可能的形式,如下图所示。

  • 设定NAV
    当第15位被设定为0时,Durition/ID字段就会被用来设定NAV
  • 无竞争周期所传送的帧
    在无竞争周期,该字段只有第15位为1,其余位为0。Duration/ID字段的值为32768,这个数值被解读位NAV。所以其他工作站就将自己的NAV定时器设定为32768,当前工作站就可以实现无竞争传输?我是这么理解的
  • PS-Poll帧
    在PS-Poll(省电-轮询)帧中,第14位和15位会被同时设定为1,其余位表示关联标识符(association ID,AID),以显示工作站隶属的BSS。为确保不遗漏任何帧,从休眠状态醒来的工作站必须送出一个PS-Poll帧,以便从接入点取得之前缓存的任何帧。

Address字段

随着帧类型的不同,地址字段的作用也不同,大部分数据帧会用到3个字段,Address 1代表接收端、Address 2代表发送端、Address 3代表接入点的BSSID。

顺序控制(Sequence Control)字段

该字段长度为16位,由4位的片段编号(fragment number)字段以及12位的顺序编号(sequence number)字段组成,用来重组帧片段以及丢弃重复帧。

帧主体

帧校验序列(FCS)

802.11对上层协议的封装

多种速率支持

802.11支持收发端协商出一种彼此均可接受的数据传送速率,工作站可以经常变换速度,以适应无线电波环境的变化。

帧的处理与桥接

802.11 MAC基础的更多相关文章

  1. WiFi(802.11)基础

    参考: 1. Wireshark数据包分析实战(第2版) 2. wifi技术从了解到熟悉1----概念.802.11协议简述及四种主要物理组件.wifi适配层.wap_supplicant和wap_c ...

  2. 第3 章 802.11 MAC

    一 前言 802.11 规格的关键在于MAC(介质访问控制层),属于数据链路层,它定义了数据帧怎样在介质上进行传输.MAC 位于各种物理层之上,控制数据的传输.不同的物理层可以提供不同的传输速度,不过 ...

  3. 802.11 MAC层

    1. 介绍 本文主要介绍了802.11 MAC层 2. 访问机制 CSMA/CA:  Carrier Sense Multiple Access with Collision Avoidance Wi ...

  4. H3C 802.11 MAC层工作原理

  5. TCP/IP协议栈与数据报封装 (802.3 Ethernet 以太网 802.11 WLAN 无线网 )

    http://blog.csdn.net/jnu_simba/article/details/8957242 一.ISO/OSI参考模型 OSI(open system interconnection ...

  6. 802.11(wifi)的MAC层功能

    MAC层是802.11的主要功能部分.上层应用通过调用MAC层提供的接口原语调用MAC层的功能. MAC一共向上提供了2大类接口原语,共30种.数据(1)和管理(29).数据部分就是提供普通数据包的收 ...

  7. IEEE 802.11 标准列表

    IEEE 802.11 标准列表 IEEE 802.11,1997年,原始标准(2Mbit/s,播在2.4GHz). IEEE 802.11a,1999年,物理层补充(54Mbit/s,播在5GHz) ...

  8. 802.11有线等效加密WEP

    有线等效加密(WEP)标准是802.11无线安全早期的解决方案,WEP并不安全. 既然WEP并不安全,为什么还要学习WEP呢? WEP简单,相比后续出现的加密协议,它不要求有多么强大的计算能力.一些老 ...

  9. 802.11 对于multicast 和 broadcast的处理

    ethernet内部会有broadcast 和 multicast.这两种包都是一个STA向多个STA发包. 当没有wifi存在的时候,LAN口之间的broadcast 和 multicast是可靠转 ...

随机推荐

  1. CentOS7 zabbix4.0搭建配置

    一.Zabbix-Server服务器端的安装 概述:10050是Agent的端口,Agent采用被动方式,Server主动连接Agent的10050端口:10051是Server的端口,Agent采用 ...

  2. Spring-Cloud之Eureka注册中心环境搭建(单节点)

    一 Eureka概述 服务启动时会生成服务的基本信息对象InstanceInfo,然后在启动时会register到服务治理中心. 注册完成后会从服务治理中心拉取所有的服务信息,缓存在本地. 之后服务会 ...

  3. Web前端-HTML、CSS、JS

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他, 这样就可以让浏览 ...

  4. asp获取隐藏域的json 并解析

    方法粗糙,适用度适中. var data2 = document.getElementById("hd_data02"); var val = data2.value; var o ...

  5. GO异常 | runnerw.exe: CreateProcess failed with error 21

    背景 今天创建了一个GO项目,写了几行代码 package chapter1 import "fmt" func main() { fmt.Println("hello ...

  6. 【译】SQ3R学习法则

    SQ3R 观察-提问-阅读-复述-回顾 背景 SQ3R是一种理解策略,可帮助学生在阅读时思考他们正在阅读的文章. SQ3R通常被归类为学习策略,通过教导学生在初次阅读一篇文章时如何阅读和像高效读者一样 ...

  7. CAD制图系列之“点”的绘制方法

    本章将重点记录点的绘制方法 画直线的原理其实在画两个点,所以,只要会把握点的画法,线就画好啦 点输入模式: 鼠标输入方式: 手动模式: 自动模式: 键盘输入方式: 绝对直角坐标 相对直角坐标 绝对极坐 ...

  8. (5千字)由浅入深讲解动态规划(JS版)-钢条切割,最大公共子序列,最短编辑距离

    斐波拉契数列 首先我们来看看斐波拉契数列,这是一个大家都很熟悉的数列: // f = [1, 1, 2, 3, 5, 8] f(1) = 1; f(2) = 1; f(n) = f(n-1) + f( ...

  9. python day01练习和作业

    习题:1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型编译型语言:优点:执行速度快 缺点:维护成本高,跨平台性差解释型语言:优点:维护成本低,跨平台性好 缺点:执 ...

  10. ELK:收集Docker容器日志

    简介 之前写过一篇博客 ELK:日志收集分析平台,介绍了在Centos7系统上部署配置使用ELK的方法,随着容器化时代的到来,容器化部署成为一种很方便的部署方式,收集容器日志也成为刚需.本篇文档从 容 ...