CSMA/CD中的碰撞检测详细介绍

2021年3月9日16:10:19 发表评论 1,211 次浏览

CSMA / CD(载波侦听多路访问/冲突检测)是一种媒体访问控制方法, 广泛用于早期以太网技术/ LAN中,

总线拓扑结构和每个节点(计算机)通过同轴电缆连接。现在, 以太网是全双工的, 并且由于拓扑结构是星形(通过交换机或路由器连接), 因此不使用CSMA / CD

或点对点(直接连接), 但仍支持它们。

考虑这样一种情况:链路上有" n"个站点, 所有站点都在等待通过该信道传输数据。在这种情况下, 所有" n"个站点都希望访问链路/信道以传输自己的数据。当多个站点同时传输数据时, 就会出现问题。在这种情况下, 来自不同站点的数据将发生冲突。

CSMA / CD是一种这样的技术, 其中遵循此协议的不同站点在某些条款和冲突检测措施上达成了有效传输的共识。该协议决定何时发送哪个站, 以便数据到达目的地而不会损坏。

CSMA / CD如何工作?

  • 第1步:检查发送方是否准备好发送数据包。
  • 第2步:检查传输链路是否空闲?
    发送方必须继续检查传输链路/介质是否空闲。为此, 它连续地感测来自其他节点的传输。发送方在链路上发送伪数据, 如果没有收到任何冲突信号, 则表示该链路目前处于空闲状态;如果感知到载波空闲且没有冲突, 则发送数据。否则, 它将阻止发送数据。
  • 第三步:传输数据并检查碰撞。
    发件人在链接上传输其数据。 CSMA / CD不使用"确认"系统。它通过碰撞信号检查传输成功与否。在传输过程中, 如果节点接收到冲突信号, 则传输将停止。然后, 该站将阻塞信号发送到链路上, 并在重新发送帧之前等待随机的时间间隔。经过一段随机时间后, 它再次尝试传输数据并重复上述过程。
  • 步骤4:如果在传播中未检测到冲突, 则发送方完成其帧传输并重置计数器。

站点如何知道其数据是否冲突?

CSMA / CD中的碰撞检测1

考虑以上情况。两个站, A和B。

传播时间:Tp = 1小时(信号从A到B需要1小时)

At time t=0, A transmits its data.
        t= 30 mins : Collision occurs.

发生碰撞后, 将生成一个碰撞信号, 并将其发送到A和B, 以通知工作站有关碰撞的信息。由于碰撞发生在中途, 因此碰撞信号也需要30分钟才能到达A和B。

Therefore, t=1 hr: A & B receive collision signals.

该冲突信号被该链路上的所有站接收。然后,

如何确保其本站的数据发生冲突?

为此, 传输时间(Tt)>传播时间(Tp)[Rough bound]

这是因为, 我们希望在从站传输数据的最后一位之前, 我们至少应确保某些位已经到达目的地。这样可以确保链接不忙, 并且不会发生冲突。

但是, 以上是一个宽松的界限。我们尚未利用碰撞信号花费的时间返回给我们。为此, 请考虑最坏的情况。

再次考虑上述系统。

CSMA / CD中的碰撞检测2
At time t=0, A transmits its data.
        t= 59:59 mins : Collision occurs

这种冲突恰好在数据到达B之前发生。现在, 冲突信号再次需要59:59分钟才能到达A。因此, A大约在2小时之后(即2 * Tp之后)接收到冲突信息。

Hence, to ensure tighter bound, to detect the collision completely, Tt > >= 2 * Tp

这是系统可以用来检测冲突是否是其自身数据的最大冲突时间。

传输分组的最小长度应该是多少?

传输时间= Tt =数据包长度/链路带宽

[发送方每秒发送的位数]

替换上面, 我们得到,

数据包长度/链接带宽> = 2 * Tp

Length of the packet >= 2 * Tp * Bandwidth of the link

在我们没有这么长的数据包的情况下, 填充很有帮助。我们可以将多余的字符填充到数据的末尾, 以满足上述条件。

接下来阅读–CSMA / CD的效率


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: