对以太网从业者而言,CSMA/CD这个术语并不陌生。CSMA/CD英文Carrier Sense Multiple Access with Collision Detection的缩写,中文说法是“带有冲突检测的载波侦听多路访问”或者“载波侦察听多路访问/冲突检测”。


1973522Bob Metcalfe他的IBM Selectric打字机上,和David R. Boggs一起给Xerox Palo Alto研究中心的boss发送了一份备忘录,首次提出了以太网的概念。这一天也被认为是以太网诞生的日子。


1976年7月Bob Metcalfe和David R. Boggs在《Communications of the ACM》上发表了一篇文章《Ethernet: Distributed Packet Switching for Local Computer Networks这篇文章的内容基于Palo Alto研究中心的试验以太网,引入了carrier detectioninterference detection机制,但是并没有明确提出CSMA/CD的说法。在Palo Alto的试验以太网中,一公里长的粗同轴电缆上连接了100个结点。网络中的任何一个结点发送报文时,链路上的其他结点都能收到。如果报文的目的地址和自身的地址相同,则接收报文;否则,不予处理。



CSMA/CD机制和以太网的渊源_CSMA/CD


这个网络里的所有结点共享同一条同轴电缆链路。任一结点发送报文之前,先监听链路是否空闲。若链路忙,则不发送链路空闲,把数据发送到链路上。这种链路检测方式并不能完全解决问题,因为数据在链路上传输也需要时间,如果检测时其他结点发送的数据的信号还没有到达当前结点所在的位置,链路也会被认为是空闲的。因此,在发送数据的过程中,结点也要检测链路以便确认自己发送的数据是不是和其他结点发送的数据发生了冲突。


1977年底,Metcalfe和他的3合作者David R. Boggs, Butler W. Lampson, Charles P. Thacker获得了以太网的专利U.S. Patent 4,063,220 "Multipoint data communication system(with collision detection)"后来,XeroxDECIntel公司联合制定了10M以太网的标准DIX标准,该标准于1980930日发布。198211月,DIX标准发布了第二个版本,即EtheretII1983年6月IEEE 802.3工作组通过了基于DIX标准的IEEE 802.3标准,该标准最终由IEEE标准委员会于1985年正式发布。


现在,以太网已经不再使用同轴电缆,工作方式也发生了很大变化。以太网交换设备成为最常见的组网设备,典型的组网方式如下图所示:


CSMA/CD机制和以太网的渊源_CSMA/CD_02


以太网交换设备的每个端口内部有一个MAC,可以看作传输链路上的1台主机。上图中的阴影部分,类似于早期的共享介质上只连接了2个结点。以太网最初的共享介质传输方式变成了现在的点对点方式,这种方式还可以支持双向的无干扰传输,不会发生冲突,也就不再需要CSMA/CD机制。


现在,全双工模式被普遍采用。百兆以太网和千兆以太网都可以支持半双工模式,但实际上很少用到。传输速率在10G以上的以太网,都已经不再支持半双工模式。


经过40年的发展,以太网已经无处不在,但CSMA/CD机制几乎不再使用。时至今日,CSMA/CD机制依然是以太网从业者必备的常识,或许是因为它开启了以太网40年的发展历程。



CSMA/CD机制和以太网的渊源_CSMA/CD_03