当前位置: 首页 > news >正文

为什么全双工不需要冲突检测

介绍 :  

全双工和半双工 : 

全双工和半双工的区别如下:

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


http://www.mrgr.cn/news/28176.html

相关文章:

  • Android从Drawable资源Id直接生成Bitmap,Kotlin
  • python——模块 迭代器 正则
  • Flutter开发之flutter_local_notifications
  • 得心应手!深度体验 zCloud 数据库管理平台 -- 巡检篇
  • World of Warcraft [WeakAuras]Barney Raid Kit - Collapsing Star Indicator
  • 问:SQL优化,七条实践总结?
  • 1184. 公交站间的距离(24.9.16)
  • 初始爬虫7
  • 横向移动-WMI
  • MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
  • AtCoder Beginner Contest 371
  • ubuntu20.04编译mesa
  • 大数据新视界 --大数据大厂之数据科学项目实战:从问题定义到结果呈现的完整流程
  • stack - queue
  • linux-系统备份与恢复-系统恢复
  • JVM源码解析
  • 匿名管道详解
  • 最强神器Typora 2024(亲测有效)| Markdown 工具推荐
  • 计算机二级MySQL大题系列01-PHP必考题
  • 【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
  • 业务资源管理模式语言15
  • OpenCV_图像旋转超详细讲解
  • 卡尔曼滤波-α滤波器
  • Python 的 WSGI 简单了解
  • 数据在内存中的存储方式
  • Mysql 面试题总结