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