CSMA/CD协议的基本原理与应用
CSMA/CD协议的基本原理与应用
CSMA/CD协议是共享总线以太网中用于解决各站点争用总线问题的一种专用协议。它通过载波监听、多址接入和碰撞检测等机制,确保数据在总线上的有序传输。本文将详细介绍CSMA/CD协议的基本原理及其在实际应用中的注意事项。
CSMA/CD协议概述
共享总线以太网具有天然的广播特性,即使总线上某个站点给另一个站点发送单播帧,表示帧的信号也会沿着总线传播到总线上的其他各站点。当某个站点在总线上发送帧时,总线资源会被该站点独占。此时,如果总线上的其他站点也要在总线上发送帧,就会产生信号碰撞。
为了解决各站点争用总线的问题,共享总线以太网使用了一种专用协议CSMA/CD,它是载波监听多址接入/碰撞检测(Carrier Sense Multiple Access Collision Detection)的英文缩写词。
多址接入(MA)
多址接入(MA)指的是多个站点连接到一根总线上,各主机随机发送帧。
载波监听(CS)与碰撞检测(CD)
假设站点C要发送帧,它首先进行载波监听,在检测到总线空闲96比特时间后,就可以发送帧了。
表示帧的信号会沿着总线传播。假设在站点C使用总线发送帧的过程中,站点B也要发送帧,站点B进行载波监听,发现总线忙,于是持续检测总线,一旦发现总线空闲96比特时间,则立即发送帧。边发送帧还要边检测碰撞,这就是碰撞检测。只要没检测到碰撞,就可以继续发送帧的剩余部分。
假设站点B发送帧的过程中,站点C也要发送帧,站点C进行载波监听,检测到总线空闲,但是实际上总线并不空闲,这是因为站点B发送的信号还没有传播到站点C。站点C检测到总线空闲96比特时间后,就立即发送帧,这必然会产生碰撞。在产生碰撞的时刻,站点B和C都在边发送帧边检测碰撞,但都检测不到碰撞,碰撞信号沿着总线进行传播。由于产生碰撞的位置离站点C较近,因此,站点C比B更早检测到碰撞并停止发送帧。退避一段时间后,重新从载波监听开始,以便重发之前遭遇到碰撞的帧。当站点B检测到碰撞后,立即停止发送,退避一段随机时间后,重新从载波监听开始,以便重发之前遭遇到碰撞的帧。
强化碰撞
发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要再继续发送32比特或48比特的人为干扰信号(Jamming Signal),以便有足够多的碰撞信号使所有站点都能检测出碰撞。
注意事项
- 载波监听检测到总线空闲,但总线并不一定空闲。
- 使用CSMA/CD协议的共享总线以太网上的各站点,只是尽量避免碰撞并在出现碰撞时做出退避后重发的处理,但不能完全避免碰撞。
- 在使用CSMA/CD协议时,由于正在发送帧的站点必须“边发送帧边检测碰撞”,因此站点不可能同时进行发送和接收,也就是只能进行半双工通信(双向交替通信)。