1. CSMA/CD协议概念和由来
CSMA/CD:带碰撞检测的载波侦听多路访问协议,它是在局域网中用的最多的介质访问控制协议,即MAC协议。该协议解决了如何在共享信道上提高结点发送数据的效率问题。
为什么会有这个协议呢?
因为在早期的局域网中,网络拓扑是总线结构的,那时候还没有交换机,多台主机通过一个集线器相连,当一个结点发送数据时,其他的结点都会收到数据,即使不是发给它的,而接收方会根据帧中的目的MAC地址判断是丢弃还是接收。除此之外,因为每台主机都有发送数据的权利,所以当有一台主机发送数据时,另外一台主机恰好也在发送数据,这时就会产生碰撞,导致数据都是无效的,因为碰撞会损坏数据,这时就需要一种协议去协调结点发送数据,以便以最高效率利用信道。
这种协议就叫MAC协议,多路访问控制协议或者介质访问控制协议。历史上出现过很多MAC协议(可以去了解下,总的来说可以分为三类),只不过CSMA/CD以其简单高效、实现成本低而得到广泛应用。
另外在现在的交换局域网中,集线器已被交换机替换了,主机可以以全双工的方式进行通信,即可以同时发送和接收数据,因为有两根线,一根发送,一根接收,所以其实是不需要CSMA/CD协议了,但是为了兼容以前的技术,在半双工的情况下还是需要CSMA/CD的。
2. CSMA/CD的工作流程
每一台主机在发送数据之前先要检查一下总线上有没有其他主机在发送数据,如果有,则暂时不发送数据,以免发送冲突ÿ