关于 CSMA/CD 和交换机以太网的说明

网络工程 转变 以太网 网络
2021-07-21 23:00:02

我正在研究集线器和交换机之间的区别。

第一种是虚拟设备,它们只是将输入信号重复到每个输出端口。防冲突协议 CSMA/CD 由连接到集线器的设备的 NIC 实现。所以我猜我们正在处理半双工通信,否则将不需要 CSMA/CD。

交换机更智能,它们管理冲突协议。我不能得到这个。我的意思是,我们又要处理半双工通信了?如果 CSMA/CD 在交换机中或在 NIC 的设备中实施,会发生什么变化?如果交换机实现了protocol-collision,是否意味着交换机端口和主机之间的介质是全双工的?否则它应该再次碰撞!

请向我说明半双工和冲突在交换以太网网络中的关系

4个回答

第一种是虚拟设备,它们只是将输入信号重复到每个输出端口。

对,更具体地说,他们复制所有端口上的信号,除了接收信号的那个端口

防冲突协议 CSMA/CD

错了,CD state for Collision Detection,这不是防冲突机制。可能会发生碰撞但会被检测到。这种“防冲突”机制是存在的,就是CSMA/CA(Collision avoidance),比如WiFi中使用的。

交换机更智能,它们管理冲突协议。我不能得到这个。我的意思是,我们又要处理半双工通信了?如果 CSMA/CD 在交换机中或在 NIC 的设备中实施,会发生什么变化?如果交换机实现了protocol-collision,是否意味着交换机端口和主机之间的介质是全双工的?否则它应该再次碰撞!

CSMA/CD 不是位于一个地方,即 NIC交换机。它是主机(计算机 NIC)和交换机都知道的协议(想想“语言”)。

交换机不“管理冲突协议”。他们确实说出了它,并且能够在决定将帧发送到目标主机之前检测到冲突。

您是对的,如果主机 NIC 和交换机之间的连接是全双工的,则不需要 CSMA/CD,因为不会发生冲突。

但是交换机的同一个端口可以连接到只支持半双工的设备(现在越来越少),在这种情况下,交换机端口会自动将自己设置为半双工(如果它支持自动协商)或可以手动配置为半双工。在这种情况下,将使用 CSAM/CD。

编辑以回应评论:
在单个冲突域(位于交换机主机和交换机端口上)中,所有主机必须设置为相同的双工设置。这可以通过自动检测自动实现(如果至少一个主机支持它),也可以手动实现。但是如果一台主机设置为FD,另一台设置为HD,就会出现问题。今天,双工问题的出现并不少见,尽管自动检测几乎无处不在,但我们有时不得不手动将端口设置为给定模式。

正如@Ron Trunk 在他的评论中所解释的,每对 [switch port - host] 都是一个冲突域。因此,在单个交换机上,您可以将一个端口连接到 FD 中的主机,另一个连接到 HD 中的主机。

到目前为止,这并不是集线器和交换机之间的唯一区别。交换机的主要特点是它记录了所有连接设备的MAC地址,因此它知道哪个MAC地址在哪个端口后面,并且它可以只将帧转发到适当的端口而不是将其复制到所有端口。(这个网站上有很多关于这方面的答案)。

除了这里已经很好的答案之外:交换机和中继集线器之间的核心区别在于交换机缓冲帧这允许将帧发送到当前正忙于接收另一个帧的目的地 - 没关系,您不必检查,因为它已在网络中缓冲并尽快逐跳转发。

缓冲也是实现全双工通信的机制。对于没有缓冲的全双工,在实际发送数据之前,必须首先清除完整的发送方到目的地路径中的其他通信。这就是电路交换的作用——它不如分组交换有效。

对于半双工通信,缓冲还在每个端口上建立了一个单独的冲突域——在冲突后必须重试发送数据的不是实际的发送者,而是交换机为他做的。

关于集线器:当我们说“简单地将输入信号重复到每个输出端口的设备”时,重要的是要意识到它基本上是用晶体管完成的:它将电压从一个地方复制到另一个地方。

几乎所有其他东西——网桥、交换机、路由器——内部都有一个 CPU,它可以获取位,以各种方式将它们解释为地址,并决定将它们发送到哪里。显而易见的技术是将以太网帧放入内存队列,弄清楚要做什么,然后以正确的方式发出它。因此,输入和输出之间存在可测量的延迟。相比之下,集线器上的输出信号以亚位时间延迟跟随输入。

聪明的交换机可以在输入完成之前开始转发;愚蠢的是存储转发。您通常必须将示波器放在信号上才能准确找出给定开关的功能。

在现代以太网交换机中,每个端口都是一个单独的冲突域。因为域中只有两个设备(交换机端口和主机 NIC),所以交换机端口配置(默认)为全双工。