专业的IT培训机构|腾科IT教育集团
复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图片

腾科新闻

CSMA/CD算法原理

发布时间: 2022-04-12

总线型网络的先天冲突性必须得到有效的避免,否则网络将无法工作。解决这一问题的位置被放在了数据链路层,而不是摒弃这种问题多多的拓扑结构。IEEE最先提出了载波监听多路访问/冲突检测算法,即CSMA/CD(Carrier Sense MultipleAccess/Collision Detect)。

这种算法的原理基于监听的大原则。每台主机在需要发送数据之前首先监听总线,如果发现总线上当前有数据,则启动退避算法(一种随机产生某个等待时间的算法);如果发现总线空闲,则立即发送数据并继续监听总线;在发送数据的过程中,监听程序如果没有发现冲突则保持数据的发送直至发送结束为止;在发送数据的过程中,监听程序如果发现冲突,则停止发送数据,启动退避算法,等待一段时间后再次尝试发送数据。具体流程如图1所示。


图1 CSMA/CD算法流程图


CSMA/CD算法的原理归结起来就是一句话:“在没有冲突的时候发送数据,只要产生冲突就等待。”这种思想看上去很美,我们会认为只要严格遵守这一原则,冲突是不会发生的,数据也将顺利被发送。但实践证明,这种算法无法避免冲突,当网络中的主机越来越多时算法将彻底失败。

仔细想想就会发现,CSMA/CD算法将避免冲突的筹码押在了冲突产生的概率上,也就是期望某一时刻总线是空闲的。这种情况只有在网络中主机数量很少或待传输数据很少的情况下才会出现,当网络由于各种原因逐渐繁忙起来之后,CSMA/CD算法会发现,无论等待多长时间、等待多少次,总线上仍然会产生冲突,这种情况发生时,CSMA/CD算法将失效(就像北京城区某些路段的堵车一样,随到随堵,全天候,不分时)。

总线型以太网所固有的冲突问题不是小问题而是致命的,它严重地影响了网络的扩展性、可用性和资源的高效使用。如果你和用户说:“抱歉,无论你的公司发展成多大规模,网络中的计算机只能有30台,否则,所有的计算机都将处于等待状态,不好意思。”用户会简单地告诉你:“滚!”

为了解决总线型以太网的冲突问题,工程师们想出了一种办法,即将网络“分段”。

上一篇: 令牌环网的基本算法

下一篇: 千万级PV高性能高并发网站架构设计

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!