第一种是虚拟设备,它们只是将输入信号重复到每个输出端口。
对,更具体地说,他们复制所有端口上的信号,除了接收信号的那个端口
防冲突协议 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地址在哪个端口后面,并且它可以只将帧转发到适当的端口而不是将其复制到所有端口。(这个网站上有很多关于这方面的答案)。