计算机网络:随机访问介质访问控制之 CSMA 协议
CSMA 协议
时隙 ALOHA 系统的效率虽然是纯 ALOHA 系统的两倍,但每个站点都是随心所欲地发送数据的,即使其他站点正在发送也照发不误,因此发送碰撞的概率很大。
若每个站点在发送前都先侦听一下共用信道,发现信道空闲后再发送,则就会大大降低冲突的可能,从而提高信道的利用率,载波侦听多路访问(Carrier Sense Multiple Access,CSMA)协议依据的正是这一思想。CSMA 协议是在 ALOHA 协议基础上提出的一种改进协议,它与 ALOHA 协议的主要区别是多了一个载波侦听装置。
根据侦听方式和侦听到信道忙后的处理方式不同,CSMA 协议分为三种。
1-坚持 CSMA
一个结点要发送数据时,首先侦听信道;如果信道空闲,那么立即发送数据;如果信道忙,那么等待,同时继续侦听直至信道空闲;如果发生冲突,那么随机等待一段时间后,再重新开始侦听信道。
“1-坚持”的含义是:侦听到信道忙后,继续坚持侦听信道; 侦听到信道空闲后,发送帧的概率为 1,即立刻发送数据。传播延迟对 1-坚持 CSMA 协议的性能影响较大。
结点 A 开始发送数据时,结点 B 也正好有数据要发送,但这时结点 A 发出数据的信号还未到达结点 B,结点 B 侦听到信道空闲,于是立即发送数据,结果必然导致冲突。
即使不考虑延迟,1-坚持 CSMA 协议也可能产生冲突。
例如,结点 A 正在发送数据时,结点 B 和 C 也准备发送数据,侦听到信道忙,于是坚持侦听,结果当结点 A 一发送完毕,结点 B 和 C 就会立即发送数据,同样导致冲突。
非坚持 CSMA
一个结点要发送数据时,首先侦听信道; 如果信道空闲,那么立即发送数据; 如果信道忙,那么放弃侦听,等待一个随机的时间后再重复上述过程。
非坚持 CSMA 协议在侦听到信道忙后就放弃侦听,因此降低了多个结点等待信道空闲后同时发送数据导致冲突的概率,但也会增加数据在网络中的平均延迟。可见,信道利用率的提高是以增加数据在网络中的延迟时间为代价的。
p-坚持 CSMA
p-坚持 CSMA (P-persistent CSMA)用于时分信道,其基本思想是:一个结点要发送数据时,首先侦听信道;如果信道忙,就持续侦听",直至信道空闲; 如果信道空闲,那么以概率 p 发送数据,以概率 1-p 推迟到下一个时隙; 如果在下一个时隙信道仍然空闲,那么仍以概率 p 发送数据,以概率 1-p 推迟到下一个时隙; 这个过程一直持续到数据发送成功或因其他结点发送数据而检测到信道忙为止,若是后者,则等待下一个时隙再重新开始侦听。
p-坚持 CSMA 在检测到信道空闲后,以概率 p 发送数据,以概率 1-p 推迟到下一个时隙,其目的是降低 1-坚持 CSMA 协议中多个结点检测到信道空闲后同时发送数据的冲突概率; 采用坚持“侦听”的目的是,试图克服非坚持 CSMA 协议中由于随机等待而造成的延迟时间较长的缺点。因此,p-坚持 CSMA 协议是非坚持 CSMA 协议和 1-坚持 CSMA 协议的折中方案。
比较
参考资料:
谢希仁.计算机网络(第 8 版)[M].北京:电子工业出版社,2021.
James F.Kurose,Keith W.Ross.计算机网络:自顶向下方法[M].北京:机械工业出版社,2019.
2023 年王道计算机复习指导[M].北京:电子工业出版社,2021.
版权声明: 本文为 InfoQ 作者【timerring】的原创文章。
原文链接:【http://xie.infoq.cn/article/9971cd84565ca87a3d925ae00】。未经作者许可,禁止转载。
评论