CSMA/CD与全双工通信

时间:2022-12-14 10:03:56

之所以在全双工的点到点网络中不再需要CSMA/CD协议,我认为是两方面的原因:

一、点到点:

    这是涉及到共享式以太网和交换式以太网,前者是以太网伊始所采用的通信方式,主要是通过集线器Hub,所有的端口都共享同一个冲突域和广播域,这时需要使用CSMA/CD。并且HUB的内部是总线型拓扑,各节点共用一条总线进行通信,在CSMA/CD的控制下数据流在同一时间内必须维持单向,即只能工作在半双工模式。而后者是以太网现在所采用的通过交换机进行主机互联的方式,每一个端口拥有自己的冲突域,但所有的PC仍处于同一个广播域中。

    
二、全双工:
    半双工的工作方式,是发送和接收共享一条链路;全双工方式则把发送和接收分开,使用两条链路。

    所以,现在的以太网连接方式:几乎不再使用Hub,而是交换机直接和PC连接,交换机的一个端口直接连接一台电脑。这样处于交换机端口下的一台主机独自构成一个冲突域;同时,PC和交换机之间可以采用全双工通信(Hub只能工作在半双工),一旦采用双工通信,这样一台主机独自构成的一个冲突域下接收和发送也不会产生冲突。最终,全双工的交换式以太网就可以不再使用载波监听多点介入碰撞检测协议。

    


    以下是网上的一些相关日志,作为补充:



    我们知道:以太网访问控制用的是CSMA/CD,即载波侦听多点接入/ 冲突检测,是以广播的方式将数据发送到所有端口;


    我们还知道:交换机能主动学习端口所接设备的MAC地址,在获知该端口的MAC 地址后,就会把传送给目标设备的直接发送到该端口而不是广播出去。


    那么,以太网交换机是如何工作的呢?交换机和以太网的工作机理岂不是要相冲突吗
    回答:之所以有CSMA/CD的存在,是因为在早期的共享式以太网中,双向的传输和一个冲突域内的主机通信是在同一线路上进行的,而以太网是一种共享介质的广播技术,所以同一时间只能有一面的信号在线路上,即要么A往B发,要么B往A发,如果AB同时发送数据或者线路上已有信号,那么信号就会发生碰撞,继而影响数据有效传输,为了解决此一问题,才有了CSMA/CD的技术!!
   
      随着技术的发展,CSMA/CD在最初的以太网中具有的历史和实践的重要性在慢慢减弱,现在交换式以太网取代了共享式以太网,甚至于共享式以太网消失。这主要是因为介质和交换技术的发展而造成的.
  
      介质方面:使用4对线的UTP,传输和接收各自使用一对,可以全双工方式工作,这样,一边只管发,一边只管收,因此就能够避免碰撞了,光纤方面也可如此!!
      交换技术方面:当两个工作站需要通信时,交换技术在两个站之间建立了一个点到点的虚链路,也叫做微分段,因此同样也避免了碰撞了!这就是交换机使用的技术.
     所以,从上面可以看出,以太网访问控制机制和交换机工作原理并没有相冲突的地方,只是随着技术的发展,一些不必要的机制就慢慢不要了!!
   
下面的图帮助你理解共享域和广播域的区别:
(1)共享式HUB 
在共享式的HUB中,所有的端口都共享同一个冲突域和广播域,这时需要使用CSMA/CD。
HUB的内部是总线型拓扑,各节点共用一条总线进行通信,在CSMA/CD的控制下数据流在同一时间内必须维持单向,即只能工作在半双工模式。
(2)没有划分VLAN的二层交换机
在没有划分VLAN的二层交换机中,每一个端口拥有自己的冲突域,但所有的PC仍处于同一个广播域中。
(3)划分了VLAN的二层交换机
划分了VLAN的二层交换机中,交换机的每一个端口拥有自己的冲突域,在这个交换机中,每个VLAN是一个广播域。
CSMA/CD(Carrier sense multiple access with collision detection),中文译名:载波监听多路访问/冲突检测,是以太网发展早期,共享式以太网用于解决冲突的协议,即介质访问控制的一种方式。


共享式以太网:共享式以太网的典型代表是使用10base2/10base5的总线型以太网和使用双绞线并用集线器连接的星型以太网,而后者,物理结构上是星型拓扑,而在逻辑上网内的主机依然是在同一条总线上。
这种总线形结构的特点决定了整个网络都处于同一个冲突域,若有两台主机要同时发送数据,则必然会产生冲突。为解决冲突,引入了CSMA/CD协议,而CSMA/CD协议要求网卡在发送数据之前必须侦听,因此这种总线结构也同样决定了网内主机的网卡以半双工模式工作。


交换式以太网:现代的以太网都是交换式的了,它以二层交换机为核心(取代了集线器的位置),交换机的每个端口都是一个独立的冲突域,假如这个端口连接唯一的一台主机,那么用于解决共享式以太网冲突的CSMA/CD协议就没有用武之地了,既然没有了碰撞,那么发送和接收数据就不需要共用一条“总线”了,可以用两条线路分别用于发送和接收,即全双工模式。当然,如果手动设定网卡以半双工模式工作,或者是网卡不支持全双工模式,或者这个端口连接的是一个集线器,那么这个端口必须工作在半双工模式。


事实上,在802.3标准中有这样的规定,即在全双工模式下,不使用(实现)在传统共享式局域网中用于仲裁的CSMA/CD协议。