为什么全双工不需要冲突检测
介绍 :
全双工和半双工 :
全双工和半双工的区别如下:
1、数据传输方式:全双工:数据可同时双向传输,如电话通信。半双工:数据双向传输但不能同时进行,如对讲机。
2、优点:全双工:高效率、低延迟、适合连续通信。半双工:成本低、简单易用、可靠性高。
3、缺点:全双工:成本高、系统复杂。半双工:效率低、高延迟、不适用高流量需求。
集线器
集线器(Hub)实际上是一个多端口的中继器。当Hub工作时,一个端口接收到数据信号后,因为信号在从端口到Hub的传输过程中已有衰减,所以Hub便对该信号进行整形放大,使之再生(恢复)到发送时的状态,紧接着转发到其它所有(除了输入端口之外)处于工作状态的端口。若同时有多个端口输入,则输出的时候就会发生冲突,导致这些数据全部失效。从Hub的工作方式可以看出 : 它在网络中只起到信号放大和转发作用,目的时扩大网络的传输范围,而不具有信号的定向传输能力,即信号的传输方向时固定的,是标准的共享式设备。
使用Hub组网灵活,它将所有结点的通信集中在以其为中心的结点上,由Hub组成的网络是共享式的网络,但逻辑上仍然是总线网。Hub的每个端口连接的是同一网络的不同网段,同时Hub只能在半双工状态下工作,网络的吞吐率收到限制 ;
集线器连接的网络物理上是星型拓扑,逻辑上是总线型拓扑 ;
冲突域
如果两台主机同时发送数据会发生冲突,那么这两台主机处于同一个冲突域 ;
集线器是不能够分割冲突域的 , 集线器的所有端口都属于同一个冲突域,集线器在一个时钟周期之内只能够传输一组信息,当一台集线器连接的机器数目较多且多台设备经常需要同时通信时,将导致信息冲突,使得集线器的工作效率很差。
解决
解决冲突域的方法通常是采用CSMA/CD(载波侦听多路访问/冲突检测),这个方法有四个步骤分别是:第一,先听后发,当一个主机要传输数据时,先不停地对共享线路进行检测,如果线路上没有信号传输,则发送数据,如果有,则等待一段时间后在继续检测发送。第二,边听边发,在发送的过程中同时也检测线路。第三,冲突停发,如果有检测到冲突,发送设备会立即停止发送数据,并发送阻塞信号,通知其他设备,使其他设备尽早的检测到冲突。
为什么全双工不需要冲突检测
可以把冲突域比做一个双向单车道上的交通规则!而全双工则是一个双车道。有了自己专有的行驶车道,你可以开自己的奔驰任意飞速行驶还要什么交通规则?这种情况下还使用CSMA/CD的规则那不是吃多了?
全双工模式下两个节点间的传送和接收链路实际是分开的,所以帧是不可能冲突的。由于消除了冲突,所以全双工连接将关闭端口上的冲突检测功能,并不是要丢弃CSMA/CD。
全双工模式下,交换机的每个端口都是一个独立的冲突域,所以也就不会存在信息冲突的可能,全双工传输意味着所有的站点都能够同时发送和接收数据。
半双工模式下虽然可以实现在同一链路上进行发送和接收,但不是在同一时间。这就必须使用CSMA/CD冲突检测机制来避免冲突的发生。半双工工作模式的典型接入设备就是集线器。
10BASE-T使用集线器的以太网依旧是总线型的,半双工,所以使用CSMA/CD;
而100BASE-T的情况又分为两种,一种就如上面所说,使用集线器(广播式模式),物理上看作是星型网络,但本质依旧是总线型(半双工的),用CSMA/CD;而第二种情况就是使用以太网交换机(发出请求的端口与目的端口之间相互响应,而不影响其它端口,因此交换机就能够隔离冲突域),有更好的服务质量——快速的全双工方式,CSMA/CD是不起作用的
参考 : https://www.cnblogs.com/mayuechang/articles/1496695.html