以太网 CSMA/CD 冲突检测如何运转
在旧的共享以太网电缆上,每个站点都能听到每一帧。CSMA/CD 就是让大家共用这条线的规则:先听,安静时才开口;若两个同时开口,就察觉相撞,随机等待后再重试。
在旧的共享以太网电缆上,每个站点都能听到每一帧。CSMA/CD 就是让大家共用这条线的规则:先听,安静时才开口;若两个同时开口,就察觉相撞,随机等待后再重试。
CSMA/CD——载波监听多发访问与冲突检测——是早期以太网让多台计算机共用一条电缆的方法。每个站点发送前都先监听,若两个站点同时开始发送,双方都会察觉,并稍后再重试。
它的三个想法就藏在名字里:载波监听(先听)、多发访问(任何站点都可发送)、冲突检测(察觉重叠并恢复)。这里没有中央控制器,各站点只是遵守同一套规则。
CSMA/CD 本质上讲的是时间:谁在说话、信号何时相遇、每个站点要等多久才重试。把它摆到一条共享总线与时间轴上,冲突与退避就一眼可见了。
在共享总线上,所有站点都接入同一条线。任一站点发出的帧会传遍整条线,因此每个站点都会听到它——不管它是不是目标接收方。正是这种介质共享,才让冲突成为可能。
发送前,站点先做载波监听:听一听线路。若听不到任何信号,说明介质空闲,就可以开始发送;若线路正忙,就等当前这帧发完再发。
载波监听并不完美。信号沿电缆传播需要时间,所以两个站点可能各自监听、都听不到东西,然后在对方的帧到达自己之前就开始发送。两路信号便在线上迎头相撞。
当波形重叠时,合成的信号就损坏了。正在发送的站点察觉到“听到的”并不是自己“发出的”,于是检测到冲突。双方都发出一小段阻塞信号,确保所有人都知道,然后停止发送。
之后每个站点在重试前都要等一等,等待时间是随机选取的,所以两个站点很少选到同一时刻;通常一个先重试,另一个还在等。网络越忙,随机范围越大,重试被错得越开。
计时结束后,站点从头再来一遍:监听,若线路空闲就发送。这一次只有一个站点在发,帧便完好到达。冲突付出的只是一点点时间,而不是数据。
载波监听、多发访问、冲突检测。载波监听指发送前先监听;多发访问指任何站点都可以发送;冲突检测指察觉两路信号重叠,然后退避并重试。
因为所有站点共用一条电缆。站点要等信号沿电缆传过来才能听到别人的帧,所以两个站点可能在对方的信号到达之前就各自开始发送,于是两帧重叠了。
它是站点在检测到冲突的那一刻发出的一小段突发信号,用来确保其他站点也察觉到了相撞并停止发送,而不是有一方还若无其事地继续发。
如果两个站点等待同样固定的时间,它们就会以完全相同的方式再次相撞,永远如此。而随机等待让它们几乎不会选到同一时刻,于是一个先重试,另一个还在等待。
很少了。现代以太网使用交换机和全双工链路,每台设备都有专属通道,可以同时收发,因此不会发生冲突。CSMA/CD 作为让早期共享以太网得以运转的方法被保留了下来。