CSMA/CA协议分析

概述

无线局域网标准的802.11的MAC协议与802.3标准的MAC协议非常相似。在802.3协议中,MAC协议使用的是一种叫做CSMA/CD(Carrier Sense Multiple Access/Collision Detect),即载波监听多路访问/冲突检测机制。这个协议解决了如何在有线以太网上检测和避免当两个或两个以上的网络设备需要同时进行数据传输时网络上的冲突。其工作原理可以总结为先听后说,边听边说;一旦冲突,立即停说;等待时机,然后再说。但其并不适合无线局域网,在无线局域网中,无线电波传输距离受限,不是所有的节点都能够都能监听到信号;而且,无线网卡工作在半双工模式下,设备无法一边接收数据信号,一边传送数据信号。另一方面,无线带宽本就不高,一旦发生碰撞,重新发送数据,会降低吞吐量。
为此,在802.11中对CSMA/CD进行了一些修改,采用了新的协议CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance),即,载波监听多路访问/冲突避免机制,利用ACK信号来避免冲突的发生,也就是说,只有当STA收到网络上返回的ACK信号后才确认送出的数据已经正确到达目的地址。

CSMA/CA协议

为了尽量避免碰撞,802.11标准规定,所有的STA在完成帧的发送后,必须在等待一段很短的时间才能发送下一帧,这段时间叫做帧间间隔IFS。帧间间隔的长短取决于该站要发送的帧的类型。高优先级的帧需要等待的时间较短,因此可以优先获得发送权,但低优先级帧就必须等待较长的时间。若低优先级帧还没来得及发送而其他高优先级帧已发送到媒体,则媒体变为忙态因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。至于各种帧间间隔的具体长度,这取决于使用的物理层特性。
SIFS,即短(Short)帧间间隔。SIFT是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个STA应当能够从发送方式切换到接收方式。使用SIFS的帧类型有:ACK帧、CTS帧、由过长的MAC帧分片后的数据帧,以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
PIFS,即点协调功能帧间间隔(比SIFS长),是为了在开始使用PCF方式时(在PCF方式下使用,没有争用)优先获得接入到媒体中。PIFS的长度是SIPS加一个时隙时间(slot time)的长度。时隙的长度是这样确定的:在一个基本服务集BSS内,当某个站在一个时隙开始时接入到信道时,那么在下一个时隙开始时,其它站就都能检测出信道以转变为忙态。 
DIFS,即分布协调功能帧间间隔(最长IFS),在DCF方式中用来发送数据帧和管理帧。DIFS的长度比PIFS再多一个时隙长度。
为了尽量减少碰撞的机会,802.11标准采用了一种叫做虚拟载波监听地的机制,这就是让源站把它要占用的信道时间(包括目的站发回确认帧所需时间)写入到所发送的数据帧中,(即在首部中的“持续时间”字段中写入需要占用信道时间,以微秒为单位,一直到目的站把帧确认完为止),以便使其他所有的站在这一段时间都不要发送数据。“虚拟载波监听”的意思是其他各站并没有监听信道,而是由于这些站都知道了源站正在用信道才不发送数据。这种好像是其他站都监听了信道。 当站点检测到正在通信中传送的帧“持续时间”字段时,就调整自己的网络分配向量NAV。NAV指出了信道处于忙状态的持续时间。信道处于忙状态就表示:或者是由于物理层的载波监听检测到信道忙,或者是由于MAC层的虚拟载波监听机制指出了信道忙。

CSMA/CA工作原理

(1)首先检测信道是否有STA在使用,如果检测出信道空闲,则等待DIFS时间后,才送出数据。
 (2)目的STA如果正确收到此帧,则经过SIFS时间间隔后,向源STA发送确认帧ACK。
 (3)源STA收到ACK帧,确定数据正确传输,在经历DIFS时间间隔后,会出现一段空闲时间,叫做争用窗口,表明会出现各STA争用信道的情况。
如果检测信道时发现信道正在使用,STA使用CSMA/CA协议的退避算法。冻结退避计时器。只要信道空闲,退避计时器就进行倒计时。当退避计时器减少到零时,STA就发送帧并等待确认。如果没有收到ACK帧,必须重传次帧。

带有RTS/CTS握手信号的CSMA/CA协议

在检测出信道空闲并等待DIFS时间间隔后,不立即发送数据帧,而是现发送RTS报文给目的STA,目的STA收到RTS报文后,发送给报文CTS报文给源STA,经过这次握手后,就可以发送数据帧。通过RST/CTS握手信号可以有效的避免隐藏终端。

