CSMA/CD(载波侦听多址/冲突检测)是一种媒体访问控制方法,在早期的以太网技术/LAN中广泛使用,而以前是共享的 总线拓扑和每个节点(计算机)通过同轴电缆连接。现在的以太网是全双工的,CSMA/CD不使用,因为拓扑结构是星形的(通过交换机或路由器连接) 或者点对点(直接连接),但仍然支持。
考虑一个场景,一个链路上有N个站,所有的人都在等待通过该信道传输数据。在这种情况下,所有“n”台都希望访问链路/信道以传输自己的数据。当多个站点同时传输数据时,就会出现问题。在这种情况下,来自不同台站的数据将发生冲突。
CSMA/CD就是这样一种技术,在这种技术中,遵循该协议的不同站点在一些条款和碰撞检测措施上达成一致,以实现有效传输。该协议决定何时传输哪个站,以便数据到达目的地而不会损坏。
CSMA/CD是如何工作的?
- 第一步: 检查发送方是否准备好发送数据包。
- 第二步: 检查变速箱连杆是否空闲? 发送方必须不断检查传输链路/介质是否空闲。为此,它会持续感知来自其他节点的传输。发送方在链接上发送虚拟数据。如果没有收到任何碰撞信号,这意味着链路目前处于空闲状态。如果它感觉到载体是自由的,并且没有碰撞,它就会发送数据。否则,它将禁止发送数据。
- 第三步: 传输数据并检查碰撞。 发送方通过链路传输数据。CSMA/CD不使用“确认”系统。它通过碰撞信号检查成功和失败的传输。在传输期间,如果节点接收到冲突信号,则停止传输。然后,电台向链路发送干扰信号,并在重新发送帧之前等待随机时间间隔。经过一段随机时间后,它再次尝试传输数据,并重复上述过程。
- 第4步: 如果在传播过程中未检测到冲突,发送方将完成其帧传输并重置计数器。
电台如何知道其数据是否发生冲突?
考虑上述情况。两个车站,A和B。 信号从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)[粗略界限] 这是因为,我们希望在从我们的站点传输数据的最后一位之前,我们至少应该确保一些位已经到达了它们的目的地。这样可以确保链路不忙,不会发生冲突。 但是,以上是一个松散的界限。我们没有用碰撞信号所花的时间回到我们身边。考虑到最坏的情况。
再考虑一下上面的系统。
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的效率