动态媒体接入控制/多点接入,其特点是信道并非在用户通信时固定分配给用户,其中随机访问介质访问控制下,所有用户可以随机发送信息,发送信息时占全部带宽。
1、ALOHA协议
纯ALOHA协议
纯ALPHA协议的思想是:不监听信道,不按时间槽发送,随机重发。想发就发
冲突如何检测?
如果发生冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。
冲突如何解决?
超时后等一个随机时间之后再重新重传。
时隙ALOHA协议
时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个个时间片开始时刻再发送。控制想发就发的随意性
纯ALOHA协议比时隙ALOHA协议吞吐量更低,效率更低;
纯ALOHA协议想发就发,时隙ALOHA协议只有在时间片段开始时才能发;
2、CSMA协议
CSMA的全称为:载波监听多路访问协议-carrier sense multiple access
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据,当有几个站同时在总线上发送数据时,总线上的电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
CSMA协议的思想为:发送帧之前,监听信道。
2.1 1-坚持CSMA
这种协议中的坚持指的是对于监听信道忙之后的坚持。
这种协议的思想是:
如果一个主机要发送消息,那么它先监听信道;
空闲则直接传输,不必等待;
忙则一直监听,直到空闲时马上传输;
如果有冲突(一段时间没有收到肯定恢复),则等待一个随机长的时间再监听,重复上述过程。
优点:
\qquad 只要媒体空闲,站点就会马上发送,避免了媒体利用率的损失
缺点:
假如有两个或者两个以上的站点有数据要发送,则冲突不可避免。
2.2 非坚持CSMA
这种协议的思想是:
如果一个主机要发送消息,那么它先监听信道;
空闲则直接传输,不必等待;
忙则等待一个随机时间之后再监听,直到空闲时马上传输;
优点:
采用随机的重发延迟时间可以减少冲突发送的可能性
缺点:
可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低
2.3 p坚持CSMA
这种协议的思想是:
如果一个主机要发送消息,那么它先监听信道;
空闲则以p概率直接传输,不必等待;以概率1-p等待到下一个时间槽再进行传输
忙则等待一个随机时间之后再监听
优点:
既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间
缺点:
但是发生冲突之后还是坚持把数据帧发送完,造成了浪费
3、CSMA-CD协议
CSMA-CD的全称为:载波监听多路访问协议/碰撞检测-carrier sense multiple access with collision detection
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上,总线型网络
CD:碰撞检测(冲突检测),“边发送边监听”,适配器便发送数据边检测信道上信道电压的变化情况,以便判断在发送数据时,其他站是否也在发送数据。应用于半双工网络。
3.1 传播时延对载波监听的影响
最迟需要多久才能知道自己发送的数据没有和别人碰撞?最多是两倍的总线端到端的传播时延( 2 τ 2 \tau 2τ),只要经过 2 τ 2\tau 2τ时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。
3.2 如何确定碰撞后的重传时机
使用截断二进制指数规避算法来确定重传时机,算法步骤如下所示:
1、确定基本退避时间为争用期 2 τ 2\tau 2τ;
2、定义参数 k k k,他等于重传次数,但是 k k k不超过10,即 k = m i n 重 传 次 数 , 10 k=min{重传次数,10} k=min重传次数,10。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10;
3、从离散的整数集合 [ 0 , 1 , . . . , 2 k − 1 ] [0,1,...,2^k-1] [0,1,...,2k−1]中随机取出一个数r,崇川所需要退避的时间就是r倍的基本退避时间,即 2 r τ 2r\tau 2rτ
4、当重传达到16次仍不能成功,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。下面是一个小例子:
若连续多次发送冲突,就表明可能有较多的站参与争用信道,使用此算法发可以使得重传需要推迟的平均时间随着重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
3.3 最小帧长问题
帧的传输时延至少要两倍于信号在总线中的传播时延。
帧的传输时延=数据传输速率帧长(bit)≥2τ
从而可以得出,
最小帧长=总线传播时延×数据传播速率×2=2τ×数据传播速率
以太网规定最短帧长为64字节,凡是长度小于64B的都是由于冲突而异常终止的帧。
4、CSMA-CA协议
载波监听多点接入/避免碰撞CSMA/CA-Carrier Sense Multiple Access with Collision Avoidance
为什么要有CSMA/CA?
因为在无线局域网中无法做到360°全面检测碰撞;同时当A和C都要向B发送数据时,A和C之间无法相互检测到,其相互为隐蔽站,他们同时向终端B发送数据帧,就会导致冲突。
4.1 CSMA/CA协议工作原理
发送数据之前,先检测信道是否空闲;
空闲则发出RTS(request to send),RTS包括发射端的地址,接收端的地址,下一份数据将持续发送的时间等信息;信道忙则等待;
接收端收到RTS之后,将相应CTS(Clear to Send);
接收端发送CTS之后将等待收到数据,在没有收到数据之前,不会回应其他发送端的RTS。
发送端收到CTS之后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)
接收端收到数据帧之后,将用CRC来检验数据是否正确,正确则相应ACK帧;
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数规避算法来确定随机的推迟时间);
4.2 CSMA/CD和CSMA/CA的异同点
相同点:
CSMA/CD和CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都必须进行监听。当发现信道空闲之后,才能进行呢接入。
不同点:
传输介质不同: CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网;
载波检测方式不同: 因为传输介质不同,CSMA/CD和CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED),载波检测(CS)和能量载波混合检测三种检测信道空闲的方式;
CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲入后都会进行有上限的重传,其中CSMA/CD重传的上限值为16次。