CSMA/CA协议分析相关推荐

  1. 3.5.5 CSMA/CA 协议

    3.5.5 CSMA/CA 协议

  2. 基于CSMA -CA协议的无线星型网络的应用案例介绍

    1.CSMA/CA特点 在无线网络通信中,一种被称为CSMA/CA的协议解决了上诉数据冲突问题,CSMA(Carrier Sense Multiple Access),中文为冲突避免的载波侦听多路访问 ...

  3. 王道考研 计算机网络12 点对点链路 广播式链路 介质访问控制MAC 动态分配信道 ALOHA协议 CSMA CSMA/CD CSMA/CA协议

    传输数据使用的两种链路 广播式链路: 传输的信息会传到所有的主机上 介质访问控制 动态分配信道-ALOHA协议 1.纯ALOHA协议: 2.时隙ALOHA协议 总结: 动态分配信道-CSMA协议 ca ...

  4. 计算机网络(十五)-数据链路层-CSMA/CA协议

    一.CSMA/CA协议 载波监听多点接入/碰撞避免CSMA/CA 主要在无线局域网中使用. 1.1 工作原理 发送数据前,先检测信道是否空闲. 空闲则发出RTS,RTS包括发送端的地址.接收端的地址. ...

  5. CSMA/CD协议分析笔记

    CSMA/CD协议分析笔记 CSMA/CD(carrier sense multiple access with collision detection) 文章目录 CSMA/CD协议分析笔记 前言 ...

  6. 计算机网络 --- 数据链路层CSMA/CA协议

    CSMA/CA全称 载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidence) CSMA/CA协议与CSM ...

  7. 计算机网络之数据链路层:12、CSMA/CA协议-随机访问介质访问控制

    数据链路层:12.CSMA/CA协议-随机访问介质访问控制 思维导图: 为什么要有CSMA-CA协议: 载波监听多点接入/碰撞避免CSMA-CA协议: CSMA-CD和CSMA-CA对比: 总结: 思 ...

  8. 数据链路层 随机接入-CSMA/CA协议

    媒体接入控制-动态接入控制-随机接入 CSMA/CA协议 载波监听多址接入/碰撞避免CSMA/CA 既然CSMA/CA协议已经成功的应用于使用广播信道的有限局域网,那么同样使用广播信道的无线局域网能不 ...

  9. 计算机网络:CSMA/CA协议

    载波监听多点接入/碰撞避免/CSMA/CA 当A和C都检测不到信号时,认为信道空闲时,同时想终端B发送数据帧,就会导致冲突. CSMA/CA协议的工作原理: 发送数据之前,先检测信道是否空闲. 如果信 ...

最新文章

  1. Go Web 开发(一)
  2. 项目中用到的三个绿色自动备份方法
  3. ASP.NET Core 上传多文件 超简单教程
  4. 服务器,工作站和终端机
  5. 论文多到读不完?不如看看我们为你精选的这 15 篇
  6. 自组网中继台_同频自组网基站
  7. java interruptedexception_如何正确的处理InterruptedException
  8. Android Studio一键汉化,分享一个自己写的小工具
  9. Data Structures and Algorithm Analysis in C, Second Edition(《数据结构与算法分析》C语言版 第二版)——Mark Allen Weiss
  10. 基于opencv的证件照换背景
  11. 数据库MySQL(基础六)
  12. SpringCloud学习系列之三-----配置中心(Config)文件修改后,客户端动态刷新(Refresh)
  13. iPhone4S大跌4000港元成跌价王 水货商谨慎进货
  14. 一、CDD在诊断开发中的作用
  15. java例外站点添加不上,java例外站点添加不了
  16. 图书推荐:《Web前端黑客技术揭秘》
  17. MIROInvoiceBlockSetTolerancelimitsEnhancement_SAP刘梦_新浪博客
  18. 微信小程序快递取件及上门服务
  19. Sencha Touch框架介绍
  20. 欧拉回路 (七桥问题)

热门文章

  1. 2021-2027全球与中国步入式冰箱冰柜市场深度研究分析报告
  2. Python爬虫(一) 信息系统集成及服务资质网
  3. 游戏自动按键脚本4:飞车追捕
  4. 现在可以下载适用于Windows 7和Windows Server 2008 R2的Internet Explorer 11稳定版
  5. 离散数学 --- 特殊图 --- 偶图与平面图
  6. 想装一台自己的电脑,可以先了解下这些问题
  7. 170322 PyQt-后台界面设置、WidgetList的使用 汇编5.1
  8. Python 一元二次方程
  9. 初识ActionContext
  10. 体素坐标(voxel_coors)在mmdetection3d中的理解