CSMACD vs CSMACA

    xiaoxiao2021-12-16  51

    Aloha vs CSMA

    Aloha协议的特点是有数据立即发送CSMA是在Aloha协议之上增加了一个信道检测

    CSMA/CD

    监听信道,如果信道忙,继续监听(这个忙应该不需要指数回退,实时监测即可)。如果信道空闲,等待IFG帧间间隙,发送数据。这个时候如果多个节点发送数据,就会发生冲突。一旦某一个节点检测到冲突,其就在信道上发送一个Jamming信号通知所有节点。退避的时间是slot_time的整数倍N = 0 ~ (2^k - 1)。最开始K=0。K最大为16。如果退避次数超过了上限,发送失败。丢弃该帧,发送下一帧。

    延迟的slot数为N = 0 ~ (2^k - 1),k有范围 k=1,N = 0~1 k=2,N = 0~3 k=3,N = 0~7 、、、 这样可以最大程度的避免冲突

    CSMA/CA

    普通DCF

    如果信道忙,等待如果信道空闲,接着等待DIFS如果信道忙,等待如果还空闲,立即发送数据如果没有收到ACK信号,说明发生了碰撞等待DIFS,如果空闲,竞争窗口内选择一定的时隙发送。

    带RTS/CTS的DCF

    CA的载波监听分为:

    虚拟载波监听物理载波监听

    RTS/CTS包的头部都有一个Duration字段。因为无线的数据包都是广播的,很多节点都能收到。非目标节点接收到后,会根据Duration字段的值来设置各自的NAV(Network Allocation Vector)。NAV指定了可以接入信道的最早时间。

    问题

    lmz_0: 出于效率考虑,DCF使用离散退避机制。 一个空闲的DIFS的时间片被划分为时隙,一个节点只能在某个时隙开始的时刻开始发送数据包,从而避免了用户发送数据的随意性,提高了信道利用速率。 竞争窗口CW的值以2为底的整数。

    一个节点真正的发送时刻是空闲后的 DIFS+随机退避时间

    如何防止某一个节点一直竞争不到信道? 感觉不同的节点的CW的值最开始是一样的。 如果某一个节点多次接入不了信道,其CW值应该是越来越小的。

    lmz_1:

    不论是CD还是CA,都会监测信道是否空闲。感觉这个信道状态的监测是实时的。即忙的时候继续监测就可以,而不用在这个时候就执行指数回退。

    lmz_2:

    为什么无线信道不使用碰撞检测?

    隐藏终端的存在检测不到无线接收不能同时

    lmz_3:

    简单来说,CA是在监测信道空闲时间达到DIFS后才发送数据,即实时监测信道时发现空闲,等待DIFS后仍发现空闲,这时才发送数据。 而CD只要监测到空闲,立即发送数据(等待的帧间间隔和CA不是一回事)。CD监测碰撞是实时的,CA监测碰撞是通过ACK的反馈是在发送之前执行指数回退

    lmz_4:

    个人感觉所谓的指数回退,不论是在CD还是在CA中都是减少碰撞几率的一种方法。 那么,无线中的碰撞避免主要体现在哪里呢? 体现在必须监测到信道空闲一段时间才发送数据。这就避免了低优先级的信号(普通包) 和高优先级信号(确认包)的碰撞。

    lmz_5:

    CA中的信道忙有两种情况:

    最初监测到信道忙在DIFS周期内监测到信道忙

    tags:opnet

    转载请注明原文地址: https://ju.6miu.com/read-1029390.html

    最新回复(0)