CSMA/CD 现在的交换式以太网还用吗?暨全双工,半双工与CSMA/CD的关系
我们知道:以太网访问控制用的是CSMA/CD,即载波侦听多点接入/ 冲突检测,是以广播的方式将数据发送到所有端口;
我们还知道:交换机能主动学习端口所接设备的MAC地址,在获知该端口的MAC 地址后,就会把传送给目标设备的直接发送到该端口而不是广播出去。
那么,以太网交换机是如何工作的呢?交换机和以太网的工作机理岂不是要相冲突吗
回答:之所以有CSMA/CD的存在,是因为在早期的共享式以太网中,双向的传输是在同一线路上进行的,而以太网是一种共享介质的广播技术,所以同一时间只能有一面的信号在线路上,即要么A往B发,要么B往A发,如果AB同时发送数据或者线路上已有其它设备C的信号,那么信号就会发生碰撞,继而影响数据有效传输,为了解决此一问题,才有了CSMA/CD的技术!!
随着技术的发展,CSMA/CD在最初的以太网中具有的历史和实践的重要性在慢慢减弱,现在交换式以太网取代了共享式以太网,甚至于共享式以太网消失。这主要是因为介质和交换技术的发展而造成的.
介质方面:使用4对线的UTP,传输和接收各自使用一对,可以全双工方式工作,这样,一边只管发,一边只管收,因此就能够避免碰撞了,光纤方面也可如此!!
交换技术方面:当两个工作站需要通信时,交换技术在两个站之间建立了一个点到点的虚链路,也叫做微分段,因此同样也避免了碰撞了!这就是交换机使用的技术.
所以,从上面可以看出,以太网访问控制机制和交换机工作原理并没有相冲突的地方,只是随着技术的发展,一些不必要的机制就慢慢不要了!!
另一篇儿转的话:
全双工,半双工与CSMA/CD的关系
谈谈以太网中何时使用CSMA/CD冲突检测机制关于以太网何时使用CSMA/CD检测机制,这个问题前两天刚和朋友做了讨论。在网络上搜索和很久,也有一些同行们不太理解,特别是一些初学CCNA的,没有工作经验的同行们。在此,我把我的观点和依据发在博客上供大家讨论。
以太网中到底何时使用CSMA/CD检测机制来避免冲突,在于网络处于什么样的工作模式(全双工或者半双工)下工作,网卡将自动与网络接入设备(例如:交换机或者集线器)进行协商来判断什么时候使用CSMA/CD检测机制避免冲突的发生。
我想,关于什么是CSMA/CD各位网管或者网络工程师们都应该知道,在这里就不做太多解释了。大家都知道,以太网工作模式有两种,一种是全双工工作模式,一种是半双工工作模式。我们看分析一下这两个模式下到底是不是用CSMA/CD冲突检测机制。
一.在全双工工作模式下的以太网使用CSMA/CD检测机制来避免冲突吗?
在这一工作模式下的以太网是不需要使用CSMA/CD冲突检测机制的。我们知道,全双工工作模式下可以完成同时接收和发送数据。我们想想,网卡可能会在同一时刻发送两个数据包吗?这是不可能的。绝对不可能会出现在同一时刻网卡接收到两个或两个以上同时需要发送数据的请求,就连CPU也不可能同时做到在同一时刻处理两个或两个以上指令呀。这个时候,如果我们假设网卡启用CSMA/CD机制来检测冲突,请问他检测哪一条冲突通道呢?我们可要知道,网卡在接收到需要发送的数据包后,就像排队一样一个一个往外发送,怎么可能会冲突呢?
这个时候有人可能要问了,那接收呢?它可能会和接收的冲突呀?其实这么想就错了。全双工工作模式下,我们将使用双绞线中的2对线进行工作。一对用于发送,一对用于接收。那么既然发送和接收是分开的2条链路,就不存在冲突的问题了。就像在高速公路上,有一个车道是由东往西行驶车道,一个车道是由西往东行驶车道。那么,你说两车对开,各行驶于各自的车道,有可能会冲撞吗?所以,全双工工作模式下是不需要使用CSMA/CD冲突检测机制的。
二.在半双工工作模式下的以太网使用CSMA/CD检测机制来避免冲突吗?
我想这个问题只要是网管或者是CCNA的工程师们都应该知道,在这一工作模式下的以太网是需要使用CSMA/CD冲突检测机制的。我们知道,半双工模式下虽然可以实现在同一链路上进行发送和接收,但不是在同一时间。这就必须使用CSMA/CD冲突检测机制来避免冲突的发生。半双工工作模式的典型接入设备就是集线器。至于为什么,请大家认真复习一下CCNA中的这一节内容。这里就不做详细的讨论了。
三.我们都说交换机中有智能设备,如CPU和缓存。为什么工作在半双工模式下的交换机,还会使用CSMA/CD呢?
这个问题问得特别好。其实大家想一想就知道了。我们先明白一点:交换机确实有CPU和缓存来调节数据包的输出和接收,是不会发生冲突的。交换机只关心它的背板速率,关心的是整个带宽。所以,在交换机内的数据包是绝对不会发生冲突的情况。只会发生是否出现网络拥塞。这是和冲突没有任何关联的。
理解了这一点,我们再理解下一个问题:CSMA/CD侦听包是有谁发出,什么时候才会发出呢?我们回忆一下CCNA的教程,其实,CSMA/CD侦听包是由网卡发出的,并不是有交换机或者集线器发出的侦听包。而且,网卡在发送数据前,才会发送CSMA/CD侦听包侦听网络是否畅通。
理解了这两点,我们就好解释了。对于CSMA/CD冲突检测机制而言,交换机和集线器的侦听对象是不完全相同的。在集线器中,每一个端口都同在一个冲突域中,CSMA/CD检测的整个同处一个冲突域每一个端口的每一种状态。它既侦听网络中正在发送的数据包,也真听网络中正在接收的数据包。因为,它只有1条通道。就像总线一样,所有数据都在同一个通道内跑。CSMA/CD必须侦听到没人使用,它才发送数据包。而交换机则不太相同。虽然每一个端口都是一个独立的冲突域,端口之间并不相互冲突。可如果实在半双工工作模式下,一个端口中的接收和发送就产生冲突了。这个时候,CSMA/CD冲突检测机制将侦听在这个端口上是否有数据正在被接收而占用。所以,交换机在半双工工作模式下工作,网卡同样会启用CSMA/CD冲突检测机制来避免冲突的发生。