计算机网络-8
3.5.3 CSMA协议
载波监听多路访问协议CSMA(carrier sense multiple access)
CS:载波侦听/滥监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
协议思想:发送帧之前,监听信道。
1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持。
1-坚持CSMA思想:
如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。
忙则一直监听,直到空闲马上传输。
如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
非坚持CSMA思想:
如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。
忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。
p-坚持CSMA思想:
如果一个主机要发送消息,那么它先监听信道。
空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。
忙则等待一个随机的时间之后再进行监听。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
缺点:发生冲突后还是坚持要把数据帧发完,造成了浪费。(CSMA/CD碰撞检测解决此问题)
三种CSMA对比总结
1-坚持CSMA | 非坚持CSMA | p-坚持CSMA | |
---|---|---|---|
信道空闲 | 马上发 | 马上发 | p概率马上发;1-p概率等到下一个时隙再发送 |
信道忙 | 继续坚持监听 | 放弃监听,等一个随机时间再监听 | 放弃监听,等一个随机时间再监听 |
CSMA/CD协议
载波监听多点接入/碰撞检测 CSMA/CD(carrier sense multiple access with collision detection)
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。半双工网络
先听后发为什么还会产生冲突?
因为电磁波在总线上总是以有限的速率的速率传播的。
传播时延对载波监听的影响
如何确定碰撞后的重传时机?
截断二进制指数规避算法
重传的过程:
一个例题
最小帧长问题
所以我们需要定义一个最小帧长
帧的传输时延至少要两倍于信号在总线中的传播时延。
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧
小结
3.5.4 CSMA/CA协议
相较于CD,了解CA即可
载波监听多点接入/碰撞避免 CSMA/CA(carrier sense multiple access with collision avoidance)
CSMA/CA协议工作原理
发送数据前,先检测信道是否空闲。
空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
接收端收到RTS后,将响应CTS(clear to send)。
发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
CA中使用的三个机制来实现碰撞避免:
预约信道
ACK帧
RTS/CTS帧(可选)
可用可不用,主要来解决隐蔽站问题
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避免冲突,二者出现冲突后都会进行有上限的重传。
3.5.5 轮询访问介质访问控制
介质访问控制
信道划分介质访问控制(MAC Multiple Access Control)协议:
- 基于多路复用技术划分资源。
- 网络负载重:共享信道效率高,且公平。
- 网络负载轻:共享信道效率低。
随机访问MAC协议:会产生冲突
- 用户根据自己的意愿随机发送信息,发送信息时可独占信道带宽。
- 网络负载重:产生冲突开销。
- 网络负载轻:共享信道效率高,单个结点可利用信道全部带宽。
轮询访问MAC协议/轮流协议/轮转访问MAC协议:
- 既要不产生冲突,又要发送时占全部带宽。
- 包括 :轮询协议和令牌传递协议
轮询协议
了解过程即可
主节点轮流“邀请”从属结点发送数据。
存在的问题:
- 轮流开销
- 等待延迟
- 单点故障(主节点故障)
令牌传递协议
令牌:一个特殊格式的MAC帧,不含任何信息。
控制信道的使用,确保同一时刻只有一个节点独占信道。
令牌环网无碰撞
每个结点都可以在一定的时间内(令牌持有时间)获得发送次数据的权力,并不是无限制的持有令牌。
存在的问题:
- 令牌开销
- 等待延迟
- 单点故障(某个主机故障)
应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
釆用令牌传送方式的网络常用于负载较重、通信量较大的网络中。