| HowItWorksLab · Systems
简体中文

以太网 CSMA/CD 冲突检测如何运转

在旧的共享以太网电缆上,每个站点都能听到每一帧。CSMA/CD 就是让大家共用这条线的规则:先听,安静时才开口;若两个同时开口,就察觉相撞,随机等待后再重试。

以太网 CSMA/CD · 冲突检测 载波监听 → 发送 → 冲突 → 阻塞 → 随机退避 → 重试 共享电缆(总线)——每个站点都能听到每一帧 站点 A 站点 B 站点 C 站点 A 站点 B 时间 ↓ 1 · 载波监听 2 · 发送 3 · 冲突 + 阻塞 4 · 随机退避 5 · 重试 监听 监听 双方都测到线路空闲 A 开始发送 B 开始发送 信号重叠 → 检测到冲突 双方都发出阻塞信号以确认 双方随机退避一段时间再重试 A 先重试——帧顺利到达,没有冲突 蓝色 = A · 橙色 = B · 绿色 = 成功 · 红色 = 冲突
发生的顺序 载波监听 → 发送 → 冲突 → 阻塞 + 退避 → 重试
显示模式

详细说明

什么是 CSMA/CD?

CSMA/CD——载波监听多发访问与冲突检测——是早期以太网让多台计算机共用一条电缆的方法。每个站点发送前都先监听,若两个站点同时开始发送,双方都会察觉,并稍后再重试。

它的三个想法就藏在名字里:载波监听(先听)、多发访问(任何站点都可发送)、冲突检测(察觉重叠并恢复)。这里没有中央控制器,各站点只是遵守同一套规则。

为什么要用时序来看它?

CSMA/CD 本质上讲的是时间:谁在说话、信号何时相遇、每个站点要等多久才重试。把它摆到一条共享总线与时间轴上,冲突与退避就一眼可见了。

部件及其作用

1. 大家共用一条电缆

在共享总线上,所有站点都接入同一条线。任一站点发出的帧会传遍整条线,因此每个站点都会听到它——不管它是不是目标接收方。正是这种介质共享,才让冲突成为可能。

2. 先听后发

发送前,站点先做载波监听:听一听线路。若听不到任何信号,说明介质空闲,就可以开始发送;若线路正忙,就等当前这帧发完再发。

3. 两个站点同时开始

载波监听并不完美。信号沿电缆传播需要时间,所以两个站点可能各自监听、都听不到东西,然后在对方的帧到达自己之前就开始发送。两路信号便在线上迎头相撞。

4. 检测冲突,发出阻塞信号

当波形重叠时,合成的信号就损坏了。正在发送的站点察觉到“听到的”并不是自己“发出的”,于是检测到冲突。双方都发出一小段阻塞信号,确保所有人都知道,然后停止发送。

5. 随机退避一段时间

之后每个站点在重试前都要等一等,等待时间是随机选取的,所以两个站点很少选到同一时刻;通常一个先重试,另一个还在等。网络越忙,随机范围越大,重试被错得越开。

6. 重试并成功送达

计时结束后,站点从头再来一遍:监听,若线路空闲就发送。这一次只有一个站点在发,帧便完好到达。冲突付出的只是一点点时间,而不是数据。

CSMA/CD 这几个字母是什么意思?

载波监听、多发访问、冲突检测。载波监听指发送前先监听;多发访问指任何站点都可以发送;冲突检测指察觉两路信号重叠,然后退避并重试。

为什么早期的以太网会发生冲突?

因为所有站点共用一条电缆。站点要等信号沿电缆传过来才能听到别人的帧,所以两个站点可能在对方的信号到达之前就各自开始发送,于是两帧重叠了。

阻塞信号有什么用?

它是站点在检测到冲突的那一刻发出的一小段突发信号,用来确保其他站点也察觉到了相撞并停止发送,而不是有一方还若无其事地继续发。

退避时间为什么要随机?

如果两个站点等待同样固定的时间,它们就会以完全相同的方式再次相撞,永远如此。而随机等待让它们几乎不会选到同一时刻,于是一个先重试,另一个还在等待。

现在还在用 CSMA/CD 吗?

很少了。现代以太网使用交换机和全双工链路,每台设备都有专属通道,可以同时收发,因此不会发生冲突。CSMA/CD 作为让早期共享以太网得以运转的方法被保留了下来。

常见误区

冲突会把数据彻底毁掉。 损坏的帧看上去像是无法恢复的丢失信息。
帧会被丢弃并重新发送。 退避之后站点重传,所以只要重试成功,数据一点也不会丢。
站点想发就能随便发。 看起来线上任何一方都能直接开口。
它们必须先监听。 载波监听让站点在线路忙时保持沉默;整套方案都依赖它。
CSMA/CD 能预防冲突。 名字听起来像是能在相撞之前就拦住它。
它是检测冲突,而不是预防。 彻底避开冲突的叫 CSMA/CA,用在 Wi-Fi 中,靠事先预约介质来实现。
免责声明:本图解为教学目的做了大幅简化,真实系统变量与复杂度远超此处。不可用于工程生产用途,也不构成金融、政治或专业建议。