`
wangleide414
  • 浏览: 606763 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

CSMA/CA算法流程

 
阅读更多

我们知道总线型局域网在MAC层的标准协议是CSMA/CD,即载波侦听多点接入/冲突检测(Carrier Sense Multiple Access with Collision Detection)。但由于无线产品的适配器不易检测信道是否存在冲突,因此802.15全新定义了一种新的协议,即载波侦听多点接入/避免冲撞CSMA/CA(with Collision Avoidance)。一方面,载波侦听----查看介质是否空闲;另一方面,避免冲撞----通过随机的时间等待,使信号冲突发生的概率减到最小,当介质被侦听到空闲时,优先发送。不仅如此,为了系统更加稳固,802.15还提供了带确认帧ACK的CSMA/CA。在一旦遭受其他噪声干扰,或者由于侦听失败时,信号冲突就有可能发生,而这种工作于MAC层的ACK此时能够提供快速的恢复能力。

以太网属于广播形式的网络,当一个站点发送信息时,网络中的所有站点都能接收到,容易形成数据堵塞,导致网络速度变慢,甚至发生系统瘫痪。为了尽量减少数据的传输碰撞和重试发送。以太网中使用了CSMA/CA(载波监听多路访问/冲突检测)工作机制。以防止各站点无序地争用信道。无线局域网中采用了与CSMA/CD相类似的CSMA/CA(载波监听多路访问/冲突防止)协议,当其中一个站点要发送信息时。首先监听系统信道空闲期间是否大于某一帧的间隔。若是,立即发送,否则暂不发送,继续监利。CSMA/CA通信方式将时间域的划分与帧格式紧密联系起来,保证某一时刻只有一个站点发送,实现了网络系统的集中控制。

因为传输介质的不同,所以传统的CSMA/CD与无线局域网中的CSMA/CA在工作方式上存在着差异。CSMA/CD的检测方式是通过电缆中电压的变化来测得,当数据传输发生碰撞时,电缆中的电压就舍随着发生变化,而CSMA/CA使用空气作为传输介质.必须采用其他的碰撞检测机制。CSMA/CA采取了三种检测信道空阁的方式:能量检测(ED)、载波检测(CS)和能量载波混台检测。

能量检测(ED) 接收端对接收到的信号进行能量大小的判断,当功率大于某一确定值时,表示有用户在占用信道,否则信道为空。

载波检测(CS)接收端将接收到的信号与本机的伪随机码(PN码)进行运算比较,如果其值超过某一极限时,表示有用户在占用信道,否刚认为信道为空。

能量载波检测。它是能量检测和载波检测两种工作方式的结合。

在IEEE 802.15.4 CSMA/CA机制中,网络协调器在网络中,会发出信标给所有的可感应节点,而对于有数据需传送的设备来说,它们会向网络协调器要求进行传送,由于在一个时间内只能有一个设备进行传输,因此所有想要传输的节点设备就会通过CSMA/CA机制来竞争传输媒体的使用权。所有准备传输数据的设备,会监测目前的无线传输媒体是否有其他设备在使用中,如果为宅闲,此时,这些设备会产生一个倒退延迟时间,来错开这些设备同时送出数据从而造成碰撞的可能。若目前的无线传输媒体是忙碌中的,则这些设备将会在监测到媒体为空闲后,再进行CSMA/CA的竞争。

在IEEE 802.15.4 CSMA/CA算法中,CSMA/CA算法是用于节点问数据传输时的信道争用机制,此算法中有三个重要的参数由每个要传送数据的设备去维护:Nb、CW和BE。

Nb(后退次数,Number Of Back):Nb的初始值为0,当设备有数据要传送时,经过一段后退时间后,发送CCA检测,若检测到信道忙,则会再一次产生倒退时间,此时Nb值会加1,在IEEE802.15.4中,Nb值最大定义为4,当信道在经过4次的后退延迟时间后仍为忙,刚放弃此次的传送,以避免过大开销。

CW (碰撞窗口的长度,content window length):也就是后退延迟时间的长度,单位是Backoff,一个后退周期的定义在MAC PIB中由参数aUnitBackofPeriod给出,为20symbol的时间。CW的初始值为2,最大值为31。

BE(后退指数,Backoff exponent):取值范围为0~5,15.4推荐的默认值为3,最大值为5。当BE设为0时,则只进行一次碰撞检测。在IEEE 802.15.4中,失败的次数(重传)最多3次。图2.19是CSMA/CA算法流程;其中在步骤(3)是完成CCA的部分。

分享到:
评论

相关推荐

    CSMA/CA算法仿真

    CSMA/CA(载波监听多路访问/冲突避免)是一种在无线通信中,特别是Wi-Fi...而"CSMA/CA算法仿真"可能涉及到对这一过程的模拟研究,以评估不同场景下协议的表现,这在优化无线网络配置和提高传输效率方面具有很高的价值。

    CSMA/CA算法的MATLAB仿真,动态图形显示碰撞过程,含仿真操作录像

    2.领域:CSMA/CA算法。 3.内容:CSMA/CA算法的MATLAB仿真,动态图形显示碰撞过程。 TRUE = 1; %表示事件为真 FALSE = 0; %表示事件为假 ACK = 2.8; %ACK帧相当于0.5个时隙 SIFS = 10.5; %SIFS帧相当于0.5个时隙 ...

    csma/ca仿真

    CSMA/CA(载波监听多路访问/冲突避免)是一种在无线通信网络中,特别是Wi-Fi和IEEE 802.11标准中广泛采用的介质访问控制(MAC)协议。这种协议的设计目的是减少数据传输时的冲突,提高网络效率。在MATLAB环境中进行...

    csma/ca和csma/cd的matlab源代码仿真

    3. **CSMA/CA算法**:实现碰撞避免机制,包括RTS/CTS交换和ACK确认。 4. **数据包生成**:根据设定生成随机数据包,模拟真实的数据传输。 5. **冲突检测与处理**:处理可能出现的冲突情况,如重新传输。 6. **图形化...

    CSMA/CA协议matlab代码模拟仿真

    3. **实现CSMA/CA算法**:编程实现载波监听、冲突避免、RTS/CTS握手等核心功能。 4. **模拟数据传输**:在模拟环境中,节点按照CSMA/CA协议规则发送和接收数据,记录并分析传输的成功率、延迟等性能指标。 5. **结果...

    linux下802.11协议csma/ca 的C程序实现

    本文将深入探讨如何用C语言来实现这一协议,并通过分析“CSMA-CA算法实验”这个压缩包中的内容,帮助理解其背后的原理和编程实践。 CSMA/CA是一种避免网络冲突的策略,它不同于有线网络中的CSMA/CD(载波监听多路...

    CSMACA协议.rar_802.11_CSMA/CA_csma_csma/ca协议_csmaca

    CSMA/CA的基本流程包括以下步骤: 1. **载波监听**:在发送数据前,无线设备会监听无线信道是否空闲。如果信道忙,设备会等待一段时间,直到信道变为静默状态。 2. **预备传输**:即使信道空闲,设备也会继续监听...

    CSMA.CA.rar_CSMA/CA_CSMA/CA DCF_csma_csma_ca_dcf

    CSMA/CA(载波监听多路访问/冲突避免)是一种在无线通信中,特别是无线局域网(WLAN)中实现介质访问控制(MAC)的协议。它主要用于避免网络中的多个设备同时发送数据,从而可能导致的数据包碰撞。在描述中提到的DCF...

    无线局域网802.11协议CSMACA算法模拟程序.zip

    提供的压缩包文件"第12章 无线局域网802.11协议CSMACA算法模拟程序"包含了用C语言编写的CSMA/CA算法模拟程序,这对于学习和理解该算法的工作原理非常有帮助。通过运行这个程序,学生可以直观地观察到CSMA/CA如何在多...

    CSMA/CD 协议的模拟实现

    4. **随机延迟生成**:用于模拟设备等待的随机时间,通常遵循二进制指数退避算法。 5. **通信介质**:可能是一个互斥锁或者信号量,用于同步对网络状态的访问。 在实际编程中,使用`printf`代替`cout`是为了避免...

    CSMA/CA MATLAB仿真

    这个文件很可能是仿真模型的核心代码,包含了实现CSMA/CA算法的具体MATLAB脚本或Simulink模型。通过分析和运行这个文件,我们可以深入理解CSMA/CA的仿真细节,调整参数以适应不同的网络条件,或者进行进一步的研究和...

    CSMA_CA.tar.gz_csma_csma c++_csma ca_csma-ca_csma/ca c++

    CSMA有几种变体,包括CSMA/CD(载波监听多路访问/碰撞检测)和CSMA/CA(载波监听多路访问/碰撞避免)。本项目主要关注的是CSMA/CA,这是一种在无线网络,特别是Wi-Fi和Ad Hoc网络中广泛采用的技术。 CSMA/CA的主要...

    csma_ca.zip_CA_csma_csma c++_csma ca_csma/ca c++

    在“csma_ca”项目中,可能包含了这样的实现,通过编程来模拟CSMA/CA协议的工作流程。 总之,CSMA/CA是无线通信网络中的重要协议,它通过预防冲突而非检测冲突来优化网络资源的使用。在C++中实现CSMA/CA,不仅需要...

    csma_ca.pr.rar_CSMA/CA_csma_csma ca_csma_ca_opnetMAC协议

    在提供的压缩包文件"csma_ca.pr.c"中,很可能包含了用C语言编写的OPNET模型的源代码,这些代码可能用于实现或测试CSMA/CA的具体算法和功能。通过对这个源代码的分析和调试,可以深入理解CSMA/CA的工作原理,并在实际...

    csma_ca_matlab.zip_CSMA matlab_CSMA/CA MATLAB_Matlab CSMA_csma_

    CSMA/CA(载波监听多路访问/冲突避免)是一种在无线通信网络中用于介质访问控制(MAC)的协议,特别是在Wi-Fi和蓝牙等无线个域网(WPAN)中广泛使用。这个"csma_ca_matlab.zip"压缩包包含的是关于CSMA/CA的MATLAB...

    CSMA_CA毕业论文

    在北邮毕业生的研究中,重点可能放在了如何通过优化算法来提升CSMA/CA的性能,特别是对服务质量(QoS)的增强。QoS是衡量网络性能的重要指标,涉及延迟、带宽、可靠性等多个方面。在无线通信中,由于信道的不稳定性...

    csma-ca.zip_Enjoy_csma/ca c++

    在这个"csma-ca.zip_Enjoy_csma/ca c++"的压缩包中,我们可能找到了一个C++实现的CSMA/CA算法的代码示例。 CSMA(载波监听多路访问)是传统有线局域网(如以太网)中的一个基本概念,当设备想要发送数据时,它会先...

    csma.zip_CSMA CA matlab_CSMA matlab_CSMA/CA_csma_csma ca

    4. **CSMA/CA算法**:实现RTS/CTS握手。当一个节点想要发送数据时,它首先发送一个短的RTS帧,如果接收方接收到并回应CTS帧,说明信道已被确认为可用,然后节点才能发送数据。 5. **冲突处理**:如果多个节点同时...

    IEEE802_15_4动态自适应CSMA_CA算法设计与仿真_蒋子峰.zip

    《IEEE802.15.4动态自适应CSMA/CA算法设计与仿真》是针对无线传感器网络(Wireless Sensor Networks, WSNs)中通信协议的重要研究。该资料主要探讨了IEEE 802.15.4标准中的载波侦听多址访问/冲突避免(Carrier Sense...

Global site tag (gtag.js) - Google Analytics